private lalr.StateCollection CreateParserStates(CGTContent content) { rules = CreateRules(content); lalr.StateCollection states = new lalr.StateCollection(); foreach (LALRStateRecord record in content.LALRStateTable) { lalr.State state = new lalr.State(record.Index); states.Add(state); } foreach (LALRStateRecord record in content.LALRStateTable) { lalr.State state = states[record.Index]; foreach (ActionSubRecord subRecord in record.ActionSubRecords) { Action action = ActionFactory.CreateAction(subRecord, states, symbols, rules); state.Actions.Add(action); } } return(states); }
/// <summary> /// Creates a new LALR parser. /// </summary> /// <returns></returns> public LALRParser CreateNewParser() { lalr.State startState = parserStates[content.InitialStates.LALR]; return(new LALRParser(CreateNewTokenizer(), parserStates, startState, Symbols)); }
private lalr.StateCollection CreateParserStates(CGTContent content) { rules = CreateRules(content); lalr.StateCollection states = new lalr.StateCollection(); foreach (LALRStateRecord record in content.LALRStateTable) { lalr.State state = new lalr.State(record.Index); states.Add(state); } foreach (LALRStateRecord record in content.LALRStateTable) { lalr.State state = states[record.Index]; foreach (ActionSubRecord subRecord in record.ActionSubRecords) { Action action = ActionFactory.CreateAction(subRecord, states, symbols, rules); state.Actions.Add(action); } } return states; }