| always_construct | 
 'always' | 
 | binary_base | 
 "'B" 
"'b" | 
 | binary_digit | 
 '0' 
'1' 
'X' 
'Z' 
'x' 
'z' | 
 | binary_number | 
 "'B" 
"'SB" 
"'Sb" 
"'b" 
"'sB" 
"'sb" 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | binary_operator | 
 '!=' 
'!==' 
'%' 
'&&' 
'&' 
'*' 
'**' 
'+' 
'-' 
'/' 
'<' 
'<<' 
'<<<' 
'<=' 
'==' 
'===' 
'>' 
'>=' 
'>>' 
'>>>' 
'^' 
'^~' 
'|' 
'||' 
'~^' | 
 | block_item_declaration | 
 'event' 
'integer' 
'localparam' 
'parameter' 
'real' 
'realtime' 
'reg' 
'time' | 
 | blocking_assignment | 
 '\' 
'{' 
ALPHA | 
 | case_item | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'default' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | case_statement | 
 'case' 
'casex' 
'casez' | 
 | charge_strength | 
 '(' | 
 | cmos_switch_instance | 
 '(' 
'\' 
ALPHA | 
 | cmos_switchtype | 
 'cmos' 
'rcmos' | 
 | combinational_body | 
 'table' | 
 | combinational_entry | 
 '0' 
'1' 
'?' 
'B' 
'X' 
'b' 
'x' | 
 | comment | 
 '/*' 
'//' | 
 | concatenation | 
 '{' | 
 | conditional_statement | 
 'if' | 
 | constant_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | constant_mintypmax_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | constant_primary | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'{' 
ALPHA | 
 | continuous_assign | 
 'assign' | 
 | controlled_timing_check_event | 
 'edge' 
'negedge' 
'posedge' | 
 | current_state | 
 '0' 
'1' 
'?' 
'B' 
'X' 
'b' 
'x' | 
 | data_source_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | decimal_base | 
 "'D" 
"'d" | 
 | decimal_digit | 
 '0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | decimal_number | 
 "'D" 
"'SD" 
"'Sd" 
"'d" 
"'sD" 
"'sd" 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | delay2 | 
 '#' | 
 | delay3 | 
 '#' | 
 | delay_control | 
 '#' | 
 | delay_or_event_control | 
 '#' 
'@' 
'repeat' | 
 | delay_value | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | description | 
 'macromodule' 
'module' 
'primitive' | 
 | disable_statement | 
 'disable' | 
 | drive_strength | 
 '(' | 
 | edge_control_specifier | 
 'edge' | 
 | edge_descriptor | 
 '01' 
'0x' 
'10' 
'1x' 
'x0' 
'x1' | 
 | edge_identifier | 
 'negedge' 
'posedge' | 
 | edge_indicator | 
 '(' 
'*' 
'F' 
'N' 
'P' 
'R' 
'f' 
'n' 
'p' 
'r' | 
 | edge_input_list | 
 '(' 
'*' 
'0' 
'1' 
'?' 
'B' 
'F' 
'N' 
'P' 
'R' 
'X' 
'b' 
'f' 
'n' 
'p' 
'r' 
'x' | 
 | edge_sensitive_path_declaration | 
 '(' | 
 | edge_symbol | 
 '*' 
'F' 
'N' 
'P' 
'R' 
'f' 
'n' 
'p' 
'r' | 
 | enable_gate_instance | 
 '(' 
'\' 
ALPHA | 
 | enable_gatetype | 
 'bufif0' 
'bufif1' 
'notif0' 
'notif1' | 
 | enable_terminal | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | escaped_identifier | 
 '\' | 
 | event_control | 
 '@' | 
 | event_declaration | 
 'event' | 
 | event_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'negedge' 
'posedge' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | event_trigger | 
 '->' | 
 | expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | full_edge_sensitive_path_description | 
 '(' | 
 | full_path_description | 
 '(' | 
 | function_call | 
 '$' 
'\' 
ALPHA | 
 | function_declaration | 
 'function' | 
 | function_item_declaration | 
 'event' 
'input' 
'integer' 
'localparam' 
'parameter' 
'real' 
'realtime' 
'reg' 
'time' | 
 | gate_instantiation | 
 'and' 
'buf' 
'bufif0' 
'bufif1' 
'cmos' 
'nand' 
'nmos' 
'nor' 
'not' 
'notif0' 
'notif1' 
'or' 
'pmos' 
'pulldown' 
'pullup' 
'rcmos' 
'rnmos' 
'rpmos' 
'rtran' 
'rtranif0' 
'rtranif1' 
'tran' 
'tranif0' 
'tranif1' 
'xnor' 
'xor' | 
 | hex_base | 
 "'H" 
