我曾经认为C ++是“怪异”的一个与所有与歧义<
和>
,而是试图实现一个解析器我想我找到打破只是使用每一种语言的例子后, <
和>
的泛型类型:
f(g<h, i>(j));
这可以要么被语法解释为一个通用的方法调用( g
),或者它可能被解释为给出f
两个比较的结果。
如何这样的语言(尤其是Java的, 而且我认为他应该是LALR(1)-parsable? )解决这个歧义?
我不能想象处理这个问题的任何非哈克/上下文的方式,和我在任何这样的语言如何能上下文困惑,更不用说LALR(1)-parsable ...
(值得一提的,即使是GLR分析器不能与没有上下文这一说法返回一个解析!)