Skip to content

Commit 59a8dc6

Browse files
authored
Merge pull request #57 from blu-peter/develop
Adding basic support for CASEZ statements
2 parents 82d0a1d + 3034745 commit 59a8dc6

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

pyverilog/vparser/ast.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,10 @@ class CasexStatement(CaseStatement):
885885
pass
886886

887887

888+
class CasezStatement(CaseStatement):
889+
pass
890+
891+
888892
class UniqueCaseStatement(CaseStatement):
889893
pass
890894

pyverilog/vparser/lexer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def token(self):
5656
'INPUT', 'INOUT', 'OUTPUT', 'TRI', 'REG', 'LOGIC', 'WIRE', 'INTEGER', 'REAL', 'SIGNED',
5757
'PARAMETER', 'LOCALPARAM', 'SUPPLY0', 'SUPPLY1',
5858
'ASSIGN', 'ALWAYS', 'ALWAYS_FF', 'ALWAYS_COMB', 'ALWAYS_LATCH', 'SENS_OR', 'POSEDGE', 'NEGEDGE', 'INITIAL',
59-
'IF', 'ELSE', 'FOR', 'WHILE', 'CASE', 'CASEX', 'UNIQUE', 'ENDCASE', 'DEFAULT',
59+
'IF', 'ELSE', 'FOR', 'WHILE', 'CASE', 'CASEX', 'CASEZ', 'UNIQUE', 'ENDCASE', 'DEFAULT',
6060
'WAIT', 'FOREVER', 'DISABLE', 'FORK', 'JOIN',
6161
)
6262

pyverilog/vparser/parser.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,7 @@ def p_basic_statement(self, p):
14181418
"""basic_statement : if_statement
14191419
| case_statement
14201420
| casex_statement
1421+
| casez_statement
14211422
| unique_case_statement
14221423
| for_statement
14231424
| while_statement
@@ -1661,6 +1662,11 @@ def p_casex_statement(self, p):
16611662
p[0] = CasexStatement(p[3], p[5], lineno=p.lineno(1))
16621663
p.set_lineno(0, p.lineno(1))
16631664

1665+
def p_casez_statement(self, p):
1666+
'casez_statement : CASEZ LPAREN case_comp RPAREN casecontent_statements ENDCASE'
1667+
p[0] = CasezStatement(p[3], p[5], lineno=p.lineno(1))
1668+
p.set_lineno(0, p.lineno(1))
1669+
16641670
def p_unique_case_statement(self, p):
16651671
'unique_case_statement : UNIQUE CASE LPAREN case_comp RPAREN casecontent_statements ENDCASE'
16661672
p[0] = UniqueCaseStatement(p[3], p[5], lineno=p.lineno(1))
@@ -2106,6 +2112,7 @@ def p_function_calc(self, p):
21062112
| while_statement
21072113
| case_statement
21082114
| casex_statement
2115+
| casez_statement
21092116
| block
21102117
| namedblock
21112118
"""
@@ -2175,6 +2182,7 @@ def p_task_calc(self, p):
21752182
| while_statement
21762183
| case_statement
21772184
| casex_statement
2185+
| casez_statement
21782186
| block
21792187
| namedblock
21802188
"""

0 commit comments

Comments
 (0)