Examples of TokensStartState


Examples of org.antlr.v4.runtime.atn.TokensStartState

  public ATN createATN() {
    // BUILD ALL START STATES (ONE PER MODE)
    Set<String> modes = ((LexerGrammar) g).modes.keySet();
    for (String modeName : modes) {
      // create s0, start state; implied Tokens rule node
      TokensStartState startState =
        newState(TokensStartState.class, null);
      atn.modeNameToStartState.put(modeName, startState);
      atn.modeToStartState.add(startState);
      atn.defineDecisionState(startState);
    }

    // INIT ACTION, RULE->TOKEN_TYPE MAP
    atn.ruleToTokenType = new int[g.rules.size()];
    for (Rule r : g.rules.values()) {
      atn.ruleToTokenType[r.index] = g.getTokenType(r.name);
    }

    // CREATE ATN FOR EACH RULE
    _createATN(g.rules.values());

    atn.lexerActions = new LexerAction[indexToActionMap.size()];
    for (Map.Entry<Integer, LexerAction> entry : indexToActionMap.entrySet()) {
      atn.lexerActions[entry.getKey()] = entry.getValue();
    }

    // LINK MODE START STATE TO EACH TOKEN RULE
    for (String modeName : modes) {
      List<Rule> rules = ((LexerGrammar)g).modes.get(modeName);
      TokensStartState startState = atn.modeNameToStartState.get(modeName);
      for (Rule r : rules) {
        if ( !r.isFragment() ) {
          RuleStartState s = atn.ruleToStartState[r.index];
          epsilon(startState, s);
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.