"'h" | 
 | hex_digit | 
 '0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'A' 
'B' 
'C' 
'D' 
'E' 
'F' 
'X' 
'Z' 
'a' 
'b' 
'c' 
'd' 
'e' 
'f' 
'x' 
'z' | 
 | hex_number | 
 "'H" 
"'SH" 
"'Sh" 
"'h" 
"'sH" 
"'sh" 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | identifier | 
 '\' 
ALPHA | 
 | init_val | 
 "1'B0" 
"1'B1" 
"1'BX" 
"1'Bx" 
"1'b0" 
"1'b1" 
"1'bX" 
"1'bx" 
'0' 
'1' | 
 | initial_construct | 
 'initial' | 
 | inout_declaration | 
 'inout' | 
 | inout_terminal | 
 '\' 
ALPHA | 
 | input_declaration | 
 'input' | 
 | input_identifier | 
 '\' 
ALPHA | 
 | input_terminal | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | integer_declaration | 
 'integer' | 
 | level_input_list | 
 '0' 
'1' 
'?' 
'B' 
'X' 
'b' 
'x' | 
 | level_symbol | 
 '0' 
'1' 
'?' 
'B' 
'X' 
'b' 
'x' | 
 | limit_value | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | list_of_module_connections | 
 ø 
"'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
',' 
'-' 
'.' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | list_of_net_assignments | 
 '\' 
'{' 
ALPHA | 
 | list_of_net_decl_assignments | 
 '\' 
ALPHA | 
 | list_of_net_identifiers | 
 '\' 
ALPHA | 
 | list_of_param_assignments | 
 '\' 
ALPHA | 
 | list_of_path_delay_expressions | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | list_of_path_inputs | 
 '\' 
ALPHA | 
 | list_of_path_outputs | 
 '\' 
ALPHA | 
 | list_of_port_identifiers | 
 '\' 
ALPHA | 
 | list_of_ports | 
 '(' | 
 | list_of_real_identifiers | 
 '\' 
ALPHA | 
 | list_of_register_identifiers | 
 '\' 
ALPHA | 
 | list_of_specparam_assignments | 
 'PATHPULSE$' 
'\' 
ALPHA | 
 | long_comment | 
 '/*' | 
 | loop_statement | 
 'for' 
'forever' 
'repeat' 
'while' | 
 | mintypmax_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | module_declaration | 
 'macromodule' 
'module' | 
 | module_instance | 
 '\' 
ALPHA | 
 | module_instantiation | 
 '\' 
ALPHA | 
 | module_item | 
 '\' 
'always' 
'and' 
'assign' 
'buf' 
'bufif0' 
'bufif1' 
'cmos' 
'defparam' 
'event' 
'function' 
'initial' 
'inout' 
'input' 
'integer' 
'localparam' 
'nand' 
'nmos' 
'nor' 
'not' 
'notif0' 
'notif1' 
'or' 
'output' 
'parameter' 
'pmos' 
'pulldown' 
'pullup' 
'rcmos' 
'real' 
'realtime' 
'reg' 
'rnmos' 
'rpmos' 
'rtran' 
'rtranif0' 
'rtranif1' 
'specify' 
'supply0' 
'supply1' 
'task' 
'time' 
'tran' 
'tranif0' 
'tranif1' 
'tri' 
'tri0' 
'tri1' 
'triand' 
'trior' 
'trireg' 
'wand' 
'wire' 
'wor' 
'xnor' 
'xor' 
ALPHA | 
 | module_item_declaration | 
 'event' 
'function' 
'inout' 
'input' 
'integer' 
'localparam' 
'output' 
'parameter' 
'real' 
'realtime' 
'reg' 
'supply0' 
'supply1' 
'task' 
'time' 
'tri' 
'tri0' 
'tri1' 
'triand' 
'trior' 
'trireg' 
'wand' 
'wire' 
'wor' | 
 | module_keyword | 
 'macromodule' 
'module' | 
 | mos_switch_instance | 
 '(' 
'\' 
ALPHA | 
 | mos_switchtype | 
 'nmos' 
'pmos' 
'rnmos' 
'rpmos' | 
 | multiple_concatenation | 
 '{' | 
 | n_input_gate_instance | 
 '(' 
'\' 
ALPHA | 
 | n_input_gatetype | 
 'and' 
'nand' 
'nor' 
'or' 
'xnor' 
'xor' | 
 | n_output_gate_instance | 
 '(' 
'\' 
ALPHA | 
 | n_output_gatetype | 
 'buf' 
'not' | 
 | name_of_gate_instance | 
 '\' 
ALPHA | 
 | name_of_instance | 
 '\' 
ALPHA | 
 | name_of_system_function | 
 '$' | 
 | name_of_udp_instance | 
 '\' 
