带有解析/匹配示例的C ++ BNF语法

时间:2012-08-06 08:26:31

标签: c++ parsing grammar bnf

我正在开发一个C ++解析器(用于IDE),所以现在尝试详细了解C ++语法。 虽然我在http://www.nongnu.org/hcb/找到了一个优秀的语法源,但我无法理解它的某些部分 - 尤其是,哪些“真正的”语言结构对应于各种制作。

所以我正在寻找一个C / C ++ BNF语法指南,其中包含与各种制作/规则相匹配的代码示例。有没有?

1 个答案:

答案 0 :(得分:7)

超链接(声称)语法不一定是您可以轻松构建解析器的语法。这取决于你的解析引擎的性质,以及你关心的C和C ++的真实方言(ANSI?GNU?C99?C ++ 11?MS?)。

构建一个有效的C ++解析器真的很难。由于某些原因,请参阅我对Why C++ cannot be parsed with a LR(1) parser?的回答。如果你想要一个“好”的解析器,我建议你使用一个现有的解析器。值得一看的可能是Elsa,因为它是开源的。