From 8b72dcb9a466dd0a40d43c92cc7f1adf6858b740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Fri, 5 Jul 2019 21:31:38 +0200 Subject: [PATCH] Add support for accessing properties to strings and notes --- smnp/newast/node/note.py | 13 ++++++++----- smnp/newast/node/string.py | 14 ++++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/smnp/newast/node/note.py b/smnp/newast/node/note.py index 4bb2353..fb6bcf0 100644 --- a/smnp/newast/node/note.py +++ b/smnp/newast/node/note.py @@ -1,10 +1,13 @@ -from smnp.newast.node.expression import ExpressionNode -from smnp.newast.parser import Parser +from smnp.newast.node.access import AccessNode +from smnp.newast.node.literal import LiteralNode from smnp.token.type import TokenType -class NoteLiteralNode(ExpressionNode): +class NoteLiteralNode(LiteralNode, AccessNode): + def __init__(self, pos): + super().__init__(pos) + del self.children[1] @classmethod - def _parse(cls, input): - return Parser.terminalParser(TokenType.NOTE, lambda v, pos: NoteLiteralNode.withValue(v, pos))(input) \ No newline at end of file + def _getTokenType(cls): + return TokenType.NOTE \ No newline at end of file diff --git a/smnp/newast/node/string.py b/smnp/newast/node/string.py index 938a2ce..851ee8e 100644 --- a/smnp/newast/node/string.py +++ b/smnp/newast/node/string.py @@ -1,11 +1,13 @@ -from smnp.newast.node.expression import ExpressionNode -from smnp.newast.parser import Parser +from smnp.newast.node.access import AccessNode +from smnp.newast.node.literal import LiteralNode from smnp.token.type import TokenType -class StringLiteralNode(ExpressionNode): +class StringLiteralNode(LiteralNode, AccessNode): + def __init__(self, pos): + super().__init__(pos) + del self.children[1] @classmethod - def _parse(cls, input): - createNode = lambda v, pos: StringLiteralNode.withValue(pos, v[1:len(v)-1]) - return Parser.terminalParser(TokenType.STRING, createNode)(input) \ No newline at end of file + def _getTokenType(cls): + return TokenType.STRING \ No newline at end of file