From f31f4e6eef1762a4b9bf54a274f1ba9e9e161802 Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Wed, 9 Mar 2022 00:31:39 +0100 Subject: [PATCH] Filter: Simplify handling of command sequences Command sequences in curly braces used a separate nonterminal in grammar. Handle them as a regular command. --- filter/config.Y | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/filter/config.Y b/filter/config.Y index 51e7822f..a3acf245 100644 --- a/filter/config.Y +++ b/filter/config.Y @@ -296,7 +296,7 @@ CF_KEYWORDS(FUNCTION, PRINT, PRINTN, UNSET, RETURN, %nonassoc ELSE %type cmds_int cmd_prep -%type term block cmd cmds constant constructor print_list var_list function_call symbol_value bgp_path_expr bgp_path bgp_path_tail +%type term cmd cmds constant constructor print_list var_list function_call symbol_value bgp_path_expr bgp_path bgp_path_tail %type dynamic_attr %type static_attr %type 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 ';' {