diff options
| Commit | 0c666088bdf8ad15bbdfbc687cef38532dff96b4 (patch) | |
|---|---|---|
| Author | 2018-10-14 18:27:53 +0300 | |
| Committer | 2018-10-14 18:27:53 +0300 | |
| Files | 8e77300f1deeb3bc3b753542716de6b7d9028760 /JSImpl/src/Expression.h | |
| IPL-0c666088bdf8ad15bbdfbc687cef38532dff96b4.tar IPL-0c666088bdf8ad15bbdfbc687cef38532dff96b4.tar.gz IPL-0c666088bdf8ad15bbdfbc687cef38532dff96b4.zip | ||
| Parent | 370d2afe025f899caab7829407363a37a37093b2 (diff) | |
Split expression definitions in different file.
1 files changed, 2 insertions, 102 deletions
| -rw-r--r-- | JSImpl/src/Expression.h | 104 |
diff --git a/JSImpl/src/Expression.h b/JSImpl/src/Expression.h index 30405f7..01c9b68 100644 --- a/JSImpl/src/Expression.h +++ b/JSImpl/src/Expression.h @@ -3,6 +3,7 @@ #include "CommonTypes.h" #include "Lexer.h" #include "ExpressionVisitor.h" +#include "ExpressionDefinitions.h" class Expression : public IPLEnableShared<Expression> { @@ -40,108 +41,7 @@ class Expression : public IPLEnableShared<Expression> bool m_dummy; \ }; - -#define NO_MEMBERS(MACRO) - -#define LITERAL_BOOLEAN_MEMBERS(MACRO)\ - MACRO(bool, Value, false) - -#define LITERAL_NUMBER_MEMBERS(MACRO)\ - MACRO(double, Value, 0.0) - -#define LITERAL_STRING_MEMBERS(MACRO)\ - MACRO(IPLString, Value, "") - -#define BINARY_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Left, nullptr)\ - MACRO(ExpressionPtr, Right, nullptr)\ - MACRO(TokenType, Operator, TokenType::Invalid) - -#define UNARY_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLSharedPtr<Expression>, Expr, nullptr)\ - 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, "") - -#define VARIABLEDEFINITION_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLString, Name, "")\ - MACRO(ExpressionPtr, Value, nullptr) - -#define LIST_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLVector<ExpressionPtr>, Values, IPLVector<ExpressionPtr>()) - -#define BLOCK_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLVector<ExpressionPtr>, Values, IPLVector<ExpressionPtr>()) - -#define LABELED_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLString, Identifier, "")\ - MACRO(ExpressionPtr, Statement, nullptr) - -#define IF_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Condition, nullptr)\ - MACRO(ExpressionPtr, IfStatement, nullptr)\ - MACRO(ExpressionPtr, ElseStatement, nullptr) - -#define CASE_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Condition, nullptr)\ - MACRO(ExpressionPtr, Body, nullptr) - -#define SWITCH_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Condition, nullptr)\ - MACRO(IPLVector<ExpressionPtr>, Cases, IPLVector<ExpressionPtr>())\ - MACRO(ExpressionPtr, DefaultCase, nullptr) - -#define WHILE_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Condition, nullptr)\ - MACRO(ExpressionPtr, Body, nullptr)\ - MACRO(bool, DoWhile, false) - -#define FOR_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Initialization, nullptr)\ - MACRO(ExpressionPtr, Condition, nullptr)\ - MACRO(ExpressionPtr, Iteration, nullptr)\ - MACRO(ExpressionPtr, Body, nullptr) - -#define FUNCTION_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLString, Name, "")\ - MACRO(IPLVector<IPLString>, ArgumentsIdentifiers, IPLVector<IPLString>())\ - MACRO(ExpressionPtr, Body, nullptr) - -#define TOP_EXPRESSION_MEMBERS(MACRO)\ - MACRO(IPLVector<ExpressionPtr>, Values, IPLVector<ExpressionPtr>()) - -#define EMPTY_EXPRESSION_MEMBERS(MACRO) - -#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(BinaryExpression, Expression, BINARY_EXPRESSION_MEMBERS)\ - MACRO(UnaryExpression, Expression, UNARY_EXPRESSION_MEMBERS)\ - MACRO(IdentifierExpression, Expression, IDENTIFIER_EXPRESSION_MEMBERS)\ - MACRO(VariableDefinitionExpression, Expression, VARIABLEDEFINITION_EXPRESSION_MEMBERS)\ - MACRO(ListExpression, Expression, LIST_EXPRESSION_MEMBERS)\ - MACRO(BlockStatement, Expression, BLOCK_EXPRESSION_MEMBERS)\ - MACRO(LabeledStatement, Expression, LABELED_EXPRESSION_MEMBERS)\ - MACRO(IfStatement, Expression, IF_EXPRESSION_MEMBERS)\ - MACRO(SwitchStatement, Expression, SWITCH_EXPRESSION_MEMBERS)\ - MACRO(CaseStatement, Expression, CASE_EXPRESSION_MEMBERS)\ - MACRO(WhileStatement, Expression, WHILE_EXPRESSION_MEMBERS)\ - MACRO(ForStatement, Expression, FOR_EXPRESSION_MEMBERS)\ - MACRO(FunctionDeclaration, Expression, FUNCTION_EXPRESSION_MEMBERS)\ - MACRO(TopStatements, Expression, TOP_EXPRESSION_MEMBERS)\ - MACRO(EmptyExpression, Expression, EMPTY_EXPRESSION_MEMBERS) - EXPRESSION_DEFINITION_ITERATOR(GENERATE_EXPRESSION); +#undef GENERATE_EXPRESSION inline ExpressionPtr CreateEmptyExpression() { return IPLMakeSharePtr<EmptyExpression>(); } |
