python - 如何使用文档示例获得构造树?
问题描述
在文档中,他们展示了这个示例来构建一棵树:
def p_expression_binop(p):
'''expression : expression PLUS expression
| expression MINUS expression
| expression TIMES expression
| expression DIVIDE expression'''
p[0] = ('binary-expression',p[2],p[1],p[3])
def p_expression_group(p):
'expression : LPAREN expression RPAREN'
p[0] = ('group-expression',p[2])
def p_expression_number(p):
'expression : NUMBER'
p[0] = ('number-expression',p[1])
但我的问题是,一旦创建了树,这些节点会去哪里?或者我如何从 p[0] 访问它们?
解决方案
只要确保节点一直传递到顶部(即开始符号的操作),您只需使用调用的返回值即可parse
。
从文档中:
每当解析器减少起始规则并且没有更多可用输入时,解析停止并返回最终值(该值将是放置在 中的最顶层规则
p[0]
)。
推荐阅读
- excel - 如何在 Excel 中使用 COUNTIF 进行条件格式设置
- android - 如何从作为上下文传递给它的类中访问片段方法
- r - 默认情况下如何为 R 中的用户定义函数分配参数?
- node.js - 在单台机器上运行多个 docker 容器的性能
- c# - Checkmarx 扫描中的不安全对象绑定
- amazon-web-services - 如何通过在多个 AWS 实例上运行 Jmeter 测试来对 10 万唯一用户的系统进行负载测试?
- javascript - youtube 视频的自定义 JS,需要声音才能与自动播放一起使用
- python - Pyinstaller - 在 dist 中包含空文件夹
- java - 易失性写入是否也会刷新非易失性写入?
- java - 如何在流批处理流连接中定义连接条件?