Add lists to base items

This commit is contained in:
Bartłomiej Pluta
2019-07-10 21:56:38 +02:00
parent ab990f3071
commit 9dc8d5a650
3 changed files with 126 additions and 77 deletions

View File

@@ -1,4 +1,5 @@
from smnp.ast.node.atom import AtomParser
from smnp.ast.node.list import ListParser
from smnp.ast.node.operator import BinaryOperator
from smnp.ast.parser import Parser
from smnp.token.type import TokenType
@@ -7,5 +8,10 @@ from smnp.token.type import TokenType
class Chain(BinaryOperator):
pass
itemParser = Parser.oneOf(
ListParser,
AtomParser,
)
ChainParser = Parser.leftAssociativeOperatorParser(itemParser, [TokenType.DOT], itemParser, lambda left, op, right: Chain.withValues(left, op, right))
ChainParser = Parser.leftAssociativeOperatorParser(AtomParser, [TokenType.DOT], AtomParser, lambda left, op, right: Chain.withValues(left, op, right))