module gamma.parsgen.lalr1.LR1ParserGenerator; import gamma.grammar.Grammar; import gamma.parsgen.lalr1.LR1ConflictResolver; import gamma.parsgen.lalr1.OrderedLR1Tables; public interface LR1ParserGenerator { /** * Computes ordered *LR(1) tables. Potential conflicts are resolved * by the given <code>lr1ConflictResolver</code>. The resulting tables * represent a deterministic parser. * Problems are marked via <code>symbolNode.position().markError(...)</code> * (where <code>symbolNode</code> is an appropriate symbol occurence of the * <code>grammar</code>. * If no parser could be computed, <code>null</code> is returned. */ OrderedLR1Tables computeParser(Grammar grammar, LR1ConflictResolver lr1ConflictResolver); }