1
嗨,我正在開發一個進程演算分析器。我已經開發了一個使用setParseAction
和自定義AST類,但現在我想重寫它使用字典和列表。Pyparsing生成組與二進制AST樹
from pyparsing import *
integer = Word(nums).setParseAction(lambda t:int(t[0]))
variable = Word(alphas,exact=1)
operand = Word(alphas.upper(), alphanums+"_")
semicol = Literal(";").suppress()
equals = Literal("=")
expr = operatorPrecedence(operand,
[(".", 2, opAssoc.LEFT),
("+", 2, opAssoc.LEFT),]
)
rmdef = operand + equals + expr
expr_def = rmdef + semicol
test = ["P = A.(B.C + E.D);",
"P = A.B.C;"
]
這將返回:
['P', '=', ['A', '.', [['B', '.', 'C'], '+', ['E', '.', 'D']]]]
['P', '=', ['A', '.', 'B', '.', 'C']]
我的問題是關於第二個例子。我想是,我該怎麼辦?
['P', '=', ['A', '.' [ 'B', '.', 'C' ]]]
有可能添加的非關聯選項pyparsing?在大多數抽象代數中可能發生這樣的事情。 – Darek