aboutsummaryrefslogtreecommitdiff
path: root/src/yuescript/yue_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuescript/yue_parser.cpp')
-rwxr-xr-xsrc/yuescript/yue_parser.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp
index 6ecd369..5628062 100755
--- a/src/yuescript/yue_parser.cpp
+++ b/src/yuescript/yue_parser.cpp
@@ -323,7 +323,8 @@ YueParser::YueParser() {
323 expr("&") | 323 expr("&") |
324 expr("|") | 324 expr("|") |
325 expr(">>") | 325 expr(">>") |
326 expr("<<"); 326 expr("<<") |
327 expr("??");
327 328
328 Update = Space >> update_op >> expr("=") >> Exp; 329 Update = Space >> update_op >> expr("=") >> Exp;
329 330
@@ -360,7 +361,7 @@ YueParser::YueParser() {
360 expr("//") | 361 expr("//") |
361 set("+-*/%><|&~"); 362 set("+-*/%><|&~");
362 exp_op_value = Space >> BinaryOperator >> *SpaceBreak >> pipe_exp; 363 exp_op_value = Space >> BinaryOperator >> *SpaceBreak >> pipe_exp;
363 Exp = Seperator >> pipe_exp >> *exp_op_value; 364 Exp = Seperator >> pipe_exp >> *exp_op_value >> -(Space >> expr("??") >> Exp);
364 365
365 DisableChain = pl::user(true_(), [](const item_t& item) { 366 DisableChain = pl::user(true_(), [](const item_t& item) {
366 State* st = reinterpret_cast<State*>(item.user_data); 367 State* st = reinterpret_cast<State*>(item.user_data);
@@ -424,7 +425,7 @@ YueParser::YueParser() {
424 Metatable = expr('#'); 425 Metatable = expr('#');
425 Metamethod = Name >> expr('#'); 426 Metamethod = Name >> expr('#');
426 427
427 existential_op = expr('?'); 428 existential_op = expr('?') >> not_(expr('?'));
428 chain_call = (Callable | String) >> -existential_op >> ChainItems; 429 chain_call = (Callable | String) >> -existential_op >> ChainItems;
429 chain_item = and_(set(".\\")) >> ChainItems; 430 chain_item = and_(set(".\\")) >> ChainItems;
430 chain_dot_chain = DotChainItem >> -existential_op >> -ChainItems; 431 chain_dot_chain = DotChainItem >> -existential_op >> -ChainItems;