]> granicus.if.org Git - icinga2/commitdiff
Config parser: introduce optional_newlines
authorAlexander A. Klimov <alexander.klimov@icinga.com>
Wed, 28 Aug 2019 09:38:24 +0000 (11:38 +0200)
committerAlexander A. Klimov <alexander.klimov@icinga.com>
Thu, 29 Aug 2019 12:05:58 +0000 (14:05 +0200)
lib/config/config_parser.yy

index f1fcf4f7fd48ad1e285ca27869a47a4c65c02346..c8e3b5d3a05693080a9081eabb0625db6e0aa73d 100644 (file)
@@ -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<std::unique_ptr<Expression> >();
        }
        | 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
        ;
 
 %%