Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / src / Parser.cpp
diff options
context:
space:
mode:
Commit2621d30da58795a19fa2c90978f766e173a8ca2f (patch)
Author
 martin dobrev <martindobrev0@gmail.com>
2018-10-14 15:11:59 +0300
Committer
 martin dobrev <martindobrev0@gmail.com>
2018-10-14 15:11:59 +0300
Filesb85eefde3ea7b5a39a355e7ff13e38debeadb31d /JSImpl/src/Parser.cpp
IPL-2621d30da58795a19fa2c90978f766e173a8ca2f.tar
IPL-2621d30da58795a19fa2c90978f766e173a8ca2f.tar.gz
IPL-2621d30da58795a19fa2c90978f766e173a8ca2f.zip
Parentab6cd5aaa4e1ceb12ade89a4a0c5376092fa8dfb (diff)
Parent47a7a68e2b7ce0b0c1e2bd1097927a91623fbcc5 (diff)
Merge branch 'expressions-rework'
1 files changed, 9 insertions, 8 deletions
-rw-r--r--JSImpl/src/Parser.cpp17
diff --git a/JSImpl/src/Parser.cpp b/JSImpl/src/Parser.cpp
index bbde7f1..28fee72 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;
@@ -691,7 +691,7 @@ ExpressionPtr Parser::VariableDefinition()
auto ae = CreateEmptyExpression();
if (Match(TokenType::Equal))
{
- auto ae = AssignmentExpression();
+ ae = AssignmentExpression();
}
return IPLMakeSharePtr<VariableDefinitionExpression>(id, ae);
}
@@ -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;
}