Skip to content

Commit f10a671

Browse files
committed
修改赋值语句中对左表达式的解析
1 parent 52f6adb commit f10a671

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

CodeService/src/LuaFormatter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1637,11 +1637,11 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatCallExpression(std::shared_pt
16371637
case LuaAstNodeType::PrimaryExpression:
16381638
{
16391639
FormatSubExpressionNode(child, env);
1640-
1640+
16411641
auto next = nextNode(index, children);
1642-
if(next && next->GetType() == LuaAstNodeType::CallArgList)
1642+
if (next && next->GetType() == LuaAstNodeType::CallArgList)
16431643
{
1644-
if(next->GetChildren().size() == 1)
1644+
if (next->GetChildren().size() == 1)
16451645
{
16461646
env->Add<KeepElement>(1);
16471647
}

LuaParser/src/LuaParser.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -427,11 +427,13 @@ void LuaParser::expressionStatement(std::shared_ptr<LuaAstNode> blockNode)
427427
suffixedExpression(expression);
428428
if (_tokenParser->Current().TokenType == '=' || _tokenParser->Current().TokenType == ',')
429429
{
430-
expression->SetType(LuaAstNodeType::ExpressionList);
430+
auto expressionList = createAstNode(LuaAstNodeType::ExpressionList);
431+
432+
expressionList->AddChild(expression);
431433

432434
auto assignStatementNode = createAstNode(LuaAstNodeType::AssignStatement);
433435

434-
assignStatement(expression, assignStatementNode);
436+
assignStatement(expressionList, assignStatementNode);
435437

436438
// 如果发现一个分号,会认为分号为该语句的结尾
437439
testNext(';', assignStatementNode, LuaAstNodeType::GeneralOperator);
@@ -462,7 +464,10 @@ void LuaParser::assignStatement(std::shared_ptr<LuaAstNode> expressionListNode,
462464
{
463465
if (testNext(',', expressionListNode, LuaAstNodeType::GeneralOperator))
464466
{
465-
suffixedExpression(expressionListNode);
467+
auto expression = createAstNode(LuaAstNodeType::Expression);
468+
suffixedExpression(expression);
469+
470+
expressionListNode->AddChild(expression);
466471

467472
assignStatement(expressionListNode, assignStatementNode);
468473
}

0 commit comments

Comments
 (0)