【发布时间】:2011-10-17 19:36:37
【问题描述】:
我正在使用 boost::spirit 编写解析器,词法分析器
这就是我想要做的。我想将函数和类与它们使用的变量一起放入数据结构中。所以我想知道最好的方法是什么。
boost::spirit 的哪些部分最适合用于此目的?
我想使用的语言是 C/C++/C#/Objective C/Objective C++。
我写它的语言也是 C++,只是我不擅长我知道的其他语言
【问题讨论】:
-
这是 5 种不同的语言,后四种语言对已经不太破旧的语言进行了非常广泛且相互排斥的扩展。最重要的是,其中至少有两个是出了名的难以解析,甚至解析 C 也不是你交给初学者的任务。基本上,如果你不得不问这个问题,你应该切换到一个更简单的项目。从解析的角度来看,Lisp(S 表达式)相当简单(但绝不是微不足道的)。
-
我会调查一下,不过我想使用 boost::spirit。
-
就像 delnan 说的,如果你不得不问,那么这可能是你的头。但是,我非常喜欢手工制作解析器或使用 ANTLR。
-
不要忘记预处理。如果你真的很开心,当然还有 Boost Wave :)
-
简短的回答是“无”。 Spirit 只是不适合这些语言(如果您愿意,反之亦然)。一个更合理的起点是clang。
标签: c++ parsing boost lexer boost-spirit