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
|
%nonassoc ELSE
|
||||||
|
|
||||||
%type <xp> cmds_int cmd_prep
|
%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 <fda> dynamic_attr
|
||||||
%type <fsa> static_attr
|
%type <fsa> static_attr
|
||||||
%type <f> filter where_filter
|
%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
|
* Complex types, their bison value is struct f_val
|
||||||
*/
|
*/
|
||||||
|
@ -864,10 +855,13 @@ print_list: /* EMPTY */ { $$ = NULL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
cmd:
|
cmd:
|
||||||
IF term THEN block {
|
'{' cmds '}' {
|
||||||
|
$$ = $2;
|
||||||
|
}
|
||||||
|
| IF term THEN cmd {
|
||||||
$$ = f_new_inst(FI_CONDITION, $2, $4, NULL);
|
$$ = 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);
|
$$ = f_new_inst(FI_CONDITION, $2, $4, $6);
|
||||||
}
|
}
|
||||||
| CF_SYM_KNOWN '=' term ';' {
|
| CF_SYM_KNOWN '=' term ';' {
|
||||||
|
|
Loading…
Reference in a new issue