0

我正在尝试使用 ANTLR3 来解析一些 C++ 代码。

我想用 C++ 解析模板。但是当我试图解析这个时我遇到了一些麻烦:

vector<int>(10)

我发现这是一个没有模板语法的合法输入,因为我的解析认为这段代码只是:

(vector < int) > (10)

我的解析器认为这只是两个比较运算符。

这确实有道理,但没有达到我的期望。

实际上,我认为这段代码应该以这种方式解析:

(vector<int>)(10)

我应该如何处理运算符优先级?非常感谢你!

更新:最终的解决方案是使用谓词。

4

1 回答 1

0

< type >在编写表达式规则时,您可能应该以比运算符更高的优先级进行解析。这样,解析器首先尝试完成此规则,然后再查找其他内容。

于 2013-04-29T15:46:59.477 回答