ALPHA | 
 | named_port_connection | 
 '.' | 
 | ncontrol_terminal | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | net_assignment | 
 '\' 
'{' 
ALPHA | 
 | net_decl_assignment | 
 '\' 
ALPHA | 
 | net_declaration | 
 'supply0' 
'supply1' 
'tri' 
'tri0' 
'tri1' 
'triand' 
'trior' 
'trireg' 
'wand' 
'wire' 
'wor' | 
 | net_lvalue | 
 '\' 
'{' 
ALPHA | 
 | net_type | 
 'supply0' 
'supply1' 
'tri' 
'tri0' 
'tri1' 
'triand' 
'trior' 
'wand' 
'wire' 
'wor' | 
 | next_state | 
 '-' 
'0' 
'1' 
'X' 
'x' | 
 | non_blocking_assignment | 
 '\' 
'{' 
ALPHA | 
 | notify_register | 
 '\' 
ALPHA | 
 | number | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | octal_base | 
 "'O" 
"'o" | 
 | octal_digit | 
 '0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'X' 
'Z' 
'x' 
'z' | 
 | octal_number | 
 "'O" 
"'SO" 
"'So" 
"'o" 
"'sO" 
"'so" 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | ordered_port_connection | 
 ø 
"'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | output_declaration | 
 'output' | 
 | output_identifier | 
 '\' 
ALPHA | 
 | output_symbol | 
 '0' 
'1' 
'X' 
'x' | 
 | output_terminal | 
 '\' 
ALPHA | 
 | par_block | 
 'fork' | 
 | parallel_edge_sensitive_path_description | 
 '(' | 
 | parallel_path_description | 
 '(' | 
 | param_assignment | 
 '\' 
ALPHA | 
 | parameter_declaration | 
 'localparam' 
'parameter' | 
 | parameter_override | 
 'defparam' | 
 | parameter_value_assignment | 
 '#' | 
 | pass_en_switch_instance | 
 '(' 
'\' 
ALPHA | 
 | pass_en_switchtype | 
 'rtranif0' 
'rtranif1' 
'tranif0' 
'tranif1' | 
 | pass_switch_instance | 
 '(' 
'\' 
ALPHA | 
 | pass_switchtype | 
 'rtran' 
'tran' | 
 | path_declaration | 
 '(' 
'if' 
'ifnone' | 
 | path_delay_expression | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | path_delay_value | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | pcontrol_terminal | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | polarity_operator | 
 '+' 
'-' | 
 | port | 
 ø 
'.' 
'\' 
'{' 
ALPHA | 
 | port_direction | 
 'inout' 
'input' 
'output' | 
 | port_expression | 
 '\' 
'{' 
ALPHA | 
 | port_reference | 
 '\' 
ALPHA | 
 | primary | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'$' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'{' 
ALPHA | 
 | procedural_continuous_assignment | 
 'assign' 
'deassign' 
'force' 
'release' | 
 | procedural_timing_control_statement | 
 '#' 
'@' 
'repeat' | 
 | pull_gate_instance | 
 '(' 
'\' 
ALPHA | 
 | pulldown_strength | 
 '(' | 
 | pullup_strength | 
 '(' | 
 | pulse_control_specparam | 
 'PATHPULSE$' | 
 | range | 
 '[' | 
 | range_or_type | 
 '[' 
'integer' 
'real' 
'realtime' 
'time' | 
 | real_declaration | 
 'real' | 
 | real_number | 
 '+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | realtime_declaration | 
 'realtime' | 
 | reg_assignment | 
 '\' 
'{' 
ALPHA | 
 | reg_declaration | 
 'reg' | 
 | reg_lvalue | 
 '\' 
'{' 
ALPHA | 
 | register_name | 
 '\' 
ALPHA | 
 | scalar_constant | 
 "'B0" 
"'B1" 
"'b0" 
"'b1" 
"1'B0" 
"1'B1" 
"1'b0" 
"1'b1" 
'0' 
'1' | 
 | scalar_timing_check_condition | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | seq_block | 
 'begin' | 
 | seq_input_list | 
 '(' 
'*' 
'0' 
'1' 
'?' 
'B' 
'F' 
'N' 
'P' 
'R' 
'X' 
'b' 
'f' 
'n' 
'p' 
'r' 
'x' | 
 | sequencial_body | 
 'initial' 
'table' | 
 | sequencial_entry | 
 '(' 
'*' 
'0' 
'1' 
'?' 
'B' 
'F' 
'N' 
'P' 
'R' 
'X' 
'b' 
'f' 
'n' 
'p' 
'r' 
'x' | 
 | short_comment | 
 '//' | 
 | sign | 
 '+' 
