From 70a7bd82774843a5750fb96c0d7e51553505811c Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Sun, 1 Nov 2020 20:39:33 +0200 Subject: Move value in ASTInterpreter to be shared pointer --- JSImpl/src/ASTInterpreter.cpp | 77 ++++++++++++++++++++++++++----------------- JSImpl/src/ASTInterpreter.h | 2 +- JSImpl/test/ParserTests.cpp | 52 ++++++++++++++--------------- 3 files changed, 74 insertions(+), 57 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/src/ASTInterpreter.cpp b/JSImpl/src/ASTInterpreter.cpp index 9874a4d..d5017aa 100644 --- a/JSImpl/src/ASTInterpreter.cpp +++ b/JSImpl/src/ASTInterpreter.cpp @@ -6,6 +6,21 @@ #undef NOT_IMPLEMENTED #define NOT_IMPLEMENTED (void)e; assert(0 && "not-implemented") +namespace +{ + template + ASTInterpreter::value_type MakeValue(T&& v) + { + return IPLMakeSharePtr(v); + } + + template + ASTInterpreter::value_type MakeValue(const T& v) + { + return IPLMakeSharePtr(v); + } +} + struct LValueExtractor : public ExpressionVisitor { public: @@ -14,17 +29,17 @@ public: {} ~LValueExtractor() {} - ASTInterpreter::value_type* Run(Expression* program) + ASTInterpreter::value_type Run(Expression* program) { m_LValue = nullptr; program->Accept(*this); return m_LValue; } - virtual void Visit(IdentifierExpression* e) override { m_LValue = &m_Interpreter->ModifyVariable(e->GetName()); } + virtual void Visit(IdentifierExpression* e) override { m_LValue = m_Interpreter->ModifyVariable(e->GetName()); } ASTInterpreter* m_Interpreter; - ASTInterpreter::value_type* m_LValue; + ASTInterpreter::value_type m_LValue; }; @@ -98,7 +113,7 @@ bool ASTInterpreter::EvalToBool(const ExpressionPtr& e) e->Accept(*this); auto result = m_Evaluation.back(); m_Evaluation.pop_back(); - return result != 0.0; + return *result != 0.0; } void ASTInterpreter::EnterScope() @@ -154,54 +169,54 @@ void ASTInterpreter::Visit(LiteralObject* e) } void ASTInterpreter::Visit(LiteralNumber* e) { - m_Evaluation.push_back(e->GetValue()); + m_Evaluation.push_back(MakeValue(e->GetValue())); } void ASTInterpreter::Visit(LiteralBoolean* e) { - m_Evaluation.push_back(e->GetValue()); + m_Evaluation.push_back(MakeValue(e->GetValue())); } void ASTInterpreter::Visit(BinaryExpression* e) { e->GetLeft()->Accept(*this); e->GetRight()->Accept(*this); - auto right = m_Evaluation.back(); + auto right = *m_Evaluation.back(); m_Evaluation.pop_back(); - auto left = m_Evaluation.back(); + auto left = *m_Evaluation.back(); m_Evaluation.pop_back(); switch (e->GetOperator()) { case TokenType::Plus: - m_Evaluation.push_back(left + right); + m_Evaluation.push_back(MakeValue(left + right)); break; case TokenType::Minus: - m_Evaluation.push_back(left - right); + m_Evaluation.push_back(MakeValue(left - right)); break; case TokenType::Star: - m_Evaluation.push_back(left * right); + m_Evaluation.push_back(MakeValue(left * right)); break; case TokenType::Division: - m_Evaluation.push_back(left / right); + m_Evaluation.push_back(MakeValue(left / right)); break; case TokenType::Less: - m_Evaluation.push_back(left < right); + m_Evaluation.push_back(MakeValue(left < right)); + break; + case TokenType::LessEqual: + m_Evaluation.push_back(MakeValue(left <= right)); + break; + case TokenType::Greater: + m_Evaluation.push_back(MakeValue(left > right)); + break; + case TokenType::GreaterEqual: + m_Evaluation.push_back(MakeValue(left >= right)); break; - case TokenType::LessEqual: - m_Evaluation.push_back(left <= right); - break; - case TokenType::Greater: - m_Evaluation.push_back(left > right); - break; - case TokenType::GreaterEqual: - m_Evaluation.push_back(left >= right); - break; case TokenType::Comma: - m_Evaluation.push_back(right); + m_Evaluation.push_back(MakeValue(std::move(right))); break; case TokenType::EqualEqual: - m_Evaluation.push_back(fabs(left - right) < 0.0001); + m_Evaluation.push_back(MakeValue(fabs(left - right) < 0.0001)); break; case TokenType::BangEqual: - m_Evaluation.push_back(fabs(left - right) > 0.0001); + m_Evaluation.push_back(MakeValue(fabs(left - right) > 0.0001)); break; case TokenType::Equal: { @@ -221,7 +236,9 @@ void ASTInterpreter::Visit(UnaryExpression* e) { case TokenType::Minus: { e->GetExpr()->Accept(*this); - m_Evaluation.back() *= -1; + auto v = m_Evaluation.back(); + m_Evaluation.pop_back(); + m_Evaluation.push_back(MakeValue(-(*v))); break; } case TokenType::Plus: @@ -236,12 +253,12 @@ void ASTInterpreter::Visit(UnaryExpression* e) { auto lvalue = extractor.Run(e->GetExpr().get()); if (e->GetSuffix()) { - m_Evaluation.push_back(*lvalue); + m_Evaluation.push_back(MakeValue(*lvalue)); } *lvalue += e->GetOperator() == TokenType::PlusPlus ? 1 : -1; if (!e->GetSuffix()) { - m_Evaluation.push_back(*lvalue); + m_Evaluation.push_back(MakeValue(*lvalue)); } break; } @@ -347,6 +364,6 @@ void ASTInterpreter::Print(Printer& p) { for (auto& it : m_Variables) { - p.PrintVariable(it.first.c_str(), ModifyVariable(it.first)); + p.PrintVariable(it.first.c_str(), *ModifyVariable(it.first)); } -} \ No newline at end of file +} diff --git a/JSImpl/src/ASTInterpreter.h b/JSImpl/src/ASTInterpreter.h index db89013..16aebfa 100644 --- a/JSImpl/src/ASTInterpreter.h +++ b/JSImpl/src/ASTInterpreter.h @@ -11,7 +11,7 @@ public: // TODO: Changing this to a shared_ptr (or GC-enabled value*) will // allow for much simpler implementation of all varible assignments. - typedef double value_type; + typedef IPLSharedPtr value_type; typedef IPLVector ValueStack; ValueStack Run(Expression* program); diff --git a/JSImpl/test/ParserTests.cpp b/JSImpl/test/ParserTests.cpp index d63ae60..31fa123 100644 --- a/JSImpl/test/ParserTests.cpp +++ b/JSImpl/test/ParserTests.cpp @@ -27,7 +27,7 @@ TEST(Parser, VariableDeclaration) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_TRUE(i.ModifyVariable("s") == 0.0); + ASSERT_TRUE(*i.ModifyVariable("s") == 0.0); } TEST(Parser, Assignment) @@ -38,7 +38,7 @@ TEST(Parser, Assignment) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_TRUE(i.ModifyVariable("s") == 100); + ASSERT_TRUE(*i.ModifyVariable("s") == 100); } TEST(Parser, VariableDeclarationAdditionOfLiterals) @@ -49,7 +49,7 @@ TEST(Parser, VariableDeclarationAdditionOfLiterals) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("s"), 11.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("s"), 11.0); } TEST(Parser, VariableDeclarationAdditionOfVariables) @@ -62,9 +62,9 @@ TEST(Parser, VariableDeclarationAdditionOfVariables) ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); ASSERT_TRUE(i.HasVariable("c")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 4.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("c"), 9.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("c"), 9.0); } TEST(Parser, VariableDeclarationMultiplicationOfLiterals) @@ -75,7 +75,7 @@ TEST(Parser, VariableDeclarationMultiplicationOfLiterals) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("s"), 30.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("s"), 30.0); } TEST(Parser, VariableDeclarationMultiplicationOfVariables) @@ -88,9 +88,9 @@ TEST(Parser, VariableDeclarationMultiplicationOfVariables) ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); ASSERT_TRUE(i.HasVariable("c")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 4.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("c"), 20.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("c"), 20.0); } @@ -103,10 +103,10 @@ TEST(Parser, Unary) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("minusB"), -5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("plusB"), +5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("minusB"), -5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("plusB"), +5.0); } @@ -120,8 +120,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); } { IPLVector tokens = Tokenize("var a = 5; var b = 3; if(a == 5)a++; b++; b++;").tokens; @@ -131,8 +131,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); } { @@ -143,8 +143,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); } { @@ -155,8 +155,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); } { @@ -167,8 +167,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(i.ModifyVariable("b"), 4.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); } } @@ -181,7 +181,7 @@ TEST(Parser, For) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("i"), 45.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("i"), 45.0); } { IPLVector tokens = Tokenize("var i = 0; for (var j = 0; j < 10; j++) i = i + j;").tokens; @@ -189,7 +189,7 @@ TEST(Parser, For) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); - ASSERT_DOUBLE_EQ(i.ModifyVariable("i"), 45.0); + ASSERT_DOUBLE_EQ(*i.ModifyVariable("i"), 45.0); } } -- cgit v1.3.1-26-gb76a From b93662dbcc9d30c69cce7d1342606cafc60bb3f0 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Sun, 1 Nov 2020 20:48:23 +0200 Subject: Fix name of ASTInterpreter value type --- JSImpl/src/ASTInterpreter.cpp | 12 ++++++------ JSImpl/src/ASTInterpreter.h | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/src/ASTInterpreter.cpp b/JSImpl/src/ASTInterpreter.cpp index d5017aa..ae0d2b5 100644 --- a/JSImpl/src/ASTInterpreter.cpp +++ b/JSImpl/src/ASTInterpreter.cpp @@ -9,13 +9,13 @@ namespace { template - ASTInterpreter::value_type MakeValue(T&& v) + ASTInterpreter::ValuePtr MakeValue(T&& v) { return IPLMakeSharePtr(v); } template - ASTInterpreter::value_type MakeValue(const T& v) + ASTInterpreter::ValuePtr MakeValue(const T& v) { return IPLMakeSharePtr(v); } @@ -29,7 +29,7 @@ public: {} ~LValueExtractor() {} - ASTInterpreter::value_type Run(Expression* program) + ASTInterpreter::ValuePtr Run(Expression* program) { m_LValue = nullptr; program->Accept(*this); @@ -39,7 +39,7 @@ public: virtual void Visit(IdentifierExpression* e) override { m_LValue = m_Interpreter->ModifyVariable(e->GetName()); } ASTInterpreter* m_Interpreter; - ASTInterpreter::value_type m_LValue; + ASTInterpreter::ValuePtr m_LValue; }; @@ -134,7 +134,7 @@ void ASTInterpreter::LeaveScope() m_Scopes.pop(); } -ASTInterpreter::value_type& ASTInterpreter::ModifyVariable(const IPLString& name) +ASTInterpreter::ValuePtr& ASTInterpreter::ModifyVariable(const IPLString& name) { auto values = m_Variables.find(name); if (values != m_Variables.end()) { @@ -143,7 +143,7 @@ ASTInterpreter::value_type& ASTInterpreter::ModifyVariable(const IPLString& name else { assert(0 && "not-defined"); } - static value_type undefined; + static ValuePtr undefined; return undefined; } diff --git a/JSImpl/src/ASTInterpreter.h b/JSImpl/src/ASTInterpreter.h index 16aebfa..e8dae37 100644 --- a/JSImpl/src/ASTInterpreter.h +++ b/JSImpl/src/ASTInterpreter.h @@ -2,6 +2,8 @@ #include "ExpressionVisitor.h" +#include + class ASTInterpreter : public ExpressionVisitor { public: @@ -9,10 +11,8 @@ public: ~ASTInterpreter(); - // TODO: Changing this to a shared_ptr (or GC-enabled value*) will - // allow for much simpler implementation of all varible assignments. - typedef IPLSharedPtr value_type; - typedef IPLVector ValueStack; + typedef IPLSharedPtr ValuePtr; + typedef IPLVector ValueStack; ValueStack Run(Expression* program); @@ -39,7 +39,7 @@ public: virtual void Visit(EmptyExpression* e) override; virtual void Visit(CallExpression* e) override; - value_type& ModifyVariable(const IPLString& name); + ValuePtr& ModifyVariable(const IPLString& name); bool HasVariable(const IPLString& name); class Printer -- cgit v1.3.1-26-gb76a From d8704c516b3a8b32817ffcad1868d7cd135efe48 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Sun, 1 Nov 2020 21:34:40 +0200 Subject: Move AST interpreter value to std::variant --- JSImpl/solution/genie.lua | 2 +- JSImpl/src/ASTInterpreter.cpp | 161 +++++++++++++++++++++++++++++++++++++----- JSImpl/src/ASTInterpreter.h | 3 +- JSImpl/test/ParserTests.cpp | 52 +++++++------- 4 files changed, 174 insertions(+), 44 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/solution/genie.lua b/JSImpl/solution/genie.lua index 247f72d..777446b 100644 --- a/JSImpl/solution/genie.lua +++ b/JSImpl/solution/genie.lua @@ -3,7 +3,7 @@ solution 'JSImpl' flags { 'FatalWarnings', 'ExtraWarnings', - 'Cpp14', + 'Cpp17', 'Symbols', } defines { diff --git a/JSImpl/src/ASTInterpreter.cpp b/JSImpl/src/ASTInterpreter.cpp index ae0d2b5..fd631ca 100644 --- a/JSImpl/src/ASTInterpreter.cpp +++ b/JSImpl/src/ASTInterpreter.cpp @@ -11,14 +11,135 @@ namespace template ASTInterpreter::ValuePtr MakeValue(T&& v) { - return IPLMakeSharePtr(v); + return IPLMakeSharePtr(v); } template ASTInterpreter::ValuePtr MakeValue(const T& v) { - return IPLMakeSharePtr(v); + return IPLMakeSharePtr(v); } + + struct ValueToBool + { + bool operator()(double d) const + { + return d != 0.0; + } + }; + + struct ValueAdd + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l + r); + } + }; + + struct ValueMinus + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l - r); + } + }; + struct ValueProduct + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l * r); + } + }; + struct ValueDivide + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l / r); + } + }; + struct ValueLess + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l < r); + } + }; + struct ValueLessEqual + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l <= r); + } + }; + struct ValueGreater + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l > r); + } + }; + struct ValueGreaterEqual + { + ASTInterpreter::ValuePtr operator()(double l, double r) const + { + return MakeValue(l >= r); + } + }; + + struct ValueEqualEqual + { + ASTInterpreter::ValuePtr operator()(double left, double right) const + { + return MakeValue(fabs(left - right) <= 0.0001); + } + }; + + struct ValueBangEqual + { + ASTInterpreter::ValuePtr operator()(double left, double right) const + { + return MakeValue(fabs(left - right) > 0.0001); + } + }; + + struct ValueUnaryMinus + { + ASTInterpreter::ValuePtr operator()(double v) const + { + return MakeValue(-v); + } + }; + struct ValueIncrement + { + void operator()(double& v) const + { + v += 1; + } + }; + + struct ValueDecrement + { + void operator()(double& v) const + { + v -= 1; + } + }; + + struct ValuePrint + { + ValuePrint(const char* name, ASTInterpreter::Printer* printer) + : Name(name) + , Printer(printer) + {} + + void operator()(double value) const + { + Printer->PrintVariable(Name, value); + } + + const char* Name; + ASTInterpreter::Printer* Printer; + }; } struct LValueExtractor : public ExpressionVisitor @@ -113,7 +234,7 @@ bool ASTInterpreter::EvalToBool(const ExpressionPtr& e) e->Accept(*this); auto result = m_Evaluation.back(); m_Evaluation.pop_back(); - return *result != 0.0; + return std::visit(ValueToBool(), *result); } void ASTInterpreter::EnterScope() @@ -186,37 +307,37 @@ void ASTInterpreter::Visit(BinaryExpression* e) { switch (e->GetOperator()) { case TokenType::Plus: - m_Evaluation.push_back(MakeValue(left + right)); + m_Evaluation.push_back(std::visit(ValueAdd(), left, right)); break; case TokenType::Minus: - m_Evaluation.push_back(MakeValue(left - right)); + m_Evaluation.push_back(std::visit(ValueMinus(), left, right)); break; case TokenType::Star: - m_Evaluation.push_back(MakeValue(left * right)); + m_Evaluation.push_back(std::visit(ValueProduct(), left, right)); break; case TokenType::Division: - m_Evaluation.push_back(MakeValue(left / right)); + m_Evaluation.push_back(std::visit(ValueDivide(), left, right)); break; case TokenType::Less: - m_Evaluation.push_back(MakeValue(left < right)); + m_Evaluation.push_back(std::visit(ValueLess(), left, right)); break; case TokenType::LessEqual: - m_Evaluation.push_back(MakeValue(left <= right)); + m_Evaluation.push_back(std::visit(ValueLessEqual(), left, right)); break; case TokenType::Greater: - m_Evaluation.push_back(MakeValue(left > right)); + m_Evaluation.push_back(std::visit(ValueGreater(), left, right)); break; case TokenType::GreaterEqual: - m_Evaluation.push_back(MakeValue(left >= right)); + m_Evaluation.push_back(std::visit(ValueGreaterEqual(), left, right)); break; case TokenType::Comma: m_Evaluation.push_back(MakeValue(std::move(right))); break; case TokenType::EqualEqual: - m_Evaluation.push_back(MakeValue(fabs(left - right) < 0.0001)); + m_Evaluation.push_back(std::visit(ValueEqualEqual(), left, right)); break; case TokenType::BangEqual: - m_Evaluation.push_back(MakeValue(fabs(left - right) > 0.0001)); + m_Evaluation.push_back(std::visit(ValueBangEqual(), left, right)); break; case TokenType::Equal: { @@ -238,7 +359,7 @@ void ASTInterpreter::Visit(UnaryExpression* e) { e->GetExpr()->Accept(*this); auto v = m_Evaluation.back(); m_Evaluation.pop_back(); - m_Evaluation.push_back(MakeValue(-(*v))); + m_Evaluation.push_back(std::visit(ValueUnaryMinus(), *v)); break; } case TokenType::Plus: @@ -255,7 +376,14 @@ void ASTInterpreter::Visit(UnaryExpression* e) { { m_Evaluation.push_back(MakeValue(*lvalue)); } - *lvalue += e->GetOperator() == TokenType::PlusPlus ? 1 : -1; + if (e->GetOperator() == TokenType::PlusPlus) + { + std::visit(ValueIncrement(), *lvalue); + } + else + { + std::visit(ValueDecrement(), *lvalue); + } if (!e->GetSuffix()) { m_Evaluation.push_back(MakeValue(*lvalue)); @@ -364,6 +492,7 @@ void ASTInterpreter::Print(Printer& p) { for (auto& it : m_Variables) { - p.PrintVariable(it.first.c_str(), *ModifyVariable(it.first)); + auto& value = ModifyVariable(it.first); + std::visit(ValuePrint(it.first.c_str(), &p), *value); } } diff --git a/JSImpl/src/ASTInterpreter.h b/JSImpl/src/ASTInterpreter.h index e8dae37..ba797c1 100644 --- a/JSImpl/src/ASTInterpreter.h +++ b/JSImpl/src/ASTInterpreter.h @@ -11,7 +11,8 @@ public: ~ASTInterpreter(); - typedef IPLSharedPtr ValuePtr; + typedef std::variant Value; + typedef IPLSharedPtr ValuePtr; typedef IPLVector ValueStack; ValueStack Run(Expression* program); diff --git a/JSImpl/test/ParserTests.cpp b/JSImpl/test/ParserTests.cpp index 31fa123..f47b4b3 100644 --- a/JSImpl/test/ParserTests.cpp +++ b/JSImpl/test/ParserTests.cpp @@ -27,7 +27,7 @@ TEST(Parser, VariableDeclaration) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_TRUE(*i.ModifyVariable("s") == 0.0); + ASSERT_TRUE(std::get(*i.ModifyVariable("s")) == 0.0); } TEST(Parser, Assignment) @@ -38,7 +38,7 @@ TEST(Parser, Assignment) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_TRUE(*i.ModifyVariable("s") == 100); + ASSERT_TRUE(std::get(*i.ModifyVariable("s")) == 100); } TEST(Parser, VariableDeclarationAdditionOfLiterals) @@ -49,7 +49,7 @@ TEST(Parser, VariableDeclarationAdditionOfLiterals) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("s"), 11.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("s")), 11.0); } TEST(Parser, VariableDeclarationAdditionOfVariables) @@ -62,9 +62,9 @@ TEST(Parser, VariableDeclarationAdditionOfVariables) ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); ASSERT_TRUE(i.HasVariable("c")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("c"), 9.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 4.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("c")), 9.0); } TEST(Parser, VariableDeclarationMultiplicationOfLiterals) @@ -75,7 +75,7 @@ TEST(Parser, VariableDeclarationMultiplicationOfLiterals) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("s"), 30.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("s")), 30.0); } TEST(Parser, VariableDeclarationMultiplicationOfVariables) @@ -88,9 +88,9 @@ TEST(Parser, VariableDeclarationMultiplicationOfVariables) ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); ASSERT_TRUE(i.HasVariable("c")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("c"), 20.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 4.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("c")), 20.0); } @@ -103,10 +103,10 @@ TEST(Parser, Unary) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("minusB"), -5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("plusB"), +5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 6.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("minusB")), -5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("plusB")), +5.0); } @@ -120,8 +120,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 6.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 5.0); } { IPLVector tokens = Tokenize("var a = 5; var b = 3; if(a == 5)a++; b++; b++;").tokens; @@ -131,8 +131,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 6.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 5.0); } { @@ -143,8 +143,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 5.0); } { @@ -155,8 +155,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 5.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 5.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 5.0); } { @@ -167,8 +167,8 @@ TEST(Parser, If) i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); ASSERT_TRUE(i.HasVariable("b")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("a"), 6.0); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("b"), 4.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("a")), 6.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("b")), 4.0); } } @@ -181,7 +181,7 @@ TEST(Parser, For) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("i"), 45.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("i")), 45.0); } { IPLVector tokens = Tokenize("var i = 0; for (var j = 0; j < 10; j++) i = i + j;").tokens; @@ -189,7 +189,7 @@ TEST(Parser, For) ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); - ASSERT_DOUBLE_EQ(*i.ModifyVariable("i"), 45.0); + ASSERT_DOUBLE_EQ(std::get(*i.ModifyVariable("i")), 45.0); } } -- cgit v1.3.1-26-gb76a From acb4362f28e783632a5c79db98f14b60aa12f175 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Sun, 1 Nov 2020 21:37:45 +0200 Subject: Move project to C++17 --- JSImpl/solution/JSImpl.make | 72 ++---------------------- JSImpl/solution/JSImpl.sln | 47 ---------------- JSImpl/solution/JSImpl.vcxproj | 110 +----------------------------------- JSImpl/solution/JSLib.make | 84 ++-------------------------- JSImpl/solution/JSLib.vcxproj | 108 +----------------------------------- JSImpl/solution/Makefile | 2 - JSImpl/test/Test.make | 82 ++------------------------- JSImpl/test/Test.vcxproj | 114 +------------------------------------- JSImpl/test/gmock.make | 74 ++----------------------- JSImpl/test/gmock.vcxproj | 112 +------------------------------------ JSImpl/test/gtest.make | 74 ++----------------------- JSImpl/test/gtest.vcxproj | 112 +------------------------------------ JSImpl/test/gtest_main.make | 74 ++----------------------- JSImpl/test/gtest_main.vcxproj | 112 +------------------------------------ spasm/solution/spasm.make | 72 ++---------------------- spasm/solution/spasm.vcxproj | 110 +----------------------------------- spasm/solution/spasm.vcxproj.user | 8 --- spasm/solution/spasm_lib.make | 82 ++------------------------- spasm/solution/spasm_lib.vcxproj | 108 +----------------------------------- spasm/solution/sprt.make | 72 ++---------------------- spasm/solution/sprt.vcxproj | 108 +----------------------------------- spasm/solution/sprt.vcxproj.user | 8 --- spasm/solution/sprun.make | 72 ++---------------------- spasm/solution/sprun.vcxproj | 110 +----------------------------------- spasm/solution/sprun.vcxproj.user | 8 --- 25 files changed, 60 insertions(+), 1875 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/solution/JSImpl.make b/JSImpl/solution/JSImpl.make index f79241f..355d4a1 100644 --- a/JSImpl/solution/JSImpl.make +++ b/JSImpl/solution/JSImpl.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Debug" LIBDEPS += ../build/bin/Debug/libJSLib.a @@ -82,9 +82,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Release" LIBDEPS += ../build/bin/Release/libJSLib.a @@ -106,70 +106,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/JSImpl - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/JSImpl - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Debug" -m64 - LIBDEPS += ../build/bin/Debug/libJSLib.a - LDDEPS += ../build/bin/Debug/libJSLib.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/JSImpl - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/JSImpl - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Release" -m64 - LIBDEPS += ../build/bin/Release/libJSLib.a - LDDEPS += ../build/bin/Release/libJSLib.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src \ diff --git a/JSImpl/solution/JSImpl.sln b/JSImpl/solution/JSImpl.sln index ce219bf..850831a 100644 --- a/JSImpl/solution/JSImpl.sln +++ b/JSImpl/solution/JSImpl.sln @@ -1,8 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 -MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Spasm", "Spasm", "{9892E17D-8434-0C54-6DEF-1FA8593093A4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gtest", "gtest", "{1BAF0A7D-0751-3553-F00B-49A7DC4CBCA3}" @@ -49,91 +47,49 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 - Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Debug|Win32.ActiveCfg = Debug|Win32 {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Debug|Win32.Build.0 = Debug|Win32 - {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Debug|x64.ActiveCfg = Debug|x64 - {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Debug|x64.Build.0 = Debug|x64 {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Release|Win32.ActiveCfg = Release|Win32 {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Release|Win32.Build.0 = Release|Win32 - {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Release|x64.ActiveCfg = Release|x64 - {FD605F10-6975-87C1-32F7-2A219ECA83F2}.Release|x64.Build.0 = Release|x64 {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Debug|Win32.ActiveCfg = Debug|Win32 {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Debug|Win32.Build.0 = Debug|Win32 - {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Debug|x64.ActiveCfg = Debug|x64 - {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Debug|x64.Build.0 = Debug|x64 {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Release|Win32.ActiveCfg = Release|Win32 {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Release|Win32.Build.0 = Release|Win32 - {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Release|x64.ActiveCfg = Release|x64 - {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F}.Release|x64.Build.0 = Release|x64 {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Debug|Win32.ActiveCfg = Debug|Win32 {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Debug|Win32.Build.0 = Debug|Win32 - {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Debug|x64.ActiveCfg = Debug|x64 - {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Debug|x64.Build.0 = Debug|x64 {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Release|Win32.ActiveCfg = Release|Win32 {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Release|Win32.Build.0 = Release|Win32 - {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Release|x64.ActiveCfg = Release|x64 - {EC34880F-5849-B0C0-21CB-53208D9EACF1}.Release|x64.Build.0 = Release|x64 {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Debug|Win32.ActiveCfg = Debug|Win32 {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Debug|Win32.Build.0 = Debug|Win32 - {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Debug|x64.ActiveCfg = Debug|x64 - {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Debug|x64.Build.0 = Debug|x64 {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Release|Win32.ActiveCfg = Release|Win32 {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Release|Win32.Build.0 = Release|Win32 - {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Release|x64.ActiveCfg = Release|x64 - {B686840F-229B-ACC0-EB1C-502057F0A8F1}.Release|x64.Build.0 = Release|x64 {30B03E7E-1C68-80CB-856F-592771461BBC}.Debug|Win32.ActiveCfg = Debug|Win32 {30B03E7E-1C68-80CB-856F-592771461BBC}.Debug|Win32.Build.0 = Debug|Win32 - {30B03E7E-1C68-80CB-856F-592771461BBC}.Debug|x64.ActiveCfg = Debug|x64 - {30B03E7E-1C68-80CB-856F-592771461BBC}.Debug|x64.Build.0 = Debug|x64 {30B03E7E-1C68-80CB-856F-592771461BBC}.Release|Win32.ActiveCfg = Release|Win32 {30B03E7E-1C68-80CB-856F-592771461BBC}.Release|Win32.Build.0 = Release|Win32 - {30B03E7E-1C68-80CB-856F-592771461BBC}.Release|x64.ActiveCfg = Release|x64 - {30B03E7E-1C68-80CB-856F-592771461BBC}.Release|x64.Build.0 = Release|x64 {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Debug|Win32.ActiveCfg = Debug|Win32 {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Debug|Win32.Build.0 = Debug|Win32 - {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Debug|x64.ActiveCfg = Debug|x64 - {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Debug|x64.Build.0 = Debug|x64 {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Release|Win32.ActiveCfg = Release|Win32 {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Release|Win32.Build.0 = Release|Win32 - {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Release|x64.ActiveCfg = Release|x64 - {19EA680D-85FE-90BE-4E80-341EBA538DEF}.Release|x64.Build.0 = Release|x64 {549B84BA-403D-AF90-29F8-C2E4153936E1}.Debug|Win32.ActiveCfg = Debug|Win32 {549B84BA-403D-AF90-29F8-C2E4153936E1}.Debug|Win32.Build.0 = Debug|Win32 - {549B84BA-403D-AF90-29F8-C2E4153936E1}.Debug|x64.ActiveCfg = Debug|x64 - {549B84BA-403D-AF90-29F8-C2E4153936E1}.Debug|x64.Build.0 = Debug|x64 {549B84BA-403D-AF90-29F8-C2E4153936E1}.Release|Win32.ActiveCfg = Release|Win32 {549B84BA-403D-AF90-29F8-C2E4153936E1}.Release|Win32.Build.0 = Release|Win32 - {549B84BA-403D-AF90-29F8-C2E4153936E1}.Release|x64.ActiveCfg = Release|x64 - {549B84BA-403D-AF90-29F8-C2E4153936E1}.Release|x64.Build.0 = Release|x64 {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Debug|Win32.ActiveCfg = Debug|Win32 {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Debug|Win32.Build.0 = Debug|Win32 - {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Debug|x64.ActiveCfg = Debug|x64 - {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Debug|x64.Build.0 = Debug|x64 {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Release|Win32.ActiveCfg = Release|Win32 {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Release|Win32.Build.0 = Release|Win32 - {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Release|x64.ActiveCfg = Release|x64 - {AE0A9E7C-9A41-9F0D-432E-85102F441B0F}.Release|x64.Build.0 = Release|x64 {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Debug|Win32.ActiveCfg = Debug|Win32 {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Debug|Win32.Build.0 = Debug|Win32 - {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Debug|x64.ActiveCfg = Debug|x64 - {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Debug|x64.Build.0 = Debug|x64 {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Release|Win32.ActiveCfg = Release|Win32 {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Release|Win32.Build.0 = Release|Win32 - {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Release|x64.ActiveCfg = Release|x64 - {3F16CDE1-AB80-8158-F4BE-32FE60685FAD}.Release|x64.Build.0 = Release|x64 {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Debug|Win32.ActiveCfg = Debug|Win32 {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Debug|Win32.Build.0 = Debug|Win32 - {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Debug|x64.ActiveCfg = Debug|x64 - {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Debug|x64.Build.0 = Debug|x64 {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Release|Win32.ActiveCfg = Release|Win32 {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Release|Win32.Build.0 = Release|Win32 - {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Release|x64.ActiveCfg = Release|x64 - {69185F10-D52C-87C1-9EAE-2A210A8283F2}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -149,7 +105,4 @@ Global {3F16CDE1-AB80-8158-F4BE-32FE60685FAD} = {9892E17D-8434-0C54-6DEF-1FA8593093A4} {69185F10-D52C-87C1-9EAE-2A210A8283F2} = {9892E17D-8434-0C54-6DEF-1FA8593093A4} EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B9E3E8B3-5BA4-4521-B598-F1EF432D2126} - EndGlobalSection EndGlobal diff --git a/JSImpl/solution/JSImpl.vcxproj b/JSImpl/solution/JSImpl.vcxproj index 8db08cc..a2bc858 100644 --- a/JSImpl/solution/JSImpl.vcxproj +++ b/JSImpl/solution/JSImpl.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {549B84BA-403D-AF90-29F8-C2E4153936E1} @@ -33,13 +25,6 @@ v142 true - - 16.0 - Application - true - v142 - true - 16.0 Application @@ -47,28 +32,15 @@ v142 true - - 16.0 - Application - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -77,13 +49,6 @@ .exe true - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\JSImpl\ - JSImpl - .exe - true - ..\build\bin\Release\ ..\build\obj\Release\Release\JSImpl\ @@ -91,13 +56,6 @@ .exe false - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\JSImpl\ - JSImpl - .exe - false - %(AdditionalOptions) @@ -111,37 +69,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(IntDir)JSImpl.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)JSImpl.pdb - ;%(AdditionalLibraryDirectories) - $(OutDir)JSImpl.exe - mainCRTStartup - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(IntDir)JSImpl.compile.pdb Caret @@ -156,7 +84,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)JSImpl.exe mainCRTStartup - MachineX64 @@ -172,39 +99,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(IntDir)JSImpl.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)JSImpl.pdb - true - true - ;%(AdditionalLibraryDirectories) - $(OutDir)JSImpl.exe - mainCRTStartup - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(IntDir)JSImpl.compile.pdb Caret @@ -221,7 +116,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)JSImpl.exe mainCRTStartup - MachineX64 diff --git a/JSImpl/solution/JSLib.make b/JSImpl/solution/JSLib.make index 9770cb0..6d92807 100644 --- a/JSImpl/solution/JSLib.make +++ b/JSImpl/solution/JSLib.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -88,9 +88,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -118,82 +118,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/JSLib - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/libJSLib.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/ASTInterpreter.o \ - $(OBJDIR)/src/ASTPrinter.o \ - $(OBJDIR)/src/ByteCodeGenerator.o \ - $(OBJDIR)/src/Expression.o \ - $(OBJDIR)/src/JSONParser.o \ - $(OBJDIR)/src/Lexer.o \ - $(OBJDIR)/src/Parser.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/JSLib - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/libJSLib.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/ASTInterpreter.o \ - $(OBJDIR)/src/ASTPrinter.o \ - $(OBJDIR)/src/ByteCodeGenerator.o \ - $(OBJDIR)/src/Expression.o \ - $(OBJDIR)/src/JSONParser.o \ - $(OBJDIR)/src/Lexer.o \ - $(OBJDIR)/src/Parser.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src \ diff --git a/JSImpl/solution/JSLib.vcxproj b/JSImpl/solution/JSLib.vcxproj index 67600b0..b56083a 100644 --- a/JSImpl/solution/JSLib.vcxproj +++ b/JSImpl/solution/JSLib.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {19EA680D-85FE-90BE-4E80-341EBA538DEF} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -76,24 +48,12 @@ JSLib .lib - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\JSLib\ - JSLib - .lib - ..\build\bin\Release\ ..\build\obj\Release\Release\JSLib\ JSLib .lib - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\JSLib\ - JSLib - .lib - %(AdditionalOptions) @@ -107,37 +67,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)JSLib.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)JSLib.lib - - - Windows - true - $(OutDir)JSLib.pdb - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)JSLib.pdb Caret @@ -147,7 +77,6 @@ $(OutDir)JSLib.lib - MachineX64 Windows @@ -168,39 +97,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)JSLib.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)JSLib.lib - - - Windows - true - $(OutDir)JSLib.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)JSLib.pdb Caret @@ -210,7 +107,6 @@ $(OutDir)JSLib.lib - MachineX64 Windows diff --git a/JSImpl/solution/Makefile b/JSImpl/solution/Makefile index fe89e52..fd12d74 100644 --- a/JSImpl/solution/Makefile +++ b/JSImpl/solution/Makefile @@ -70,8 +70,6 @@ help: @echo "CONFIGURATIONS:" @echo " debug" @echo " release" - @echo " debug64" - @echo " release64" @echo "" @echo "TARGETS:" @echo " all (default)" diff --git a/JSImpl/test/Test.make b/JSImpl/test/Test.make index 68e167d..38d963e 100644 --- a/JSImpl/test/Test.make +++ b/JSImpl/test/Test.make @@ -51,9 +51,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Debug" -L"." LIBDEPS += ../build/bin/Debug/libsprt.a ../build/bin/Debug/libspasm_lib.a ../build/bin/Debug/libJSLib.a ../build/bin/Debug/libgtest.a ../build/bin/Debug/libgmock.a ../build/bin/Debug/libgtest_main.a @@ -88,9 +88,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Release" -L"." LIBDEPS += ../build/bin/Release/libsprt.a ../build/bin/Release/libspasm_lib.a ../build/bin/Release/libJSLib.a ../build/bin/Release/libgtest.a ../build/bin/Release/libgmock.a ../build/bin/Release/libgtest_main.a @@ -116,80 +116,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/Test - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/Test - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest/include" -I"googletest/googlemock/include" -I".." -I"../../spasm/src" -I"../../spasm/src/asm" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Debug" -L"." -m64 - LIBDEPS += ../build/bin/Debug/libsprt.a ../build/bin/Debug/libspasm_lib.a ../build/bin/Debug/libJSLib.a ../build/bin/Debug/libgtest.a ../build/bin/Debug/libgmock.a ../build/bin/Debug/libgtest_main.a - LDDEPS += ../build/bin/Debug/libsprt.a ../build/bin/Debug/libspasm_lib.a ../build/bin/Debug/libJSLib.a ../build/bin/Debug/libgtest.a ../build/bin/Debug/libgmock.a ../build/bin/Debug/libgtest_main.a - LDRESP = - LIBS += $(LDDEPS) -lpthread - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/CodeGenerationTests.o \ - $(OBJDIR)/LexerTests.o \ - $(OBJDIR)/ParserTests.o \ - $(OBJDIR)/empty.o \ - $(OBJDIR)/sprtTests.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/Test - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/Test - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest/include" -I"googletest/googlemock/include" -I".." -I"../../spasm/src" -I"../../spasm/src/asm" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../build/bin/Release" -L"." -m64 - LIBDEPS += ../build/bin/Release/libsprt.a ../build/bin/Release/libspasm_lib.a ../build/bin/Release/libJSLib.a ../build/bin/Release/libgtest.a ../build/bin/Release/libgmock.a ../build/bin/Release/libgtest_main.a - LDDEPS += ../build/bin/Release/libsprt.a ../build/bin/Release/libspasm_lib.a ../build/bin/Release/libJSLib.a ../build/bin/Release/libgtest.a ../build/bin/Release/libgmock.a ../build/bin/Release/libgtest_main.a - LDRESP = - LIBS += $(LDDEPS) -lpthread - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/CodeGenerationTests.o \ - $(OBJDIR)/LexerTests.o \ - $(OBJDIR)/ParserTests.o \ - $(OBJDIR)/empty.o \ - $(OBJDIR)/sprtTests.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/. \ diff --git a/JSImpl/test/Test.vcxproj b/JSImpl/test/Test.vcxproj index 3abf38f..b2e4e83 100644 --- a/JSImpl/test/Test.vcxproj +++ b/JSImpl/test/Test.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {45DC8C7C-3113-8E0D-DAFF-7310C6150A0F} @@ -33,13 +25,6 @@ v142 true - - 16.0 - Application - true - v142 - true - 16.0 Application @@ -47,28 +32,15 @@ v142 true - - 16.0 - Application - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -77,13 +49,6 @@ .exe true - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\Test\ - Test - .exe - true - ..\build\bin\Release\ ..\build\obj\Release\Release\Test\ @@ -91,13 +56,6 @@ .exe false - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\Test\ - Test - .exe - false - %(AdditionalOptions) @@ -112,39 +70,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(IntDir)Test.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest\include;googletest\googlemock\include;..;..\..\spasm\src;..\..\spasm\src\asm;%(AdditionalIncludeDirectories) - - - Console - true - $(OutDir)Test.pdb - ;%(AdditionalLibraryDirectories) - $(OutDir)Test.exe - mainCRTStartup - - - - - %(AdditionalOptions) - Disabled - googletest\googletest\include;googletest\googlemock\include;..;..\..\spasm\src;..\..\spasm\src\asm;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(IntDir)Test.compile.pdb Caret @@ -160,7 +86,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)Test.exe mainCRTStartup - MachineX64 @@ -177,41 +102,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(IntDir)Test.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest\include;googletest\googlemock\include;..;..\..\spasm\src;..\..\spasm\src\asm;%(AdditionalIncludeDirectories) - - - Console - true - $(OutDir)Test.pdb - true - true - ;%(AdditionalLibraryDirectories) - $(OutDir)Test.exe - mainCRTStartup - - - - - %(AdditionalOptions) - MaxSpeed - googletest\googletest\include;googletest\googlemock\include;..;..\..\spasm\src;..\..\spasm\src\asm;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(IntDir)Test.compile.pdb Caret @@ -229,7 +120,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)Test.exe mainCRTStartup - MachineX64 diff --git a/JSImpl/test/gmock.make b/JSImpl/test/gmock.make index 73e4eac..37d54df 100644 --- a/JSImpl/test/gmock.make +++ b/JSImpl/test/gmock.make @@ -51,9 +51,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -84,9 +84,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -108,72 +108,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/gmock - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/libgmock.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googlemock" -I"googletest/googlemock/include" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googlemock/src/gmock-all.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/gmock - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/libgmock.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googlemock" -I"googletest/googlemock/include" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googlemock/src/gmock-all.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/googletest/googlemock/src \ diff --git a/JSImpl/test/gmock.vcxproj b/JSImpl/test/gmock.vcxproj index 5a4490e..44afba9 100644 --- a/JSImpl/test/gmock.vcxproj +++ b/JSImpl/test/gmock.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {B686840F-229B-ACC0-EB1C-502057F0A8F1} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -76,24 +48,12 @@ gmock .lib - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\gmock\ - gmock - .lib - ..\build\bin\Release\ ..\build\obj\Release\Release\gmock\ gmock .lib - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\gmock\ - gmock - .lib - %(AdditionalOptions) @@ -108,39 +68,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)gmock.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googlemock;googletest\googlemock\include;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gmock.lib - - - Windows - true - $(OutDir)gmock.pdb - - - - - %(AdditionalOptions) - Disabled - googletest\googlemock;googletest\googlemock\include;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)gmock.pdb Caret @@ -151,7 +79,6 @@ $(OutDir)gmock.lib - MachineX64 Windows @@ -173,41 +100,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)gmock.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googlemock;googletest\googlemock\include;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gmock.lib - - - Windows - true - $(OutDir)gmock.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - googletest\googlemock;googletest\googlemock\include;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)gmock.pdb Caret @@ -218,7 +111,6 @@ $(OutDir)gmock.lib - MachineX64 Windows diff --git a/JSImpl/test/gtest.make b/JSImpl/test/gtest.make index 44e1cb0..675ddd5 100644 --- a/JSImpl/test/gtest.make +++ b/JSImpl/test/gtest.make @@ -51,9 +51,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -84,9 +84,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -108,72 +108,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/gtest - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/libgtest.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googletest/src/gtest-all.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/gtest - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/libgtest.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googletest/src/gtest-all.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/googletest/googletest/src \ diff --git a/JSImpl/test/gtest.vcxproj b/JSImpl/test/gtest.vcxproj index 5e12d95..229231e 100644 --- a/JSImpl/test/gtest.vcxproj +++ b/JSImpl/test/gtest.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {EC34880F-5849-B0C0-21CB-53208D9EACF1} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -76,24 +48,12 @@ gtest .lib - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\gtest\ - gtest - .lib - ..\build\bin\Release\ ..\build\obj\Release\Release\gtest\ gtest .lib - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\gtest\ - gtest - .lib - %(AdditionalOptions) @@ -108,39 +68,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)gtest.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gtest.lib - - - Windows - true - $(OutDir)gtest.pdb - - - - - %(AdditionalOptions) - Disabled - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)gtest.pdb Caret @@ -151,7 +79,6 @@ $(OutDir)gtest.lib - MachineX64 Windows @@ -173,41 +100,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)gtest.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gtest.lib - - - Windows - true - $(OutDir)gtest.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)gtest.pdb Caret @@ -218,7 +111,6 @@ $(OutDir)gtest.lib - MachineX64 Windows diff --git a/JSImpl/test/gtest_main.make b/JSImpl/test/gtest_main.make index 8a0d8af..ecc5583 100644 --- a/JSImpl/test/gtest_main.make +++ b/JSImpl/test/gtest_main.make @@ -51,9 +51,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -84,9 +84,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -108,72 +108,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../build/obj/Debug/x64/Debug/gtest_main - TARGETDIR = ../build/bin/Debug - TARGET = $(TARGETDIR)/libgtest_main.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googletest/src/gtest_main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../build/obj/Release/x64/Release/gtest_main - TARGETDIR = ../build/bin/Release - TARGET = $(TARGETDIR)/libgtest_main.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - INCLUDES += -I"googletest/googletest" -I"googletest/googletest/include" - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/googletest/googletest/src/gtest_main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/googletest/googletest/src \ diff --git a/JSImpl/test/gtest_main.vcxproj b/JSImpl/test/gtest_main.vcxproj index aeec05d..c39b848 100644 --- a/JSImpl/test/gtest_main.vcxproj +++ b/JSImpl/test/gtest_main.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {30B03E7E-1C68-80CB-856F-592771461BBC} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\build\bin\Debug\ @@ -76,24 +48,12 @@ gtest_main .lib - - ..\build\bin\Debug\ - ..\build\obj\Debug\x64\Debug\gtest_main\ - gtest_main - .lib - ..\build\bin\Release\ ..\build\obj\Release\Release\gtest_main\ gtest_main .lib - - ..\build\bin\Release\ - ..\build\obj\Release\x64\Release\gtest_main\ - gtest_main - .lib - %(AdditionalOptions) @@ -108,39 +68,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)gtest_main.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gtest_main.lib - - - Windows - true - $(OutDir)gtest_main.pdb - - - - - %(AdditionalOptions) - Disabled - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)gtest_main.pdb Caret @@ -151,7 +79,6 @@ $(OutDir)gtest_main.lib - MachineX64 Windows @@ -173,41 +100,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)gtest_main.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - - - $(OutDir)gtest_main.lib - - - Windows - true - $(OutDir)gtest_main.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - googletest\googletest;googletest\googletest\include;%(AdditionalIncludeDirectories) - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)gtest_main.pdb Caret @@ -218,7 +111,6 @@ $(OutDir)gtest_main.lib - MachineX64 Windows diff --git a/spasm/solution/spasm.make b/spasm/solution/spasm.make index af6a577..8f27eff 100644 --- a/spasm/solution/spasm.make +++ b/spasm/solution/spasm.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Debug" LIBDEPS += ../../JSImpl/build/bin/Debug/libspasm_lib.a @@ -82,9 +82,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Release" LIBDEPS += ../../JSImpl/build/bin/Release/libspasm_lib.a @@ -106,70 +106,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../../JSImpl/build/obj/Debug/x64/Debug/spasm - TARGETDIR = ../../JSImpl/build/bin/Debug - TARGET = $(TARGETDIR)/spasm - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Debug" -m64 - LIBDEPS += ../../JSImpl/build/bin/Debug/libspasm_lib.a - LDDEPS += ../../JSImpl/build/bin/Debug/libspasm_lib.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/asm/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../../JSImpl/build/obj/Release/x64/Release/spasm - TARGETDIR = ../../JSImpl/build/bin/Release - TARGET = $(TARGETDIR)/spasm - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Release" -m64 - LIBDEPS += ../../JSImpl/build/bin/Release/libspasm_lib.a - LDDEPS += ../../JSImpl/build/bin/Release/libspasm_lib.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/asm/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src/asm \ diff --git a/spasm/solution/spasm.vcxproj b/spasm/solution/spasm.vcxproj index 58407b4..0f6cd48 100644 --- a/spasm/solution/spasm.vcxproj +++ b/spasm/solution/spasm.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {69185F10-D52C-87C1-9EAE-2A210A8283F2} @@ -33,13 +25,6 @@ v142 true - - 16.0 - Application - true - v142 - true - 16.0 Application @@ -47,28 +32,15 @@ v142 true - - 16.0 - Application - false - v142 - true - - - - - - - ..\..\JSImpl\build\bin\Debug\ @@ -77,13 +49,6 @@ .exe true - - ..\..\JSImpl\build\bin\Debug\ - ..\..\JSImpl\build\obj\Debug\x64\Debug\spasm\ - spasm - .exe - true - ..\..\JSImpl\build\bin\Release\ ..\..\JSImpl\build\obj\Release\Release\spasm\ @@ -91,13 +56,6 @@ .exe false - - ..\..\JSImpl\build\bin\Release\ - ..\..\JSImpl\build\obj\Release\x64\Release\spasm\ - spasm - .exe - false - %(AdditionalOptions) @@ -111,37 +69,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(IntDir)spasm.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)spasm.pdb - ;%(AdditionalLibraryDirectories) - $(OutDir)spasm.exe - mainCRTStartup - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(IntDir)spasm.compile.pdb Caret @@ -156,7 +84,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)spasm.exe mainCRTStartup - MachineX64 @@ -172,39 +99,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(IntDir)spasm.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)spasm.pdb - true - true - ;%(AdditionalLibraryDirectories) - $(OutDir)spasm.exe - mainCRTStartup - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(IntDir)spasm.compile.pdb Caret @@ -221,7 +116,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)spasm.exe mainCRTStartup - MachineX64 diff --git a/spasm/solution/spasm.vcxproj.user b/spasm/solution/spasm.vcxproj.user index f927c73..648ac8e 100644 --- a/spasm/solution/spasm.vcxproj.user +++ b/spasm/solution/spasm.vcxproj.user @@ -4,16 +4,8 @@ WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - diff --git a/spasm/solution/spasm_lib.make b/spasm/solution/spasm_lib.make index 9c25a78..d2f9572 100644 --- a/spasm/solution/spasm_lib.make +++ b/spasm/solution/spasm_lib.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -87,9 +87,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -116,80 +116,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../../JSImpl/build/obj/Debug/x64/Debug/spasm_lib - TARGETDIR = ../../JSImpl/build/bin/Debug - TARGET = $(TARGETDIR)/libspasm_lib.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/asm/assembler.o \ - $(OBJDIR)/src/asm/bytecode.o \ - $(OBJDIR)/src/asm/lexer.o \ - $(OBJDIR)/src/asm/symbol.o \ - $(OBJDIR)/src/asm/token.o \ - $(OBJDIR)/src/asm/tokenizer.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../../JSImpl/build/obj/Release/x64/Release/spasm_lib - TARGETDIR = ../../JSImpl/build/bin/Release - TARGET = $(TARGETDIR)/libspasm_lib.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/asm/assembler.o \ - $(OBJDIR)/src/asm/bytecode.o \ - $(OBJDIR)/src/asm/lexer.o \ - $(OBJDIR)/src/asm/symbol.o \ - $(OBJDIR)/src/asm/token.o \ - $(OBJDIR)/src/asm/tokenizer.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src/asm \ diff --git a/spasm/solution/spasm_lib.vcxproj b/spasm/solution/spasm_lib.vcxproj index 71e58a7..8e25b5a 100644 --- a/spasm/solution/spasm_lib.vcxproj +++ b/spasm/solution/spasm_lib.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {3F16CDE1-AB80-8158-F4BE-32FE60685FAD} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\..\JSImpl\build\bin\Debug\ @@ -76,24 +48,12 @@ spasm_lib .lib - - ..\..\JSImpl\build\bin\Debug\ - ..\..\JSImpl\build\obj\Debug\x64\Debug\spasm_lib\ - spasm_lib - .lib - ..\..\JSImpl\build\bin\Release\ ..\..\JSImpl\build\obj\Release\Release\spasm_lib\ spasm_lib .lib - - ..\..\JSImpl\build\bin\Release\ - ..\..\JSImpl\build\obj\Release\x64\Release\spasm_lib\ - spasm_lib - .lib - %(AdditionalOptions) @@ -107,37 +67,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)spasm_lib.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)spasm_lib.lib - - - Windows - true - $(OutDir)spasm_lib.pdb - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)spasm_lib.pdb Caret @@ -147,7 +77,6 @@ $(OutDir)spasm_lib.lib - MachineX64 Windows @@ -168,39 +97,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)spasm_lib.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)spasm_lib.lib - - - Windows - true - $(OutDir)spasm_lib.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)spasm_lib.pdb Caret @@ -210,7 +107,6 @@ $(OutDir)spasm_lib.lib - MachineX64 Windows diff --git a/spasm/solution/sprt.make b/spasm/solution/sprt.make index 6c9b995..502c222 100644 --- a/spasm/solution/sprt.make +++ b/spasm/solution/sprt.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -82,9 +82,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) LIBDEPS += @@ -106,70 +106,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../../JSImpl/build/obj/Debug/x64/Debug/sprt - TARGETDIR = ../../JSImpl/build/bin/Debug - TARGET = $(TARGETDIR)/libsprt.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/spasm.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../../JSImpl/build/obj/Release/x64/Release/sprt - TARGETDIR = ../../JSImpl/build/bin/Release - TARGET = $(TARGETDIR)/libsprt.a - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LIBDEPS += - LDDEPS += - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(AR) -rcs $(TARGET) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/spasm.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src \ diff --git a/spasm/solution/sprt.vcxproj b/spasm/solution/sprt.vcxproj index 55cd65f..235ceb6 100644 --- a/spasm/solution/sprt.vcxproj +++ b/spasm/solution/sprt.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {AE0A9E7C-9A41-9F0D-432E-85102F441B0F} @@ -33,13 +25,6 @@ v142 true - - 16.0 - StaticLibrary - true - v142 - true - 16.0 StaticLibrary @@ -47,28 +32,15 @@ v142 true - - 16.0 - StaticLibrary - false - v142 - true - - - - - - - ..\..\JSImpl\build\bin\Debug\ @@ -76,24 +48,12 @@ sprt .lib - - ..\..\JSImpl\build\bin\Debug\ - ..\..\JSImpl\build\obj\Debug\x64\Debug\sprt\ - sprt - .lib - ..\..\JSImpl\build\bin\Release\ ..\..\JSImpl\build\obj\Release\Release\sprt\ sprt .lib - - ..\..\JSImpl\build\bin\Release\ - ..\..\JSImpl\build\obj\Release\x64\Release\sprt\ - sprt - .lib - %(AdditionalOptions) @@ -107,37 +67,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(OutDir)sprt.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)sprt.lib - - - Windows - true - $(OutDir)sprt.pdb - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(OutDir)sprt.pdb Caret @@ -147,7 +77,6 @@ $(OutDir)sprt.lib - MachineX64 Windows @@ -168,39 +97,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(OutDir)sprt.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(OutDir)sprt.lib - - - Windows - true - $(OutDir)sprt.pdb - true - true - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(OutDir)sprt.pdb Caret @@ -210,7 +107,6 @@ $(OutDir)sprt.lib - MachineX64 Windows diff --git a/spasm/solution/sprt.vcxproj.user b/spasm/solution/sprt.vcxproj.user index f927c73..648ac8e 100644 --- a/spasm/solution/sprt.vcxproj.user +++ b/spasm/solution/sprt.vcxproj.user @@ -4,16 +4,8 @@ WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - diff --git a/spasm/solution/sprun.make b/spasm/solution/sprun.make index 60e73eb..af64163 100644 --- a/spasm/solution/sprun.make +++ b/spasm/solution/sprun.make @@ -50,9 +50,9 @@ ifeq ($(config),debug) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Debug" LIBDEPS += ../../JSImpl/build/bin/Debug/libsprt.a @@ -82,9 +82,9 @@ ifeq ($(config),release) ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++14 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -std=c++17 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Release" LIBDEPS += ../../JSImpl/build/bin/Release/libsprt.a @@ -106,70 +106,6 @@ ifeq ($(config),release) endef endif -ifeq ($(config),debug64) - OBJDIR = ../../JSImpl/build/obj/Debug/x64/Debug/sprun - TARGETDIR = ../../JSImpl/build/bin/Debug - TARGET = $(TARGETDIR)/sprun - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Debug" -m64 - LIBDEPS += ../../JSImpl/build/bin/Debug/libsprt.a - LDDEPS += ../../JSImpl/build/bin/Debug/libsprt.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - -ifeq ($(config),release64) - OBJDIR = ../../JSImpl/build/obj/Release/x64/Release/sprun - TARGETDIR = ../../JSImpl/build/bin/Release - TARGET = $(TARGETDIR)/sprun - DEFINES += -D_SCL_SECURE_NO_WARNINGS - ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) - ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 - ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 - ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Release" -m64 - LIBDEPS += ../../JSImpl/build/bin/Release/libsprt.a - LDDEPS += ../../JSImpl/build/bin/Release/libsprt.a - LDRESP = - LIBS += $(LDDEPS) - EXTERNAL_LIBS += - LINKOBJS = $(OBJECTS) - LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) - OBJRESP = - OBJECTS := \ - $(OBJDIR)/src/main.o \ - - define PREBUILDCMDS - endef - define PRELINKCMDS - endef - define POSTBUILDCMDS - endef -endif - OBJDIRS := \ $(OBJDIR) \ $(OBJDIR)/src \ diff --git a/spasm/solution/sprun.vcxproj b/spasm/solution/sprun.vcxproj index 10bb330..b22971a 100644 --- a/spasm/solution/sprun.vcxproj +++ b/spasm/solution/sprun.vcxproj @@ -5,18 +5,10 @@ Debug Win32 - - Debug - x64 - Release Win32 - - Release - x64 - {FD605F10-6975-87C1-32F7-2A219ECA83F2} @@ -33,13 +25,6 @@ v142 true - - 16.0 - Application - true - v142 - true - 16.0 Application @@ -47,28 +32,15 @@ v142 true - - 16.0 - Application - false - v142 - true - - - - - - - ..\..\JSImpl\build\bin\Debug\ @@ -77,13 +49,6 @@ .exe true - - ..\..\JSImpl\build\bin\Debug\ - ..\..\JSImpl\build\obj\Debug\x64\Debug\sprun\ - sprun - .exe - true - ..\..\JSImpl\build\bin\Release\ ..\..\JSImpl\build\obj\Release\Release\sprun\ @@ -91,13 +56,6 @@ .exe false - - ..\..\JSImpl\build\bin\Release\ - ..\..\JSImpl\build\obj\Release\x64\Release\sprun\ - sprun - .exe - false - %(AdditionalOptions) @@ -111,37 +69,7 @@ Level4 true - stdcpp14 - EditAndContinue - $(IntDir)sprun.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)sprun.pdb - ;%(AdditionalLibraryDirectories) - $(OutDir)sprun.exe - mainCRTStartup - - - - - %(AdditionalOptions) - Disabled - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - EnableFastChecks - MultiThreadedDebugDLL - true - - Level4 - true - stdcpp14 + stdcpp17 EditAndContinue $(IntDir)sprun.compile.pdb Caret @@ -156,7 +84,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)sprun.exe mainCRTStartup - MachineX64 @@ -172,39 +99,7 @@ Level4 true - stdcpp14 - ProgramDatabase - $(IntDir)sprun.compile.pdb - Caret - - - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - true - $(OutDir)sprun.pdb - true - true - ;%(AdditionalLibraryDirectories) - $(OutDir)sprun.exe - mainCRTStartup - - - - - %(AdditionalOptions) - MaxSpeed - _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - true - true - MultiThreadedDLL - true - - Level4 - true - stdcpp14 + stdcpp17 ProgramDatabase $(IntDir)sprun.compile.pdb Caret @@ -221,7 +116,6 @@ ;%(AdditionalLibraryDirectories) $(OutDir)sprun.exe mainCRTStartup - MachineX64 diff --git a/spasm/solution/sprun.vcxproj.user b/spasm/solution/sprun.vcxproj.user index f927c73..648ac8e 100644 --- a/spasm/solution/sprun.vcxproj.user +++ b/spasm/solution/sprun.vcxproj.user @@ -4,16 +4,8 @@ WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - WindowsLocalDebugger - - -- cgit v1.3.1-26-gb76a From 0d0159f70b0f3b23d6a4187d43167ded6b104e0f Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Mon, 2 Nov 2020 09:03:05 +0200 Subject: Support for strings in the AST interpreter --- JSImpl/src/ASTInterpreter.cpp | 114 ++++++++++++++++++++++++++++++++++++------ JSImpl/src/ASTInterpreter.h | 3 +- JSImpl/src/main.cpp | 6 ++- 3 files changed, 105 insertions(+), 18 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/src/ASTInterpreter.cpp b/JSImpl/src/ASTInterpreter.cpp index fd631ca..9503494 100644 --- a/JSImpl/src/ASTInterpreter.cpp +++ b/JSImpl/src/ASTInterpreter.cpp @@ -26,95 +26,166 @@ namespace { return d != 0.0; } + bool operator()(const IPLString&) const + { + return true; + } }; - struct ValueAdd + struct UnsupportedOpReport { + template + ASTInterpreter::ValuePtr operator()(V) const + { + throw std::runtime_error("unsupported operation"); + } + + template + ASTInterpreter::ValuePtr operator()(L, R) const + { + throw std::runtime_error("unsupported operation"); + } + }; + + struct ValueAdd : UnsupportedOpReport + { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double l, double r) const { return MakeValue(l + r); } + + ASTInterpreter::ValuePtr operator()(const IPLString& l, const IPLString& r) const + { + return MakeValue(l + r); + } }; - struct ValueMinus + struct ValueMinus : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double l, double r) const { return MakeValue(l - r); } }; - struct ValueProduct + + struct ValueProduct : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double l, double r) const { return MakeValue(l * r); } }; - struct ValueDivide + + struct ValueDivide : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double l, double r) const { return MakeValue(l / r); } }; - struct ValueLess + + struct ValueLess : UnsupportedOpReport { - ASTInterpreter::ValuePtr operator()(double l, double r) const + using UnsupportedOpReport::operator(); + + template + ASTInterpreter::ValuePtr operator()(const V& l, const V& r) const { return MakeValue(l < r); } }; - struct ValueLessEqual + struct ValueLessEqual : UnsupportedOpReport { - ASTInterpreter::ValuePtr operator()(double l, double r) const + using UnsupportedOpReport::operator(); + + template + ASTInterpreter::ValuePtr operator()(V l, V r) const { return MakeValue(l <= r); } }; - struct ValueGreater + + struct ValueGreater : UnsupportedOpReport { - ASTInterpreter::ValuePtr operator()(double l, double r) const + using UnsupportedOpReport::operator(); + + template + ASTInterpreter::ValuePtr operator()(V l, V r) const { return MakeValue(l > r); } }; - struct ValueGreaterEqual + + struct ValueGreaterEqual : UnsupportedOpReport { - ASTInterpreter::ValuePtr operator()(double l, double r) const + using UnsupportedOpReport::operator(); + + template + ASTInterpreter::ValuePtr operator()(V l, V r) const { return MakeValue(l >= r); } }; - struct ValueEqualEqual + struct ValueEqualEqual : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double left, double right) const { return MakeValue(fabs(left - right) <= 0.0001); } + + ASTInterpreter::ValuePtr operator()(const IPLString& left, const IPLString& right) const + { + return MakeValue(left == right); + } }; - struct ValueBangEqual + struct ValueBangEqual : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double left, double right) const { return MakeValue(fabs(left - right) > 0.0001); } + ASTInterpreter::ValuePtr operator()(const IPLString& left, const IPLString& right) const + { + return MakeValue(left != right); + } }; - struct ValueUnaryMinus + struct ValueUnaryMinus : UnsupportedOpReport { + using UnsupportedOpReport::operator(); + ASTInterpreter::ValuePtr operator()(double v) const { return MakeValue(-v); } }; + struct ValueIncrement { void operator()(double& v) const { v += 1; } + + template + void operator()(V&) const + { + throw std::runtime_error("unsupported operation"); + } }; struct ValueDecrement @@ -123,6 +194,12 @@ namespace { v -= 1; } + + template + void operator()(V&) const + { + throw std::runtime_error("unsupported operation"); + } }; struct ValuePrint @@ -137,6 +214,11 @@ namespace Printer->PrintVariable(Name, value); } + void operator()(const IPLString& value) const + { + Printer->PrintVariable(Name, value); + } + const char* Name; ASTInterpreter::Printer* Printer; }; @@ -281,7 +363,7 @@ void ASTInterpreter::Visit(LiteralUndefined* e) { NOT_IMPLEMENTED; } void ASTInterpreter::Visit(LiteralString* e) { - NOT_IMPLEMENTED; + m_Evaluation.push_back(MakeValue(e->GetValue())); } void ASTInterpreter::Visit(LiteralObject* e) diff --git a/JSImpl/src/ASTInterpreter.h b/JSImpl/src/ASTInterpreter.h index ba797c1..cce6108 100644 --- a/JSImpl/src/ASTInterpreter.h +++ b/JSImpl/src/ASTInterpreter.h @@ -11,7 +11,7 @@ public: ~ASTInterpreter(); - typedef std::variant Value; + typedef std::variant Value; typedef IPLSharedPtr ValuePtr; typedef IPLVector ValueStack; @@ -47,6 +47,7 @@ public: { public: virtual void PrintVariable(const char* name, double value) = 0; + virtual void PrintVariable(const char* name, const IPLString& value) = 0; }; void Print(Printer& p); diff --git a/JSImpl/src/main.cpp b/JSImpl/src/main.cpp index 6ed1122..06421a7 100644 --- a/JSImpl/src/main.cpp +++ b/JSImpl/src/main.cpp @@ -38,7 +38,11 @@ class InterpreterPrinter : public ASTInterpreter::Printer public: virtual void PrintVariable(const char* name, double value) override { - std::cout << name << ": " << value << std::endl; + std::cout << name << ": number : " << value << std::endl; + } + virtual void PrintVariable(const char* name, const IPLString& value) override + { + std::cout << name << ": string : " << value << std::endl; } }; -- cgit v1.3.1-26-gb76a From 407a57944600619a6693dfc4d8c525163bea0e13 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Mon, 2 Nov 2020 09:05:58 +0200 Subject: Fix value of LiteralString nodes --- JSImpl/src/Parser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'JSImpl') diff --git a/JSImpl/src/Parser.cpp b/JSImpl/src/Parser.cpp index 89ba3df..bc4920f 100644 --- a/JSImpl/src/Parser.cpp +++ b/JSImpl/src/Parser.cpp @@ -320,7 +320,11 @@ ExpressionPtr Parser::SimpleExpression() } else if (Match(TokenType::String)) { - return IPLMakeSharePtr(Prev().Lexeme); + const auto& lexeme = Prev().Lexeme; + const auto length = lexeme.length(); + assert(length >= 2); + auto value = lexeme.substr(1, length-2); + return IPLMakeSharePtr(value); } else if (Match(TokenType::Null)) { -- cgit v1.3.1-26-gb76a From 5521d5857b122699120fbd749776dea44ffaa35b Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Mon, 2 Nov 2020 09:06:17 +0200 Subject: Add tests for the AST Interpreter --- JSImpl/test/ASTInterpreterTests.cpp | 58 +++++++++++++++++++++++++++++++++++++ JSImpl/test/Test.make | 6 ++++ JSImpl/test/Test.vcxproj | 2 ++ JSImpl/test/Test.vcxproj.filters | 1 + 4 files changed, 67 insertions(+) create mode 100644 JSImpl/test/ASTInterpreterTests.cpp (limited to 'JSImpl') diff --git a/JSImpl/test/ASTInterpreterTests.cpp b/JSImpl/test/ASTInterpreterTests.cpp new file mode 100644 index 0000000..389f53c --- /dev/null +++ b/JSImpl/test/ASTInterpreterTests.cpp @@ -0,0 +1,58 @@ +#include + +#include +#include +#include +#include +#include + +struct ASTInterpret : ::testing::Test +{ + void Run(const char* program) + { + auto tokens = Tokenize(program).tokens; + auto expr = Parse(tokens); + Interpreter.Run(expr.get()); + } + + bool HasVariable(const char* name) + { + return Interpreter.HasVariable(name); + } + + double ValueAsNumber(const char* name) + { + return std::get(*Interpreter.ModifyVariable(name)); + } + + IPLString ValueAsString(const char* name) + { + return std::get(*Interpreter.ModifyVariable(name)); + } + + ASTInterpreter Interpreter; +}; + +TEST_F(ASTInterpret, VarNumber) +{ + Run("var answer = 6 * 7"); + ASSERT_TRUE(HasVariable("answer")); + ASSERT_DOUBLE_EQ(ValueAsNumber("answer"), 42.0); +} + +TEST_F(ASTInterpret, VarString) +{ + Run("var name = 'John' + ' ' + 'Doe'"); + ASSERT_TRUE(HasVariable("name")); + ASSERT_EQ(ValueAsString("name"), "John Doe"); +} + +TEST_F(ASTInterpret, StringPlusNumberNotSupported) +{ + ASSERT_THROW(Run("var data = 'John Doe' + 42"), std::runtime_error); +} + +TEST_F(ASTInterpret, StringMinusString) +{ + ASSERT_THROW(Run("var data = 'John' - 'Doe'"), std::runtime_error); +} diff --git a/JSImpl/test/Test.make b/JSImpl/test/Test.make index 38d963e..0510fa2 100644 --- a/JSImpl/test/Test.make +++ b/JSImpl/test/Test.make @@ -65,6 +65,7 @@ ifeq ($(config),debug) LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) OBJRESP = OBJECTS := \ + $(OBJDIR)/ASTInterpreterTests.o \ $(OBJDIR)/CodeGenerationTests.o \ $(OBJDIR)/LexerTests.o \ $(OBJDIR)/ParserTests.o \ @@ -102,6 +103,7 @@ ifeq ($(config),release) LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) OBJRESP = OBJECTS := \ + $(OBJDIR)/ASTInterpreterTests.o \ $(OBJDIR)/CodeGenerationTests.o \ $(OBJDIR)/LexerTests.o \ $(OBJDIR)/ParserTests.o \ @@ -178,6 +180,10 @@ $(LDRESP): $(LDDEPS) | $(TARGETDIR) $(OBJDIRS) $(SILENT) echo $^ > $@ endif +$(OBJDIR)/ASTInterpreterTests.o: ASTInterpreterTests.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/. + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + $(OBJDIR)/CodeGenerationTests.o: CodeGenerationTests.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/. @echo $(notdir $<) $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" diff --git a/JSImpl/test/Test.vcxproj b/JSImpl/test/Test.vcxproj index b2e4e83..c33f333 100644 --- a/JSImpl/test/Test.vcxproj +++ b/JSImpl/test/Test.vcxproj @@ -123,6 +123,8 @@ + + diff --git a/JSImpl/test/Test.vcxproj.filters b/JSImpl/test/Test.vcxproj.filters index 412f2b7..50fcfb0 100644 --- a/JSImpl/test/Test.vcxproj.filters +++ b/JSImpl/test/Test.vcxproj.filters @@ -1,6 +1,7 @@ + -- cgit v1.3.1-26-gb76a From fe67e5fb5ce2217a1219f0420a011487b4475761 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Mon, 2 Nov 2020 23:44:28 +0200 Subject: Add tests for comparison variant visitor --- JSImpl/test/ASTInterpreterTests.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'JSImpl') diff --git a/JSImpl/test/ASTInterpreterTests.cpp b/JSImpl/test/ASTInterpreterTests.cpp index 389f53c..e8cf282 100644 --- a/JSImpl/test/ASTInterpreterTests.cpp +++ b/JSImpl/test/ASTInterpreterTests.cpp @@ -56,3 +56,22 @@ TEST_F(ASTInterpret, StringMinusString) { ASSERT_THROW(Run("var data = 'John' - 'Doe'"), std::runtime_error); } + +TEST_F(ASTInterpret, LessNumber) +{ + Run("var answer = 6 < 7"); + ASSERT_TRUE(HasVariable("answer")); + ASSERT_DOUBLE_EQ(ValueAsNumber("answer"), 1.0); +} + +TEST_F(ASTInterpret, LessString) +{ + Run("var name = 'John' < 'Doe'"); + ASSERT_TRUE(HasVariable("name")); + ASSERT_DOUBLE_EQ(ValueAsNumber("name"), 0.0); +} + +TEST_F(ASTInterpret, StringLessNumber) +{ + ASSERT_THROW(Run("var data = 'John' < 42"), std::runtime_error); +} -- cgit v1.3.1-26-gb76a From f4598a0e6deb5fb1a63b4fc125804aa85ca818bd Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Mon, 9 Nov 2020 22:08:58 +0200 Subject: Evaluate empty strings as false --- JSImpl/src/ASTInterpreter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'JSImpl') diff --git a/JSImpl/src/ASTInterpreter.cpp b/JSImpl/src/ASTInterpreter.cpp index 9503494..f550da9 100644 --- a/JSImpl/src/ASTInterpreter.cpp +++ b/JSImpl/src/ASTInterpreter.cpp @@ -26,9 +26,9 @@ namespace { return d != 0.0; } - bool operator()(const IPLString&) const + bool operator()(const IPLString& s) const { - return true; + return !s.empty(); } }; -- cgit v1.3.1-26-gb76a