在boost精神语法中使用phoenix :: new_的构造太多了

时间:2017-04-04 12:59:22

标签: boost-spirit boost-phoenix

我对精神框架很陌生,我想问你关于我的计划的问题。

我的想法是将C-编程语言语法实现为精神(链接在这里http://marvin.cs.uidaho.edu/Teaching/CS445/c-Grammar.pdf)。

我正在创建一个包含整个代码的节点树(每个节点都是主CodePart类的子类;例如WhileStatement,IfStatement ......)。

对于每个规则,我使用phoenix :: new_函数创建树的节点;例如:

rule1 = (...)[qi::_val = phoenix::new_<CodePart1>(...)]

我的第一个问题是在解析过程中创建了大量节点;每次尝试的规则都会创建一个新指针,但不会删除(我在构造函数和析构函数中添加了调试消息)。

节点创建想法是正确的,还是我走错路?

感谢您的见解。

0 个答案:

没有答案