@@ -122,6 +122,7 @@ def p_moduledef(self, p):
122
122
p [0 ] = ModuleDef (name = p [2 ], paramlist = p [3 ], portlist = p [4 ], items = p [5 ],
123
123
default_nettype = self .get_default_nettype (), lineno = p .lineno (1 ))
124
124
p .set_lineno (0 , p .lineno (1 ))
125
+ p [0 ].end_lineno = p .lineno (6 )
125
126
126
127
def p_modulename (self , p ):
127
128
'modulename : ID'
@@ -306,6 +307,11 @@ def p_sigtype_reg(self, p):
306
307
p [0 ] = p [1 ]
307
308
p .set_lineno (0 , p .lineno (1 ))
308
309
310
+ def p_sigtype_logic (self , p ):
311
+ 'sigtype : LOGIC'
312
+ p [0 ] = p [1 ]
313
+ p .set_lineno (0 , p .lineno (1 ))
314
+
309
315
def p_sigtype_wire (self , p ):
310
316
'sigtype : WIRE'
311
317
p [0 ] = p [1 ]
@@ -465,6 +471,8 @@ def p_standard_item(self, p):
465
471
| genvardecl
466
472
| assignment
467
473
| always
474
+ | always_ff
475
+ | always_comb
468
476
| initial
469
477
| instance
470
478
| function
@@ -1262,6 +1270,14 @@ def p_always(self, p):
1262
1270
p [0 ] = Always (p [2 ], p [3 ], lineno = p .lineno (1 ))
1263
1271
p .set_lineno (0 , p .lineno (1 ))
1264
1272
1273
+ def p_always_ff (self , p ):
1274
+ 'always_ff : ALWAYS_FF senslist always_statement'
1275
+ p [0 ] = AlwaysFF (p [2 ], p [3 ], lineno = p .lineno (1 ))
1276
+
1277
+ def p_always_comb (self , p ):
1278
+ 'always_comb : ALWAYS_COMB senslist always_statement'
1279
+ p [0 ] = AlwaysComb (p [2 ], p [3 ], lineno = p .lineno (1 ))
1280
+
1265
1281
def p_sens_egde_paren (self , p ):
1266
1282
'senslist : AT LPAREN edgesigs RPAREN'
1267
1283
p [0 ] = SensList (p [3 ], lineno = p .lineno (1 ))
@@ -1364,6 +1380,7 @@ def p_basic_statement(self, p):
1364
1380
"""basic_statement : if_statement
1365
1381
| case_statement
1366
1382
| casex_statement
1383
+ | unique_case_statement
1367
1384
| for_statement
1368
1385
| while_statement
1369
1386
| event_statement
@@ -1606,6 +1623,12 @@ def p_casex_statement(self, p):
1606
1623
p [0 ] = CasexStatement (p [3 ], p [5 ], lineno = p .lineno (1 ))
1607
1624
p .set_lineno (0 , p .lineno (1 ))
1608
1625
1626
+ def p_unique_case_statement (self , p ):
1627
+ 'unique_case_statement : UNIQUE CASE LPAREN case_comp RPAREN casecontent_statements ENDCASE'
1628
+ p [0 ] = UniqueCaseStatement (p [3 ], p [5 ], lineno = p .lineno (1 ))
1629
+ p .set_lineno (0 , p .lineno (1 ))
1630
+
1631
+
1609
1632
def p_case_comp (self , p ):
1610
1633
'case_comp : expression'
1611
1634
p [0 ] = p [1 ]
0 commit comments