'-' | 
 | signed_binary_base | 
 "'SB" 
"'Sb" 
"'sB" 
"'sb" | 
 | signed_decimal_base | 
 "'SD" 
"'Sd" 
"'sD" 
"'sd" | 
 | signed_hex_base | 
 "'SH" 
"'Sh" 
"'sH" 
"'sh" | 
 | signed_octal_base | 
 "'SO" 
"'So" 
"'sO" 
"'so" | 
 | simple_identifier | 
 ALPHA | 
 | simple_path_declaration | 
 '(' | 
 | single_identifier | 
 '\' 
ALPHA | 
 | size | 
 '0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | source_text | 
 ø 
'macromodule' 
'module' 
'primitive' | 
 | specify_block | 
 'specify' | 
 | specify_input_terminal_descriptor | 
 '\' 
ALPHA | 
 | specify_item | 
 '$hold' 
'$period' 
'$recovery' 
'$setup' 
'$setuphold' 
'$skew' 
'$width' 
'(' 
'if' 
'ifnone' 
'specparam' | 
 | specify_output_terminal_descriptor | 
 '\' 
ALPHA | 
 | specify_terminal_descriptor | 
 '\' 
ALPHA | 
 | specparam_assignment | 
 'PATHPULSE$' 
'\' 
ALPHA | 
 | specparam_declaration | 
 'specparam' | 
 | state_dependent_path_declaration | 
 'if' 
'ifnone' | 
 | statement | 
 '#' 
'$' 
'->' 
'@' 
'\' 
'assign' 
'begin' 
'case' 
'casex' 
'casez' 
'deassign' 
'disable' 
'for' 
'force' 
'forever' 
'fork' 
'if' 
'release' 
'repeat' 
'wait' 
'while' 
'{' 
ALPHA | 
 | statement_or_null | 
 '#' 
'$' 
'->' 
';' 
'@' 
'\' 
'assign' 
'begin' 
'case' 
'casex' 
'casez' 
'deassign' 
'disable' 
'for' 
'force' 
'forever' 
'fork' 
'if' 
'release' 
'repeat' 
'wait' 
'while' 
'{' 
ALPHA | 
 | strength0 | 
 'pull0' 
'strong0' 
'supply0' 
'weak0' | 
 | strength1 | 
 'pull1' 
'strong1' 
'supply1' 
'weak1' | 
 | string | 
 '"' | 
 | system_task_enable | 
 '$' | 
 | system_task_name | 
 '$' | 
 | system_timing_check | 
 '$hold' 
'$period' 
'$recovery' 
'$setup' 
'$setuphold' 
'$skew' 
'$width' | 
 | task_declaration | 
 'task' | 
 | task_enable | 
 '\' 
ALPHA | 
 | task_item_declaration | 
 'event' 
'inout' 
'input' 
'integer' 
'localparam' 
'output' 
'parameter' 
'real' 
'realtime' 
'reg' 
'time' | 
 | time_declaration | 
 'time' | 
 | timing_check_condition | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | timing_check_event | 
 '\' 
'edge' 
'negedge' 
'posedge' 
ALPHA | 
 | timing_check_event_control | 
 'edge' 
'negedge' 
'posedge' | 
 | timing_check_limit | 
 "'B" 
"'D" 
"'H" 
"'O" 
"'SB" 
"'SD" 
"'SH" 
"'SO" 
"'Sb" 
"'Sd" 
"'Sh" 
"'So" 
"'b" 
"'d" 
"'h" 
"'o" 
"'sB" 
"'sD" 
"'sH" 
"'sO" 
"'sb" 
"'sd" 
"'sh" 
"'so" 
'!' 
'"' 
'$' 
'&' 
'(' 
'+' 
'-' 
'0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' 
'\' 
'^' 
'^~' 
'{' 
'|' 
'~&' 
'~' 
'~^' 
'~|' 
ALPHA | 
 | udp_body | 
 'initial' 
'table' | 
 | udp_declaration | 
 'primitive' | 
 | udp_initial_statement | 
 'initial' | 
 | udp_instance | 
 '(' 
'\' 
ALPHA | 
 | udp_instantiation | 
 '\' 
ALPHA | 
 | udp_port_declaration | 
 'input' 
'output' 
'reg' | 
 | udp_port_list | 
 '\' 
ALPHA | 
 | unary_operator | 
 '!' 
'&' 
'+' 
'-' 
'^' 
'^~' 
'|' 
'~&' 
'~' 
'~^' 
'~|' | 
 | unsigned_number | 
 '0' 
'1' 
'2' 
'3' 
'4' 
'5' 
'6' 
'7' 
'8' 
'9' | 
 | wait_statement | 
 'wait' |