public static GotoCommand Of(CoreTransition transition, IDictionary <Core, int> coreToIndex) => transition.Symbol is NonTerminal symbol ? new GotoCommand(coreToIndex[transition.From], symbol, coreToIndex[transition.To])
public static ShiftCommand Of(CoreTransition transition, IDictionary <Core, int> coreToIndex) => transition.Symbol is Terminal terminal ? new ShiftCommand(coreToIndex[transition.From], terminal, coreToIndex[transition.To])