@@ -2245,11 +2245,12 @@ expect_property_statement: TOK_EXPECT '(' property_spec ')' action_block
22452245
22462246assertion_item_declaration:
22472247 property_declaration
2248+ | sequence_declaration
22482249 ;
22492250
22502251property_declaration:
22512252 TOK_PROPERTY property_identifier property_port_list_paren_opt ' ;'
2252- property_spec
2253+ property_spec semicolon_opt
22532254 TOK_ENDPROPERTY property_identifier_opt
22542255 { init ($$, ID_verilog_property_declaration);
22552256 stack_expr ($$).set (ID_base_name, stack_expr ($2 ).id ());
@@ -2386,6 +2387,47 @@ property_case_item:
23862387 { init ($$, ID_case_item); mto ($$, $3 ); }
23872388 ;
23882389
2390+ sequence_declaration:
2391+ " sequence" { init ($$, ID_verilog_sequence_declaration); }
2392+ sequence_identifier sequence_port_list_opt ' ;'
2393+ sequence_expr semicolon_opt
2394+ " endsequence" sequence_identifier_opt
2395+ { $$=$2 ;
2396+ stack_expr ($$).set (ID_base_name, stack_expr ($3 ).id ());
2397+ mto ($$, $6 );
2398+ }
2399+ ;
2400+
2401+ sequence_port_list_opt:
2402+ /* Optional */
2403+ { init ($$); }
2404+ | ' (' ' )'
2405+ { init ($$); }
2406+ | ' (' sequence_port_list ' )'
2407+ { $$=$2 ; }
2408+ ;
2409+
2410+ sequence_port_list:
2411+ sequence_port_item
2412+ { init ($$); mto ($$, $1 ); }
2413+ | sequence_port_list sequence_port_item
2414+ { $$=$1 ; mto ($$, $2 ); }
2415+ ;
2416+
2417+ sequence_port_item:
2418+ formal_port_identifier
2419+ ;
2420+
2421+ sequence_identifier_opt:
2422+ /* Optional */
2423+ | TOK_COLON sequence_identifier
2424+ ;
2425+
2426+ semicolon_opt:
2427+ /* Optional */
2428+ | ' ;'
2429+ ;
2430+
23892431expression_or_dist_brace:
23902432 expression_or_dist
23912433 { init ($$, " patterns" ); mto ($$, $1 ); }
@@ -4202,6 +4244,8 @@ identifier: non_type_identifier;
42024244
42034245property_identifier: TOK_NON_TYPE_IDENTIFIER;
42044246
4247+ sequence_identifier: TOK_NON_TYPE_IDENTIFIER;
4248+
42054249variable_identifier: identifier;
42064250
42074251%%
0 commit comments