我对精神框架很陌生,我想问你关于我的计划的问题。
我的想法是将C-编程语言语法实现为精神(链接在这里http://marvin.cs.uidaho.edu/Teaching/CS445/c-Grammar.pdf)。
我正在创建一个包含整个代码的节点树(每个节点都是主CodePart类的子类;例如WhileStatement,IfStatement ......)。
对于每个规则,我使用phoenix :: new_函数创建树的节点;例如:
rule1 = (...)[qi::_val = phoenix::new_<CodePart1>(...)]
我的第一个问题是在解析过程中创建了大量节点;每次尝试的规则都会创建一个新指针,但不会删除(我在构造函数和析构函数中添加了调试消息)。
节点创建想法是正确的,还是我走错路?
感谢您的见解。