File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ USING_YOSYS_NAMESPACE
50
50
int integer;
51
51
YOSYS_NAMESPACE_PREFIX RTLIL::Const *data;
52
52
YOSYS_NAMESPACE_PREFIX RTLIL::SigSpec *sigspec;
53
+ std::vector<YOSYS_NAMESPACE_PREFIX RTLIL::SigSpec> *rsigspec;
53
54
}
54
55
55
56
%token <string> TOK_ID TOK_VALUE TOK_STRING
@@ -60,6 +61,7 @@ USING_YOSYS_NAMESPACE
60
61
%token TOK_UPDATE TOK_PROCESS TOK_END TOK_INVALID TOK_EOL TOK_OFFSET
61
62
%token TOK_PARAMETER TOK_ATTRIBUTE TOK_MEMORY TOK_SIZE TOK_SIGNED TOK_UPTO
62
63
64
+ %type <rsigspec> sigspec_list_reversed
63
65
%type <sigspec> sigspec sigspec_list
64
66
%type <integer> sync_type
65
67
%type <data> constant
@@ -389,16 +391,20 @@ sigspec:
389
391
$$ = $2 ;
390
392
};
391
393
392
- sigspec_list :
393
- sigspec_list sigspec {
394
- $$ = new RTLIL::SigSpec;
395
- $$ ->append (*$2 );
396
- $$ ->append (*$1 );
397
- delete $1 ;
394
+ sigspec_list_reversed :
395
+ sigspec_list_reversed sigspec {
396
+ $$ ->push_back (*$2 );
398
397
delete $2 ;
399
398
} |
400
399
/* empty */ {
400
+ $$ = new std::vector<RTLIL::SigSpec>;
401
+ };
402
+
403
+ sigspec_list : sigspec_list_reversed {
401
404
$$ = new RTLIL::SigSpec;
405
+ for (auto it = $1 ->rbegin (); it != $1 ->rend (); it++)
406
+ $$ ->append (*it);
407
+ delete $1 ;
402
408
};
403
409
404
410
conn_stmt :
You can’t perform that action at this time.
0 commit comments