Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 /// <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));
 }
Exemplo n.º 3
0
        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;
        }