From a1bc422fba026761cd57b3304eea4507bf1900a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Wed, 10 Jul 2019 16:25:06 +0200 Subject: [PATCH] Fix accessing properties and methods in identifiers with EQUAL --- smnp/ast/node/identifier.py | 7 +++++-- smnp/ast/node/relation.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/smnp/ast/node/identifier.py b/smnp/ast/node/identifier.py index 692d6f8..086463e 100644 --- a/smnp/ast/node/identifier.py +++ b/smnp/ast/node/identifier.py @@ -15,8 +15,8 @@ class IdentifierNode(AccessNode, RelationOperatorNode): @classmethod def _parse(cls, input): return Parser.oneOf( - cls.accessParser(), cls.relationParser(), + cls.accessParser(), cls.literalParser() )(input) @@ -26,7 +26,10 @@ class IdentifierNode(AccessNode, RelationOperatorNode): @classmethod def _relationLhs(cls): - return cls.literalParser() + return Parser.oneOf( + cls.accessParser(), + cls.literalParser() + ) @classmethod def literalParser(cls): diff --git a/smnp/ast/node/relation.py b/smnp/ast/node/relation.py index 76f65f3..8903a3f 100644 --- a/smnp/ast/node/relation.py +++ b/smnp/ast/node/relation.py @@ -62,7 +62,7 @@ class RelationOperatorNode(ExpressionNode): return Parser.doAssert(Parser.oneOf( BoolLiteralNode.accessParser(), BoolLiteralNode.literalParser(), - IdentifierNode.literalParser(), + IdentifierNode.parse, StringLiteralNode.accessParser(), StringLiteralNode.literalParser() ), "expression") \ No newline at end of file