From: Alexander A. Klimov Date: Wed, 28 Aug 2019 09:38:24 +0000 (+0200) Subject: Config parser: introduce optional_newlines X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd88ac2f83ae5d5ab63beb881848806b72c2f598;p=icinga2 Config parser: introduce optional_newlines --- diff --git a/lib/config/config_parser.yy b/lib/config/config_parser.yy index f1fcf4f7f..c8e3b5d3a 100644 --- a/lib/config/config_parser.yy +++ b/lib/config/config_parser.yy @@ -294,11 +294,10 @@ script: statements } ; -statements: newlines lterm_items +statements: optional_newlines lterm_items { $$ = $2; } - | lterm_items ; lterm_items: /* empty */ @@ -683,8 +682,7 @@ rterm_items: /* empty */ $$ = new std::vector >(); } | rterm_items_inner - | rterm_items_inner ',' - | rterm_items_inner ',' newlines + | rterm_items_inner ',' optional_newlines | rterm_items_inner newlines ; @@ -704,22 +702,12 @@ rterm_array: '[' { context->m_OpenBraces++; } - newlines rterm_items ']' + optional_newlines rterm_items ']' { context->m_OpenBraces--; $$ = new ArrayExpression(std::move(*$4), @$); delete $4; } - | '[' - { - context->m_OpenBraces++; - } - rterm_items ']' - { - context->m_OpenBraces--; - $$ = new ArrayExpression(std::move(*$3), @$); - delete $3; - } ; rterm_dict: '{' @@ -1234,16 +1222,17 @@ newlines: T_NEWLINE | T_NEWLINE newlines ; +optional_newlines: /* empty */ + | newlines + ; + /* required separator */ -sep: ',' newlines - | ',' - | ';' newlines - | ';' +sep: ',' optional_newlines + | ';' optional_newlines | newlines ; -arraysep: ',' newlines - | ',' +arraysep: ',' optional_newlines ; %%