相关疑难解决方法(0)

为什么不能用LR(1)解析器解析C++?

我正在阅读解析器和解析器生成器,并在维基百科的LR解析页面中找到了这个语句:

可以使用LR解析器的一些变体来解析许多编程语言.一个值得注意的例外是C++.

为什么会这样?C++的哪个特定属性导致无法使用LR解析器进行解析?

使用谷歌,我只发现C可以用LR(1)完美解析,但C++需要LR(∞).

c++ grammar parsing formal-languages

147
推荐指数
6
解决办法
3万
查看次数

C++解析器如何区分比较和模板实例化?

在C++中,符号"<"和">"用于比较以及表示模板参数.因此,代码片段

[...] Foo < Bar > [...]
Run Code Online (Sandbox Code Playgroud)

可能被解释为以下两种方式中的任何一种:

  • Foo类型的对象,带有模板参数Bar
  • 将Foo与Bar进行比较,然后将结果与下一步的结果进行比较

C++编译器的解析器如何有效地决定这两种可能性?

c++ compiler-construction syntax parsing

19
推荐指数
3
解决办法
1342
查看次数