ANTLR3 を使用していくつかの C++ コードを解析しようとしています。
C++ でテンプレートを解析したい。しかし、これを解析しようとすると、いくつかの問題が発生しました。
vector<int>(10)
私の解析では、このコードは次のとおりだと考えられていたため、これはテンプレート構文のない正当な入力であることがわかりました。
(vector < int) > (10)
私のパーサーは、これが 2 つの比較演算子であると考えています。
これは理にかなっていますが、私の期待を満たしていませんでした。
実際、このコードは次のように解析する必要があると思いました。
(vector<int>)(10)
演算子の優先順位はどのように処理すればよいですか? どうもありがとうございました!
更新: 最終的な解決策は、述語を使用することです。