Skip to content

Commit 3034745

Browse files
author
Peter Birch
committed
Adding basic support for CASEZ statements
1 parent 52242eb commit 3034745

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
@@ -882,6 +882,10 @@ class CasexStatement(CaseStatement):
882882
pass
883883

884884

885+
class CasezStatement(CaseStatement):
886+
pass
887+
888+
885889
class UniqueCaseStatement(CaseStatement):
886890
pass
887891

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
@@ -1413,6 +1413,7 @@ def p_basic_statement(self, p):
14131413
"""basic_statement : if_statement
14141414
| case_statement
14151415
| casex_statement
1416+
| casez_statement
14161417
| unique_case_statement
14171418
| for_statement
14181419
| while_statement
@@ -1656,6 +1657,11 @@ def p_casex_statement(self, p):
16561657
p[0] = CasexStatement(p[3], p[5], lineno=p.lineno(1))
16571658
p.set_lineno(0, p.lineno(1))
16581659

1660+
def p_casez_statement(self, p):
1661+
'casez_statement : CASEZ LPAREN case_comp RPAREN casecontent_statements ENDCASE'
1662+
p[0] = CasezStatement(p[3], p[5], lineno=p.lineno(1))
1663+
p.set_lineno(0, p.lineno(1))
1664+
16591665
def p_unique_case_statement(self, p):
16601666
'unique_case_statement : UNIQUE CASE LPAREN case_comp RPAREN casecontent_statements ENDCASE'
16611667
p[0] = UniqueCaseStatement(p[3], p[5], lineno=p.lineno(1))
@@ -2092,6 +2098,7 @@ def p_function_calc(self, p):
20922098
| while_statement
20932099
| case_statement
20942100
| casex_statement
2101+
| casez_statement
20952102
| block
20962103
| namedblock
20972104
"""
@@ -2161,6 +2168,7 @@ def p_task_calc(self, p):
21612168
| while_statement
21622169
| case_statement
21632170
| casex_statement
2171+
| casez_statement
21642172
| block
21652173
| namedblock
21662174
"""

0 commit comments

Comments
 (0)