diff options
| Commit | 4233fbfb9229c2c1d334075b7eb32410450f7a3d (patch) | |
|---|---|---|
| Author | 2018-10-05 09:35:33 +0300 | |
| Committer | 2018-10-14 13:14:54 +0300 | |
| Files | 44361885a519bf4b71774b15e1b2219ba3ad6fea /JSImpl/src/Parser.cpp | |
| IPL-4233fbfb9229c2c1d334075b7eb32410450f7a3d.tar IPL-4233fbfb9229c2c1d334075b7eb32410450f7a3d.tar.gz IPL-4233fbfb9229c2c1d334075b7eb32410450f7a3d.zip | ||
| Parent | f398d80f395e7c4592fb6cc5d90d41a89dc127c7 (diff) | |
Now all expressions will be auto generated.
1 files changed, 8 insertions, 7 deletions
| -rw-r--r-- | JSImpl/src/Parser.cpp | 15 |
diff --git a/JSImpl/src/Parser.cpp b/JSImpl/src/Parser.cpp index bbde7f1..0d4ec3c 100644 --- a/JSImpl/src/Parser.cpp +++ b/JSImpl/src/Parser.cpp @@ -204,7 +204,7 @@ ExpressionPtr Parser::ArrayLiteral() auto result = IPLMakeSharePtr<ListExpression>(); while (auto lf = LiteralElement()) { - result->Push(lf); + result->GetValuesByRef().push_back(lf); if (!Match(TokenType::Comma)) { break; @@ -703,10 +703,10 @@ ExpressionPtr Parser::VariableDefinition() // VariableDeclaration // | VariableDeclarationList, VariableDeclaration auto vdList = IPLMakeSharePtr<ListExpression>(); - vdList->Push(VariableDeclaration()); + vdList->GetValuesByRef().push_back(VariableDeclaration()); while (Match(TokenType::Comma)) { - vdList->Push(VariableDeclaration()); + vdList->GetValuesByRef().push_back(VariableDeclaration()); } return vdList; }; @@ -731,7 +731,7 @@ ExpressionPtr Parser::Block() auto StatementsList = IPLMakeSharePtr<BlockStatement>(); while (auto s = Statement()) { - StatementsList->Push(s); + StatementsList->GetValuesByRef().push_back(s); } return StatementsList; }; @@ -784,7 +784,7 @@ ExpressionPtr Parser::SwitchStatement() if (Match(TokenType::Switch)) { auto cond = ParenthesizedExpression(); - IPLVector<SwitchStatement::Case> cases; + IPLVector<ExpressionPtr> cases; ExpressionPtr defaultCase = nullptr; if (Match(TokenType::LeftBrace)) { @@ -796,7 +796,8 @@ ExpressionPtr Parser::SwitchStatement() auto expr = Expression(); if (Match(TokenType::Colon)) { - cases.push_back({ expr, Statement() }); + auto statement = Statement(); + cases.push_back(IPLMakeSharePtr<CaseStatement>(expr, statement)); } } else if (Match(TokenType::Default)) @@ -996,7 +997,7 @@ ExpressionPtr Parser::TopStatements() auto statements = IPLMakeSharePtr<::TopStatements>(); while (auto ts = TopStatement()) { - statements->Push(ts); + statements->GetValuesByRef().push_back(ts); } return statements; } |
