我对pyparsing和Python非常陌生,所以这是一个警告,我可能做了一些非常错误的事情。在
我要做的是构建一个SQL解析器,并用节点构建树,然后我可以遍历这些节点。在
我试图从yacc/bison grammer文件中复制这种东西:
| scalar_exp '^' scalar_exp
{ $$ = new QgsSearchTreeNode(QgsSearchTreeNode::opPOW, $1, $3);
joinTmpNodes($$,$1,$3); }
这是我在Python中的代码:
^{pr2}$注意:它是select的精简版_分析器.py保罗·麦奎尔
我想我必须使用setParseAction,但是每次我调用的方法中的标记总是没有。我得到了完整的字符串和位置,但没有令牌。在
调用setParseAction来复制yacc/bison逻辑的最佳位置在哪里?在
OperatorReceidence操作列表中的第一个条目应该是右关联的,而不是左的。在进行了更改(并启用了packrat解析)之后,这个解析器开始为我工作。在
但是对于构建语法树,我将让pyparsing为您构建树。将解析操作附加到不同的语法元素,这些元素返回将在setObject中创建的类的实例。比如:
相关问题 更多 >
编程相关推荐