Filter: Simplify handling of command sequences
Command sequences in curly braces used a separate nonterminal in grammar. Handle them as a regular command.
This commit is contained in:
parent
1e6acf34bb
commit
f31f4e6eef
1 changed files with 6 additions and 12 deletions
|
@ -296,7 +296,7 @@ CF_KEYWORDS(FUNCTION, PRINT, PRINTN, UNSET, RETURN,
|
|||
%nonassoc ELSE
|
||||
|
||||
%type <xp> cmds_int cmd_prep
|
||||
%type <x> term block cmd cmds constant constructor print_list var_list function_call symbol_value bgp_path_expr bgp_path bgp_path_tail
|
||||
%type <x> term cmd cmds constant constructor print_list var_list function_call symbol_value bgp_path_expr bgp_path bgp_path_tail
|
||||
%type <fda> dynamic_attr
|
||||
%type <fsa> static_attr
|
||||
%type <f> filter where_filter
|
||||
|
@ -514,15 +514,6 @@ cmds_int: cmd_prep
|
|||
}
|
||||
;
|
||||
|
||||
block:
|
||||
cmd {
|
||||
$$=$1;
|
||||
}
|
||||
| '{' cmds '}' {
|
||||
$$=$2;
|
||||
}
|
||||
;
|
||||
|
||||
/*
|
||||
* Complex types, their bison value is struct f_val
|
||||
*/
|
||||
|
@ -864,10 +855,13 @@ print_list: /* EMPTY */ { $$ = NULL; }
|
|||
;
|
||||
|
||||
cmd:
|
||||
IF term THEN block {
|
||||
'{' cmds '}' {
|
||||
$$ = $2;
|
||||
}
|
||||
| IF term THEN cmd {
|
||||
$$ = f_new_inst(FI_CONDITION, $2, $4, NULL);
|
||||
}
|
||||
| IF term THEN block ELSE block {
|
||||
| IF term THEN cmd ELSE cmd {
|
||||
$$ = f_new_inst(FI_CONDITION, $2, $4, $6);
|
||||
}
|
||||
| CF_SYM_KNOWN '=' term ';' {
|
||||
|
|
Loading…
Reference in a new issue