Clean code

This commit is contained in:
Bartłomiej Pluta
2019-07-11 19:51:47 +02:00
parent 5a1d568e8e
commit 261530eb10
8 changed files with 53 additions and 92 deletions

View File

@@ -10,12 +10,18 @@ from smnp.token.type import TokenType
class Chain(Valuable):
pass
itemParser = Parser.oneOf(
ListParser,
MapParser,
AtomParser,
)
ChainParser = Parser.leftAssociativeOperatorParser(itemParser, [TokenType.DOT], itemParser,
lambda left, op, right: Chain.withValue(BinaryOperator.withValues(left, op, right)))
def ChainParser(input):
itemParser = Parser.oneOf(
ListParser,
MapParser,
AtomParser,
)
return Parser.leftAssociativeOperatorParser(
itemParser,
[TokenType.DOT],
itemParser,
lambda left, op, right: Chain.withValue(BinaryOperator.withValues(left, op, right))
)(input)