18 lines
514 B
Python
18 lines
514 B
Python
from smnp.ast.node.factor import FactorParser
|
|
from smnp.ast.node.operator import BinaryOperator
|
|
from smnp.ast.node.valuable import Valuable
|
|
from smnp.ast.parser import Parser
|
|
from smnp.token.type import TokenType
|
|
|
|
|
|
class Term(Valuable):
|
|
pass
|
|
|
|
|
|
def TermParser(input):
|
|
return Parser.leftAssociativeOperatorParser(
|
|
FactorParser,
|
|
[TokenType.ASTERISK, TokenType.SLASH],
|
|
FactorParser,
|
|
lambda left, op, right: Term.withValue(BinaryOperator.withValues(left, op, right))
|
|
)(input) |