From d51e7e38448e24123af13f0fa2682b861a64f964 Mon Sep 17 00:00:00 2001 From: martin dobrev Date: Fri, 2 Nov 2018 00:12:31 +0200 Subject: Add many fixes to parser. Introduce Object Literal and Call expression. Add more test for parser. Little enhance around interpreter. --- JSImpl/src/ExpressionDefinitions.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'JSImpl/src/ExpressionDefinitions.h') diff --git a/JSImpl/src/ExpressionDefinitions.h b/JSImpl/src/ExpressionDefinitions.h index b1b2595..edf344b 100644 --- a/JSImpl/src/ExpressionDefinitions.h +++ b/JSImpl/src/ExpressionDefinitions.h @@ -11,6 +11,9 @@ #define LITERAL_STRING_MEMBERS(MACRO)\ MACRO(IPLString, Value, "") +#define LITERAL_OBJECT_MEMBERS(MACRO)\ + MACRO(IPLVector, Values, IPLVector()) + #define BINARY_EXPRESSION_MEMBERS(MACRO)\ MACRO(ExpressionPtr, Left, nullptr)\ MACRO(ExpressionPtr, Right, nullptr)\ @@ -21,12 +24,6 @@ MACRO(TokenType, Operator, TokenType::Invalid)\ MACRO(bool, Suffix, false) -#define LITERAL_EXPRESSION_MEMBERS(MACRO)\ - MACRO(double, NumValue, 0.)\ - MACRO(IPLString, StringValue, "")\ - MACRO(bool, BooleanValue, false)\ - MACRO(LiteralType, Type, LiteralType::Undefined) - #define IDENTIFIER_EXPRESSION_MEMBERS(MACRO)\ MACRO(IPLString, Name, "") @@ -77,12 +74,17 @@ #define TOP_EXPRESSION_MEMBERS(MACRO)\ MACRO(IPLVector, Values, IPLVector()) +#define CALL_EXPRESSION_MEMBERS(MACRO)\ + MACRO(ExpressionPtr, Identifier, ExpressionPtr())\ + MACRO(ExpressionPtr, Arguments, ExpressionPtr()) + #define EXPRESSION_DEFINITION_ITERATOR(MACRO)\ MACRO(LiteralNull, Expression, NO_MEMBERS)\ MACRO(LiteralUndefined, Expression, NO_MEMBERS)\ MACRO(LiteralBoolean, Expression, LITERAL_BOOLEAN_MEMBERS)\ MACRO(LiteralNumber, Expression, LITERAL_NUMBER_MEMBERS)\ MACRO(LiteralString, Expression, LITERAL_STRING_MEMBERS)\ + MACRO(LiteralObject, Expression, LITERAL_OBJECT_MEMBERS)\ MACRO(BinaryExpression, Expression, BINARY_EXPRESSION_MEMBERS)\ MACRO(UnaryExpression, Expression, UNARY_EXPRESSION_MEMBERS)\ MACRO(IdentifierExpression, Expression, IDENTIFIER_EXPRESSION_MEMBERS)\ @@ -97,4 +99,5 @@ MACRO(ForStatement, Expression, FOR_EXPRESSION_MEMBERS)\ MACRO(FunctionDeclaration, Expression, FUNCTION_EXPRESSION_MEMBERS)\ MACRO(TopStatements, Expression, TOP_EXPRESSION_MEMBERS)\ - MACRO(EmptyExpression, Expression, NO_MEMBERS) + MACRO(EmptyExpression, Expression, NO_MEMBERS)\ + MACRO(CallExpression, Expression, CALL_EXPRESSION_MEMBERS) -- cgit v1.3.1-23-gd82d