私は C++ が と のすべてのあいまいさを持つ「奇妙な」ものだと思っていましたが、パーサーを実装しよう<
とした後、ジェネリック型を使用するほぼすべての言語>
を壊す例を見つけたと思います:<
>
f(g<h, i>(j));
これは、構文的にジェネリック メソッド呼び出し ( ) として解釈されるか、2 つの比較の結果をg
与えるものとして解釈される可能性があります。f
そのような言語 (特に、LALR(1) で解析可能と考えられていたJava ) は、この構文上のあいまいさをどのように回避するのでしょうか?
これに対処するための非ハッキー/コンテキストフリーの方法を想像することはできません.LALR(1)解析可能は言うまでもなく、そのような言語がコンテキストフリーになる方法に困惑しています...
(GLR パーサーでさえ、コンテキストなしでこのステートメントの単一の解析を返すことはできないことに注意してください!!)