mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-07 06:33:24 +00:00
Added support for functions returning integer
This commit is contained in:
parent
ab71bd0746
commit
007bdff55d
1 changed files with 12 additions and 2 deletions
|
@ -106,7 +106,7 @@ static void free_attr(std::map<std::string, AstNode*> *al)
|
||||||
%token TOK_SUPPLY0 TOK_SUPPLY1 TOK_TO_SIGNED TOK_TO_UNSIGNED
|
%token TOK_SUPPLY0 TOK_SUPPLY1 TOK_TO_SIGNED TOK_TO_UNSIGNED
|
||||||
%token TOK_POS_INDEXED TOK_NEG_INDEXED TOK_ASSERT
|
%token TOK_POS_INDEXED TOK_NEG_INDEXED TOK_ASSERT
|
||||||
|
|
||||||
%type <ast> wire_type range non_opt_range expr basic_expr concat_list rvalue lvalue lvalue_concat_list
|
%type <ast> wire_type range non_opt_range range_or_integer expr basic_expr concat_list rvalue lvalue lvalue_concat_list
|
||||||
%type <string> opt_label tok_prim_wrapper hierarchical_id
|
%type <string> opt_label tok_prim_wrapper hierarchical_id
|
||||||
%type <boolean> opt_signed
|
%type <boolean> opt_signed
|
||||||
%type <al> attr
|
%type <al> attr
|
||||||
|
@ -360,6 +360,16 @@ range:
|
||||||
$$ = NULL;
|
$$ = NULL;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
range_or_integer:
|
||||||
|
range {
|
||||||
|
$$ = $1;
|
||||||
|
} |
|
||||||
|
TOK_INTEGER {
|
||||||
|
$$ = new AstNode(AST_RANGE);
|
||||||
|
$$->children.push_back(AstNode::mkconst_int(31, true));
|
||||||
|
$$->children.push_back(AstNode::mkconst_int(0, true));
|
||||||
|
};
|
||||||
|
|
||||||
module_body:
|
module_body:
|
||||||
module_body module_body_stmt |
|
module_body module_body_stmt |
|
||||||
/* empty */;
|
/* empty */;
|
||||||
|
@ -380,7 +390,7 @@ task_func_decl:
|
||||||
current_function_or_task = NULL;
|
current_function_or_task = NULL;
|
||||||
ast_stack.pop_back();
|
ast_stack.pop_back();
|
||||||
} |
|
} |
|
||||||
TOK_FUNCTION opt_signed range TOK_ID ';' {
|
TOK_FUNCTION opt_signed range_or_integer TOK_ID ';' {
|
||||||
current_function_or_task = new AstNode(AST_FUNCTION);
|
current_function_or_task = new AstNode(AST_FUNCTION);
|
||||||
current_function_or_task->str = *$4;
|
current_function_or_task->str = *$4;
|
||||||
ast_stack.back()->children.push_back(current_function_or_task);
|
ast_stack.back()->children.push_back(current_function_or_task);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue