internal static Dictionary<Nonterminal, ICollection<Production>> BuildLookupTable(IEnumerable<Production> productions) {
Dictionary<Nonterminal, ICollection<Production>> table;
table = Helpers.BuildLookup(
() => productions,
(p) => p.Lhs,
(p) => p,
() => (ICollection<Production>)new List<Production>(),
(l, p) => l.Add(p)
);
return table;
}
}