Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / src / ExpressionDefinitions.h
diff options
context:
space:
mode:
Commit6ba49b30cf1e33fb0dd6782a404ec34b7964cb59 (patch)
Author
 Martin Dobrev <martindobrev0@gmail.com>
2020-11-24 18:06:26 +0200
Committer
 GitHub <noreply@github.com>
2020-11-24 18:06:26 +0200
Filesa89b314c4d0b942d2350b9adbd741d6fa3375bfb /JSImpl/src/ExpressionDefinitions.h
IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.tar
IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.tar.gz
IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.zip
Parent4e883334a14ff22f12765204d6bf223d07c0298f (diff)
Feature/object getters (#101)
* Add member access expression. * Implement property getters. * Add test for property getters. * Add test for property setter. * Implement while and do-while Signed-off-by: Martin Dobrev <martindobrev0@gmail.com> * Add implement byte code generation for break/continue in for/while.
1 files changed, 11 insertions, 3 deletions
-rw-r--r--JSImpl/src/ExpressionDefinitions.h14
diff --git a/JSImpl/src/ExpressionDefinitions.h b/JSImpl/src/ExpressionDefinitions.h
index 1fad948..33f13b3 100644
--- a/JSImpl/src/ExpressionDefinitions.h
+++ b/JSImpl/src/ExpressionDefinitions.h
@@ -79,8 +79,13 @@
MACRO(IPLVector<ExpressionPtr>, Values, IPLVector<ExpressionPtr>())
#define CALL_EXPRESSION_MEMBERS(MACRO)\
- MACRO(ExpressionPtr, Identifier, ExpressionPtr())\
- MACRO(ExpressionPtr, Arguments, ExpressionPtr())
+ MACRO(ExpressionPtr, ObjectOrCall, ExpressionPtr())\
+ MACRO(ExpressionPtr, Member, ExpressionPtr())
+
+#define MEMBER_ACCESS_EXPRESSION_MEMBERS(MACRO)\
+ MACRO(IPLString, Name, "")
+
+#define MEMBER_NO_MEMBERS(MACRO)
#define EXPRESSION_DEFINITION_ITERATOR(MACRO)\
MACRO(LiteralNull, NO_MEMBERS)\
@@ -105,4 +110,7 @@
MACRO(FunctionDeclaration, FUNCTION_EXPRESSION_MEMBERS)\
MACRO(TopStatements, TOP_EXPRESSION_MEMBERS)\
MACRO(EmptyExpression, NO_MEMBERS)\
- MACRO(CallExpression, CALL_EXPRESSION_MEMBERS)
+ MACRO(Call, CALL_EXPRESSION_MEMBERS)\
+ MACRO(MemberAccess, MEMBER_ACCESS_EXPRESSION_MEMBERS)\
+ MACRO(Break, MEMBER_NO_MEMBERS)\
+ MACRO(Continue, MEMBER_NO_MEMBERS)