【发布时间】:2018-10-08 20:16:56
【问题描述】:
我尝试将 this code 转换为我正在从事的用于编程语言处理的项目,但我遇到了简化版本的问题:
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))...)的简单递归,我缺少什么?
【问题讨论】:
标签: python pyparsing recursive-descent