@@ -35,7 +35,7 @@ extern int yylineno;
35
35
#define YYLINENO yylineno
36
36
#endif
37
37
38
- void yyerror (const char *str){ fprintf (stderr," error in parsing: %s - on line number %d\n " ,str, yylineno); exit (-1 );}
38
+ void yyerror (const char *str){ fprintf (stderr," error in parsing: (%s):: %d\n " ,str, yylineno- 1 ); exit (-1 );}
39
39
int yywrap (){ return 1 ;}
40
40
int yyparse ();
41
41
int yylex (void );
@@ -65,9 +65,9 @@ int yylex(void);
65
65
%token vOUTPUT vPARAMETER vPOSEDGE vREG vWIRE vXNOR vXOR vDEFPARAM voANDAND
66
66
%token voOROR voLTE voGTE voPAL voSLEFT voSRIGHT vo ASRIGHT voEQUAL voNOTEQUAL voCASEEQUAL
67
67
%token voCASENOTEQUAL voXNOR voNAND voNOR vWHILE vINTEGER
68
- %token vNOT_SUPPORT
69
68
%token vPLUS_COLON vMINUS_COLON
70
69
%token ' ?' ' :' ' |' ' ^' ' &' ' <' ' >' ' +' ' -' ' *' ' /' ' %' ' (' ' )' ' {' ' }' ' [' ' ]'
70
+ %token vNOT_SUPPORT
71
71
72
72
%right ' ?' ' :'
73
73
%left voOROR
@@ -132,21 +132,21 @@ items:
132
132
;
133
133
134
134
define :
135
- vDEFINE vSYMBOL_ID vINTEGRAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , LONG, UNSIGNED, yylineno), yylineno);}
136
- | vDEFINE vSYMBOL_ID vUNSIGNED_DECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , DEC, UNSIGNED, yylineno), yylineno);}
137
- | vDEFINE vSYMBOL_ID vUNSIGNED_OCTAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , OCT, UNSIGNED, yylineno), yylineno);}
138
- | vDEFINE vSYMBOL_ID vUNSIGNED_HEXADECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , HEX, UNSIGNED, yylineno), yylineno);}
139
- | vDEFINE vSYMBOL_ID vUNSIGNED_BINARY {$$ = NULL ; newConstant($2 , newNumberNode($3 , BIN, UNSIGNED, yylineno), yylineno);}
140
- | vDEFINE vSYMBOL_ID vSIGNED_DECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , DEC, SIGNED, yylineno), yylineno);}
141
- | vDEFINE vSYMBOL_ID vSIGNED_OCTAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , OCT, SIGNED, yylineno), yylineno);}
142
- | vDEFINE vSYMBOL_ID vSIGNED_HEXADECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , HEX, SIGNED, yylineno), yylineno);}
143
- | vDEFINE vSYMBOL_ID vSIGNED_BINARY {$$ = NULL ; newConstant($2 , newNumberNode($3 , BIN, SIGNED, yylineno), yylineno);}
135
+ vDEFINE vSYMBOL_ID vINTEGRAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , LONG, UNSIGNED, yylineno), yylineno);}
136
+ | vDEFINE vSYMBOL_ID vUNSIGNED_DECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , DEC, UNSIGNED, yylineno), yylineno);}
137
+ | vDEFINE vSYMBOL_ID vUNSIGNED_OCTAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , OCT, UNSIGNED, yylineno), yylineno);}
138
+ | vDEFINE vSYMBOL_ID vUNSIGNED_HEXADECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , HEX, UNSIGNED, yylineno), yylineno);}
139
+ | vDEFINE vSYMBOL_ID vUNSIGNED_BINARY {$$ = NULL ; newConstant($2 , newNumberNode($3 , BIN, UNSIGNED, yylineno), yylineno);}
140
+ | vDEFINE vSYMBOL_ID vSIGNED_DECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , DEC, SIGNED, yylineno), yylineno);}
141
+ | vDEFINE vSYMBOL_ID vSIGNED_OCTAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , OCT, SIGNED, yylineno), yylineno);}
142
+ | vDEFINE vSYMBOL_ID vSIGNED_HEXADECIMAL {$$ = NULL ; newConstant($2 , newNumberNode($3 , HEX, SIGNED, yylineno), yylineno);}
143
+ | vDEFINE vSYMBOL_ID vSIGNED_BINARY {$$ = NULL ; newConstant($2 , newNumberNode($3 , BIN, SIGNED, yylineno), yylineno);}
144
144
;
145
145
146
146
147
147
module :
148
148
vMODULE vSYMBOL_ID ' (' variable_define_list ' )' ' ;' list_of_module_items vENDMODULE {$$ = newModule($2 , $4 , $7 , yylineno);}
149
- | vMODULE vSYMBOL_ID ' (' variable_define_list ' ,' ' )' ' ;' list_of_module_items vENDMODULE {$$ = newModule($2 , $4 , $8 , yylineno);} // TODO this is supported ?? not in standards
149
+ | vMODULE vSYMBOL_ID ' (' variable_define_list ' ,' ' )' ' ;' list_of_module_items vENDMODULE {$$ = newModule($2 , $4 , $8 , yylineno);}
150
150
| vMODULE vSYMBOL_ID ' (' ' )' ' ;' list_of_module_items vENDMODULE {$$ = newModule($2 , NULL , $6 , yylineno);}
151
151
;
152
152
@@ -195,7 +195,8 @@ list_of_function_items:
195
195
| function_item {$$ = newList(FUNCTION_ITEMS, $1 );}
196
196
;
197
197
198
- function_item : parameter_declaration {$$ = $1 ;}
198
+ function_item :
199
+ parameter_declaration {$$ = $1 ;}
199
200
| function_input_declaration {$$ = $1 ;}
200
201
| net_declaration {$$ = $1 ;}
201
202
| integer_declaration {$$ = $1 ;}
@@ -499,23 +500,23 @@ expression:
499
500
;
500
501
501
502
primary :
502
- vINTEGRAL {$$ = newNumberNode($1 , LONG, UNSIGNED, yylineno);}
503
- | vUNSIGNED_DECIMAL {$$ = newNumberNode($1 , DEC, UNSIGNED, yylineno);}
504
- | vUNSIGNED_OCTAL {$$ = newNumberNode($1 , OCT, UNSIGNED, yylineno);}
505
- | vUNSIGNED_HEXADECIMAL {$$ = newNumberNode($1 , HEX, UNSIGNED, yylineno);}
506
- | vUNSIGNED_BINARY {$$ = newNumberNode($1 , BIN, UNSIGNED, yylineno);}
507
- | vSIGNED_DECIMAL {$$ = newNumberNode($1 , DEC, SIGNED, yylineno);}
508
- | vSIGNED_OCTAL {$$ = newNumberNode($1 , OCT, SIGNED, yylineno);}
509
- | vSIGNED_HEXADECIMAL {$$ = newNumberNode($1 , HEX, SIGNED, yylineno);}
510
- | vSIGNED_BINARY {$$ = newNumberNode($1 , BIN, SIGNED, yylineno);}
511
- | vSYMBOL_ID {$$ = newSymbolNode($1 , yylineno);}
512
- | vSYMBOL_ID ' [' expression ' ]' {$$ = newArrayRef($1 , $3 , yylineno);}
513
- | vSYMBOL_ID ' [' expression ' ]' ' [' expression ' ]' {$$ = newArrayRef2D($1 , $3 , $6 , yylineno);}
514
- | vSYMBOL_ID ' [' expression vPLUS_COLON expression ' ]' {$$ = newPartSelectRangeRef($1 , $3 , $5 , 1 , yylineno);}
515
- | vSYMBOL_ID ' [' expression vMINUS_COLON expression ' ]' {$$ = newPartSelectRangeRef($1 , $3 , $5 , -1 , yylineno);}
516
- | vSYMBOL_ID ' [' expression ' :' expression ' ]' {$$ = newRangeRef($1 , $3 , $5 , yylineno);}
503
+ vINTEGRAL {$$ = newNumberNode($1 , LONG, UNSIGNED, yylineno);}
504
+ | vUNSIGNED_DECIMAL {$$ = newNumberNode($1 , DEC, UNSIGNED, yylineno);}
505
+ | vUNSIGNED_OCTAL {$$ = newNumberNode($1 , OCT, UNSIGNED, yylineno);}
506
+ | vUNSIGNED_HEXADECIMAL {$$ = newNumberNode($1 , HEX, UNSIGNED, yylineno);}
507
+ | vUNSIGNED_BINARY {$$ = newNumberNode($1 , BIN, UNSIGNED, yylineno);}
508
+ | vSIGNED_DECIMAL {$$ = newNumberNode($1 , DEC, SIGNED, yylineno);}
509
+ | vSIGNED_OCTAL {$$ = newNumberNode($1 , OCT, SIGNED, yylineno);}
510
+ | vSIGNED_HEXADECIMAL {$$ = newNumberNode($1 , HEX, SIGNED, yylineno);}
511
+ | vSIGNED_BINARY {$$ = newNumberNode($1 , BIN, SIGNED, yylineno);}
512
+ | vSYMBOL_ID {$$ = newSymbolNode($1 , yylineno);}
513
+ | vSYMBOL_ID ' [' expression ' ]' {$$ = newArrayRef($1 , $3 , yylineno);}
514
+ | vSYMBOL_ID ' [' expression ' ]' ' [' expression ' ]' {$$ = newArrayRef2D($1 , $3 , $6 , yylineno);}
515
+ | vSYMBOL_ID ' [' expression vPLUS_COLON expression ' ]' {$$ = newPartSelectRangeRef($1 , $3 , $5 , 1 , yylineno);}
516
+ | vSYMBOL_ID ' [' expression vMINUS_COLON expression ' ]' {$$ = newPartSelectRangeRef($1 , $3 , $5 , -1 , yylineno);}
517
+ | vSYMBOL_ID ' [' expression ' :' expression ' ]' {$$ = newRangeRef($1 , $3 , $5 , yylineno);}
517
518
| vSYMBOL_ID ' [' expression ' :' expression ' ]' ' [' expression ' :' expression ' ]' {$$ = newRangeRef2D($1 , $3 , $5 , $8 , $10 , yylineno);}
518
- | ' {' probable_expression_list ' }' {$$ = $2 ; ($2 )->types.concat.num_bit_strings = -1 ;}
519
+ | ' {' probable_expression_list ' }' {$$ = $2 ; ($2 )->types.concat.num_bit_strings = -1 ;}
519
520
;
520
521
521
522
probable_expression_list :
0 commit comments