diff options
Diffstat (limited to 'src/yuescript/yue_parser.cpp')
-rwxr-xr-x[-rw-r--r--] | src/yuescript/yue_parser.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp index a3e70c6..d6e8c67 100644..100755 --- a/src/yuescript/yue_parser.cpp +++ b/src/yuescript/yue_parser.cpp | |||
@@ -465,7 +465,7 @@ YueParser::YueParser() { | |||
465 | and_(expr('[')) >> LuaString | | 465 | and_(expr('[')) >> LuaString | |
466 | and_(expr('{')) >> TableLit); | 466 | and_(expr('{')) >> TableLit); |
467 | 467 | ||
468 | TableValue = KeyValueDef | Exp; | 468 | TableValue = ((KeyValue | Exp) >> not_(sym('='))) | meta_default_pair | default_pair; |
469 | 469 | ||
470 | table_lit_lines = SpaceBreak >> TableLitLine >> *(-sym(',') >> SpaceBreak >> TableLitLine) >> -sym(','); | 470 | table_lit_lines = SpaceBreak >> TableLitLine >> *(-sym(',') >> SpaceBreak >> TableLitLine) >> -sym(','); |
471 | 471 | ||
@@ -538,7 +538,7 @@ YueParser::YueParser() { | |||
538 | symx(':') >> not_(':') >> | 538 | symx(':') >> not_(':') >> |
539 | (Exp | TableBlock | +SpaceBreak >> Exp); | 539 | (Exp | TableBlock | +SpaceBreak >> Exp); |
540 | 540 | ||
541 | default_pair = (sym(':') >> Variable >> not_('#') >> Seperator | KeyName >> symx(':') >> Seperator >> Exp) >> sym('=') >> Exp; | 541 | default_pair = (sym(':') >> Variable >> not_('#') >> Seperator | KeyName >> symx(':') >> Seperator >> Exp | Exp >> Seperator) >> sym('=') >> Exp; |
542 | 542 | ||
543 | meta_variable_pair = sym(':') >> Variable >> expr('#'); | 543 | meta_variable_pair = sym(':') >> Variable >> expr('#'); |
544 | 544 | ||
@@ -548,8 +548,6 @@ YueParser::YueParser() { | |||
548 | meta_default_pair = (sym(':') >> Variable >> expr('#') >> Seperator | -Name >> expr("#:") >> Seperator >> Exp) >> sym('=') >> Exp; | 548 | meta_default_pair = (sym(':') >> Variable >> expr('#') >> Seperator | -Name >> expr("#:") >> Seperator >> Exp) >> sym('=') >> Exp; |
549 | 549 | ||
550 | KeyValue = variable_pair | normal_pair | meta_variable_pair | meta_normal_pair; | 550 | KeyValue = variable_pair | normal_pair | meta_variable_pair | meta_normal_pair; |
551 | KeyValueDef = (variable_pair | normal_pair | meta_variable_pair | meta_normal_pair) >> not_(sym('=')) | default_pair | meta_default_pair; | ||
552 | |||
553 | KeyValueList = KeyValue >> *(sym(',') >> KeyValue); | 551 | KeyValueList = KeyValue >> *(sym(',') >> KeyValue); |
554 | KeyValueLine = CheckIndent >> (KeyValueList >> -sym(',') | TableBlockIndent | Space >> expr('*') >> (Exp | TableBlock)); | 552 | KeyValueLine = CheckIndent >> (KeyValueList >> -sym(',') | TableBlockIndent | Space >> expr('*') >> (Exp | TableBlock)); |
555 | 553 | ||