mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-09 20:58:44 +00:00
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
537baf3e1c
commit
d07893fb9b
@ -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 New Issue
Block a user