我已经尝试使用此代码并将其转换为我正在从事的用于编程语言处理的项目,但我遇到了简化版本的问题:
op = oneOf( '+ - / *')
lparen, rparen = Literal('('), Literal(')')
expr = Forward()
expr << ( Word(nums) | ( expr + op + expr ) | ( lparen + expr + rparen) )
我已经对这个简单的设置进行了许多不同的修改。通常,尝试类似:
print(expr.parseString('1+2'))
将返回['1']
。当我陷入深度递归时,例如:
print(expr.parseString('(1+2)'))
关于我无法解析任意算术表达式的简单递归,我缺少什么,例如1+(2 * 3-(4*(5+6)-(7))...
?