@Algorithm(lr, 1) // This grammar is provided in Denny and Malloy's article. It has the interesting // property that, if one tries to build LALR(1) tables with conflict resolution, the // resulting parser does not have the same behaviour as the one generated by canonical // LR(1) with conflict resolution. The IELR algorithm should be correct in this regard. Start: A Node1 A | A Node2 B | A Node3 C | B Node1 B | B Node2 A | B Node3 A Node1: A A Node2: A A Node3: A A @conflict(reduce(Node2, 0) > reduce(Node3, 0)) // This fails under LALR(1), but succeeds here ! @example(A A A B)