我正在使用boost :: spirit来编写解析器,lexer
这是我想做的。我想用它们使用的变量将函数和类放入数据结构中。所以我想知道最好的方法是什么。
和boost :: spirit的哪些部分最适合用于此目的?
我想要使用它的语言是C / C ++ / C#/ Objective C / Objective C ++。
我写的语言也是C ++,但我不熟悉我知道的其他语言
答案 0 :(得分:1)
Spirit是一个很好的工具,但它不是所有解析任务的最佳工具。而对于解析实际C ++的任务来说,它非常糟糕。
Spirit擅长于中小型解析任务。语言相当规则,标准化的语法等等。 C语言和C语言通常过于复杂而无法处理。并不是你不能为他们编写Spirit解析代码。鉴于Spirit的一般设计,这样做很难建立和维护。
如果你想要一个好的C或C ++(或其Objective变体)解析器,我建议你下载Clang。它也是一个编译器,但它的设计是模块化的,所以你只需要链接到它的解析部分。