%type <expr> rhs_expr concat_rhs_expr basic_rhs_expr
%destructor { expr_free($$); } rhs_expr concat_rhs_expr basic_rhs_expr
-%type <expr> primary_rhs_expr list_rhs_expr shift_rhs_expr
-%destructor { expr_free($$); } primary_rhs_expr list_rhs_expr shift_rhs_expr
+%type <expr> primary_rhs_expr list_rhs_expr shift_rhs_expr symbol_stmt_expr
+%destructor { expr_free($$); } primary_rhs_expr list_rhs_expr shift_rhs_expr symbol_stmt_expr
%type <expr> and_rhs_expr exclusive_or_rhs_expr inclusive_or_rhs_expr
%destructor { expr_free($$); } and_rhs_expr exclusive_or_rhs_expr inclusive_or_rhs_expr
| ZONE { $$ = NFT_CT_ZONE; }
;
+symbol_stmt_expr : symbol_expr
+ | keyword_expr
+ ;
-list_stmt_expr : symbol_expr COMMA symbol_expr
+list_stmt_expr : symbol_stmt_expr COMMA symbol_stmt_expr
{
$$ = list_expr_alloc(&@$);
compound_expr_add($$, $1);
compound_expr_add($$, $3);
}
- | list_stmt_expr COMMA symbol_expr
+ | list_stmt_expr COMMA symbol_stmt_expr
{
$1->location = @$;
compound_expr_add($1, $3);
ct event set new;ok
ct event set new or related or destroy or foobar;fail
ct event set 'new | related | destroy | label';ok;ct event set new,related,destroy,label
+ct event set new,related,destroy,label;ok
ct event set new,destroy;ok
ct event set 1;ok;ct event set new
ct event set 0x0;ok
[ immediate reg 1 0x00000407 ]
[ ct set event with reg 1 ]
+# ct event set new,related,destroy,label
+ip test-ip4 output
+ [ immediate reg 1 0x00000407 ]
+ [ ct set event with reg 1 ]
+
# ct event set new,destroy
ip test-ip4 output
[ immediate reg 1 0x00000005 ]