Config parser: introduce optional_newlines

This commit is contained in:
Alexander A. Klimov 2019-08-28 11:38:24 +02:00
parent 203482a675
commit fd88ac2f83

View 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
;
/* required separator */
sep: ',' newlines
| ','
| ';' newlines
| ';'
optional_newlines: /* empty */
| newlines
;
arraysep: ',' newlines
| ','
/* required separator */
sep: ',' optional_newlines
| ';' optional_newlines
| newlines
;
arraysep: ',' optional_newlines
;
%%