Пример #1
0
  public DFA toDFA() {
    StateSet start = startState();
    // System.out.println("start:" + start);
    DFA dfa = new DFA(new DFA.State(start)); // 构建DFA
    Stack<StateSet> frontier = new Stack<StateSet>();
    frontier.add(start);
    HashSet<DFA.State> seen = new HashSet<DFA.State>();
    while (!frontier.isEmpty()) {
      StateSet current = frontier.pop();
      HashSet<Character> inputs = getInputs(current);
      if (inputs == null) continue;
      for (char input : inputs) {
        StateSet newState = nextState(current, input);
        if (!seen.contains(newState)) {
          frontier.add(newState);
          seen.add(new DFA.State(newState));
          if (isFinal(newState)) {
            dfa.addFinalState(new DFA.State(newState));
          }
        }
        dfa.addTransition(new DFA.State(current), input, new DFA.State(newState));
      }

      // 处理任意转移
      StateSet anyStates = new StateSet(n, k);
      for (int state = current.table.nextSetBit(0);
          state >= 0;
          state = current.table.nextSetBit(state + 1)) {
        anyStates.add(state);
      }
      dfa.setDefaultTransition(new DFA.State(current), new DFA.State(anyStates));
    }
    return dfa;
  }
Пример #2
0
 public static void main(String[] args) {
   String z = in.next();
   int k = in.nextInt();
   int s = in.nextInt() - 1;
   int l = in.nextInt();
   int[] t = new int[l];
   for (int i = 0; i < l; ++i) {
     t[i] = in.nextInt() - 1;
   }
   int[][] f = new int[z.length()][k];
   for (int i = 0; i < k; ++i) {
     for (int j = 0; j < z.length(); ++j) {
       f[j][i] = in.nextInt() - 1;
     }
   }
   boolean[][] g = new boolean[z.length()][k];
   for (int i = 0; i < k; ++i) {
     for (int j = 0; j < z.length(); ++j) {
       g[j][i] = (in.nextInt() == 0);
     }
   }
   DFA dfa = new DFA(z.toCharArray(), k, s, t, f, g);
   int n = in.nextInt();
   out.println(dfa.count(n));
   out.flush();
 }
Пример #3
0
 static {
   int numStates = DFA12_transitionS.length;
   DFA12_transition = new short[numStates][];
   for (int i = 0; i < numStates; i++) {
     DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
   }
 }
Пример #4
0
  static {
    long initStart = System.currentTimeMillis();

    String cacheName = "dfaObj_v2.cache";
    DFA fa = SerializeUtil.read(cacheName);
    if (fa == null) {
      dfa = DFA.create(NodeCreater.create(DataCache.nameMap.keySet()));
      SerializeUtil.write(dfa, cacheName);
    } else {
      dfa = fa;
    }
    System.out.println("DFA init cost:" + (System.currentTimeMillis() - initStart));
  }
Пример #5
0
 public static DFA getDFA(Long id) {
   DFA res = dfaMap.get(id);
   if (res == null) {
     synchronized (DFAInstance.class) {
       res = dfaMap.get(id);
       if (res == null) {
         Set<String> names = getNodeNames(id);
         if (names.size() > 0) {
           res = DFA.create(NodeCreater.create(names));
         } else {
           res = PRESENT;
         }
         dfaMap.put(id, res);
       }
     }
   }
   return res;
 }
Пример #6
0
 public static final void main(final String[] array) {
   try {
     final Scanner scanner = new Scanner(System.in);
     final DFA dfa = new DFA();
     dfa.read(scanner);
     final DFA dfa2 = new DFA();
     dfa2.read(scanner);
     final HashSet set = new HashSet<String>(dfa.alphabet);
     final HashSet set2 = new HashSet<String>(dfa2.alphabet);
     final HashSet set3 = new HashSet<String>(set);
     set3.removeAll(set2);
     if (set3.size() > 0) {
       System.out.println(
           "Your alphabet lacks the following symbol(s): "
               + formatString(new ArrayList<String>((Collection<? extends String>) set3)));
       System.exit(1);
     }
     final HashSet set4 = new HashSet<String>(set2);
     set4.removeAll(set);
     if (set4.size() > 0) {
       System.out.println(
           "Your alphabet contains the following symbol(s) that it should not: "
               + formatString(new ArrayList<String>((Collection<? extends String>) set4)));
       System.exit(1);
     }
     final List<String> anyString = dfa.diff(dfa2).anyString();
     if (anyString != null) {
       System.out.println("The following word is NOT matched by your DFA, but it SHOULD be:");
       System.out.println(formatString(anyString));
       System.exit(1);
     } else {
       final List<String> anyString2 = dfa2.diff(dfa).anyString();
       if (anyString2 != null) {
         System.out.println("The following word IS matched by your DFA, but it should NOT be:");
         System.out.println(formatString(anyString2));
         System.exit(1);
       } else {
         System.out.println("Correct.");
         System.exit(0);
       }
     }
   } catch (Error error) {
     System.err.println(error);
     System.exit(1);
   }
 }
Пример #7
0
 public synchronized DFA get() {
   if (dfa123 == this) {
     Set<String> nameSet = new HashSet<String>();
     for (Map.Entry<Long, List<CityToken>> e : DataCache.pIdMap.entrySet()) {
       for (CityToken ct : e.getValue()) {
         if (ct.getLevel() <= 3) {
           nameSet.add(ct.getName());
         } else {
           break;
         }
       }
     }
     final DFA dfa = DFA.create(NodeCreater.create(nameSet));
     dfa123 =
         new DFASupplier() {
           public DFA get() {
             return dfa;
           }
         };
     return dfa;
   }
   return dfa123.get();
 }
Пример #8
0
@SuppressWarnings("all")
public class InternalXtextLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__29 = 29;
  public static final int T__28 = 28;
  public static final int T__27 = 27;
  public static final int T__26 = 26;
  public static final int T__25 = 25;
  public static final int T__24 = 24;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int T__21 = 21;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int T__19 = 19;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 6;
  public static final int T__42 = 42;
  public static final int T__43 = 43;
  public static final int T__40 = 40;
  public static final int T__41 = 41;
  public static final int T__46 = 46;
  public static final int T__47 = 47;
  public static final int T__44 = 44;
  public static final int T__45 = 45;
  public static final int T__48 = 48;
  public static final int T__49 = 49;
  public static final int RULE_SL_COMMENT = 8;
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int RULE_STRING = 5;
  public static final int T__32 = 32;
  public static final int T__33 = 33;
  public static final int T__34 = 34;
  public static final int T__35 = 35;
  public static final int T__36 = 36;
  public static final int T__37 = 37;
  public static final int T__38 = 38;
  public static final int T__39 = 39;
  public static final int RULE_WS = 9;

  // delegates
  // delegators

  public InternalXtextLexer() {
    ;
  }

  public InternalXtextLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalXtextLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "InternalXtext.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:11:7: ( '?' )
      // InternalXtext.g:11:9: '?'
      {
        match('?');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:12:7: ( '*' )
      // InternalXtext.g:12:9: '*'
      {
        match('*');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:13:7: ( '+' )
      // InternalXtext.g:13:9: '+'
      {
        match('+');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:14:7: ( '=' )
      // InternalXtext.g:14:9: '='
      {
        match('=');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:15:7: ( '+=' )
      // InternalXtext.g:15:9: '+='
      {
        match("+=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:16:7: ( 'false' )
      // InternalXtext.g:16:9: 'false'
      {
        match("false");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:17:7: ( 'true' )
      // InternalXtext.g:17:9: 'true'
      {
        match("true");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:18:7: ( '?=' )
      // InternalXtext.g:18:9: '?='
      {
        match("?=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:19:7: ( 'grammar' )
      // InternalXtext.g:19:9: 'grammar'
      {
        match("grammar");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:20:7: ( 'with' )
      // InternalXtext.g:20:9: 'with'
      {
        match("with");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:21:7: ( ',' )
      // InternalXtext.g:21:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:22:7: ( '(' )
      // InternalXtext.g:22:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:23:7: ( ')' )
      // InternalXtext.g:23:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:24:7: ( '.' )
      // InternalXtext.g:24:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:25:7: ( 'generate' )
      // InternalXtext.g:25:9: 'generate'
      {
        match("generate");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:26:7: ( 'as' )
      // InternalXtext.g:26:9: 'as'
      {
        match("as");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:27:7: ( 'import' )
      // InternalXtext.g:27:9: 'import'
      {
        match("import");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:28:7: ( ':' )
      // InternalXtext.g:28:9: ':'
      {
        match(':');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:29:7: ( ';' )
      // InternalXtext.g:29:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:30:7: ( 'returns' )
      // InternalXtext.g:30:9: 'returns'
      {
        match("returns");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:31:7: ( '<' )
      // InternalXtext.g:31:9: '<'
      {
        match('<');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "T__32"
  public final void mT__32() throws RecognitionException {
    try {
      int _type = T__32;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:32:7: ( '>' )
      // InternalXtext.g:32:9: '>'
      {
        match('>');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__32"

  // $ANTLR start "T__33"
  public final void mT__33() throws RecognitionException {
    try {
      int _type = T__33;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:33:7: ( '::' )
      // InternalXtext.g:33:9: '::'
      {
        match("::");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__33"

  // $ANTLR start "T__34"
  public final void mT__34() throws RecognitionException {
    try {
      int _type = T__34;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:34:7: ( '|' )
      // InternalXtext.g:34:9: '|'
      {
        match('|');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__34"

  // $ANTLR start "T__35"
  public final void mT__35() throws RecognitionException {
    try {
      int _type = T__35;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:35:7: ( '&' )
      // InternalXtext.g:35:9: '&'
      {
        match('&');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__35"

  // $ANTLR start "T__36"
  public final void mT__36() throws RecognitionException {
    try {
      int _type = T__36;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:36:7: ( '{' )
      // InternalXtext.g:36:9: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__36"

  // $ANTLR start "T__37"
  public final void mT__37() throws RecognitionException {
    try {
      int _type = T__37;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:37:7: ( '}' )
      // InternalXtext.g:37:9: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__37"

  // $ANTLR start "T__38"
  public final void mT__38() throws RecognitionException {
    try {
      int _type = T__38;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:38:7: ( 'current' )
      // InternalXtext.g:38:9: 'current'
      {
        match("current");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__38"

  // $ANTLR start "T__39"
  public final void mT__39() throws RecognitionException {
    try {
      int _type = T__39;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:39:7: ( '!' )
      // InternalXtext.g:39:9: '!'
      {
        match('!');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__39"

  // $ANTLR start "T__40"
  public final void mT__40() throws RecognitionException {
    try {
      int _type = T__40;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:40:7: ( '[' )
      // InternalXtext.g:40:9: '['
      {
        match('[');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__40"

  // $ANTLR start "T__41"
  public final void mT__41() throws RecognitionException {
    try {
      int _type = T__41;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:41:7: ( ']' )
      // InternalXtext.g:41:9: ']'
      {
        match(']');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__41"

  // $ANTLR start "T__42"
  public final void mT__42() throws RecognitionException {
    try {
      int _type = T__42;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:42:7: ( 'terminal' )
      // InternalXtext.g:42:9: 'terminal'
      {
        match("terminal");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__42"

  // $ANTLR start "T__43"
  public final void mT__43() throws RecognitionException {
    try {
      int _type = T__43;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:43:7: ( '->' )
      // InternalXtext.g:43:9: '->'
      {
        match("->");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__43"

  // $ANTLR start "T__44"
  public final void mT__44() throws RecognitionException {
    try {
      int _type = T__44;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:44:7: ( 'EOF' )
      // InternalXtext.g:44:9: 'EOF'
      {
        match("EOF");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__44"

  // $ANTLR start "T__45"
  public final void mT__45() throws RecognitionException {
    try {
      int _type = T__45;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:45:7: ( '..' )
      // InternalXtext.g:45:9: '..'
      {
        match("..");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__45"

  // $ANTLR start "T__46"
  public final void mT__46() throws RecognitionException {
    try {
      int _type = T__46;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:46:7: ( 'enum' )
      // InternalXtext.g:46:9: 'enum'
      {
        match("enum");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__46"

  // $ANTLR start "T__47"
  public final void mT__47() throws RecognitionException {
    try {
      int _type = T__47;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:47:7: ( 'hidden' )
      // InternalXtext.g:47:9: 'hidden'
      {
        match("hidden");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__47"

  // $ANTLR start "T__48"
  public final void mT__48() throws RecognitionException {
    try {
      int _type = T__48;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:48:7: ( 'fragment' )
      // InternalXtext.g:48:9: 'fragment'
      {
        match("fragment");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__48"

  // $ANTLR start "T__49"
  public final void mT__49() throws RecognitionException {
    try {
      int _type = T__49;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:49:7: ( '=>' )
      // InternalXtext.g:49:9: '=>'
      {
        match("=>");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__49"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10973:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' ..
      // 'Z' | '_' | '0' .. '9' )* )
      // InternalXtext.g:10973:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' ..
      // 'Z' | '_' | '0' .. '9' )*
      {
        // InternalXtext.g:10973:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // InternalXtext.g:10973:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // InternalXtext.g:10973:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // InternalXtext.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10975:10: ( ( '0' .. '9' )+ )
      // InternalXtext.g:10975:12: ( '0' .. '9' )+
      {
        // InternalXtext.g:10975:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // InternalXtext.g:10975:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10977:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
      // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // InternalXtext.g:10977:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
      // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // InternalXtext.g:10977:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
        // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // InternalXtext.g:10977:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // InternalXtext.g:10977:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // InternalXtext.g:10977:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalXtext.g:10977:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // InternalXtext.g:10977:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // InternalXtext.g:10977:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // InternalXtext.g:10977:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalXtext.g:10977:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10979:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // InternalXtext.g:10979:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // InternalXtext.g:10979:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // InternalXtext.g:10979:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10981:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // InternalXtext.g:10981:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // InternalXtext.g:10981:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // InternalXtext.g:10981:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // InternalXtext.g:10981:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // InternalXtext.g:10981:41: ( '\\r' )? '\\n'
            {
              // InternalXtext.g:10981:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // InternalXtext.g:10981:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10983:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // InternalXtext.g:10983:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // InternalXtext.g:10983:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // InternalXtext.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalXtext.g:10985:16: ( . )
      // InternalXtext.g:10985:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // InternalXtext.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19
    // | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 |
    // T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42
    // | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | RULE_ID | RULE_INT | RULE_STRING |
    // RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 46;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // InternalXtext.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // InternalXtext.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // InternalXtext.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // InternalXtext.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // InternalXtext.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // InternalXtext.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // InternalXtext.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // InternalXtext.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // InternalXtext.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // InternalXtext.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // InternalXtext.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // InternalXtext.g:1:76: T__22
        {
          mT__22();
        }
        break;
      case 13:
        // InternalXtext.g:1:82: T__23
        {
          mT__23();
        }
        break;
      case 14:
        // InternalXtext.g:1:88: T__24
        {
          mT__24();
        }
        break;
      case 15:
        // InternalXtext.g:1:94: T__25
        {
          mT__25();
        }
        break;
      case 16:
        // InternalXtext.g:1:100: T__26
        {
          mT__26();
        }
        break;
      case 17:
        // InternalXtext.g:1:106: T__27
        {
          mT__27();
        }
        break;
      case 18:
        // InternalXtext.g:1:112: T__28
        {
          mT__28();
        }
        break;
      case 19:
        // InternalXtext.g:1:118: T__29
        {
          mT__29();
        }
        break;
      case 20:
        // InternalXtext.g:1:124: T__30
        {
          mT__30();
        }
        break;
      case 21:
        // InternalXtext.g:1:130: T__31
        {
          mT__31();
        }
        break;
      case 22:
        // InternalXtext.g:1:136: T__32
        {
          mT__32();
        }
        break;
      case 23:
        // InternalXtext.g:1:142: T__33
        {
          mT__33();
        }
        break;
      case 24:
        // InternalXtext.g:1:148: T__34
        {
          mT__34();
        }
        break;
      case 25:
        // InternalXtext.g:1:154: T__35
        {
          mT__35();
        }
        break;
      case 26:
        // InternalXtext.g:1:160: T__36
        {
          mT__36();
        }
        break;
      case 27:
        // InternalXtext.g:1:166: T__37
        {
          mT__37();
        }
        break;
      case 28:
        // InternalXtext.g:1:172: T__38
        {
          mT__38();
        }
        break;
      case 29:
        // InternalXtext.g:1:178: T__39
        {
          mT__39();
        }
        break;
      case 30:
        // InternalXtext.g:1:184: T__40
        {
          mT__40();
        }
        break;
      case 31:
        // InternalXtext.g:1:190: T__41
        {
          mT__41();
        }
        break;
      case 32:
        // InternalXtext.g:1:196: T__42
        {
          mT__42();
        }
        break;
      case 33:
        // InternalXtext.g:1:202: T__43
        {
          mT__43();
        }
        break;
      case 34:
        // InternalXtext.g:1:208: T__44
        {
          mT__44();
        }
        break;
      case 35:
        // InternalXtext.g:1:214: T__45
        {
          mT__45();
        }
        break;
      case 36:
        // InternalXtext.g:1:220: T__46
        {
          mT__46();
        }
        break;
      case 37:
        // InternalXtext.g:1:226: T__47
        {
          mT__47();
        }
        break;
      case 38:
        // InternalXtext.g:1:232: T__48
        {
          mT__48();
        }
        break;
      case 39:
        // InternalXtext.g:1:238: T__49
        {
          mT__49();
        }
        break;
      case 40:
        // InternalXtext.g:1:244: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 41:
        // InternalXtext.g:1:252: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 42:
        // InternalXtext.g:1:261: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 43:
        // InternalXtext.g:1:273: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 44:
        // InternalXtext.g:1:289: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 45:
        // InternalXtext.g:1:305: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 46:
        // InternalXtext.g:1:313: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\51\1\uffff\1\54\1\56\4\61\3\uffff\1\73\2\61\1\77\1\uffff\1\61\6\uffff\1\61\3\uffff\1\47\3\61\1\47\2\uffff\3\47\11\uffff\2\61\1\uffff\5\61\5\uffff\1\134\1\61\3\uffff\1\61\6\uffff\1\61\4\uffff\3\61\5\uffff\7\61\1\uffff\3\61\1\155\4\61\1\162\3\61\1\166\3\61\1\uffff\1\172\1\61\1\174\1\61\1\uffff\3\61\1\uffff\3\61\1\uffff\1\61\1\uffff\4\61\1\u0089\2\61\1\u008c\2\61\1\u008f\1\61\1\uffff\1\u0091\1\u0092\1\uffff\1\u0093\1\u0094\1\uffff\1\u0095\5\uffff";
  static final String DFA12_eofS = "\u0096\uffff";
  static final String DFA12_minS =
      "\1\0\1\75\1\uffff\1\75\1\76\1\141\2\145\1\151\3\uffff\1\56\1\163\1\155\1\72\1\uffff\1\145\6\uffff\1\165\3\uffff\1\76\1\117\1\156\1\151\1\101\2\uffff\2\0\1\52\11\uffff\1\154\1\141\1\uffff\1\165\1\162\1\141\1\156\1\164\5\uffff\1\60\1\160\3\uffff\1\164\6\uffff\1\162\4\uffff\1\106\1\165\1\144\5\uffff\1\163\1\147\1\145\2\155\1\145\1\150\1\uffff\1\157\1\165\1\162\1\60\1\155\1\144\1\145\1\155\1\60\1\151\1\155\1\162\1\60\2\162\1\145\1\uffff\1\60\1\145\1\60\1\145\1\uffff\1\156\2\141\1\uffff\1\164\2\156\1\uffff\1\156\1\uffff\1\156\1\141\1\162\1\164\1\60\1\163\1\164\1\60\1\164\1\154\1\60\1\145\1\uffff\2\60\1\uffff\2\60\1\uffff\1\60\5\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\75\1\uffff\1\75\1\76\3\162\1\151\3\uffff\1\56\1\163\1\155\1\72\1\uffff\1\145\6\uffff\1\165\3\uffff\1\76\1\117\1\156\1\151\1\172\2\uffff\2\uffff\1\57\11\uffff\1\154\1\141\1\uffff\1\165\1\162\1\141\1\156\1\164\5\uffff\1\172\1\160\3\uffff\1\164\6\uffff\1\162\4\uffff\1\106\1\165\1\144\5\uffff\1\163\1\147\1\145\2\155\1\145\1\150\1\uffff\1\157\1\165\1\162\1\172\1\155\1\144\1\145\1\155\1\172\1\151\1\155\1\162\1\172\2\162\1\145\1\uffff\1\172\1\145\1\172\1\145\1\uffff\1\156\2\141\1\uffff\1\164\2\156\1\uffff\1\156\1\uffff\1\156\1\141\1\162\1\164\1\172\1\163\1\164\1\172\1\164\1\154\1\172\1\145\1\uffff\2\172\1\uffff\2\172\1\uffff\1\172\5\uffff";
  static final String DFA12_acceptS =
      "\2\uffff\1\2\6\uffff\1\13\1\14\1\15\4\uffff\1\23\1\uffff\1\25\1\26\1\30\1\31\1\32\1\33\1\uffff\1\35\1\36\1\37\5\uffff\1\50\1\51\3\uffff\1\55\1\56\1\10\1\1\1\2\1\5\1\3\1\47\1\4\2\uffff\1\50\5\uffff\1\13\1\14\1\15\1\43\1\16\2\uffff\1\27\1\22\1\23\1\uffff\1\25\1\26\1\30\1\31\1\32\1\33\1\uffff\1\35\1\36\1\37\1\41\3\uffff\1\51\1\52\1\53\1\54\1\55\7\uffff\1\20\20\uffff\1\42\4\uffff\1\7\3\uffff\1\12\3\uffff\1\44\1\uffff\1\6\14\uffff\1\21\2\uffff\1\45\2\uffff\1\11\1\uffff\1\24\1\34\1\46\1\40\1\17";
  static final String DFA12_specialS = "\1\1\42\uffff\1\0\1\2\161\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\47\2\46\2\47\1\46\22\47\1\46\1\31\1\43\3\47\1\25\1\44\1\12\1\13\1\2\1\3\1\11\1\34\1\14\1\45\12\42\1\17\1\20\1\22\1\4\1\23\1\1\1\47\4\41\1\35\25\41\1\32\1\47\1\33\1\40\1\41\1\47\1\15\1\41\1\30\1\41\1\36\1\5\1\7\1\37\1\16\10\41\1\21\1\41\1\6\2\41\1\10\3\41\1\26\1\24\1\27\uff82\47",
    "\1\50",
    "",
    "\1\53",
    "\1\55",
    "\1\57\20\uffff\1\60",
    "\1\63\14\uffff\1\62",
    "\1\65\14\uffff\1\64",
    "\1\66",
    "",
    "",
    "",
    "\1\72",
    "\1\74",
    "\1\75",
    "\1\76",
    "",
    "\1\101",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\110",
    "",
    "",
    "",
    "\1\114",
    "\1\115",
    "\1\116",
    "\1\117",
    "\32\61\4\uffff\1\61\1\uffff\32\61",
    "",
    "",
    "\0\121",
    "\0\121",
    "\1\122\4\uffff\1\123",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\125",
    "\1\126",
    "",
    "\1\127",
    "\1\130",
    "\1\131",
    "\1\132",
    "\1\133",
    "",
    "",
    "",
    "",
    "",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\135",
    "",
    "",
    "",
    "\1\136",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\137",
    "",
    "",
    "",
    "",
    "\1\140",
    "\1\141",
    "\1\142",
    "",
    "",
    "",
    "",
    "",
    "\1\143",
    "\1\144",
    "\1\145",
    "\1\146",
    "\1\147",
    "\1\150",
    "\1\151",
    "",
    "\1\152",
    "\1\153",
    "\1\154",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\156",
    "\1\157",
    "\1\160",
    "\1\161",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\163",
    "\1\164",
    "\1\165",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\167",
    "\1\170",
    "\1\171",
    "",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\173",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\175",
    "",
    "\1\176",
    "\1\177",
    "\1\u0080",
    "",
    "\1\u0081",
    "\1\u0082",
    "\1\u0083",
    "",
    "\1\u0084",
    "",
    "\1\u0085",
    "\1\u0086",
    "\1\u0087",
    "\1\u0088",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\u008a",
    "\1\u008b",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\u008d",
    "\1\u008e",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\1\u0090",
    "",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "",
    "\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
    "",
    "",
    "",
    "",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_35 = input.LA(1);

          s = -1;
          if (((LA12_35 >= '\u0000' && LA12_35 <= '\uFFFF'))) {
            s = 81;
          } else s = 39;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == '?')) {
            s = 1;
          } else if ((LA12_0 == '*')) {
            s = 2;
          } else if ((LA12_0 == '+')) {
            s = 3;
          } else if ((LA12_0 == '=')) {
            s = 4;
          } else if ((LA12_0 == 'f')) {
            s = 5;
          } else if ((LA12_0 == 't')) {
            s = 6;
          } else if ((LA12_0 == 'g')) {
            s = 7;
          } else if ((LA12_0 == 'w')) {
            s = 8;
          } else if ((LA12_0 == ',')) {
            s = 9;
          } else if ((LA12_0 == '(')) {
            s = 10;
          } else if ((LA12_0 == ')')) {
            s = 11;
          } else if ((LA12_0 == '.')) {
            s = 12;
          } else if ((LA12_0 == 'a')) {
            s = 13;
          } else if ((LA12_0 == 'i')) {
            s = 14;
          } else if ((LA12_0 == ':')) {
            s = 15;
          } else if ((LA12_0 == ';')) {
            s = 16;
          } else if ((LA12_0 == 'r')) {
            s = 17;
          } else if ((LA12_0 == '<')) {
            s = 18;
          } else if ((LA12_0 == '>')) {
            s = 19;
          } else if ((LA12_0 == '|')) {
            s = 20;
          } else if ((LA12_0 == '&')) {
            s = 21;
          } else if ((LA12_0 == '{')) {
            s = 22;
          } else if ((LA12_0 == '}')) {
            s = 23;
          } else if ((LA12_0 == 'c')) {
            s = 24;
          } else if ((LA12_0 == '!')) {
            s = 25;
          } else if ((LA12_0 == '[')) {
            s = 26;
          } else if ((LA12_0 == ']')) {
            s = 27;
          } else if ((LA12_0 == '-')) {
            s = 28;
          } else if ((LA12_0 == 'E')) {
            s = 29;
          } else if ((LA12_0 == 'e')) {
            s = 30;
          } else if ((LA12_0 == 'h')) {
            s = 31;
          } else if ((LA12_0 == '^')) {
            s = 32;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'D')
              || (LA12_0 >= 'F' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || LA12_0 == 'b'
              || LA12_0 == 'd'
              || (LA12_0 >= 'j' && LA12_0 <= 'q')
              || LA12_0 == 's'
              || (LA12_0 >= 'u' && LA12_0 <= 'v')
              || (LA12_0 >= 'x' && LA12_0 <= 'z'))) {
            s = 33;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 34;
          } else if ((LA12_0 == '\"')) {
            s = 35;
          } else if ((LA12_0 == '\'')) {
            s = 36;
          } else if ((LA12_0 == '/')) {
            s = 37;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 38;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || (LA12_0 >= '#' && LA12_0 <= '%')
              || LA12_0 == '@'
              || LA12_0 == '\\'
              || LA12_0 == '`'
              || (LA12_0 >= '~' && LA12_0 <= '\uFFFF'))) {
            s = 39;
          }

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_36 = input.LA(1);

          s = -1;
          if (((LA12_36 >= '\u0000' && LA12_36 <= '\uFFFF'))) {
            s = 81;
          } else s = 39;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class PsiInternalBug289524TestLanguageLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int RULE_STRING = 6;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_ANY_OTHER = 10;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;
  public static final int RULE_SL_COMMENT = 8;
  public static final int EOF = -1;
  public static final int RULE_ML_COMMENT = 7;

  // delegates
  // delegators

  public PsiInternalBug289524TestLanguageLexer() {
    ;
  }

  public PsiInternalBug289524TestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public PsiInternalBug289524TestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "PsiInternalBug289524TestLanguage.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:11:7: ( 'Model' )
      // PsiInternalBug289524TestLanguage.g:11:9: 'Model'
      {
        match("Model");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:12:7: ( 'reference' )
      // PsiInternalBug289524TestLanguage.g:12:9: 'reference'
      {
        match("reference");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:13:7: ( '$' )
      // PsiInternalBug289524TestLanguage.g:13:9: '$'
      {
        match('$');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:14:7: ( 'containment' )
      // PsiInternalBug289524TestLanguage.g:14:9: 'containment'
      {
        match("containment");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:241:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) (
      // 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // PsiInternalBug289524TestLanguage.g:241:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a'
      // .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // PsiInternalBug289524TestLanguage.g:241:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // PsiInternalBug289524TestLanguage.g:241:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // PsiInternalBug289524TestLanguage.g:241:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9'
        // )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // PsiInternalBug289524TestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:243:10: ( ( '0' .. '9' )+ )
      // PsiInternalBug289524TestLanguage.g:243:12: ( '0' .. '9' )+
      {
        // PsiInternalBug289524TestLanguage.g:243:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // PsiInternalBug289524TestLanguage.g:243:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:245:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // PsiInternalBug289524TestLanguage.g:245:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // PsiInternalBug289524TestLanguage.g:245:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
        // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // PsiInternalBug289524TestLanguage.g:245:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) )
            // )* '\"'
            {
              match('\"');
              // PsiInternalBug289524TestLanguage.g:245:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // PsiInternalBug289524TestLanguage.g:245:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalBug289524TestLanguage.g:245:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // PsiInternalBug289524TestLanguage.g:245:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' )
            // ) )* '\\''
            {
              match('\'');
              // PsiInternalBug289524TestLanguage.g:245:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // PsiInternalBug289524TestLanguage.g:245:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalBug289524TestLanguage.g:245:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:247:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // PsiInternalBug289524TestLanguage.g:247:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // PsiInternalBug289524TestLanguage.g:247:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // PsiInternalBug289524TestLanguage.g:247:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:249:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )? )
      // PsiInternalBug289524TestLanguage.g:249:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )?
      {
        match("//");

        // PsiInternalBug289524TestLanguage.g:249:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // PsiInternalBug289524TestLanguage.g:249:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // PsiInternalBug289524TestLanguage.g:249:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // PsiInternalBug289524TestLanguage.g:249:41: ( '\\r' )? '\\n'
            {
              // PsiInternalBug289524TestLanguage.g:249:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // PsiInternalBug289524TestLanguage.g:249:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:251:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // PsiInternalBug289524TestLanguage.g:251:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // PsiInternalBug289524TestLanguage.g:251:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // PsiInternalBug289524TestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalBug289524TestLanguage.g:253:16: ( . )
      // PsiInternalBug289524TestLanguage.g:253:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // PsiInternalBug289524TestLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | RULE_ID | RULE_INT
    // | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 11;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // PsiInternalBug289524TestLanguage.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // PsiInternalBug289524TestLanguage.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // PsiInternalBug289524TestLanguage.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // PsiInternalBug289524TestLanguage.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // PsiInternalBug289524TestLanguage.g:1:34: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 6:
        // PsiInternalBug289524TestLanguage.g:1:42: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 7:
        // PsiInternalBug289524TestLanguage.g:1:51: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 8:
        // PsiInternalBug289524TestLanguage.g:1:63: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 9:
        // PsiInternalBug289524TestLanguage.g:1:79: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 10:
        // PsiInternalBug289524TestLanguage.g:1:95: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 11:
        // PsiInternalBug289524TestLanguage.g:1:103: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\2\16\1\uffff\1\16\1\14\2\uffff\3\14\2\uffff\1\16\1\uffff\1\16\1\uffff\1\16\5\uffff\6\16\1\40\2\16\1\uffff\6\16\1\51\1\16\1\uffff\1\16\1\54\1\uffff";
  static final String DFA12_eofS = "\55\uffff";
  static final String DFA12_minS =
      "\1\0\1\157\1\145\1\uffff\1\157\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\uffff\1\146\1\uffff\1\156\5\uffff\2\145\1\164\1\154\1\162\1\141\1\60\1\145\1\151\1\uffff\2\156\1\143\1\155\2\145\1\60\1\156\1\uffff\1\164\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\157\1\145\1\uffff\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\1\uffff\1\146\1\uffff\1\156\5\uffff\2\145\1\164\1\154\1\162\1\141\1\172\1\145\1\151\1\uffff\2\156\1\143\1\155\2\145\1\172\1\156\1\uffff\1\164\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\3\uffff\1\3\2\uffff\1\5\1\6\3\uffff\1\12\1\13\1\uffff\1\5\1\uffff\1\3\1\uffff\1\6\1\7\1\10\1\11\1\12\11\uffff\1\1\10\uffff\1\2\2\uffff\1\4";
  static final String DFA12_specialS = "\1\2\7\uffff\1\1\1\0\43\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\14\2\13\2\14\1\13\22\14\1\13\1\14\1\10\1\14\1\3\2\14\1\11\7\14\1\12\12\7\7\14\14\6\1\1\15\6\3\14\1\5\1\6\1\14\2\6\1\4\16\6\1\2\10\6\uff85\14",
    "\1\15",
    "\1\17",
    "",
    "\1\21",
    "\32\16\4\uffff\1\16\1\uffff\32\16",
    "",
    "",
    "\0\23",
    "\0\23",
    "\1\24\4\uffff\1\25",
    "",
    "",
    "\1\27",
    "",
    "\1\30",
    "",
    "\1\31",
    "",
    "",
    "",
    "",
    "",
    "\1\32",
    "\1\33",
    "\1\34",
    "\1\35",
    "\1\36",
    "\1\37",
    "\12\16\7\uffff\32\16\4\uffff\1\16\1\uffff\32\16",
    "\1\41",
    "\1\42",
    "",
    "\1\43",
    "\1\44",
    "\1\45",
    "\1\46",
    "\1\47",
    "\1\50",
    "\12\16\7\uffff\32\16\4\uffff\1\16\1\uffff\32\16",
    "\1\52",
    "",
    "\1\53",
    "\12\16\7\uffff\32\16\4\uffff\1\16\1\uffff\32\16",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_9 = input.LA(1);

          s = -1;
          if (((LA12_9 >= '\u0000' && LA12_9 <= '\uFFFF'))) {
            s = 19;
          } else s = 12;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_8 = input.LA(1);

          s = -1;
          if (((LA12_8 >= '\u0000' && LA12_8 <= '\uFFFF'))) {
            s = 19;
          } else s = 12;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'M')) {
            s = 1;
          } else if ((LA12_0 == 'r')) {
            s = 2;
          } else if ((LA12_0 == '$')) {
            s = 3;
          } else if ((LA12_0 == 'c')) {
            s = 4;
          } else if ((LA12_0 == '^')) {
            s = 5;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'L')
              || (LA12_0 >= 'N' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'b')
              || (LA12_0 >= 'd' && LA12_0 <= 'q')
              || (LA12_0 >= 's' && LA12_0 <= 'z'))) {
            s = 6;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 7;
          } else if ((LA12_0 == '\"')) {
            s = 8;
          } else if ((LA12_0 == '\'')) {
            s = 9;
          } else if ((LA12_0 == '/')) {
            s = 10;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 11;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || LA12_0 == '#'
              || (LA12_0 >= '%' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '.')
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 12;
          }

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class PsiInternalHiddenTerminalsTestLanguageLexer extends Lexer {
  public static final int T__19 = 19;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_ANY_OTHER = 7;
  public static final int T__10 = 10;
  public static final int RULE_WS = 4;
  public static final int RULE_SL_COMMENT = 6;
  public static final int EOF = -1;
  public static final int T__9 = 9;
  public static final int T__8 = 8;
  public static final int RULE_ML_COMMENT = 5;

  // delegates
  // delegators

  public PsiInternalHiddenTerminalsTestLanguageLexer() {
    ;
  }

  public PsiInternalHiddenTerminalsTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public PsiInternalHiddenTerminalsTestLanguageLexer(
      CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "PsiInternalHiddenTerminalsTestLanguage.g";
  }

  // $ANTLR start "T__8"
  public final void mT__8() throws RecognitionException {
    try {
      int _type = T__8;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:11:6: ( 'without' )
      // PsiInternalHiddenTerminalsTestLanguage.g:11:8: 'without'
      {
        match("without");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__8"

  // $ANTLR start "T__9"
  public final void mT__9() throws RecognitionException {
    try {
      int _type = T__9;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:12:6: ( 'hiddens' )
      // PsiInternalHiddenTerminalsTestLanguage.g:12:8: 'hiddens'
      {
        match("hiddens");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__9"

  // $ANTLR start "T__10"
  public final void mT__10() throws RecognitionException {
    try {
      int _type = T__10;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:13:7: ( ';' )
      // PsiInternalHiddenTerminalsTestLanguage.g:13:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__10"

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:14:7: ( 'with' )
      // PsiInternalHiddenTerminalsTestLanguage.g:14:9: 'with'
      {
        match("with");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:15:7: ( 'overriding' )
      // PsiInternalHiddenTerminalsTestLanguage.g:15:9: 'overriding'
      {
        match("overriding");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:16:7: ( '(' )
      // PsiInternalHiddenTerminalsTestLanguage.g:16:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:17:7: ( ')' )
      // PsiInternalHiddenTerminalsTestLanguage.g:17:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:18:7: ( 'call' )
      // PsiInternalHiddenTerminalsTestLanguage.g:18:9: 'call'
      {
        match("call");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:19:7: ( 'inheriting' )
      // PsiInternalHiddenTerminalsTestLanguage.g:19:9: 'inheriting'
      {
        match("inheriting");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:20:7: ( 'datatype' )
      // PsiInternalHiddenTerminalsTestLanguage.g:20:9: 'datatype'
      {
        match("datatype");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:21:7: ( 'rule' )
      // PsiInternalHiddenTerminalsTestLanguage.g:21:9: 'rule'
      {
        match("rule");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:22:7: ( 'hiding' )
      // PsiInternalHiddenTerminalsTestLanguage.g:22:9: 'hiding'
      {
        match("hiding");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:564:17: ( '/*' ( options {greedy=false; } : . )*
      // '*/' )
      // PsiInternalHiddenTerminalsTestLanguage.g:564:19: '/*' ( options {greedy=false; } : . )*
      // '*/'
      {
        match("/*");

        // PsiInternalHiddenTerminalsTestLanguage.g:564:24: ( options {greedy=false; } : . )*
        loop1:
        do {
          int alt1 = 2;
          int LA1_0 = input.LA(1);

          if ((LA1_0 == '*')) {
            int LA1_1 = input.LA(2);

            if ((LA1_1 == '/')) {
              alt1 = 2;
            } else if (((LA1_1 >= '\u0000' && LA1_1 <= '.')
                || (LA1_1 >= '0' && LA1_1 <= '\uFFFF'))) {
              alt1 = 1;
            }

          } else if (((LA1_0 >= '\u0000' && LA1_0 <= ')') || (LA1_0 >= '+' && LA1_0 <= '\uFFFF'))) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              // PsiInternalHiddenTerminalsTestLanguage.g:564:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop1;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:566:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( (
      // '\\r' )? '\\n' )? )
      // PsiInternalHiddenTerminalsTestLanguage.g:566:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r'
      // )? '\\n' )?
      {
        match("//");

        // PsiInternalHiddenTerminalsTestLanguage.g:566:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '\u0000' && LA2_0 <= '\t')
              || (LA2_0 >= '\u000B' && LA2_0 <= '\f')
              || (LA2_0 >= '\u000E' && LA2_0 <= '\uFFFF'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // PsiInternalHiddenTerminalsTestLanguage.g:566:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);

        // PsiInternalHiddenTerminalsTestLanguage.g:566:40: ( ( '\\r' )? '\\n' )?
        int alt4 = 2;
        int LA4_0 = input.LA(1);

        if ((LA4_0 == '\n' || LA4_0 == '\r')) {
          alt4 = 1;
        }
        switch (alt4) {
          case 1:
            // PsiInternalHiddenTerminalsTestLanguage.g:566:41: ( '\\r' )? '\\n'
            {
              // PsiInternalHiddenTerminalsTestLanguage.g:566:41: ( '\\r' )?
              int alt3 = 2;
              int LA3_0 = input.LA(1);

              if ((LA3_0 == '\r')) {
                alt3 = 1;
              }
              switch (alt3) {
                case 1:
                  // PsiInternalHiddenTerminalsTestLanguage.g:566:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:568:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // PsiInternalHiddenTerminalsTestLanguage.g:568:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // PsiInternalHiddenTerminalsTestLanguage.g:568:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt5 = 0;
        loop5:
        do {
          int alt5 = 2;
          int LA5_0 = input.LA(1);

          if (((LA5_0 >= '\t' && LA5_0 <= '\n') || LA5_0 == '\r' || LA5_0 == ' ')) {
            alt5 = 1;
          }

          switch (alt5) {
            case 1:
              // PsiInternalHiddenTerminalsTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt5 >= 1) break loop5;
              EarlyExitException eee = new EarlyExitException(5, input);
              throw eee;
          }
          cnt5++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalHiddenTerminalsTestLanguage.g:570:16: ( . )
      // PsiInternalHiddenTerminalsTestLanguage.g:570:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // PsiInternalHiddenTerminalsTestLanguage.g:1:8: ( T__8 | T__9 | T__10 | T__11 | T__12 | T__13 |
    // T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS |
    // RULE_ANY_OTHER )
    int alt6 = 16;
    alt6 = dfa6.predict(input);
    switch (alt6) {
      case 1:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:10: T__8
        {
          mT__8();
        }
        break;
      case 2:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:15: T__9
        {
          mT__9();
        }
        break;
      case 3:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:20: T__10
        {
          mT__10();
        }
        break;
      case 4:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:26: T__11
        {
          mT__11();
        }
        break;
      case 5:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:32: T__12
        {
          mT__12();
        }
        break;
      case 6:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:38: T__13
        {
          mT__13();
        }
        break;
      case 7:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:44: T__14
        {
          mT__14();
        }
        break;
      case 8:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:50: T__15
        {
          mT__15();
        }
        break;
      case 9:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:56: T__16
        {
          mT__16();
        }
        break;
      case 10:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:62: T__17
        {
          mT__17();
        }
        break;
      case 11:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:68: T__18
        {
          mT__18();
        }
        break;
      case 12:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:74: T__19
        {
          mT__19();
        }
        break;
      case 13:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:80: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 14:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:96: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 15:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:112: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 16:
        // PsiInternalHiddenTerminalsTestLanguage.g:1:120: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA6 dfa6 = new DFA6(this);
  static final String DFA6_eotS = "\1\uffff\2\15\1\uffff\1\15\2\uffff\5\15\21\uffff\1\41\4\uffff";
  static final String DFA6_eofS = "\42\uffff";
  static final String DFA6_minS =
      "\1\0\2\151\1\uffff\1\166\2\uffff\1\141\1\156\1\141\1\165\1\52\2\uffff\1\164\1\144\13\uffff\1\150\1\144\1\157\4\uffff";
  static final String DFA6_maxS =
      "\1\uffff\2\151\1\uffff\1\166\2\uffff\1\141\1\156\1\141\1\165\1\57\2\uffff\1\164\1\144\13\uffff\1\150\1\151\1\157\4\uffff";
  static final String DFA6_acceptS =
      "\3\uffff\1\3\1\uffff\1\6\1\7\5\uffff\1\17\1\20\2\uffff\1\3\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\15\1\16\1\17\3\uffff\1\2\1\14\1\1\1\4";
  static final String DFA6_specialS = "\1\0\41\uffff}>";
  static final String[] DFA6_transitionS = {
    "\11\15\2\14\2\15\1\14\22\15\1\14\7\15\1\5\1\6\5\15\1\13\13\15\1\3\47\15\1\7\1\11\3\15\1\2\1\10\5\15\1\4\2\15\1\12\4\15\1\1\uff88\15",
    "\1\16",
    "\1\17",
    "",
    "\1\21",
    "",
    "",
    "\1\24",
    "\1\25",
    "\1\26",
    "\1\27",
    "\1\30\4\uffff\1\31",
    "",
    "",
    "\1\33",
    "\1\34",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\35",
    "\1\36\4\uffff\1\37",
    "\1\40",
    "",
    "",
    "",
    ""
  };

  static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS);
  static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS);
  static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS);
  static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS);
  static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS);
  static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS);
  static final short[][] DFA6_transition;

  static {
    int numStates = DFA6_transitionS.length;
    DFA6_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]);
    }
  }

  static class DFA6 extends DFA {

    public DFA6(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 6;
      this.eot = DFA6_eot;
      this.eof = DFA6_eof;
      this.min = DFA6_min;
      this.max = DFA6_max;
      this.accept = DFA6_accept;
      this.special = DFA6_special;
      this.transition = DFA6_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA6_0 = input.LA(1);

          s = -1;
          if ((LA6_0 == 'w')) {
            s = 1;
          } else if ((LA6_0 == 'h')) {
            s = 2;
          } else if ((LA6_0 == ';')) {
            s = 3;
          } else if ((LA6_0 == 'o')) {
            s = 4;
          } else if ((LA6_0 == '(')) {
            s = 5;
          } else if ((LA6_0 == ')')) {
            s = 6;
          } else if ((LA6_0 == 'c')) {
            s = 7;
          } else if ((LA6_0 == 'i')) {
            s = 8;
          } else if ((LA6_0 == 'd')) {
            s = 9;
          } else if ((LA6_0 == 'r')) {
            s = 10;
          } else if ((LA6_0 == '/')) {
            s = 11;
          } else if (((LA6_0 >= '\t' && LA6_0 <= '\n') || LA6_0 == '\r' || LA6_0 == ' ')) {
            s = 12;
          } else if (((LA6_0 >= '\u0000' && LA6_0 <= '\b')
              || (LA6_0 >= '\u000B' && LA6_0 <= '\f')
              || (LA6_0 >= '\u000E' && LA6_0 <= '\u001F')
              || (LA6_0 >= '!' && LA6_0 <= '\'')
              || (LA6_0 >= '*' && LA6_0 <= '.')
              || (LA6_0 >= '0' && LA6_0 <= ':')
              || (LA6_0 >= '<' && LA6_0 <= 'b')
              || (LA6_0 >= 'e' && LA6_0 <= 'g')
              || (LA6_0 >= 'j' && LA6_0 <= 'n')
              || (LA6_0 >= 'p' && LA6_0 <= 'q')
              || (LA6_0 >= 's' && LA6_0 <= 'v')
              || (LA6_0 >= 'x' && LA6_0 <= '\uFFFF'))) {
            s = 13;
          }

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 6, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class InternalUmlMessageLexer extends Lexer {
  public static final int RULE_NAMERULE = 4;
  public static final int RULE_ID = 6;
  public static final int RULE_STRING = 7;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__12 = 12;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_ANY_OTHER = 11;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 10;
  public static final int RULE_SL_COMMENT = 9;
  public static final int EOF = -1;
  public static final int RULE_ML_COMMENT = 8;

  // delegates
  // delegators

  public InternalUmlMessageLexer() {
    ;
  }

  public InternalUmlMessageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalUmlMessageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g";
  }

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:11:7: ( '.' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:11:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:12:7: ( ':' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:12:9: ':'
      {
        match(':');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:13:7: ( '*' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:13:9: '*'
      {
        match('*');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:14:7: ( '[' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:14:9: '['
      {
        match('[');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:15:7: ( ']' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:15:9: ']'
      {
        match(']');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "RULE_NAMERULE"
  public final void mRULE_NAMERULE() throws RecognitionException {
    try {
      int _type = RULE_NAMERULE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:290:15: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' | '0' .. '9' | '(' | ')' )* )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:290:17: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' | '0' .. '9' | '(' | ')' )*
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:290:37: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' | '0' .. '9' | '(' | ')' )*
        loop1:
        do {
          int alt1 = 2;
          int LA1_0 = input.LA(1);

          if (((LA1_0 >= '(' && LA1_0 <= ')')
              || LA1_0 == '-'
              || (LA1_0 >= '0' && LA1_0 <= '9')
              || (LA1_0 >= 'A' && LA1_0 <= 'Z')
              || LA1_0 == '_'
              || (LA1_0 >= 'a' && LA1_0 <= 'z'))) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:
              {
                if ((input.LA(1) >= '(' && input.LA(1) <= ')')
                    || input.LA(1) == '-'
                    || (input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop1;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_NAMERULE"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:292:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:292:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:292:11: ( '^' )?
        int alt2 = 2;
        int LA2_0 = input.LA(1);

        if ((LA2_0 == '^')) {
          alt2 = 1;
        }
        switch (alt2) {
          case 1:
            // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:292:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:292:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9')
              || (LA3_0 >= 'A' && LA3_0 <= 'Z')
              || LA3_0 == '_'
              || (LA3_0 >= 'a' && LA3_0 <= 'z'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop3;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:294:10: ( ( '0' .. '9' )+ )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:294:12: ( '0' .. '9' )+
      {
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:294:12: ( '0' .. '9' )+
        int cnt4 = 0;
        loop4:
        do {
          int alt4 = 2;
          int LA4_0 = input.LA(1);

          if (((LA4_0 >= '0' && LA4_0 <= '9'))) {
            alt4 = 1;
          }

          switch (alt4) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:294:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt4 >= 1) break loop4;
              EarlyExitException eee = new EarlyExitException(4, input);
              throw eee;
          }
          cnt4++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt7 = 2;
        int LA7_0 = input.LA(1);

        if ((LA7_0 == '\"')) {
          alt7 = 1;
        } else if ((LA7_0 == '\'')) {
          alt7 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 7, 0, input);

          throw nvae;
        }
        switch (alt7) {
          case 1:
            // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '!')
                    || (LA5_0 >= '#' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:66: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop6:
              do {
                int alt6 = 3;
                int LA6_0 = input.LA(1);

                if ((LA6_0 == '\\')) {
                  alt6 = 1;
                } else if (((LA6_0 >= '\u0000' && LA6_0 <= '&')
                    || (LA6_0 >= '(' && LA6_0 <= '[')
                    || (LA6_0 >= ']' && LA6_0 <= '\uFFFF'))) {
                  alt6 = 2;
                }

                switch (alt6) {
                  case 1:
                    // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:296:137: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop6;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:298:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:298:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:298:24: ( options {greedy=false; } : . )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if ((LA8_0 == '*')) {
            int LA8_1 = input.LA(2);

            if ((LA8_1 == '/')) {
              alt8 = 2;
            } else if (((LA8_1 >= '\u0000' && LA8_1 <= '.')
                || (LA8_1 >= '0' && LA8_1 <= '\uFFFF'))) {
              alt8 = 1;
            }

          } else if (((LA8_0 >= '\u0000' && LA8_0 <= ')') || (LA8_0 >= '+' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:298:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop9:
        do {
          int alt9 = 2;
          int LA9_0 = input.LA(1);

          if (((LA9_0 >= '\u0000' && LA9_0 <= '\t')
              || (LA9_0 >= '\u000B' && LA9_0 <= '\f')
              || (LA9_0 >= '\u000E' && LA9_0 <= '\uFFFF'))) {
            alt9 = 1;
          }

          switch (alt9) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop9;
          }
        } while (true);

        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:40: ( ( '\\r' )? '\\n' )?
        int alt11 = 2;
        int LA11_0 = input.LA(1);

        if ((LA11_0 == '\n' || LA11_0 == '\r')) {
          alt11 = 1;
        }
        switch (alt11) {
          case 1:
            // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:41: ( '\\r' )? '\\n'
            {
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:41: ( '\\r' )?
              int alt10 = 2;
              int LA10_0 = input.LA(1);

              if ((LA10_0 == '\r')) {
                alt10 = 1;
              }
              switch (alt10) {
                case 1:
                  // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:300:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:302:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:302:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:302:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt12 = 0;
        loop12:
        do {
          int alt12 = 2;
          int LA12_0 = input.LA(1);

          if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            alt12 = 1;
          }

          switch (alt12) {
            case 1:
              // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt12 >= 1) break loop12;
              EarlyExitException eee = new EarlyExitException(12, input);
              throw eee;
          }
          cnt12++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:304:16: ( . )
      // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:304:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | RULE_NAMERULE | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt13 = 13;
    alt13 = dfa13.predict(input);
    switch (alt13) {
      case 1:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:10: T__12
        {
          mT__12();
        }
        break;
      case 2:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:16: T__13
        {
          mT__13();
        }
        break;
      case 3:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:22: T__14
        {
          mT__14();
        }
        break;
      case 4:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:28: T__15
        {
          mT__15();
        }
        break;
      case 5:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:34: T__16
        {
          mT__16();
        }
        break;
      case 6:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:40: RULE_NAMERULE
        {
          mRULE_NAMERULE();
        }
        break;
      case 7:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:54: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 8:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:62: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 9:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:71: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 10:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:83: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 11:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:99: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 12:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:115: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 13:
        // ../org.eclipse.papyrus.uml.textedit.message.xtext/src-gen/org/eclipse/papyrus/uml/textedit/message/xtext/parser/antlr/internal/InternalUmlMessage.g:1:123: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA13 dfa13 = new DFA13(this);
  static final String DFA13_eotS = "\6\uffff\1\25\1\16\2\uffff\3\16\7\uffff\1\25\7\uffff";
  static final String DFA13_eofS = "\34\uffff";
  static final String DFA13_minS = "\1\0\5\uffff\1\60\1\101\2\uffff\2\0\1\52\7\uffff\1\60\7\uffff";
  static final String DFA13_maxS =
      "\1\uffff\5\uffff\2\172\2\uffff\2\uffff\1\57\7\uffff\1\172\7\uffff";
  static final String DFA13_acceptS =
      "\1\uffff\1\1\1\2\1\3\1\4\1\5\2\uffff\1\7\1\10\3\uffff\1\14\1\15"
          + "\1\1\1\2\1\3\1\4\1\5\1\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14";
  static final String DFA13_specialS = "\1\0\11\uffff\1\2\1\1\20\uffff}>";
  static final String[] DFA13_transitionS = {
    "\11\16\2\15\2\16\1\15\22\16\1\15\1\16\1\12\4\16\1\13\2\16\1"
        + "\3\3\16\1\1\1\14\12\11\1\2\6\16\32\6\1\4\1\16\1\5\1\7\1\10\1"
        + "\16\32\6\uff85\16",
    "",
    "",
    "",
    "",
    "",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\32\26\4\uffff\1\26\1\uffff\32\26",
    "",
    "",
    "\0\30",
    "\0\30",
    "\1\31\4\uffff\1\32",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
  };

  static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
  static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
  static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
  static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
  static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
  static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
  static final short[][] DFA13_transition;

  static {
    int numStates = DFA13_transitionS.length;
    DFA13_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
    }
  }

  class DFA13 extends DFA {

    public DFA13(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 13;
      this.eot = DFA13_eot;
      this.eof = DFA13_eof;
      this.min = DFA13_min;
      this.max = DFA13_max;
      this.accept = DFA13_accept;
      this.special = DFA13_special;
      this.transition = DFA13_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | RULE_NAMERULE | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA13_0 = input.LA(1);

          s = -1;
          if ((LA13_0 == '.')) {
            s = 1;
          } else if ((LA13_0 == ':')) {
            s = 2;
          } else if ((LA13_0 == '*')) {
            s = 3;
          } else if ((LA13_0 == '[')) {
            s = 4;
          } else if ((LA13_0 == ']')) {
            s = 5;
          } else if (((LA13_0 >= 'A' && LA13_0 <= 'Z') || (LA13_0 >= 'a' && LA13_0 <= 'z'))) {
            s = 6;
          } else if ((LA13_0 == '^')) {
            s = 7;
          } else if ((LA13_0 == '_')) {
            s = 8;
          } else if (((LA13_0 >= '0' && LA13_0 <= '9'))) {
            s = 9;
          } else if ((LA13_0 == '\"')) {
            s = 10;
          } else if ((LA13_0 == '\'')) {
            s = 11;
          } else if ((LA13_0 == '/')) {
            s = 12;
          } else if (((LA13_0 >= '\t' && LA13_0 <= '\n') || LA13_0 == '\r' || LA13_0 == ' ')) {
            s = 13;
          } else if (((LA13_0 >= '\u0000' && LA13_0 <= '\b')
              || (LA13_0 >= '\u000B' && LA13_0 <= '\f')
              || (LA13_0 >= '\u000E' && LA13_0 <= '\u001F')
              || LA13_0 == '!'
              || (LA13_0 >= '#' && LA13_0 <= '&')
              || (LA13_0 >= '(' && LA13_0 <= ')')
              || (LA13_0 >= '+' && LA13_0 <= '-')
              || (LA13_0 >= ';' && LA13_0 <= '@')
              || LA13_0 == '\\'
              || LA13_0 == '`'
              || (LA13_0 >= '{' && LA13_0 <= '\uFFFF'))) {
            s = 14;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA13_11 = input.LA(1);

          s = -1;
          if (((LA13_11 >= '\u0000' && LA13_11 <= '\uFFFF'))) {
            s = 24;
          } else s = 14;

          if (s >= 0) return s;
          break;
        case 2:
          int LA13_10 = input.LA(1);

          s = -1;
          if (((LA13_10 >= '\u0000' && LA13_10 <= '\uFFFF'))) {
            s = 24;
          } else s = 14;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 13, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #12
0
public class ExpressionLexer extends Lexer {
  public static final int DOLLAR = 54;
  public static final int EXPONENT = 49;
  public static final int LT = 11;
  public static final int LSQUARE = 23;
  public static final int ASCII_LETTER = 52;
  public static final int LOG = 40;
  public static final int SNIPPET = 44;
  public static final int OCTAL_ESC = 57;
  public static final int MAX = 41;
  public static final int COUNT = 38;
  public static final int FLOAT = 34;
  public static final int NAME_START = 50;
  public static final int HTML = 28;
  public static final int NOT = 10;
  public static final int ATOM = 29;
  public static final int AND = 7;
  public static final int EOF = -1;
  public static final int LPAREN = 21;
  public static final int INDEX = 5;
  public static final int QUOTE = 47;
  public static final int RPAREN = 22;
  public static final int DISTANCE = 39;
  public static final int T__58 = 58;
  public static final int NAME = 26;
  public static final int ESC_SEQ = 48;
  public static final int POW = 43;
  public static final int COMMA = 36;
  public static final int PLUS = 17;
  public static final int GEO = 32;
  public static final int DIGIT = 46;
  public static final int EQ = 15;
  public static final int NE = 16;
  public static final int GE = 14;
  public static final int XOR = 9;
  public static final int SWITCH = 45;
  public static final int UNICODE_ESC = 56;
  public static final int NUMBER = 31;
  public static final int HEX_DIGIT = 55;
  public static final int UNDERSCORE = 53;
  public static final int INT = 24;
  public static final int MIN = 42;
  public static final int TEXT = 27;
  public static final int RSQUARE = 25;
  public static final int MINUS = 18;
  public static final int GEOPOINT = 33;
  public static final int PHRASE = 35;
  public static final int ABS = 37;
  public static final int WS = 51;
  public static final int NEG = 4;
  public static final int OR = 8;
  public static final int GT = 13;
  public static final int DIV = 20;
  public static final int DATE = 30;
  public static final int TIMES = 19;
  public static final int COND = 6;
  public static final int LE = 12;

  public ExpressionLexer() {
    ;
  }

  public ExpressionLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public ExpressionLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "";
  }

  public final void mT__58() throws RecognitionException {
    try {
      int _type = T__58;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mABS() throws RecognitionException {
    try {
      int _type = ABS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("abs");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mCOUNT() throws RecognitionException {
    try {
      int _type = COUNT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("count");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mDISTANCE() throws RecognitionException {
    try {
      int _type = DISTANCE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("distance");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mGEOPOINT() throws RecognitionException {
    try {
      int _type = GEOPOINT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("geopoint");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mLOG() throws RecognitionException {
    try {
      int _type = LOG;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("log");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mMAX() throws RecognitionException {
    try {
      int _type = MAX;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("max");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mMIN() throws RecognitionException {
    try {
      int _type = MIN;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("min");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mPOW() throws RecognitionException {
    try {
      int _type = POW;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("pow");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mAND() throws RecognitionException {
    try {
      int _type = AND;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("AND");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mOR() throws RecognitionException {
    try {
      int _type = OR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("OR");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mXOR() throws RecognitionException {
    try {
      int _type = XOR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("XOR");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mNOT() throws RecognitionException {
    try {
      int _type = NOT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("NOT");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mSNIPPET() throws RecognitionException {
    try {
      int _type = SNIPPET;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("snippet");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mSWITCH() throws RecognitionException {
    try {
      int _type = SWITCH;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("switch");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mTEXT() throws RecognitionException {
    try {
      int _type = TEXT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("text");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mHTML() throws RecognitionException {
    try {
      int _type = HTML;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("html");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mATOM() throws RecognitionException {
    try {
      int _type = ATOM;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("atom");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mDATE() throws RecognitionException {
    try {
      int _type = DATE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("date");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mNUMBER() throws RecognitionException {
    try {
      int _type = NUMBER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("number");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mGEO() throws RecognitionException {
    try {
      int _type = GEO;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("geo");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mINT() throws RecognitionException {
    try {
      int _type = INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        int cnt1 = 0;
        loop1:
        do {
          int alt1 = 2;
          int LA1_0 = input.LA(1);

          if (((LA1_0 >= '0' && LA1_0 <= '9'))) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              {
                mDIGIT();
              }
              break;

            default:
              if (cnt1 >= 1) break loop1;
              EarlyExitException eee = new EarlyExitException(1, input);
              throw eee;
          }
          cnt1++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mPHRASE() throws RecognitionException {
    try {
      int _type = PHRASE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        mQUOTE();
        loop2:
        do {
          int alt2 = 3;
          int LA2_0 = input.LA(1);

          if ((LA2_0 == '\\')) {
            alt2 = 1;
          } else if (((LA2_0 >= '\u0000' && LA2_0 <= '!')
              || (LA2_0 >= '#' && LA2_0 <= '[')
              || (LA2_0 >= ']' && LA2_0 <= '\uFFFF'))) {
            alt2 = 2;
          }

          switch (alt2) {
            case 1:
              {
                mESC_SEQ();
              }
              break;
            case 2:
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                    || (input.LA(1) >= '#' && input.LA(1) <= '[')
                    || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);

        mQUOTE();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mFLOAT() throws RecognitionException {
    try {
      int _type = FLOAT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      int alt9 = 3;
      alt9 = dfa9.predict(input);
      switch (alt9) {
        case 1:
          {
            int cnt3 = 0;
            loop3:
            do {
              int alt3 = 2;
              int LA3_0 = input.LA(1);

              if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
                alt3 = 1;
              }

              switch (alt3) {
                case 1:
                  {
                    mDIGIT();
                  }
                  break;

                default:
                  if (cnt3 >= 1) break loop3;
                  EarlyExitException eee = new EarlyExitException(3, input);
                  throw eee;
              }
              cnt3++;
            } while (true);

            match('.');
            loop4:
            do {
              int alt4 = 2;
              int LA4_0 = input.LA(1);

              if (((LA4_0 >= '0' && LA4_0 <= '9'))) {
                alt4 = 1;
              }

              switch (alt4) {
                case 1:
                  {
                    mDIGIT();
                  }
                  break;

                default:
                  break loop4;
              }
            } while (true);

            int alt5 = 2;
            int LA5_0 = input.LA(1);

            if ((LA5_0 == 'E' || LA5_0 == 'e')) {
              alt5 = 1;
            }
            switch (alt5) {
              case 1:
                {
                  mEXPONENT();
                }
                break;
            }
          }
          break;
        case 2:
          {
            match('.');
            int cnt6 = 0;
            loop6:
            do {
              int alt6 = 2;
              int LA6_0 = input.LA(1);

              if (((LA6_0 >= '0' && LA6_0 <= '9'))) {
                alt6 = 1;
              }

              switch (alt6) {
                case 1:
                  {
                    mDIGIT();
                  }
                  break;

                default:
                  if (cnt6 >= 1) break loop6;
                  EarlyExitException eee = new EarlyExitException(6, input);
                  throw eee;
              }
              cnt6++;
            } while (true);

            int alt7 = 2;
            int LA7_0 = input.LA(1);

            if ((LA7_0 == 'E' || LA7_0 == 'e')) {
              alt7 = 1;
            }
            switch (alt7) {
              case 1:
                {
                  mEXPONENT();
                }
                break;
            }
          }
          break;
        case 3:
          {
            int cnt8 = 0;
            loop8:
            do {
              int alt8 = 2;
              int LA8_0 = input.LA(1);

              if (((LA8_0 >= '0' && LA8_0 <= '9'))) {
                alt8 = 1;
              }

              switch (alt8) {
                case 1:
                  {
                    mDIGIT();
                  }
                  break;

                default:
                  if (cnt8 >= 1) break loop8;
                  EarlyExitException eee = new EarlyExitException(8, input);
                  throw eee;
              }
              cnt8++;
            } while (true);

            mEXPONENT();
          }
          break;
      }
      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mNAME() throws RecognitionException {
    try {
      int _type = NAME;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        mNAME_START();
        loop10:
        do {
          int alt10 = 2;
          int LA10_0 = input.LA(1);

          if ((LA10_0 == '$'
              || (LA10_0 >= '0' && LA10_0 <= '9')
              || (LA10_0 >= 'A' && LA10_0 <= 'Z')
              || LA10_0 == '_'
              || (LA10_0 >= 'a' && LA10_0 <= 'z'))) {
            alt10 = 1;
          }

          switch (alt10) {
            case 1:
              {
                if (input.LA(1) == '$'
                    || (input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop10;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mLPAREN() throws RecognitionException {
    try {
      int _type = LPAREN;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mRPAREN() throws RecognitionException {
    try {
      int _type = RPAREN;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mLSQUARE() throws RecognitionException {
    try {
      int _type = LSQUARE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('[');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mRSQUARE() throws RecognitionException {
    try {
      int _type = RSQUARE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match(']');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mPLUS() throws RecognitionException {
    try {
      int _type = PLUS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('+');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mMINUS() throws RecognitionException {
    try {
      int _type = MINUS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('-');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mTIMES() throws RecognitionException {
    try {
      int _type = TIMES;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('*');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mDIV() throws RecognitionException {
    try {
      int _type = DIV;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('/');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mLT() throws RecognitionException {
    try {
      int _type = LT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('<');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mLE() throws RecognitionException {
    try {
      int _type = LE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("<=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mGT() throws RecognitionException {
    try {
      int _type = GT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('>');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mGE() throws RecognitionException {
    try {
      int _type = GE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match(">=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mEQ() throws RecognitionException {
    try {
      int _type = EQ;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('=');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mNE() throws RecognitionException {
    try {
      int _type = NE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match("!=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mCOND() throws RecognitionException {
    try {
      int _type = COND;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('?');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mQUOTE() throws RecognitionException {
    try {
      int _type = QUOTE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match('\"');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mCOMMA() throws RecognitionException {
    try {
      int _type = COMMA;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mWS() throws RecognitionException {
    try {
      int _type = WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      {
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);

        _channel = HIDDEN;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }

  public final void mEXPONENT() throws RecognitionException {
    try {
      {
        if (input.LA(1) == 'E' || input.LA(1) == 'e') {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        int alt12 = 2;
        int LA12_0 = input.LA(1);

        if ((LA12_0 == '+' || LA12_0 == '-')) {
          alt12 = 1;
        }
        switch (alt12) {
          case 1:
            {
              if (input.LA(1) == '+' || input.LA(1) == '-') {
                input.consume();

              } else {
                MismatchedSetException mse = new MismatchedSetException(null, input);
                recover(mse);
                throw mse;
              }
            }
            break;
        }

        int cnt13 = 0;
        loop13:
        do {
          int alt13 = 2;
          int LA13_0 = input.LA(1);

          if (((LA13_0 >= '0' && LA13_0 <= '9'))) {
            alt13 = 1;
          }

          switch (alt13) {
            case 1:
              {
                mDIGIT();
              }
              break;

            default:
              if (cnt13 >= 1) break loop13;
              EarlyExitException eee = new EarlyExitException(13, input);
              throw eee;
          }
          cnt13++;
        } while (true);
      }

    } finally {
    }
  }

  public final void mNAME_START() throws RecognitionException {
    try {
      {
        if (input.LA(1) == '$'
            || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
    }
  }

  public final void mASCII_LETTER() throws RecognitionException {
    try {
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
    }
  }

  public final void mDIGIT() throws RecognitionException {
    try {
      {
        matchRange('0', '9');
      }

    } finally {
    }
  }

  public final void mDOLLAR() throws RecognitionException {
    try {
      {
        match('$');
      }

    } finally {
    }
  }

  public final void mUNDERSCORE() throws RecognitionException {
    try {
      {
        match('_');
      }

    } finally {
    }
  }

  public final void mHEX_DIGIT() throws RecognitionException {
    try {
      {
        if ((input.LA(1) >= '0' && input.LA(1) <= '9')
            || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
            || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
    }
  }

  public final void mESC_SEQ() throws RecognitionException {
    try {
      int alt14 = 3;
      int LA14_0 = input.LA(1);

      if ((LA14_0 == '\\')) {
        switch (input.LA(2)) {
          case '\"':
          case '\'':
          case '\\':
          case 'b':
          case 'f':
          case 'n':
          case 'r':
          case 't':
            {
              alt14 = 1;
            }
            break;
          case 'u':
            {
              alt14 = 2;
            }
            break;
          case '0':
          case '1':
          case '2':
          case '3':
          case '4':
          case '5':
          case '6':
          case '7':
            {
              alt14 = 3;
            }
            break;
          default:
            NoViableAltException nvae = new NoViableAltException("", 14, 1, input);

            throw nvae;
        }

      } else {
        NoViableAltException nvae = new NoViableAltException("", 14, 0, input);

        throw nvae;
      }
      switch (alt14) {
        case 1:
          {
            match('\\');
            if (input.LA(1) == '\"'
                || input.LA(1) == '\''
                || input.LA(1) == '\\'
                || input.LA(1) == 'b'
                || input.LA(1) == 'f'
                || input.LA(1) == 'n'
                || input.LA(1) == 'r'
                || input.LA(1) == 't') {
              input.consume();

            } else {
              MismatchedSetException mse = new MismatchedSetException(null, input);
              recover(mse);
              throw mse;
            }
          }
          break;
        case 2:
          {
            mUNICODE_ESC();
          }
          break;
        case 3:
          {
            mOCTAL_ESC();
          }
          break;
      }
    } finally {
    }
  }

  public final void mOCTAL_ESC() throws RecognitionException {
    try {
      int alt15 = 3;
      int LA15_0 = input.LA(1);

      if ((LA15_0 == '\\')) {
        int LA15_1 = input.LA(2);

        if (((LA15_1 >= '0' && LA15_1 <= '3'))) {
          int LA15_2 = input.LA(3);

          if (((LA15_2 >= '0' && LA15_2 <= '7'))) {
            int LA15_4 = input.LA(4);

            if (((LA15_4 >= '0' && LA15_4 <= '7'))) {
              alt15 = 1;
            } else {
              alt15 = 2;
            }
          } else {
            alt15 = 3;
          }
        } else if (((LA15_1 >= '4' && LA15_1 <= '7'))) {
          int LA15_3 = input.LA(3);

          if (((LA15_3 >= '0' && LA15_3 <= '7'))) {
            alt15 = 2;
          } else {
            alt15 = 3;
          }
        } else {
          NoViableAltException nvae = new NoViableAltException("", 15, 1, input);

          throw nvae;
        }
      } else {
        NoViableAltException nvae = new NoViableAltException("", 15, 0, input);

        throw nvae;
      }
      switch (alt15) {
        case 1:
          {
            match('\\');
            {
              matchRange('0', '3');
            }

            {
              matchRange('0', '7');
            }

            {
              matchRange('0', '7');
            }
          }
          break;
        case 2:
          {
            match('\\');
            {
              matchRange('0', '7');
            }

            {
              matchRange('0', '7');
            }
          }
          break;
        case 3:
          {
            match('\\');
            {
              matchRange('0', '7');
            }
          }
          break;
      }
    } finally {
    }
  }

  public final void mUNICODE_ESC() throws RecognitionException {
    try {
      {
        match('\\');
        match('u');
        mHEX_DIGIT();
        mHEX_DIGIT();
        mHEX_DIGIT();
        mHEX_DIGIT();
      }

    } finally {
    }
  }

  public void mTokens() throws RecognitionException {
    int alt16 = 43;
    alt16 = dfa16.predict(input);
    switch (alt16) {
      case 1:
        {
          mT__58();
        }
        break;
      case 2:
        {
          mABS();
        }
        break;
      case 3:
        {
          mCOUNT();
        }
        break;
      case 4:
        {
          mDISTANCE();
        }
        break;
      case 5:
        {
          mGEOPOINT();
        }
        break;
      case 6:
        {
          mLOG();
        }
        break;
      case 7:
        {
          mMAX();
        }
        break;
      case 8:
        {
          mMIN();
        }
        break;
      case 9:
        {
          mPOW();
        }
        break;
      case 10:
        {
          mAND();
        }
        break;
      case 11:
        {
          mOR();
        }
        break;
      case 12:
        {
          mXOR();
        }
        break;
      case 13:
        {
          mNOT();
        }
        break;
      case 14:
        {
          mSNIPPET();
        }
        break;
      case 15:
        {
          mSWITCH();
        }
        break;
      case 16:
        {
          mTEXT();
        }
        break;
      case 17:
        {
          mHTML();
        }
        break;
      case 18:
        {
          mATOM();
        }
        break;
      case 19:
        {
          mDATE();
        }
        break;
      case 20:
        {
          mNUMBER();
        }
        break;
      case 21:
        {
          mGEO();
        }
        break;
      case 22:
        {
          mINT();
        }
        break;
      case 23:
        {
          mPHRASE();
        }
        break;
      case 24:
        {
          mFLOAT();
        }
        break;
      case 25:
        {
          mNAME();
        }
        break;
      case 26:
        {
          mLPAREN();
        }
        break;
      case 27:
        {
          mRPAREN();
        }
        break;
      case 28:
        {
          mLSQUARE();
        }
        break;
      case 29:
        {
          mRSQUARE();
        }
        break;
      case 30:
        {
          mPLUS();
        }
        break;
      case 31:
        {
          mMINUS();
        }
        break;
      case 32:
        {
          mTIMES();
        }
        break;
      case 33:
        {
          mDIV();
        }
        break;
      case 34:
        {
          mLT();
        }
        break;
      case 35:
        {
          mLE();
        }
        break;
      case 36:
        {
          mGT();
        }
        break;
      case 37:
        {
          mGE();
        }
        break;
      case 38:
        {
          mEQ();
        }
        break;
      case 39:
        {
          mNE();
        }
        break;
      case 40:
        {
          mCOND();
        }
        break;
      case 41:
        {
          mQUOTE();
        }
        break;
      case 42:
        {
          mCOMMA();
        }
        break;
      case 43:
        {
          mWS();
        }
        break;
    }
  }

  protected DFA9 dfa9 = new DFA9(this);
  protected DFA16 dfa16 = new DFA16(this);
  static final String DFA9_eotS = "\5\uffff";
  static final String DFA9_eofS = "\5\uffff";
  static final String DFA9_minS = "\2\56\3\uffff";
  static final String DFA9_maxS = "\1\71\1\145\3\uffff";
  static final String DFA9_acceptS = "\2\uffff\1\2\1\1\1\3";
  static final String DFA9_specialS = "\5\uffff}>";
  static final String[] DFA9_transitionS = {
    "\1\2\1\uffff\12\1", "\1\3\1\uffff\12\1\13\uffff\1\4\37\uffff\1\4", "", "", ""
  };

  static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
  static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS);
  static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS);
  static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS);
  static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS);
  static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS);
  static final short[][] DFA9_transition;

  static {
    int numStates = DFA9_transitionS.length;
    DFA9_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA9_transition[i] = DFA.unpackEncodedString(DFA9_transitionS[i]);
    }
  }

  class DFA9 extends DFA {

    public DFA9(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 9;
      this.eot = DFA9_eot;
      this.eof = DFA9_eof;
      this.min = DFA9_min;
      this.max = DFA9_max;
      this.accept = DFA9_accept;
      this.special = DFA9_special;
      this.transition = DFA9_transition;
    }

    public String getDescription() {
      return "261:1: FLOAT : ( ( DIGIT )+ '.' ( DIGIT )* ( EXPONENT )? | '.' ( DIGIT )+ ( EXPONENT )? | ( DIGIT )+ EXPONENT );";
    }
  }

  static final String DFA16_eotS =
      "\1\uffff\1\43\17\23\1\70\1\71\11\uffff\1\74\1\76\7\uffff\13\23\1"
          + "\112\7\23\7\uffff\1\122\4\23\1\130\1\131\1\132\1\133\1\134\1\135"
          + "\1\uffff\1\136\1\137\5\23\1\uffff\1\145\2\23\1\150\1\23\10\uffff"
          + "\2\23\1\154\1\155\1\23\1\uffff\1\157\1\23\1\uffff\3\23\2\uffff\1"
          + "\23\1\uffff\3\23\1\170\1\171\2\23\1\174\2\uffff\1\175\1\176\3\uffff";
  static final String DFA16_eofS = "\177\uffff";
  static final String DFA16_minS =
      "\1\11\1\60\1\142\1\157\1\141\1\145\1\157\1\141\1\157\1\116\1\122"
          + "\2\117\1\156\1\145\1\164\1\165\1\56\1\0\11\uffff\2\75\7\uffff\1"
          + "\163\1\157\1\165\1\163\1\164\1\157\1\147\1\170\1\156\1\167\1\104"
          + "\1\44\1\122\1\124\2\151\1\170\2\155\7\uffff\1\44\1\155\1\156\1\164"
          + "\1\145\6\44\1\uffff\2\44\1\160\2\164\1\154\1\142\1\uffff\1\44\1"
          + "\164\1\141\1\44\1\157\10\uffff\1\160\1\143\2\44\1\145\1\uffff\1"
          + "\44\1\156\1\uffff\1\151\1\145\1\150\2\uffff\1\162\1\uffff\1\143"
          + "\1\156\1\164\2\44\1\145\1\164\1\44\2\uffff\2\44\3\uffff";
  static final String DFA16_maxS =
      "\1\172\1\71\1\164\1\157\1\151\1\145\1\157\1\151\1\157\1\116\1\122"
          + "\2\117\1\167\1\145\1\164\1\165\1\145\1\uffff\11\uffff\2\75\7\uffff"
          + "\1\163\1\157\1\165\1\163\1\164\1\157\1\147\1\170\1\156\1\167\1\104"
          + "\1\172\1\122\1\124\2\151\1\170\2\155\7\uffff\1\172\1\155\1\156\1"
          + "\164\1\145\6\172\1\uffff\2\172\1\160\2\164\1\154\1\142\1\uffff\1"
          + "\172\1\164\1\141\1\172\1\157\10\uffff\1\160\1\143\2\172\1\145\1"
          + "\uffff\1\172\1\156\1\uffff\1\151\1\145\1\150\2\uffff\1\162\1\uffff"
          + "\1\143\1\156\1\164\2\172\1\145\1\164\1\172\2\uffff\2\172\3\uffff";
  static final String DFA16_acceptS =
      "\23\uffff\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\2\uffff\1"
          + "\46\1\47\1\50\1\52\1\53\1\1\1\30\23\uffff\1\26\1\51\1\27\1\43\1"
          + "\42\1\45\1\44\13\uffff\1\13\7\uffff\1\2\5\uffff\1\25\1\6\1\7\1\10"
          + "\1\11\1\12\1\14\1\15\5\uffff\1\22\2\uffff\1\23\3\uffff\1\20\1\21"
          + "\1\uffff\1\3\10\uffff\1\17\1\24\2\uffff\1\16\1\4\1\5";
  static final String DFA16_specialS = "\22\uffff\1\0\154\uffff}>";
  static final String[] DFA16_transitionS = {
    "\2\42\2\uffff\1\42\22\uffff\1\42\1\37\1\22\1\uffff\1\23\3\uffff"
        + "\1\24\1\25\1\32\1\30\1\41\1\31\1\1\1\33\12\21\2\uffff\1\34\1"
        + "\36\1\35\1\40\1\uffff\1\11\14\23\1\14\1\12\10\23\1\13\2\23\1"
        + "\26\1\uffff\1\27\1\uffff\1\23\1\uffff\1\2\1\23\1\3\1\4\2\23"
        + "\1\5\1\17\3\23\1\6\1\7\1\20\1\23\1\10\2\23\1\15\1\16\6\23",
    "\12\44",
    "\1\45\21\uffff\1\46",
    "\1\47",
    "\1\51\7\uffff\1\50",
    "\1\52",
    "\1\53",
    "\1\54\7\uffff\1\55",
    "\1\56",
    "\1\57",
    "\1\60",
    "\1\61",
    "\1\62",
    "\1\63\10\uffff\1\64",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\44\1\uffff\12\21\13\uffff\1\44\37\uffff\1\44",
    "\0\72",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\73",
    "\1\75",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\77",
    "\1\100",
    "\1\101",
    "\1\102",
    "\1\103",
    "\1\104",
    "\1\105",
    "\1\106",
    "\1\107",
    "\1\110",
    "\1\111",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\113",
    "\1\114",
    "\1\115",
    "\1\116",
    "\1\117",
    "\1\120",
    "\1\121",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\123",
    "\1\124",
    "\1\125",
    "\1\126",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\17" + "\23\1\127\12\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\140",
    "\1\141",
    "\1\142",
    "\1\143",
    "\1\144",
    "",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\146",
    "\1\147",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\151",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\152",
    "\1\153",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\156",
    "",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\160",
    "",
    "\1\161",
    "\1\162",
    "\1\163",
    "",
    "",
    "\1\164",
    "",
    "\1\165",
    "\1\166",
    "\1\167",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\172",
    "\1\173",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "",
    "",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "\1\23\13\uffff\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32" + "\23",
    "",
    "",
    ""
  };

  static final short[] DFA16_eot = DFA.unpackEncodedString(DFA16_eotS);
  static final short[] DFA16_eof = DFA.unpackEncodedString(DFA16_eofS);
  static final char[] DFA16_min = DFA.unpackEncodedStringToUnsignedChars(DFA16_minS);
  static final char[] DFA16_max = DFA.unpackEncodedStringToUnsignedChars(DFA16_maxS);
  static final short[] DFA16_accept = DFA.unpackEncodedString(DFA16_acceptS);
  static final short[] DFA16_special = DFA.unpackEncodedString(DFA16_specialS);
  static final short[][] DFA16_transition;

  static {
    int numStates = DFA16_transitionS.length;
    DFA16_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA16_transition[i] = DFA.unpackEncodedString(DFA16_transitionS[i]);
    }
  }

  class DFA16 extends DFA {

    public DFA16(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 16;
      this.eot = DFA16_eot;
      this.eof = DFA16_eof;
      this.min = DFA16_min;
      this.max = DFA16_max;
      this.accept = DFA16_accept;
      this.special = DFA16_special;
      this.transition = DFA16_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__58 | ABS | COUNT | DISTANCE | GEOPOINT | LOG | MAX | MIN | POW | AND | OR | XOR | NOT | SNIPPET | SWITCH | TEXT | HTML | ATOM | DATE | NUMBER | GEO | INT | PHRASE | FLOAT | NAME | LPAREN | RPAREN | LSQUARE | RSQUARE | PLUS | MINUS | TIMES | DIV | LT | LE | GT | GE | EQ | NE | COND | QUOTE | COMMA | WS );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA16_18 = input.LA(1);

          s = -1;
          if (((LA16_18 >= '\u0000' && LA16_18 <= '\uFFFF'))) {
            s = 58;
          } else s = 57;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 16, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #13
0
@SuppressWarnings("all")
public class InternalXtypeLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__27 = 27;
  public static final int T__26 = 26;
  public static final int T__25 = 25;
  public static final int T__24 = 24;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 9;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 7;
  public static final int RULE_ML_COMMENT = 6;
  public static final int T__19 = 19;
  public static final int RULE_STRING = 5;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int T__10 = 10;
  public static final int RULE_WS = 8;

  // delegates
  // delegators

  public InternalXtypeLexer() {
    ;
  }

  public InternalXtypeLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalXtypeLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g";
  }

  // $ANTLR start "T__10"
  public final void mT__10() throws RecognitionException {
    try {
      int _type = T__10;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:11:7: ( '[' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:11:9: '['
      {
        match('[');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__10"

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:12:7: ( ']' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:12:9: ']'
      {
        match(']');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:13:7: ( '(' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:13:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:14:7: ( ',' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:14:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:15:7: ( ')' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:15:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:16:7: ( '=>' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:16:9: '=>'
      {
        match("=>");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:17:7: ( '<' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:17:9: '<'
      {
        match('<');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:18:7: ( '>' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:18:9: '>'
      {
        match('>');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:19:7: ( '.' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:19:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:20:7: ( '?' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:20:9: '?'
      {
        match('?');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:21:7: ( 'extends' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:21:9: 'extends'
      {
        match("extends");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:22:7: ( '&' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:22:9: '&'
      {
        match('&');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:23:7: ( 'super' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:23:9: 'super'
      {
        match("super");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:24:7: ( '*' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:24:9: '*'
      {
        match('*');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:25:7: ( 'import' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:25:9: 'import'
      {
        match("import");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:26:7: ( 'static' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:26:9: 'static'
      {
        match("static");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:27:7: ( 'extension' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:27:9: 'extension'
      {
        match("extension");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:28:7: ( ';' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:28:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1032:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1032:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
      {
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1032:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1032:11: '^'
            {
              match('^');
            }
            break;
        }

        if (input.LA(1) == '$'
            || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1032:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if ((LA2_0 == '$'
              || (LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:
              {
                if (input.LA(1) == '$'
                    || (input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
      {
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
        int alt7 = 2;
        int LA7_0 = input.LA(1);

        if ((LA7_0 == '\"')) {
          alt7 = 1;
        } else if ((LA7_0 == '\'')) {
          alt7 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 7, 0, input);

          throw nvae;
        }
        switch (alt7) {
          case 1:
            // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
            {
              match('\"');
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop3:
              do {
                int alt3 = 3;
                int LA3_0 = input.LA(1);

                if ((LA3_0 == '\\')) {
                  alt3 = 1;
                } else if (((LA3_0 >= '\u0000' && LA3_0 <= '!')
                    || (LA3_0 >= '#' && LA3_0 <= '[')
                    || (LA3_0 >= ']' && LA3_0 <= '\uFFFF'))) {
                  alt3 = 2;
                }

                switch (alt3) {
                  case 1:
                    // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop3;
                }
              } while (true);

              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:44: ( '\"' )?
              int alt4 = 2;
              int LA4_0 = input.LA(1);

              if ((LA4_0 == '\"')) {
                alt4 = 1;
              }
              switch (alt4) {
                case 1:
                  // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:44: '\"'
                  {
                    match('\"');
                  }
                  break;
              }
            }
            break;
          case 2:
            // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
            {
              match('\'');
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:55: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:62: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:79: ( '\\'' )?
              int alt6 = 2;
              int LA6_0 = input.LA(1);

              if ((LA6_0 == '\'')) {
                alt6 = 1;
              }
              switch (alt6) {
                case 1:
                  // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1034:79: '\\''
                  {
                    match('\'');
                  }
                  break;
              }
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1036:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1036:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1036:24: ( options {greedy=false; } : . )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if ((LA8_0 == '*')) {
            int LA8_1 = input.LA(2);

            if ((LA8_1 == '/')) {
              alt8 = 2;
            } else if (((LA8_1 >= '\u0000' && LA8_1 <= '.')
                || (LA8_1 >= '0' && LA8_1 <= '\uFFFF'))) {
              alt8 = 1;
            }

          } else if (((LA8_0 >= '\u0000' && LA8_0 <= ')') || (LA8_0 >= '+' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1036:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop9:
        do {
          int alt9 = 2;
          int LA9_0 = input.LA(1);

          if (((LA9_0 >= '\u0000' && LA9_0 <= '\t')
              || (LA9_0 >= '\u000B' && LA9_0 <= '\f')
              || (LA9_0 >= '\u000E' && LA9_0 <= '\uFFFF'))) {
            alt9 = 1;
          }

          switch (alt9) {
            case 1:
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop9;
          }
        } while (true);

        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:40: ( ( '\\r' )? '\\n' )?
        int alt11 = 2;
        int LA11_0 = input.LA(1);

        if ((LA11_0 == '\n' || LA11_0 == '\r')) {
          alt11 = 1;
        }
        switch (alt11) {
          case 1:
            // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:41: ( '\\r' )? '\\n'
            {
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:41: ( '\\r' )?
              int alt10 = 2;
              int LA10_0 = input.LA(1);

              if ((LA10_0 == '\r')) {
                alt10 = 1;
              }
              switch (alt10) {
                case 1:
                  // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1038:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1040:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1040:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1040:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt12 = 0;
        loop12:
        do {
          int alt12 = 2;
          int LA12_0 = input.LA(1);

          if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            alt12 = 1;
          }

          switch (alt12) {
            case 1:
              // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt12 >= 1) break loop12;
              EarlyExitException eee = new EarlyExitException(12, input);
              throw eee;
          }
          cnt12++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1042:16: ( . )
      // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1042:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:8: ( T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt13 = 24;
    alt13 = dfa13.predict(input);
    switch (alt13) {
      case 1:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:10: T__10
        {
          mT__10();
        }
        break;
      case 2:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:16: T__11
        {
          mT__11();
        }
        break;
      case 3:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:22: T__12
        {
          mT__12();
        }
        break;
      case 4:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:28: T__13
        {
          mT__13();
        }
        break;
      case 5:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:34: T__14
        {
          mT__14();
        }
        break;
      case 6:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:40: T__15
        {
          mT__15();
        }
        break;
      case 7:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:46: T__16
        {
          mT__16();
        }
        break;
      case 8:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:52: T__17
        {
          mT__17();
        }
        break;
      case 9:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:58: T__18
        {
          mT__18();
        }
        break;
      case 10:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:64: T__19
        {
          mT__19();
        }
        break;
      case 11:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:70: T__20
        {
          mT__20();
        }
        break;
      case 12:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:76: T__21
        {
          mT__21();
        }
        break;
      case 13:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:82: T__22
        {
          mT__22();
        }
        break;
      case 14:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:88: T__23
        {
          mT__23();
        }
        break;
      case 15:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:94: T__24
        {
          mT__24();
        }
        break;
      case 16:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:100: T__25
        {
          mT__25();
        }
        break;
      case 17:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:106: T__26
        {
          mT__26();
        }
        break;
      case 18:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:112: T__27
        {
          mT__27();
        }
        break;
      case 19:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:118: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 20:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:126: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 21:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:138: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 22:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:154: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 23:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:170: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 24:
        // ../org.eclipse.xtext.xbase/src-gen/org/eclipse/xtext/xbase/parser/antlr/internal/InternalXtype.g:1:178: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA13 dfa13 = new DFA13(this);
  static final String DFA13_eotS =
      "\6\uffff\1\27\4\uffff\1\43\1\uffff\1\43\1\uffff\1\43\1\uffff\1\27\3\uffff\1\27\14\uffff\1\43\2\uffff\2\43\1\uffff\1\43\5\uffff\11\43\1\74\4\43\1\uffff\1\101\1\102\1\103\1\43\3\uffff\1\43\1\106\1\uffff";
  static final String DFA13_eofS = "\107\uffff";
  static final String DFA13_minS =
      "\1\0\5\uffff\1\76\4\uffff\1\170\1\uffff\1\164\1\uffff\1\155\1\uffff\1\44\3\uffff\1\52\14\uffff\1\164\2\uffff\1\160\1\141\1\uffff\1\160\5\uffff\2\145\1\164\1\157\1\156\1\162\1\151\1\162\1\144\1\44\1\143\1\164\1\163\1\151\1\uffff\3\44\1\157\3\uffff\1\156\1\44\1\uffff";
  static final String DFA13_maxS =
      "\1\uffff\5\uffff\1\76\4\uffff\1\170\1\uffff\1\165\1\uffff\1\155\1\uffff\1\172\3\uffff\1\57\14\uffff\1\164\2\uffff\1\160\1\141\1\uffff\1\160\5\uffff\2\145\1\164\1\157\1\156\1\162\1\151\1\162\1\163\1\172\1\143\1\164\1\163\1\151\1\uffff\3\172\1\157\3\uffff\1\156\1\172\1\uffff";
  static final String DFA13_acceptS =
      "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\uffff\1\7\1\10\1\11\1\12\1\uffff\1\14\1\uffff\1\16\1\uffff\1\22\1\uffff\1\23\2\24\1\uffff\1\27\1\30\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\uffff\1\23\1\14\2\uffff\1\16\1\uffff\1\22\1\24\1\25\1\26\1\27\16\uffff\1\15\4\uffff\1\20\1\17\1\13\2\uffff\1\21";
  static final String DFA13_specialS = "\1\0\106\uffff}>";
  static final String[] DFA13_transitionS = {
    "\11\27\2\26\2\27\1\26\22\27\1\26\1\27\1\23\1\27\1\22\1\27\1\14\1\24\1\3\1\5\1\16\1\27\1\4\1\27\1\11\1\25\13\27\1\20\1\7\1\6\1\10\1\12\1\27\32\22\1\1\1\27\1\2\1\21\1\22\1\27\4\22\1\13\3\22\1\17\11\22\1\15\7\22\uff85\27",
    "",
    "",
    "",
    "",
    "",
    "\1\35",
    "",
    "",
    "",
    "",
    "\1\42",
    "",
    "\1\46\1\45",
    "",
    "\1\50",
    "",
    "\1\43\34\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    "",
    "",
    "",
    "\1\53\4\uffff\1\54",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\56",
    "",
    "",
    "\1\57",
    "\1\60",
    "",
    "\1\61",
    "",
    "",
    "",
    "",
    "",
    "\1\62",
    "\1\63",
    "\1\64",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\70",
    "\1\71",
    "\1\72\16\uffff\1\73",
    "\1\43\13\uffff\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    "\1\75",
    "\1\76",
    "\1\77",
    "\1\100",
    "",
    "\1\43\13\uffff\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    "\1\43\13\uffff\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    "\1\43\13\uffff\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    "\1\104",
    "",
    "",
    "",
    "\1\105",
    "\1\43\13\uffff\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
    ""
  };

  static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
  static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
  static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
  static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
  static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
  static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
  static final short[][] DFA13_transition;

  static {
    int numStates = DFA13_transitionS.length;
    DFA13_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
    }
  }

  class DFA13 extends DFA {

    public DFA13(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 13;
      this.eot = DFA13_eot;
      this.eof = DFA13_eof;
      this.min = DFA13_min;
      this.max = DFA13_max;
      this.accept = DFA13_accept;
      this.special = DFA13_special;
      this.transition = DFA13_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA13_0 = input.LA(1);

          s = -1;
          if ((LA13_0 == '[')) {
            s = 1;
          } else if ((LA13_0 == ']')) {
            s = 2;
          } else if ((LA13_0 == '(')) {
            s = 3;
          } else if ((LA13_0 == ',')) {
            s = 4;
          } else if ((LA13_0 == ')')) {
            s = 5;
          } else if ((LA13_0 == '=')) {
            s = 6;
          } else if ((LA13_0 == '<')) {
            s = 7;
          } else if ((LA13_0 == '>')) {
            s = 8;
          } else if ((LA13_0 == '.')) {
            s = 9;
          } else if ((LA13_0 == '?')) {
            s = 10;
          } else if ((LA13_0 == 'e')) {
            s = 11;
          } else if ((LA13_0 == '&')) {
            s = 12;
          } else if ((LA13_0 == 's')) {
            s = 13;
          } else if ((LA13_0 == '*')) {
            s = 14;
          } else if ((LA13_0 == 'i')) {
            s = 15;
          } else if ((LA13_0 == ';')) {
            s = 16;
          } else if ((LA13_0 == '^')) {
            s = 17;
          } else if ((LA13_0 == '$'
              || (LA13_0 >= 'A' && LA13_0 <= 'Z')
              || LA13_0 == '_'
              || (LA13_0 >= 'a' && LA13_0 <= 'd')
              || (LA13_0 >= 'f' && LA13_0 <= 'h')
              || (LA13_0 >= 'j' && LA13_0 <= 'r')
              || (LA13_0 >= 't' && LA13_0 <= 'z'))) {
            s = 18;
          } else if ((LA13_0 == '\"')) {
            s = 19;
          } else if ((LA13_0 == '\'')) {
            s = 20;
          } else if ((LA13_0 == '/')) {
            s = 21;
          } else if (((LA13_0 >= '\t' && LA13_0 <= '\n') || LA13_0 == '\r' || LA13_0 == ' ')) {
            s = 22;
          } else if (((LA13_0 >= '\u0000' && LA13_0 <= '\b')
              || (LA13_0 >= '\u000B' && LA13_0 <= '\f')
              || (LA13_0 >= '\u000E' && LA13_0 <= '\u001F')
              || LA13_0 == '!'
              || LA13_0 == '#'
              || LA13_0 == '%'
              || LA13_0 == '+'
              || LA13_0 == '-'
              || (LA13_0 >= '0' && LA13_0 <= ':')
              || LA13_0 == '@'
              || LA13_0 == '\\'
              || LA13_0 == '`'
              || (LA13_0 >= '{' && LA13_0 <= '\uFFFF'))) {
            s = 23;
          }

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 13, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #14
0
@SuppressWarnings("all")
public class InternalScopingLexer extends Lexer {
  public static final int RULE_ID = 5;
  public static final int RULE_STRING = 4;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_ANY_OTHER = 10;
  public static final int RULE_INT = 6;
  public static final int RULE_WS = 9;
  public static final int RULE_SL_COMMENT = 8;
  public static final int EOF = -1;
  public static final int RULE_ML_COMMENT = 7;

  // delegates
  // delegators

  public InternalScopingLexer() {
    ;
  }

  public InternalScopingLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalScopingLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:11:7: ( 'importURI' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:11:9: 'importURI'
      {
        match("importURI");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:12:7: ( 'package' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:12:9: 'package'
      {
        match("package");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:13:7: ( 'import' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:13:9: 'import'
      {
        match("import");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:14:7: ( 'element' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:14:9: 'element'
      {
        match("element");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:15:7: ( 'refs' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:15:9: 'refs'
      {
        match("refs");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:16:7: ( '.' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:16:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:17:7: ( '.*' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:17:9: '.*'
      {
        match(".*");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:390:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:390:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:390:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:390:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:390:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:392:10: ( ( '0' .. '9' )+ )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:392:12: ( '0' .. '9' )+
      {
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:392:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:392:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:66: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:394:137: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:396:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:396:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:396:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:396:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:41: ( '\\r' )? '\\n'
            {
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:398:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:400:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:400:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:400:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:402:16: ( . )
      // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:402:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 14;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:52: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 9:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:60: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 10:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:69: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 11:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:81: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 12:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:97: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 13:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:113: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 14:
        // ../org.eclipse.eclipsecon.scoping/src-gen/org/eclipse/eclipsecon/scoping/parser/antlr/internal/InternalScoping.g:1:121: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\4\17\1\24\1\15\2\uffff\3\15\2\uffff\1\17\1\uffff\3\17\7"
          + "\uffff\7\17\1\45\3\17\1\uffff\1\52\3\17\1\uffff\1\56\1\57\1\17\2"
          + "\uffff\1\61\1\uffff";
  static final String DFA12_eofS = "\62\uffff";
  static final String DFA12_minS =
      "\1\0\1\155\1\141\1\154\1\145\1\52\1\101\2\uffff\2\0\1\52\2\uffff"
          + "\1\160\1\uffff\1\143\1\145\1\146\7\uffff\1\157\1\153\1\155\1\163"
          + "\1\162\1\141\1\145\1\60\1\164\1\147\1\156\1\uffff\1\60\1\145\1\164"
          + "\1\122\1\uffff\2\60\1\111\2\uffff\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\155\1\141\1\154\1\145\1\52\1\172\2\uffff\2\uffff\1\57"
          + "\2\uffff\1\160\1\uffff\1\143\1\145\1\146\7\uffff\1\157\1\153\1\155"
          + "\1\163\1\162\1\141\1\145\1\172\1\164\1\147\1\156\1\uffff\1\172\1"
          + "\145\1\164\1\122\1\uffff\2\172\1\111\2\uffff\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\7\uffff\1\10\1\11\3\uffff\1\15\1\16\1\uffff\1\10\3\uffff\1\7\1"
          + "\6\1\11\1\12\1\13\1\14\1\15\13\uffff\1\5\4\uffff\1\3\3\uffff\1\2"
          + "\1\4\1\uffff\1\1";
  static final String DFA12_specialS = "\1\2\10\uffff\1\1\1\0\47\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\15\2\14\2\15\1\14\22\15\1\14\1\15\1\11\4\15\1\12\6\15\1"
        + "\5\1\13\12\10\7\15\32\7\3\15\1\6\1\7\1\15\4\7\1\3\3\7\1\1\6"
        + "\7\1\2\1\7\1\4\10\7\uff85\15",
    "\1\16",
    "\1\20",
    "\1\21",
    "\1\22",
    "\1\23",
    "\32\17\4\uffff\1\17\1\uffff\32\17",
    "",
    "",
    "\0\26",
    "\0\26",
    "\1\27\4\uffff\1\30",
    "",
    "",
    "\1\32",
    "",
    "\1\33",
    "\1\34",
    "\1\35",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\36",
    "\1\37",
    "\1\40",
    "\1\41",
    "\1\42",
    "\1\43",
    "\1\44",
    "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17",
    "\1\46",
    "\1\47",
    "\1\50",
    "",
    "\12\17\7\uffff\24\17\1\51\5\17\4\uffff\1\17\1\uffff\32\17",
    "\1\53",
    "\1\54",
    "\1\55",
    "",
    "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17",
    "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17",
    "\1\60",
    "",
    "",
    "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_10 = input.LA(1);

          s = -1;
          if (((LA12_10 >= '\u0000' && LA12_10 <= '\uFFFF'))) {
            s = 22;
          } else s = 13;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_9 = input.LA(1);

          s = -1;
          if (((LA12_9 >= '\u0000' && LA12_9 <= '\uFFFF'))) {
            s = 22;
          } else s = 13;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'i')) {
            s = 1;
          } else if ((LA12_0 == 'p')) {
            s = 2;
          } else if ((LA12_0 == 'e')) {
            s = 3;
          } else if ((LA12_0 == 'r')) {
            s = 4;
          } else if ((LA12_0 == '.')) {
            s = 5;
          } else if ((LA12_0 == '^')) {
            s = 6;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'd')
              || (LA12_0 >= 'f' && LA12_0 <= 'h')
              || (LA12_0 >= 'j' && LA12_0 <= 'o')
              || LA12_0 == 'q'
              || (LA12_0 >= 's' && LA12_0 <= 'z'))) {
            s = 7;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 8;
          } else if ((LA12_0 == '\"')) {
            s = 9;
          } else if ((LA12_0 == '\'')) {
            s = 10;
          } else if ((LA12_0 == '/')) {
            s = 11;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 12;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '-')
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 13;
          }

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #15
0
public class SDGThreadInstance_Lexer extends Lexer {
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int NUMBER = 4;
  public static final int WHITESPACE = 6;
  public static final int EOF = -1;
  public static final int T__9 = 9;
  public static final int T__8 = 8;
  public static final int T__7 = 7;
  public static final int T__19 = 19;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int T__10 = 10;
  public static final int STRING = 5;

  @Override
  public void reportError(RecognitionException e) {
    super.reportError(e);
    Thrower.sneakyThrow(e);
  }

  /**
   * See "Puzzle 43: Exceptionally Unsafe" from Bloch Gafter, <i>Java Puzzlers</i>. Addison Wesley
   * 2005.
   */
  static class Thrower {
    private static Throwable t;

    private Thrower() throws Throwable {
      throw t;
    }

    public static synchronized void sneakyThrow(Throwable t) {
      Thrower.t = t;
      try {
        Thrower.class.newInstance();
      } catch (InstantiationException e) {
        throw new IllegalArgumentException(e);
      } catch (IllegalAccessException e) {
        throw new IllegalArgumentException(e);
      } finally {
        Thrower.t = null; // Avoid memory leak
      }
    }
  }

  // delegates
  // delegators

  public SDGThreadInstance_Lexer() {
    ;
  }

  public SDGThreadInstance_Lexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public SDGThreadInstance_Lexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "/Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g";
  }

  // $ANTLR start "T__7"
  public final void mT__7() throws RecognitionException {
    try {
      int _type = T__7;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:47:6: ( 'Thread' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:47:8: 'Thread'
      {
        match("Thread");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__7"

  // $ANTLR start "T__8"
  public final void mT__8() throws RecognitionException {
    try {
      int _type = T__8;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:48:6: ( '{' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:48:8: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__8"

  // $ANTLR start "T__9"
  public final void mT__9() throws RecognitionException {
    try {
      int _type = T__9;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:49:6: ( 'Entry' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:49:8: 'Entry'
      {
        match("Entry");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__9"

  // $ANTLR start "T__10"
  public final void mT__10() throws RecognitionException {
    try {
      int _type = T__10;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:50:7: ( ';' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:50:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__10"

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:51:7: ( 'Exit' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:51:9: 'Exit'
      {
        match("Exit");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:52:7: ( 'Fork' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:52:9: 'Fork'
      {
        match("Fork");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:53:7: ( 'Join' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:53:9: 'Join'
      {
        match("Join");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:54:7: ( 'Context' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:54:9: 'Context'
      {
        match("Context");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:55:7: ( 'Dynamic' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:55:9: 'Dynamic'
      {
        match("Dynamic");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:56:7: ( '}' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:56:9: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:57:7: ( 'null' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:57:9: 'null'
      {
        match("null");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:58:7: ( '[' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:58:9: '['
      {
        match('[');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:59:7: ( ',' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:59:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:60:7: ( ']' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:60:9: ']'
      {
        match(']');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:61:7: ( '-' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:61:9: '-'
      {
        match('-');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:62:7: ( 'true' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:62:9: 'true'
      {
        match("true");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:63:7: ( 'false' )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:63:9: 'false'
      {
        match("false");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "WHITESPACE"
  public final void mWHITESPACE() throws RecognitionException {
    try {
      int _type = WHITESPACE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:205:3: ( ( ' ' | '\\t' | '\\n' | '\\r' ) )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:205:5: ( ' ' | '\\t' | '\\n' | '\\r' )
      {
        if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
            || input.LA(1) == '\r'
            || input.LA(1) == ' ') {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        _channel = HIDDEN;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "WHITESPACE"

  // $ANTLR start "NUMBER"
  public final void mNUMBER() throws RecognitionException {
    try {
      int _type = NUMBER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:209:3: ( ( '0' .. '9' )+ )
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:209:5: ( '0' .. '9' )+
      {
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:209:5: ( '0' .. '9' )+
        int cnt1 = 0;
        loop1:
        do {
          int alt1 = 2;
          int LA1_0 = input.LA(1);

          if (((LA1_0 >= '0' && LA1_0 <= '9'))) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:209:6: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt1 >= 1) break loop1;
              EarlyExitException eee = new EarlyExitException(1, input);
              throw eee;
          }
          cnt1++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "NUMBER"

  // $ANTLR start "STRING"
  public final void mSTRING() throws RecognitionException {
    try {
      int _type = STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:213:3: ( '<' '\"' ({...}? '\"' | ~ ( '\"' ) )* '\"' '>' | ( '\"' (~ '\"' )* '\"' ) )
      int alt4 = 2;
      int LA4_0 = input.LA(1);

      if ((LA4_0 == '<')) {
        alt4 = 1;
      } else if ((LA4_0 == '\"')) {
        alt4 = 2;
      } else {
        NoViableAltException nvae = new NoViableAltException("", 4, 0, input);

        throw nvae;
      }
      switch (alt4) {
        case 1:
          // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:213:5: '<' '\"' ({...}? '\"' | ~ ( '\"' ) )* '\"' '>'
          {
            match('<');
            match('\"');
            // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:213:13: ({...}? '\"' | ~ ( '\"' ) )*
            loop2:
            do {
              int alt2 = 3;
              int LA2_0 = input.LA(1);

              if ((LA2_0 == '\"')) {
                int LA2_1 = input.LA(2);

                if ((LA2_1 == '>')) {
                  int LA2_3 = input.LA(3);

                  if (((LA2_3 >= '\u0000' && LA2_3 <= '\uFFFF'))) {
                    alt2 = 1;
                  }

                } else if (((LA2_1 >= '\u0000' && LA2_1 <= '=')
                    || (LA2_1 >= '?' && LA2_1 <= '\uFFFF'))) {
                  alt2 = 1;
                }

              } else if (((LA2_0 >= '\u0000' && LA2_0 <= '!')
                  || (LA2_0 >= '#' && LA2_0 <= '\uFFFF'))) {
                alt2 = 2;
              }

              switch (alt2) {
                case 1:
                  // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:213:15: {...}? '\"'
                  {
                    if (!((input.LA(2) != '>'))) {
                      throw new FailedPredicateException(input, "STRING", " input.LA(2) != '>' ");
                    }
                    match('\"');
                  }
                  break;
                case 2:
                  // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:213:45: ~ ( '\"' )
                  {
                    if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                        || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF')) {
                      input.consume();

                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                  break;

                default:
                  break loop2;
              }
            } while (true);

            match('\"');
            match('>');
          }
          break;
        case 2:
          // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:214:5: ( '\"' (~ '\"' )* '\"' )
          {
            // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:214:5: ( '\"' (~ '\"' )* '\"' )
            // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:214:6: '\"' (~ '\"' )* '\"'
            {
              match('\"');
              // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:214:10: (~ '\"' )*
              loop3:
              do {
                int alt3 = 2;
                int LA3_0 = input.LA(1);

                if (((LA3_0 >= '\u0000' && LA3_0 <= '!') || (LA3_0 >= '#' && LA3_0 <= '\uFFFF'))) {
                  alt3 = 1;
                }

                switch (alt3) {
                  case 1:
                    // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:214:11: ~ '\"'
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop3;
                }
              } while (true);

              match('\"');
            }
          }
          break;
      }
      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "STRING"

  public void mTokens() throws RecognitionException {
    // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | WHITESPACE | NUMBER | STRING )
    int alt5 = 20;
    alt5 = dfa5.predict(input);
    switch (alt5) {
      case 1:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:10: T__7
        {
          mT__7();
        }
        break;
      case 2:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:15: T__8
        {
          mT__8();
        }
        break;
      case 3:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:20: T__9
        {
          mT__9();
        }
        break;
      case 4:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:25: T__10
        {
          mT__10();
        }
        break;
      case 5:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:31: T__11
        {
          mT__11();
        }
        break;
      case 6:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:37: T__12
        {
          mT__12();
        }
        break;
      case 7:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:43: T__13
        {
          mT__13();
        }
        break;
      case 8:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:49: T__14
        {
          mT__14();
        }
        break;
      case 9:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:55: T__15
        {
          mT__15();
        }
        break;
      case 10:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:61: T__16
        {
          mT__16();
        }
        break;
      case 11:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:67: T__17
        {
          mT__17();
        }
        break;
      case 12:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:73: T__18
        {
          mT__18();
        }
        break;
      case 13:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:79: T__19
        {
          mT__19();
        }
        break;
      case 14:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:85: T__20
        {
          mT__20();
        }
        break;
      case 15:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:91: T__21
        {
          mT__21();
        }
        break;
      case 16:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:97: T__22
        {
          mT__22();
        }
        break;
      case 17:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:103: T__23
        {
          mT__23();
        }
        break;
      case 18:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:109: WHITESPACE
        {
          mWHITESPACE();
        }
        break;
      case 19:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:120: NUMBER
        {
          mNUMBER();
        }
        break;
      case 20:
        // /Users/jgf/Documents/Projects/joana/ifc/sdg/joana.ifc.sdg.graph/src/edu/kit/joana/ifc/sdg/graph/SDGThreadInstance_.g:1:127: STRING
        {
          mSTRING();
        }
        break;
    }
  }

  protected DFA5 dfa5 = new DFA5(this);
  static final String DFA5_eotS = "\26\uffff";
  static final String DFA5_eofS = "\26\uffff";
  static final String DFA5_minS = "\1\11\2\uffff\1\156\22\uffff";
  static final String DFA5_maxS = "\1\175\2\uffff\1\170\22\uffff";
  static final String DFA5_acceptS =
      "\1\uffff\1\1\1\2\1\uffff\1\4\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"
          + "\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\3\1\5";
  static final String DFA5_specialS = "\26\uffff}>";
  static final String[] DFA5_transitionS = {
    "\2\21\2\uffff\1\21\22\uffff\1\21\1\uffff\1\23\11\uffff\1\14"
        + "\1\16\2\uffff\12\22\1\uffff\1\4\1\23\6\uffff\1\7\1\10\1\3\1"
        + "\5\3\uffff\1\6\11\uffff\1\1\6\uffff\1\13\1\uffff\1\15\10\uffff"
        + "\1\20\7\uffff\1\12\5\uffff\1\17\6\uffff\1\2\1\uffff\1\11",
    "",
    "",
    "\1\24\11\uffff\1\25",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
  };

  static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS);
  static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS);
  static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS);
  static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS);
  static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS);
  static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS);
  static final short[][] DFA5_transition;

  static {
    int numStates = DFA5_transitionS.length;
    DFA5_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA5_transition[i] = DFA.unpackEncodedString(DFA5_transitionS[i]);
    }
  }

  class DFA5 extends DFA {

    public DFA5(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 5;
      this.eot = DFA5_eot;
      this.eof = DFA5_eof;
      this.min = DFA5_min;
      this.max = DFA5_max;
      this.accept = DFA5_accept;
      this.special = DFA5_special;
      this.transition = DFA5_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | WHITESPACE | NUMBER | STRING );";
    }
  }
}
@SuppressWarnings("all")
public class PsiInternalPartialParserTestLanguageLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 8;
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__19 = 19;
  public static final int RULE_STRING = 6;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;

  // delegates
  // delegators

  public PsiInternalPartialParserTestLanguageLexer() {
    ;
  }

  public PsiInternalPartialParserTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public PsiInternalPartialParserTestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:11:7: ( 'container' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:11:9: 'container'
      {
        match("container");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:12:7: ( '{' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:12:9: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:13:7: ( '}' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:13:9: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:14:7: ( 'nested' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:14:9: 'nested'
      {
        match("nested");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:15:7: ( 'children' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:15:9: 'children'
      {
        match("children");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:16:7: ( ',' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:16:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:17:7: ( '->' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:17:9: '->'
      {
        match("->");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:18:7: ( 'C' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:18:9: 'C'
      {
        match('C');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:19:7: ( '(' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:19:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:20:7: ( ')' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:20:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:21:7: ( 'abstract children' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:21:9: 'abstract children'
      {
        match("abstract children");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:22:7: ( 'F' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:22:9: 'F'
      {
        match('F');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:23:7: ( 'S' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:23:9: 'S'
      {
        match('S');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:529:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:529:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:529:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:529:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:529:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:531:10: ( ( '0' .. '9' )+ )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:531:12: ( '0' .. '9' )+
      {
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:531:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:531:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:533:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:535:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:535:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:535:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:535:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:41: ( '\\r' )? '\\n'
            {
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:537:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:539:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:539:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:539:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:541:16: ( . )
      // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:541:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 20;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:76: T__22
        {
          mT__22();
        }
        break;
      case 13:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:82: T__23
        {
          mT__23();
        }
        break;
      case 14:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:88: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 15:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:96: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 16:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:105: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 17:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:117: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 18:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:133: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 19:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:149: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 20:
        // ../../intellij/org.eclipse.xtext.core.idea.tests/src-gen/org/eclipse/xtext/testlanguages/idea/parser/antlr/internal/PsiInternalPartialParserTestLanguage.g:1:157: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\27\2\uffff\1\27\1\uffff\1\24\1\35\2\uffff\1\27\1\41\1\42\1\24\2\uffff\3\24\2\uffff\2\27\3\uffff\1\27\5\uffff\1\27\7\uffff\16\27\1\72\3\27\1\uffff\2\27\1\100\1\27\1\102\3\uffff";
  static final String DFA12_eofS = "\103\uffff";
  static final String DFA12_minS =
      "\1\0\1\150\2\uffff\1\145\1\uffff\1\76\1\60\2\uffff\1\142\2\60\1\101\2\uffff\2\0\1\52\2\uffff\1\156\1\151\3\uffff\1\163\5\uffff\1\163\7\uffff\1\164\1\154\2\164\1\141\1\144\1\145\1\162\1\151\1\162\1\144\1\141\1\156\1\145\1\60\1\143\1\145\1\156\1\uffff\1\164\1\162\1\60\1\40\1\60\3\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\157\2\uffff\1\145\1\uffff\1\76\1\172\2\uffff\1\142\3\172\2\uffff\2\uffff\1\57\2\uffff\1\156\1\151\3\uffff\1\163\5\uffff\1\163\7\uffff\1\164\1\154\2\164\1\141\1\144\1\145\1\162\1\151\1\162\1\144\1\141\1\156\1\145\1\172\1\143\1\145\1\156\1\uffff\1\164\1\162\1\172\1\40\1\172\3\uffff";
  static final String DFA12_acceptS =
      "\2\uffff\1\2\1\3\1\uffff\1\6\2\uffff\1\11\1\12\4\uffff\1\16\1\17\3\uffff\1\23\1\24\2\uffff\1\16\1\2\1\3\1\uffff\1\6\1\7\1\10\1\11\1\12\1\uffff\1\14\1\15\1\17\1\20\1\21\1\22\1\23\22\uffff\1\4\5\uffff\1\5\1\13\1\1";
  static final String DFA12_specialS = "\1\0\17\uffff\1\1\1\2\61\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\20\4\24\1\21\1\10\1\11\2\24\1\5\1\6\1\24\1\22\12\17\7\24\2\16\1\7\2\16\1\13\14\16\1\14\7\16\3\24\1\15\1\16\1\24\1\12\1\16\1\1\12\16\1\4\14\16\1\2\1\24\1\3\uff82\24",
    "\1\26\6\uffff\1\25",
    "",
    "",
    "\1\32",
    "",
    "\1\34",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "",
    "",
    "\1\40",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "\32\27\4\uffff\1\27\1\uffff\32\27",
    "",
    "",
    "\0\44",
    "\0\44",
    "\1\45\4\uffff\1\46",
    "",
    "",
    "\1\50",
    "\1\51",
    "",
    "",
    "",
    "\1\52",
    "",
    "",
    "",
    "",
    "",
    "\1\53",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\54",
    "\1\55",
    "\1\56",
    "\1\57",
    "\1\60",
    "\1\61",
    "\1\62",
    "\1\63",
    "\1\64",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\70",
    "\1\71",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "\1\73",
    "\1\74",
    "\1\75",
    "",
    "\1\76",
    "\1\77",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "\1\101",
    "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
    "",
    "",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'c')) {
            s = 1;
          } else if ((LA12_0 == '{')) {
            s = 2;
          } else if ((LA12_0 == '}')) {
            s = 3;
          } else if ((LA12_0 == 'n')) {
            s = 4;
          } else if ((LA12_0 == ',')) {
            s = 5;
          } else if ((LA12_0 == '-')) {
            s = 6;
          } else if ((LA12_0 == 'C')) {
            s = 7;
          } else if ((LA12_0 == '(')) {
            s = 8;
          } else if ((LA12_0 == ')')) {
            s = 9;
          } else if ((LA12_0 == 'a')) {
            s = 10;
          } else if ((LA12_0 == 'F')) {
            s = 11;
          } else if ((LA12_0 == 'S')) {
            s = 12;
          } else if ((LA12_0 == '^')) {
            s = 13;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'B')
              || (LA12_0 >= 'D' && LA12_0 <= 'E')
              || (LA12_0 >= 'G' && LA12_0 <= 'R')
              || (LA12_0 >= 'T' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || LA12_0 == 'b'
              || (LA12_0 >= 'd' && LA12_0 <= 'm')
              || (LA12_0 >= 'o' && LA12_0 <= 'z'))) {
            s = 14;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 15;
          } else if ((LA12_0 == '\"')) {
            s = 16;
          } else if ((LA12_0 == '\'')) {
            s = 17;
          } else if ((LA12_0 == '/')) {
            s = 18;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 19;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '*' && LA12_0 <= '+')
              || LA12_0 == '.'
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || LA12_0 == '|'
              || (LA12_0 >= '~' && LA12_0 <= '\uFFFF'))) {
            s = 20;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_16 = input.LA(1);

          s = -1;
          if (((LA12_16 >= '\u0000' && LA12_16 <= '\uFFFF'))) {
            s = 36;
          } else s = 20;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_17 = input.LA(1);

          s = -1;
          if (((LA12_17 >= '\u0000' && LA12_17 <= '\uFFFF'))) {
            s = 36;
          } else s = 20;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class InternalVideoGenLexer extends Lexer {
  public static final int RULE_STRING = 8;
  public static final int RULE_SL_COMMENT = 10;
  public static final int T__19 = 19;
  public static final int T__15 = 15;
  public static final int RULE_RIGHT_BRACKET = 5;
  public static final int T__16 = 16;
  public static final int T__17 = 17;
  public static final int T__18 = 18;
  public static final int T__13 = 13;
  public static final int T__14 = 14;
  public static final int EOF = -1;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int RULE_ID = 6;
  public static final int RULE_WS = 11;
  public static final int RULE_LEFT_BRACKET = 4;
  public static final int RULE_ANY_OTHER = 12;
  public static final int T__26 = 26;
  public static final int T__27 = 27;
  public static final int T__28 = 28;
  public static final int RULE_INT = 7;
  public static final int T__29 = 29;
  public static final int T__22 = 22;
  public static final int RULE_ML_COMMENT = 9;
  public static final int T__23 = 23;
  public static final int T__24 = 24;
  public static final int T__25 = 25;
  public static final int T__20 = 20;
  public static final int T__21 = 21;

  // delegates
  // delegators

  public InternalVideoGenLexer() {
    ;
  }

  public InternalVideoGenLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalVideoGenLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "InternalVideoGen.g";
  }

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:11:7: ( 'VideoGen' )
      // InternalVideoGen.g:11:9: 'VideoGen'
      {
        match("VideoGen");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:12:7: ( '@Optional' )
      // InternalVideoGen.g:12:9: '@Optional'
      {
        match("@Optional");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:13:7: ( '@Mandatory' )
      // InternalVideoGen.g:13:9: '@Mandatory'
      {
        match("@Mandatory");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:14:7: ( 'Alternatives' )
      // InternalVideoGen.g:14:9: 'Alternatives'
      {
        match("Alternatives");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:15:7: ( '@Probability(' )
      // InternalVideoGen.g:15:9: '@Probability('
      {
        match("@Probability(");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:16:7: ( ')' )
      // InternalVideoGen.g:16:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:17:7: ( 'Sequence' )
      // InternalVideoGen.g:17:9: 'Sequence'
      {
        match("Sequence");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:18:7: ( 'url=' )
      // InternalVideoGen.g:18:9: 'url='
      {
        match("url=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:19:7: ( 'description=' )
      // InternalVideoGen.g:19:9: 'description='
      {
        match("description=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:20:7: ( 'length=' )
      // InternalVideoGen.g:20:9: 'length='
      {
        match("length=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:21:7: ( 'mimetype=' )
      // InternalVideoGen.g:21:9: 'mimetype='
      {
        match("mimetype=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:22:7: ( 'NONE' )
      // InternalVideoGen.g:22:9: 'NONE'
      {
        match("NONE");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:23:7: ( 'MP4' )
      // InternalVideoGen.g:23:9: 'MP4'
      {
        match("MP4");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:24:7: ( 'FLV' )
      // InternalVideoGen.g:24:9: 'FLV'
      {
        match("FLV");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:25:7: ( 'MPEGTS' )
      // InternalVideoGen.g:25:9: 'MPEGTS'
      {
        match("MPEGTS");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:26:7: ( 'MPEG' )
      // InternalVideoGen.g:26:9: 'MPEG'
      {
        match("MPEG");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:27:7: ( 'WEBM' )
      // InternalVideoGen.g:27:9: 'WEBM'
      {
        match("WEBM");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:28:7: ( 'WMV' )
      // InternalVideoGen.g:28:9: 'WMV'
      {
        match("WMV");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:29:7: ( 'AVI' )
      // InternalVideoGen.g:29:9: 'AVI'
      {
        match("AVI");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "RULE_LEFT_BRACKET"
  public final void mRULE_LEFT_BRACKET() throws RecognitionException {
    try {
      int _type = RULE_LEFT_BRACKET;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:596:19: ( '{' )
      // InternalVideoGen.g:596:21: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_LEFT_BRACKET"

  // $ANTLR start "RULE_RIGHT_BRACKET"
  public final void mRULE_RIGHT_BRACKET() throws RecognitionException {
    try {
      int _type = RULE_RIGHT_BRACKET;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:598:20: ( '}' )
      // InternalVideoGen.g:598:22: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_RIGHT_BRACKET"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:600:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A'
      // .. 'Z' | '_' | '0' .. '9' )* )
      // InternalVideoGen.g:600:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' ..
      // 'Z' | '_' | '0' .. '9' )*
      {
        // InternalVideoGen.g:600:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // InternalVideoGen.g:600:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // InternalVideoGen.g:600:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // InternalVideoGen.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:602:10: ( ( '0' .. '9' )+ )
      // InternalVideoGen.g:602:12: ( '0' .. '9' )+
      {
        // InternalVideoGen.g:602:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // InternalVideoGen.g:602:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:604:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
      // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // InternalVideoGen.g:604:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
      // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // InternalVideoGen.g:604:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' (
        // '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // InternalVideoGen.g:604:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // InternalVideoGen.g:604:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // InternalVideoGen.g:604:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalVideoGen.g:604:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // InternalVideoGen.g:604:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // InternalVideoGen.g:604:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // InternalVideoGen.g:604:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalVideoGen.g:604:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:606:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // InternalVideoGen.g:606:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // InternalVideoGen.g:606:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // InternalVideoGen.g:606:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:608:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // InternalVideoGen.g:608:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // InternalVideoGen.g:608:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // InternalVideoGen.g:608:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // InternalVideoGen.g:608:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // InternalVideoGen.g:608:41: ( '\\r' )? '\\n'
            {
              // InternalVideoGen.g:608:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // InternalVideoGen.g:608:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:610:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // InternalVideoGen.g:610:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // InternalVideoGen.g:610:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // InternalVideoGen.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalVideoGen.g:612:16: ( . )
      // InternalVideoGen.g:612:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // InternalVideoGen.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 |
    // T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 |
    // RULE_LEFT_BRACKET | RULE_RIGHT_BRACKET | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT |
    // RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 28;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // InternalVideoGen.g:1:10: T__13
        {
          mT__13();
        }
        break;
      case 2:
        // InternalVideoGen.g:1:16: T__14
        {
          mT__14();
        }
        break;
      case 3:
        // InternalVideoGen.g:1:22: T__15
        {
          mT__15();
        }
        break;
      case 4:
        // InternalVideoGen.g:1:28: T__16
        {
          mT__16();
        }
        break;
      case 5:
        // InternalVideoGen.g:1:34: T__17
        {
          mT__17();
        }
        break;
      case 6:
        // InternalVideoGen.g:1:40: T__18
        {
          mT__18();
        }
        break;
      case 7:
        // InternalVideoGen.g:1:46: T__19
        {
          mT__19();
        }
        break;
      case 8:
        // InternalVideoGen.g:1:52: T__20
        {
          mT__20();
        }
        break;
      case 9:
        // InternalVideoGen.g:1:58: T__21
        {
          mT__21();
        }
        break;
      case 10:
        // InternalVideoGen.g:1:64: T__22
        {
          mT__22();
        }
        break;
      case 11:
        // InternalVideoGen.g:1:70: T__23
        {
          mT__23();
        }
        break;
      case 12:
        // InternalVideoGen.g:1:76: T__24
        {
          mT__24();
        }
        break;
      case 13:
        // InternalVideoGen.g:1:82: T__25
        {
          mT__25();
        }
        break;
      case 14:
        // InternalVideoGen.g:1:88: T__26
        {
          mT__26();
        }
        break;
      case 15:
        // InternalVideoGen.g:1:94: T__27
        {
          mT__27();
        }
        break;
      case 16:
        // InternalVideoGen.g:1:100: T__28
        {
          mT__28();
        }
        break;
      case 17:
        // InternalVideoGen.g:1:106: T__29
        {
          mT__29();
        }
        break;
      case 18:
        // InternalVideoGen.g:1:112: T__30
        {
          mT__30();
        }
        break;
      case 19:
        // InternalVideoGen.g:1:118: T__31
        {
          mT__31();
        }
        break;
      case 20:
        // InternalVideoGen.g:1:124: RULE_LEFT_BRACKET
        {
          mRULE_LEFT_BRACKET();
        }
        break;
      case 21:
        // InternalVideoGen.g:1:142: RULE_RIGHT_BRACKET
        {
          mRULE_RIGHT_BRACKET();
        }
        break;
      case 22:
        // InternalVideoGen.g:1:161: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 23:
        // InternalVideoGen.g:1:169: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 24:
        // InternalVideoGen.g:1:178: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 25:
        // InternalVideoGen.g:1:190: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 26:
        // InternalVideoGen.g:1:206: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 27:
        // InternalVideoGen.g:1:222: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 28:
        // InternalVideoGen.g:1:230: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\31\1\27\1\31\1\uffff\11\31\2\uffff\1\27\2\uffff\3\27\2\uffff\1\31\4\uffff\2\31\1\uffff\12\31\7\uffff\2\31\1\101\6\31\1\110\1\31\1\112\1\31\1\114\2\31\1\uffff\1\31\1\uffff\3\31\1\123\1\uffff\1\125\1\uffff\1\126\1\uffff\6\31\1\uffff\1\31\2\uffff\6\31\1\144\4\31\1\uffff\1\31\1\uffff\1\152\1\31\1\154\2\31\1\uffff\1\31\1\uffff\1\31\1\uffff\4\31\1\165\2\uffff";
  static final String DFA12_eofS = "\166\uffff";
  static final String DFA12_minS =
      "\1\0\1\151\1\115\1\126\1\uffff\1\145\1\162\2\145\1\151\1\117\1\120\1\114\1\105\2\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\144\4\uffff\1\164\1\111\1\uffff\1\161\1\154\1\163\1\156\1\155\1\116\1\64\1\126\1\102\1\126\7\uffff\2\145\1\60\1\165\1\75\1\143\1\147\1\145\1\105\1\60\1\107\1\60\1\115\1\60\1\157\1\162\1\uffff\1\145\1\uffff\1\162\2\164\1\60\1\uffff\1\60\1\uffff\1\60\1\uffff\1\107\2\156\1\151\1\150\1\171\1\uffff\1\123\2\uffff\1\145\1\141\1\143\1\160\1\75\1\160\1\60\1\156\1\164\1\145\1\164\1\uffff\1\145\1\uffff\1\60\1\151\1\60\1\151\1\75\1\uffff\1\166\1\uffff\1\157\1\uffff\1\145\1\156\1\163\1\75\1\60\2\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\151\1\120\1\154\1\uffff\1\145\1\162\2\145\1\151\1\117\1\120\1\114\1\115\2\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\4\uffff\1\164\1\111\1\uffff\1\161\1\154\1\163\1\156\1\155\1\116\1\105\1\126\1\102\1\126\7\uffff\2\145\1\172\1\165\1\75\1\143\1\147\1\145\1\105\1\172\1\107\1\172\1\115\1\172\1\157\1\162\1\uffff\1\145\1\uffff\1\162\2\164\1\172\1\uffff\1\172\1\uffff\1\172\1\uffff\1\107\2\156\1\151\1\150\1\171\1\uffff\1\123\2\uffff\1\145\1\141\1\143\1\160\1\75\1\160\1\172\1\156\1\164\1\145\1\164\1\uffff\1\145\1\uffff\1\172\1\151\1\172\1\151\1\75\1\uffff\1\166\1\uffff\1\157\1\uffff\1\145\1\156\1\163\1\75\1\172\2\uffff";
  static final String DFA12_acceptS =
      "\4\uffff\1\6\11\uffff\1\24\1\25\1\uffff\1\26\1\27\3\uffff\1\33\1\34\1\uffff\1\26\1\2\1\3\1\5\2\uffff\1\6\12\uffff\1\24\1\25\1\27\1\30\1\31\1\32\1\33\20\uffff\1\23\1\uffff\1\10\4\uffff\1\15\1\uffff\1\16\1\uffff\1\22\6\uffff\1\14\1\uffff\1\20\1\21\13\uffff\1\12\1\uffff\1\17\5\uffff\1\1\1\uffff\1\7\1\uffff\1\13\5\uffff\1\11\1\4";
  static final String DFA12_specialS = "\1\1\22\uffff\1\0\1\2\141\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\27\2\26\2\27\1\26\22\27\1\26\1\27\1\23\4\27\1\24\1\27\1\4\5\27\1\25\12\22\6\27\1\2\1\3\4\21\1\14\6\21\1\13\1\12\4\21\1\5\2\21\1\1\1\15\3\21\3\27\1\20\1\21\1\27\3\21\1\7\7\21\1\10\1\11\7\21\1\6\5\21\1\16\1\27\1\17\uff82\27",
    "\1\30",
    "\1\33\1\uffff\1\32\1\34",
    "\1\36\25\uffff\1\35",
    "",
    "\1\40",
    "\1\41",
    "\1\42",
    "\1\43",
    "\1\44",
    "\1\45",
    "\1\46",
    "\1\47",
    "\1\50\7\uffff\1\51",
    "",
    "",
    "\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "",
    "\0\55",
    "\0\55",
    "\1\56\4\uffff\1\57",
    "",
    "",
    "\1\61",
    "",
    "",
    "",
    "",
    "\1\62",
    "\1\63",
    "",
    "\1\64",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\70",
    "\1\71",
    "\1\72\20\uffff\1\73",
    "\1\74",
    "\1\75",
    "\1\76",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\77",
    "\1\100",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\102",
    "\1\103",
    "\1\104",
    "\1\105",
    "\1\106",
    "\1\107",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\111",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\113",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\115",
    "\1\116",
    "",
    "\1\117",
    "",
    "\1\120",
    "\1\121",
    "\1\122",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "\12\31\7\uffff\23\31\1\124\6\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "\1\127",
    "\1\130",
    "\1\131",
    "\1\132",
    "\1\133",
    "\1\134",
    "",
    "\1\135",
    "",
    "",
    "\1\136",
    "\1\137",
    "\1\140",
    "\1\141",
    "\1\142",
    "\1\143",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\145",
    "\1\146",
    "\1\147",
    "\1\150",
    "",
    "\1\151",
    "",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\153",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\1\155",
    "\1\156",
    "",
    "\1\157",
    "",
    "\1\160",
    "",
    "\1\161",
    "\1\162",
    "\1\163",
    "\1\164",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_LEFT_BRACKET | RULE_RIGHT_BRACKET | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_19 = input.LA(1);

          s = -1;
          if (((LA12_19 >= '\u0000' && LA12_19 <= '\uFFFF'))) {
            s = 45;
          } else s = 23;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'V')) {
            s = 1;
          } else if ((LA12_0 == '@')) {
            s = 2;
          } else if ((LA12_0 == 'A')) {
            s = 3;
          } else if ((LA12_0 == ')')) {
            s = 4;
          } else if ((LA12_0 == 'S')) {
            s = 5;
          } else if ((LA12_0 == 'u')) {
            s = 6;
          } else if ((LA12_0 == 'd')) {
            s = 7;
          } else if ((LA12_0 == 'l')) {
            s = 8;
          } else if ((LA12_0 == 'm')) {
            s = 9;
          } else if ((LA12_0 == 'N')) {
            s = 10;
          } else if ((LA12_0 == 'M')) {
            s = 11;
          } else if ((LA12_0 == 'F')) {
            s = 12;
          } else if ((LA12_0 == 'W')) {
            s = 13;
          } else if ((LA12_0 == '{')) {
            s = 14;
          } else if ((LA12_0 == '}')) {
            s = 15;
          } else if ((LA12_0 == '^')) {
            s = 16;
          } else if (((LA12_0 >= 'B' && LA12_0 <= 'E')
              || (LA12_0 >= 'G' && LA12_0 <= 'L')
              || (LA12_0 >= 'O' && LA12_0 <= 'R')
              || (LA12_0 >= 'T' && LA12_0 <= 'U')
              || (LA12_0 >= 'X' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'c')
              || (LA12_0 >= 'e' && LA12_0 <= 'k')
              || (LA12_0 >= 'n' && LA12_0 <= 't')
              || (LA12_0 >= 'v' && LA12_0 <= 'z'))) {
            s = 17;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 18;
          } else if ((LA12_0 == '\"')) {
            s = 19;
          } else if ((LA12_0 == '\'')) {
            s = 20;
          } else if ((LA12_0 == '/')) {
            s = 21;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 22;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || LA12_0 == '('
              || (LA12_0 >= '*' && LA12_0 <= '.')
              || (LA12_0 >= ':' && LA12_0 <= '?')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || LA12_0 == '|'
              || (LA12_0 >= '~' && LA12_0 <= '\uFFFF'))) {
            s = 23;
          }

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_20 = input.LA(1);

          s = -1;
          if (((LA12_20 >= '\u0000' && LA12_20 <= '\uFFFF'))) {
            s = 45;
          } else s = 23;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class CalcLabLexer extends Lexer {
  public static final int EOF = -1;
  public static final int T__25 = 25;
  public static final int T__26 = 26;
  public static final int T__27 = 27;
  public static final int T__28 = 28;
  public static final int T__29 = 29;
  public static final int T__30 = 30;
  public static final int ARGUMENTS_SEPARATOR = 4;
  public static final int CHAR = 5;
  public static final int CLOSING_PARENTHESIS = 6;
  public static final int CLOSING_SQ_PARENTHESIS = 7;
  public static final int DECIMAL_SEPARATOR = 8;
  public static final int DIGIT = 9;
  public static final int DIVISION = 10;
  public static final int EQUALS = 11;
  public static final int EXPRESSIONS_SEPARATOR = 12;
  public static final int FACTORIAL = 13;
  public static final int HELP = 14;
  public static final int ID = 15;
  public static final int INVOLUTION = 16;
  public static final int MINUS = 17;
  public static final int MULTIPLY = 18;
  public static final int NAME = 19;
  public static final int OPENING_PARENTHESIS = 20;
  public static final int OPENING_SQ_PARENTHESIS = 21;
  public static final int PLUS = 22;
  public static final int REMAINDER = 23;
  public static final int S = 24;

  // delegates
  // delegators
  public Lexer[] getDelegates() {
    return new Lexer[] {};
  }

  public CalcLabLexer() {}

  public CalcLabLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public CalcLabLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  @Override
  public String getGrammarFileName() {
    return "CalcLab.g";
  }

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:11:7: ( ' ' )
      // CalcLab.g:11:9: ' '
      {
        match(' ');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:12:7: ( 'E' )
      // CalcLab.g:12:9: 'E'
      {
        match('E');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:13:7: ( '\\n' )
      // CalcLab.g:13:9: '\\n'
      {
        match('\n');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:14:7: ( '\\r' )
      // CalcLab.g:14:9: '\\r'
      {
        match('\r');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:15:7: ( '\\t' )
      // CalcLab.g:15:9: '\\t'
      {
        match('\t');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:16:7: ( 'e' )
      // CalcLab.g:16:9: 'e'
      {
        match('e');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "PLUS"
  public final void mPLUS() throws RecognitionException {
    try {
      int _type = PLUS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:205:7: ( ( S )* '+' ( S )* )
      // CalcLab.g:205:9: ( S )* '+' ( S )*
      {
        // CalcLab.g:205:9: ( S )*
        loop1:
        while (true) {
          int alt1 = 2;
          int LA1_0 = input.LA(1);
          if (((LA1_0 >= '\t' && LA1_0 <= '\n') || LA1_0 == '\r' || LA1_0 == ' ')) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              // CalcLab.g:205:9: S
              {
                mS();
              }
              break;

            default:
              break loop1;
          }
        }

        match('+');
        // CalcLab.g:205:16: ( S )*
        loop2:
        while (true) {
          int alt2 = 2;
          int LA2_0 = input.LA(1);
          if (((LA2_0 >= '\t' && LA2_0 <= '\n') || LA2_0 == '\r' || LA2_0 == ' ')) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // CalcLab.g:205:16: S
              {
                mS();
              }
              break;

            default:
              break loop2;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "PLUS"

  // $ANTLR start "MINUS"
  public final void mMINUS() throws RecognitionException {
    try {
      int _type = MINUS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:206:7: ( ( S )* '-' ( S )* )
      // CalcLab.g:206:9: ( S )* '-' ( S )*
      {
        // CalcLab.g:206:9: ( S )*
        loop3:
        while (true) {
          int alt3 = 2;
          int LA3_0 = input.LA(1);
          if (((LA3_0 >= '\t' && LA3_0 <= '\n') || LA3_0 == '\r' || LA3_0 == ' ')) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // CalcLab.g:206:9: S
              {
                mS();
              }
              break;

            default:
              break loop3;
          }
        }

        match('-');
        // CalcLab.g:206:16: ( S )*
        loop4:
        while (true) {
          int alt4 = 2;
          int LA4_0 = input.LA(1);
          if (((LA4_0 >= '\t' && LA4_0 <= '\n') || LA4_0 == '\r' || LA4_0 == ' ')) {
            alt4 = 1;
          }

          switch (alt4) {
            case 1:
              // CalcLab.g:206:16: S
              {
                mS();
              }
              break;

            default:
              break loop4;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "MINUS"

  // $ANTLR start "MULTIPLY"
  public final void mMULTIPLY() throws RecognitionException {
    try {
      int _type = MULTIPLY;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:207:10: ( ( S )* '*' ( S )* )
      // CalcLab.g:207:12: ( S )* '*' ( S )*
      {
        // CalcLab.g:207:12: ( S )*
        loop5:
        while (true) {
          int alt5 = 2;
          int LA5_0 = input.LA(1);
          if (((LA5_0 >= '\t' && LA5_0 <= '\n') || LA5_0 == '\r' || LA5_0 == ' ')) {
            alt5 = 1;
          }

          switch (alt5) {
            case 1:
              // CalcLab.g:207:12: S
              {
                mS();
              }
              break;

            default:
              break loop5;
          }
        }

        match('*');
        // CalcLab.g:207:19: ( S )*
        loop6:
        while (true) {
          int alt6 = 2;
          int LA6_0 = input.LA(1);
          if (((LA6_0 >= '\t' && LA6_0 <= '\n') || LA6_0 == '\r' || LA6_0 == ' ')) {
            alt6 = 1;
          }

          switch (alt6) {
            case 1:
              // CalcLab.g:207:19: S
              {
                mS();
              }
              break;

            default:
              break loop6;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "MULTIPLY"

  // $ANTLR start "DIVISION"
  public final void mDIVISION() throws RecognitionException {
    try {
      int _type = DIVISION;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:208:10: ( ( S )* '/' ( S )* )
      // CalcLab.g:208:12: ( S )* '/' ( S )*
      {
        // CalcLab.g:208:12: ( S )*
        loop7:
        while (true) {
          int alt7 = 2;
          int LA7_0 = input.LA(1);
          if (((LA7_0 >= '\t' && LA7_0 <= '\n') || LA7_0 == '\r' || LA7_0 == ' ')) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // CalcLab.g:208:12: S
              {
                mS();
              }
              break;

            default:
              break loop7;
          }
        }

        match('/');
        // CalcLab.g:208:19: ( S )*
        loop8:
        while (true) {
          int alt8 = 2;
          int LA8_0 = input.LA(1);
          if (((LA8_0 >= '\t' && LA8_0 <= '\n') || LA8_0 == '\r' || LA8_0 == ' ')) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // CalcLab.g:208:19: S
              {
                mS();
              }
              break;

            default:
              break loop8;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "DIVISION"

  // $ANTLR start "EQUALS"
  public final void mEQUALS() throws RecognitionException {
    try {
      int _type = EQUALS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:209:8: ( ( S )* '=' ( S )* )
      // CalcLab.g:209:10: ( S )* '=' ( S )*
      {
        // CalcLab.g:209:10: ( S )*
        loop9:
        while (true) {
          int alt9 = 2;
          int LA9_0 = input.LA(1);
          if (((LA9_0 >= '\t' && LA9_0 <= '\n') || LA9_0 == '\r' || LA9_0 == ' ')) {
            alt9 = 1;
          }

          switch (alt9) {
            case 1:
              // CalcLab.g:209:10: S
              {
                mS();
              }
              break;

            default:
              break loop9;
          }
        }

        match('=');
        // CalcLab.g:209:17: ( S )*
        loop10:
        while (true) {
          int alt10 = 2;
          int LA10_0 = input.LA(1);
          if (((LA10_0 >= '\t' && LA10_0 <= '\n') || LA10_0 == '\r' || LA10_0 == ' ')) {
            alt10 = 1;
          }

          switch (alt10) {
            case 1:
              // CalcLab.g:209:17: S
              {
                mS();
              }
              break;

            default:
              break loop10;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "EQUALS"

  // $ANTLR start "REMAINDER"
  public final void mREMAINDER() throws RecognitionException {
    try {
      int _type = REMAINDER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:210:11: ( ( S )* '%' ( S )* )
      // CalcLab.g:210:13: ( S )* '%' ( S )*
      {
        // CalcLab.g:210:13: ( S )*
        loop11:
        while (true) {
          int alt11 = 2;
          int LA11_0 = input.LA(1);
          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // CalcLab.g:210:13: S
              {
                mS();
              }
              break;

            default:
              break loop11;
          }
        }

        match('%');
        // CalcLab.g:210:20: ( S )*
        loop12:
        while (true) {
          int alt12 = 2;
          int LA12_0 = input.LA(1);
          if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            alt12 = 1;
          }

          switch (alt12) {
            case 1:
              // CalcLab.g:210:20: S
              {
                mS();
              }
              break;

            default:
              break loop12;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "REMAINDER"

  // $ANTLR start "INVOLUTION"
  public final void mINVOLUTION() throws RecognitionException {
    try {
      int _type = INVOLUTION;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:213:12: ( ( S )* '^' ( S )* )
      // CalcLab.g:213:14: ( S )* '^' ( S )*
      {
        // CalcLab.g:213:14: ( S )*
        loop13:
        while (true) {
          int alt13 = 2;
          int LA13_0 = input.LA(1);
          if (((LA13_0 >= '\t' && LA13_0 <= '\n') || LA13_0 == '\r' || LA13_0 == ' ')) {
            alt13 = 1;
          }

          switch (alt13) {
            case 1:
              // CalcLab.g:213:14: S
              {
                mS();
              }
              break;

            default:
              break loop13;
          }
        }

        match('^');
        // CalcLab.g:213:21: ( S )*
        loop14:
        while (true) {
          int alt14 = 2;
          int LA14_0 = input.LA(1);
          if (((LA14_0 >= '\t' && LA14_0 <= '\n') || LA14_0 == '\r' || LA14_0 == ' ')) {
            alt14 = 1;
          }

          switch (alt14) {
            case 1:
              // CalcLab.g:213:21: S
              {
                mS();
              }
              break;

            default:
              break loop14;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "INVOLUTION"

  // $ANTLR start "FACTORIAL"
  public final void mFACTORIAL() throws RecognitionException {
    try {
      int _type = FACTORIAL;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:214:11: ( ( S )* '!' ( S )* )
      // CalcLab.g:214:13: ( S )* '!' ( S )*
      {
        // CalcLab.g:214:13: ( S )*
        loop15:
        while (true) {
          int alt15 = 2;
          int LA15_0 = input.LA(1);
          if (((LA15_0 >= '\t' && LA15_0 <= '\n') || LA15_0 == '\r' || LA15_0 == ' ')) {
            alt15 = 1;
          }

          switch (alt15) {
            case 1:
              // CalcLab.g:214:13: S
              {
                mS();
              }
              break;

            default:
              break loop15;
          }
        }

        match('!');
        // CalcLab.g:214:20: ( S )*
        loop16:
        while (true) {
          int alt16 = 2;
          int LA16_0 = input.LA(1);
          if (((LA16_0 >= '\t' && LA16_0 <= '\n') || LA16_0 == '\r' || LA16_0 == ' ')) {
            alt16 = 1;
          }

          switch (alt16) {
            case 1:
              // CalcLab.g:214:20: S
              {
                mS();
              }
              break;

            default:
              break loop16;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "FACTORIAL"

  // $ANTLR start "HELP"
  public final void mHELP() throws RecognitionException {
    try {
      int _type = HELP;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:217:5: ( 'help' ( S )* )
      // CalcLab.g:217:7: 'help' ( S )*
      {
        match("help");

        // CalcLab.g:217:14: ( S )*
        loop17:
        while (true) {
          int alt17 = 2;
          int LA17_0 = input.LA(1);
          if (((LA17_0 >= '\t' && LA17_0 <= '\n') || LA17_0 == '\r' || LA17_0 == ' ')) {
            alt17 = 1;
          }

          switch (alt17) {
            case 1:
              // CalcLab.g:217:14: S
              {
                mS();
              }
              break;

            default:
              break loop17;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "HELP"

  // $ANTLR start "DIGIT"
  public final void mDIGIT() throws RecognitionException {
    try {
      int _type = DIGIT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:220:7: ( ( '0' .. '9' )+ )
      // CalcLab.g:220:9: ( '0' .. '9' )+
      {
        // CalcLab.g:220:9: ( '0' .. '9' )+
        int cnt18 = 0;
        loop18:
        while (true) {
          int alt18 = 2;
          int LA18_0 = input.LA(1);
          if (((LA18_0 >= '0' && LA18_0 <= '9'))) {
            alt18 = 1;
          }

          switch (alt18) {
            case 1:
              // CalcLab.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt18 >= 1) break loop18;
              EarlyExitException eee = new EarlyExitException(18, input);
              throw eee;
          }
          cnt18++;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "DIGIT"

  // $ANTLR start "NAME"
  public final void mNAME() throws RecognitionException {
    try {
      int _type = NAME;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:221:6: ( ( S )* ID ( ID | DIGIT )* ( S )* )
      // CalcLab.g:221:8: ( S )* ID ( ID | DIGIT )* ( S )*
      {
        // CalcLab.g:221:8: ( S )*
        loop19:
        while (true) {
          int alt19 = 2;
          int LA19_0 = input.LA(1);
          if (((LA19_0 >= '\t' && LA19_0 <= '\n') || LA19_0 == '\r' || LA19_0 == ' ')) {
            alt19 = 1;
          }

          switch (alt19) {
            case 1:
              // CalcLab.g:221:8: S
              {
                mS();
              }
              break;

            default:
              break loop19;
          }
        }

        mID();

        // CalcLab.g:221:14: ( ID | DIGIT )*
        loop20:
        while (true) {
          int alt20 = 3;
          int LA20_0 = input.LA(1);
          if (((LA20_0 >= 'A' && LA20_0 <= 'Z')
              || LA20_0 == '_'
              || (LA20_0 >= 'a' && LA20_0 <= 'z'))) {
            alt20 = 1;
          } else if (((LA20_0 >= '0' && LA20_0 <= '9'))) {
            alt20 = 2;
          }

          switch (alt20) {
            case 1:
              // CalcLab.g:221:15: ID
              {
                mID();
              }
              break;
            case 2:
              // CalcLab.g:221:19: DIGIT
              {
                mDIGIT();
              }
              break;

            default:
              break loop20;
          }
        }

        // CalcLab.g:221:27: ( S )*
        loop21:
        while (true) {
          int alt21 = 2;
          int LA21_0 = input.LA(1);
          if (((LA21_0 >= '\t' && LA21_0 <= '\n') || LA21_0 == '\r' || LA21_0 == ' ')) {
            alt21 = 1;
          }

          switch (alt21) {
            case 1:
              // CalcLab.g:221:27: S
              {
                mS();
              }
              break;

            default:
              break loop21;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "NAME"

  // $ANTLR start "ID"
  public final void mID() throws RecognitionException {
    try {
      // CalcLab.g:222:13: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
      // CalcLab.g:
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "ID"

  // $ANTLR start "CHAR"
  public final void mCHAR() throws RecognitionException {
    try {
      // CalcLab.g:223:15: ( 'A' .. 'z' )
      // CalcLab.g:
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'z')) {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "CHAR"

  // $ANTLR start "OPENING_PARENTHESIS"
  public final void mOPENING_PARENTHESIS() throws RecognitionException {
    try {
      int _type = OPENING_PARENTHESIS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:224:21: ( ( S )* '(' ( S )* )
      // CalcLab.g:224:23: ( S )* '(' ( S )*
      {
        // CalcLab.g:224:23: ( S )*
        loop22:
        while (true) {
          int alt22 = 2;
          int LA22_0 = input.LA(1);
          if (((LA22_0 >= '\t' && LA22_0 <= '\n') || LA22_0 == '\r' || LA22_0 == ' ')) {
            alt22 = 1;
          }

          switch (alt22) {
            case 1:
              // CalcLab.g:224:23: S
              {
                mS();
              }
              break;

            default:
              break loop22;
          }
        }

        match('(');
        // CalcLab.g:224:30: ( S )*
        loop23:
        while (true) {
          int alt23 = 2;
          int LA23_0 = input.LA(1);
          if (((LA23_0 >= '\t' && LA23_0 <= '\n') || LA23_0 == '\r' || LA23_0 == ' ')) {
            alt23 = 1;
          }

          switch (alt23) {
            case 1:
              // CalcLab.g:224:30: S
              {
                mS();
              }
              break;

            default:
              break loop23;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "OPENING_PARENTHESIS"

  // $ANTLR start "CLOSING_PARENTHESIS"
  public final void mCLOSING_PARENTHESIS() throws RecognitionException {
    try {
      int _type = CLOSING_PARENTHESIS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:225:21: ( ( S )* ')' ( S )* )
      // CalcLab.g:225:23: ( S )* ')' ( S )*
      {
        // CalcLab.g:225:23: ( S )*
        loop24:
        while (true) {
          int alt24 = 2;
          int LA24_0 = input.LA(1);
          if (((LA24_0 >= '\t' && LA24_0 <= '\n') || LA24_0 == '\r' || LA24_0 == ' ')) {
            alt24 = 1;
          }

          switch (alt24) {
            case 1:
              // CalcLab.g:225:23: S
              {
                mS();
              }
              break;

            default:
              break loop24;
          }
        }

        match(')');
        // CalcLab.g:225:30: ( S )*
        loop25:
        while (true) {
          int alt25 = 2;
          int LA25_0 = input.LA(1);
          if (((LA25_0 >= '\t' && LA25_0 <= '\n') || LA25_0 == '\r' || LA25_0 == ' ')) {
            alt25 = 1;
          }

          switch (alt25) {
            case 1:
              // CalcLab.g:225:30: S
              {
                mS();
              }
              break;

            default:
              break loop25;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "CLOSING_PARENTHESIS"

  // $ANTLR start "OPENING_SQ_PARENTHESIS"
  public final void mOPENING_SQ_PARENTHESIS() throws RecognitionException {
    try {
      int _type = OPENING_SQ_PARENTHESIS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:226:24: ( ( S )* '[' ( S )* )
      // CalcLab.g:226:26: ( S )* '[' ( S )*
      {
        // CalcLab.g:226:26: ( S )*
        loop26:
        while (true) {
          int alt26 = 2;
          int LA26_0 = input.LA(1);
          if (((LA26_0 >= '\t' && LA26_0 <= '\n') || LA26_0 == '\r' || LA26_0 == ' ')) {
            alt26 = 1;
          }

          switch (alt26) {
            case 1:
              // CalcLab.g:226:26: S
              {
                mS();
              }
              break;

            default:
              break loop26;
          }
        }

        match('[');
        // CalcLab.g:226:33: ( S )*
        loop27:
        while (true) {
          int alt27 = 2;
          int LA27_0 = input.LA(1);
          if (((LA27_0 >= '\t' && LA27_0 <= '\n') || LA27_0 == '\r' || LA27_0 == ' ')) {
            alt27 = 1;
          }

          switch (alt27) {
            case 1:
              // CalcLab.g:226:33: S
              {
                mS();
              }
              break;

            default:
              break loop27;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "OPENING_SQ_PARENTHESIS"

  // $ANTLR start "CLOSING_SQ_PARENTHESIS"
  public final void mCLOSING_SQ_PARENTHESIS() throws RecognitionException {
    try {
      int _type = CLOSING_SQ_PARENTHESIS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:227:24: ( ( S )* ']' ( S )* )
      // CalcLab.g:227:26: ( S )* ']' ( S )*
      {
        // CalcLab.g:227:26: ( S )*
        loop28:
        while (true) {
          int alt28 = 2;
          int LA28_0 = input.LA(1);
          if (((LA28_0 >= '\t' && LA28_0 <= '\n') || LA28_0 == '\r' || LA28_0 == ' ')) {
            alt28 = 1;
          }

          switch (alt28) {
            case 1:
              // CalcLab.g:227:26: S
              {
                mS();
              }
              break;

            default:
              break loop28;
          }
        }

        match(']');
        // CalcLab.g:227:33: ( S )*
        loop29:
        while (true) {
          int alt29 = 2;
          int LA29_0 = input.LA(1);
          if (((LA29_0 >= '\t' && LA29_0 <= '\n') || LA29_0 == '\r' || LA29_0 == ' ')) {
            alt29 = 1;
          }

          switch (alt29) {
            case 1:
              // CalcLab.g:227:33: S
              {
                mS();
              }
              break;

            default:
              break loop29;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "CLOSING_SQ_PARENTHESIS"

  // $ANTLR start "DECIMAL_SEPARATOR"
  public final void mDECIMAL_SEPARATOR() throws RecognitionException {
    try {
      int _type = DECIMAL_SEPARATOR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:228:19: ( '.' )
      // CalcLab.g:228:21: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "DECIMAL_SEPARATOR"

  // $ANTLR start "ARGUMENTS_SEPARATOR"
  public final void mARGUMENTS_SEPARATOR() throws RecognitionException {
    try {
      int _type = ARGUMENTS_SEPARATOR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:229:21: ( ',' )
      // CalcLab.g:229:23: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "ARGUMENTS_SEPARATOR"

  // $ANTLR start "EXPRESSIONS_SEPARATOR"
  public final void mEXPRESSIONS_SEPARATOR() throws RecognitionException {
    try {
      int _type = EXPRESSIONS_SEPARATOR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:230:23: ( ( S )* ';' ( S )* )
      // CalcLab.g:230:25: ( S )* ';' ( S )*
      {
        // CalcLab.g:230:25: ( S )*
        loop30:
        while (true) {
          int alt30 = 2;
          int LA30_0 = input.LA(1);
          if (((LA30_0 >= '\t' && LA30_0 <= '\n') || LA30_0 == '\r' || LA30_0 == ' ')) {
            alt30 = 1;
          }

          switch (alt30) {
            case 1:
              // CalcLab.g:230:25: S
              {
                mS();
              }
              break;

            default:
              break loop30;
          }
        }

        match(';');
        // CalcLab.g:230:32: ( S )*
        loop31:
        while (true) {
          int alt31 = 2;
          int LA31_0 = input.LA(1);
          if (((LA31_0 >= '\t' && LA31_0 <= '\n') || LA31_0 == '\r' || LA31_0 == ' ')) {
            alt31 = 1;
          }

          switch (alt31) {
            case 1:
              // CalcLab.g:230:32: S
              {
                mS();
              }
              break;

            default:
              break loop31;
          }
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "EXPRESSIONS_SEPARATOR"

  // $ANTLR start "S"
  public final void mS() throws RecognitionException {
    try {
      int _type = S;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // CalcLab.g:231:2: ( ( ' ' | '\\n' | '\\r' | '\\t' )+ )
      // CalcLab.g:231:4: ( ' ' | '\\n' | '\\r' | '\\t' )+
      {
        // CalcLab.g:231:4: ( ' ' | '\\n' | '\\r' | '\\t' )+
        int cnt32 = 0;
        loop32:
        while (true) {
          int alt32 = 2;
          int LA32_0 = input.LA(1);
          if (((LA32_0 >= '\t' && LA32_0 <= '\n') || LA32_0 == '\r' || LA32_0 == ' ')) {
            alt32 = 1;
          }

          switch (alt32) {
            case 1:
              // CalcLab.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt32 >= 1) break loop32;
              EarlyExitException eee = new EarlyExitException(32, input);
              throw eee;
          }
          cnt32++;
        }

        _channel = HIDDEN;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "S"

  @Override
  public void mTokens() throws RecognitionException {
    // CalcLab.g:1:8: ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | PLUS | MINUS | MULTIPLY |
    // DIVISION | EQUALS | REMAINDER | INVOLUTION | FACTORIAL | HELP | DIGIT | NAME |
    // OPENING_PARENTHESIS | CLOSING_PARENTHESIS | OPENING_SQ_PARENTHESIS | CLOSING_SQ_PARENTHESIS |
    // DECIMAL_SEPARATOR | ARGUMENTS_SEPARATOR | EXPRESSIONS_SEPARATOR | S )
    int alt33 = 25;
    alt33 = dfa33.predict(input);
    switch (alt33) {
      case 1:
        // CalcLab.g:1:10: T__25
        {
          mT__25();
        }
        break;
      case 2:
        // CalcLab.g:1:16: T__26
        {
          mT__26();
        }
        break;
      case 3:
        // CalcLab.g:1:22: T__27
        {
          mT__27();
        }
        break;
      case 4:
        // CalcLab.g:1:28: T__28
        {
          mT__28();
        }
        break;
      case 5:
        // CalcLab.g:1:34: T__29
        {
          mT__29();
        }
        break;
      case 6:
        // CalcLab.g:1:40: T__30
        {
          mT__30();
        }
        break;
      case 7:
        // CalcLab.g:1:46: PLUS
        {
          mPLUS();
        }
        break;
      case 8:
        // CalcLab.g:1:51: MINUS
        {
          mMINUS();
        }
        break;
      case 9:
        // CalcLab.g:1:57: MULTIPLY
        {
          mMULTIPLY();
        }
        break;
      case 10:
        // CalcLab.g:1:66: DIVISION
        {
          mDIVISION();
        }
        break;
      case 11:
        // CalcLab.g:1:75: EQUALS
        {
          mEQUALS();
        }
        break;
      case 12:
        // CalcLab.g:1:82: REMAINDER
        {
          mREMAINDER();
        }
        break;
      case 13:
        // CalcLab.g:1:92: INVOLUTION
        {
          mINVOLUTION();
        }
        break;
      case 14:
        // CalcLab.g:1:103: FACTORIAL
        {
          mFACTORIAL();
        }
        break;
      case 15:
        // CalcLab.g:1:113: HELP
        {
          mHELP();
        }
        break;
      case 16:
        // CalcLab.g:1:118: DIGIT
        {
          mDIGIT();
        }
        break;
      case 17:
        // CalcLab.g:1:124: NAME
        {
          mNAME();
        }
        break;
      case 18:
        // CalcLab.g:1:129: OPENING_PARENTHESIS
        {
          mOPENING_PARENTHESIS();
        }
        break;
      case 19:
        // CalcLab.g:1:149: CLOSING_PARENTHESIS
        {
          mCLOSING_PARENTHESIS();
        }
        break;
      case 20:
        // CalcLab.g:1:169: OPENING_SQ_PARENTHESIS
        {
          mOPENING_SQ_PARENTHESIS();
        }
        break;
      case 21:
        // CalcLab.g:1:192: CLOSING_SQ_PARENTHESIS
        {
          mCLOSING_SQ_PARENTHESIS();
        }
        break;
      case 22:
        // CalcLab.g:1:215: DECIMAL_SEPARATOR
        {
          mDECIMAL_SEPARATOR();
        }
        break;
      case 23:
        // CalcLab.g:1:233: ARGUMENTS_SEPARATOR
        {
          mARGUMENTS_SEPARATOR();
        }
        break;
      case 24:
        // CalcLab.g:1:253: EXPRESSIONS_SEPARATOR
        {
          mEXPRESSIONS_SEPARATOR();
        }
        break;
      case 25:
        // CalcLab.g:1:275: S
        {
          mS();
        }
        break;
    }
  }

  protected DFA33 dfa33 = new DFA33(this);
  static final String DFA33_eotS =
      "\1\uffff\1\31\1\33\1\34\1\35\1\36\1\37\10\uffff\1\21\12\uffff\1\41\5\uffff"
          + "\1\21\1\uffff\1\21\2\45\1\uffff";
  static final String DFA33_eofS = "\46\uffff";
  static final String DFA33_minS =
      "\7\11\10\uffff\1\145\12\uffff\1\11\5\uffff\1\154\1\uffff\1\160\2\11\1" + "\uffff";
  static final String DFA33_maxS =
      "\7\172\10\uffff\1\145\12\uffff\1\172\5\uffff\1\154\1\uffff\1\160\1\172" + "\1\40\1\uffff";
  static final String DFA33_acceptS =
      "\7\uffff\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\uffff\1\20\1\21\1\22"
          + "\1\23\1\24\1\25\1\26\1\27\1\30\1\1\1\uffff\1\2\1\3\1\4\1\5\1\6\1\uffff"
          + "\1\31\3\uffff\1\17";
  static final String DFA33_specialS = "\46\uffff}>";
  static final String[] DFA33_transitionS = {
    "\1\5\1\3\2\uffff\1\4\22\uffff\1\1\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\27\1\10\1\26\1\12\12\20\1\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\4\21\1\2\25\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\4\21\1\6\2\21\1\17"
        + "\22\21",
    "\2\32\2\uffff\1\32\22\uffff\1\32\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\uffff\1\10\1\uffff\1\12\13\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\32\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\32\21",
    "\2\21\2\uffff\1\21\22\uffff\1\21\17\uffff\12\21\7\uffff\32\21\4\uffff" + "\1\21\1\uffff\32\21",
    "\2\32\2\uffff\1\32\22\uffff\1\32\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\uffff\1\10\1\uffff\1\12\13\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\32\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\32\21",
    "\2\32\2\uffff\1\32\22\uffff\1\32\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\uffff\1\10\1\uffff\1\12\13\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\32\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\32\21",
    "\2\32\2\uffff\1\32\22\uffff\1\32\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\uffff\1\10\1\uffff\1\12\13\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\32\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\32\21",
    "\2\21\2\uffff\1\21\22\uffff\1\21\17\uffff\12\21\7\uffff\32\21\4\uffff" + "\1\21\1\uffff\32\21",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\40",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\2\32\2\uffff\1\32\22\uffff\1\32\1\16\3\uffff\1\14\2\uffff\1\22\1\23"
        + "\1\11\1\7\1\uffff\1\10\1\uffff\1\12\13\uffff\1\30\1\uffff\1\13\3\uffff"
        + "\32\21\1\24\1\uffff\1\25\1\15\1\21\1\uffff\32\21",
    "",
    "",
    "",
    "",
    "",
    "\1\42",
    "",
    "\1\43",
    "\2\44\2\uffff\1\44\22\uffff\1\44\17\uffff\12\21\7\uffff\32\21\4\uffff" + "\1\21\1\uffff\32\21",
    "\2\44\2\uffff\1\44\22\uffff\1\44",
    ""
  };

  static final short[] DFA33_eot = DFA.unpackEncodedString(DFA33_eotS);
  static final short[] DFA33_eof = DFA.unpackEncodedString(DFA33_eofS);
  static final char[] DFA33_min = DFA.unpackEncodedStringToUnsignedChars(DFA33_minS);
  static final char[] DFA33_max = DFA.unpackEncodedStringToUnsignedChars(DFA33_maxS);
  static final short[] DFA33_accept = DFA.unpackEncodedString(DFA33_acceptS);
  static final short[] DFA33_special = DFA.unpackEncodedString(DFA33_specialS);
  static final short[][] DFA33_transition;

  static {
    int numStates = DFA33_transitionS.length;
    DFA33_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA33_transition[i] = DFA.unpackEncodedString(DFA33_transitionS[i]);
    }
  }

  protected class DFA33 extends DFA {

    public DFA33(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 33;
      this.eot = DFA33_eot;
      this.eof = DFA33_eof;
      this.min = DFA33_min;
      this.max = DFA33_max;
      this.accept = DFA33_accept;
      this.special = DFA33_special;
      this.transition = DFA33_transition;
    }

    @Override
    public String getDescription() {
      return "1:1: Tokens : ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | PLUS | MINUS | MULTIPLY | DIVISION | EQUALS | REMAINDER | INVOLUTION | FACTORIAL | HELP | DIGIT | NAME | OPENING_PARENTHESIS | CLOSING_PARENTHESIS | OPENING_SQ_PARENTHESIS | CLOSING_SQ_PARENTHESIS | DECIMAL_SEPARATOR | ARGUMENTS_SEPARATOR | EXPRESSIONS_SEPARATOR | S );";
    }
  }
}
Пример #19
0
public class CommandLineParser extends Parser {
  public static final String[] tokenNames =
      new String[] {
        "<invalid>",
        "<EOR>",
        "<DOWN>",
        "<UP>",
        "WS",
        "TEXT",
        "LETTER",
        "'-'",
        "'='",
        "'\\''",
        "'\"'"
      };
  public static final int EOF = -1;
  public static final int T__7 = 7;
  public static final int T__8 = 8;
  public static final int T__9 = 9;
  public static final int T__10 = 10;
  public static final int WS = 4;
  public static final int TEXT = 5;
  public static final int LETTER = 6;

  // delegates
  // delegators

  public CommandLineParser(TokenStream input) {
    this(input, new RecognizerSharedState());
  }

  public CommandLineParser(TokenStream input, RecognizerSharedState state) {
    super(input, state);
  }

  protected TreeAdaptor adaptor = new CommonTreeAdaptor();

  public void setTreeAdaptor(TreeAdaptor adaptor) {
    this.adaptor = adaptor;
  }

  public TreeAdaptor getTreeAdaptor() {
    return adaptor;
  }

  public String[] getTokenNames() {
    return CommandLineParser.tokenNames;
  }

  public String getGrammarFileName() {
    return "/Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g";
  }

  private static final String SERVER = "server";
  private static final String CLIENT = "client";
  private static final String ESA = "esa";
  private static final String ESA_LONG = "enablesystemassertions";
  private static final String DSA = "dsa";
  private static final String DSA_LONG = "disablesystemassertions";
  private static final String EA = "ea";
  private static final String EA_LONG = "enableassertions";
  private static final String DA = "da";
  private static final String DA_LONG = "disableassertions";
  private static final String VERBOSE = "verbose";
  private static final String SVERSION = "showversion";
  private static final String HELP = "?";
  private static final String HELP_LONG = "help";
  private static final String X = "X";
  private static final String XINT = "Xint";
  private static final String XBATCH = "Xbatch";
  private static final String XCJNI = "Xcheck";
  private static final String XFUTURE = "Xfuture";
  private static final String XNOCLSGC = "Xnoclassgc";
  private static final String XINCGC = "Xincgc";
  private static final String XPROF = "Xprof";
  private static final String XRS = "Xrs";
  private static final String XSHARE = "Xshare";
  private static final String JRE_SEARCH = "jre-restrict-search";
  private static final String JRE_NO_SEARCH = "jre-no-restrict-search";
  private static final String SPLASH = "splash";
  private static final String XLOGGC = "Xloggc";
  private static final String JAVAAGENT = "javaagent";
  private static final String AGENTLIB = "agentlib";
  private static final String AGENTPATH = "agentpath";
  private static final String BOOTCP = "Xbootclasspath";
  private static final String BOOTCPAPPEND = "Xbootclasspath/a";
  private static final String BOOTCPPREPEND = "Xbootclasspath/p";
  private static final String VERSION = "version";
  private static final String CLASSPATH = "cp";
  private static final String CLASSPATH_LONG = "classpath";

  private static final Set<String> switchOptions =
      new HashSet<String>() {
        {
          this.addAll(
              Arrays.asList(
                  SERVER,
                  CLIENT,
                  ESA,
                  ESA_LONG,
                  DSA,
                  DSA_LONG,
                  EA,
                  EA_LONG,
                  DA,
                  DA_LONG,
                  SVERSION,
                  HELP,
                  HELP_LONG,
                  X,
                  XINT,
                  XBATCH,
                  XFUTURE,
                  XNOCLSGC,
                  XINCGC,
                  XPROF,
                  XRS,
                  JRE_SEARCH,
                  JRE_NO_SEARCH));
        }
      };

  private static final Set<String> paramOptions =
      new HashSet<String>() {
        {
          addAll(
              Arrays.asList(
                  SPLASH,
                  XLOGGC,
                  JAVAAGENT,
                  AGENTLIB,
                  AGENTPATH,
                  BOOTCP,
                  BOOTCPAPPEND,
                  BOOTCPPREPEND));
        }
      };

  private static final Pattern memOptions = Pattern.compile("X(m[sx]|ss)\\d+[gGmMkK]");

  private static boolean isParamOption(final String text) {
    for (String option : paramOptions) {
      if (text.startsWith(option + ':')) {
        return true;
      }
    }
    return false;
  }

  // xxx: Wrong! Should use TreeGrammer and not to populate customizer with custom nodes
  // Should be rewritten but I have no time for this
  public List<JavaVMOption<?>> parse() {
    Set<JavaVMOption<?>> result = new HashSet<JavaVMOption<?>>();
    try {
      vmOptions_return options_return = vmOptions();
      CommonTree root = options_return.tree;
      if (root instanceof JavaVMOption<?>) {
        result.add((JavaVMOption<?>) root);
      } else if (root != null) {
        result.addAll(root.getChildren());
      }
    } catch (RecognitionException e) {
      e.printStackTrace();
    }
    result.addAll(getAllOptions());
    return new LinkedList<JavaVMOption<?>>(result);
  }

  private static enum Kind {
    SWITCH,
    D,
    LOOSEPARAM,
    EQPARAM,
    COLUMNPARAM,
    FOLLOWED
  }

  private static class OptionDefinition {
    private OptionDefinition(String name, Kind kind) {
      this.kind = kind;
      this.name = name;
    }

    Kind kind;
    String name;
  }

  private static OptionDefinition[] optionsTemplates = {
    new OptionDefinition("client", Kind.SWITCH),
    new OptionDefinition("server", Kind.SWITCH),
    new OptionDefinition("ea", Kind.SWITCH),
    new OptionDefinition("da", Kind.SWITCH),
    new OptionDefinition("esa", Kind.SWITCH),
    new OptionDefinition("dsa", Kind.SWITCH),
    new OptionDefinition("verbose", Kind.SWITCH),
    new OptionDefinition("verbose:class", Kind.SWITCH),
    new OptionDefinition("verbose:jni", Kind.SWITCH),
    new OptionDefinition("verbose:gc", Kind.SWITCH),
    new OptionDefinition("version", Kind.SWITCH),
    new OptionDefinition("version", Kind.COLUMNPARAM),
    new OptionDefinition("showversion", Kind.SWITCH),
    new OptionDefinition("Xint", Kind.SWITCH),
    new OptionDefinition("Xbatch", Kind.SWITCH),
    new OptionDefinition("Xcheck:jni", Kind.SWITCH),
    new OptionDefinition("Xfuture", Kind.SWITCH),
    new OptionDefinition("Xnoclassgc", Kind.SWITCH),
    new OptionDefinition("Xincgc", Kind.SWITCH),
    new OptionDefinition("Xprof", Kind.SWITCH),
    new OptionDefinition("Xrs", Kind.SWITCH),
    new OptionDefinition("Xshare:off", Kind.SWITCH),
    new OptionDefinition("Xshare:on", Kind.SWITCH),
    new OptionDefinition("Xshare:auto", Kind.SWITCH),
    new OptionDefinition("jre-restrict-search", Kind.SWITCH),
    new OptionDefinition("jre-no-restrict-search", Kind.SWITCH),
    new OptionDefinition("Xmx", Kind.FOLLOWED),
    new OptionDefinition("Xms", Kind.FOLLOWED),
    new OptionDefinition("Xss", Kind.FOLLOWED),
    new OptionDefinition("splash", Kind.COLUMNPARAM),
    new OptionDefinition("javaagent", Kind.COLUMNPARAM),
    new OptionDefinition("agentlib", Kind.COLUMNPARAM),
    new OptionDefinition("agentpath", Kind.COLUMNPARAM),
  };

  public static List<JavaVMOption<?>> getAllOptions() {
    List<JavaVMOption<?>> result = new LinkedList<JavaVMOption<?>>();
    for (OptionDefinition optionsTemplate : optionsTemplates) {
      result.add(createOption(optionsTemplate));
    }
    return result;
  }

  private static JavaVMOption<?> createOption(OptionDefinition definition) {
    switch (definition.kind) {
      case SWITCH:
        return new SwitchNode(definition.name);
      case D:
        return new UserPropertyNode();
      case FOLLOWED:
        return new ParametrizedNode(definition.name, "");
      case COLUMNPARAM:
        return new ParametrizedNode(definition.name, ":");
      case EQPARAM:
        return new ParametrizedNode(definition.name, "=");
      case LOOSEPARAM:
        return new ParametrizedNode(definition.name, " ");
      default:
        throw new IllegalArgumentException("Invalid definition.");
    }
  }

  public static class vmOptions_return extends ParserRuleReturnScope {
    CommonTree tree;

    public Object getTree() {
      return tree;
    }
  };

  // $ANTLR start "vmOptions"
  // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:251:1: vmOptions : ( ( WS )? option )* ( WS )? -> ( option )* ;
  public final CommandLineParser.vmOptions_return vmOptions() throws RecognitionException {
    CommandLineParser.vmOptions_return retval = new CommandLineParser.vmOptions_return();
    retval.start = input.LT(1);

    CommonTree root_0 = null;

    Token WS1 = null;
    Token WS3 = null;
    CommandLineParser.option_return option2 = null;

    CommonTree WS1_tree = null;
    CommonTree WS3_tree = null;
    RewriteRuleTokenStream stream_WS = new RewriteRuleTokenStream(adaptor, "token WS");
    RewriteRuleSubtreeStream stream_option = new RewriteRuleSubtreeStream(adaptor, "rule option");
    try {
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:2: ( ( ( WS )? option )* ( WS )? -> ( option )* )
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:4: ( ( WS )? option )* ( WS )?
      {
        // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:4: ( ( WS )? option )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if ((LA2_0 == WS)) {
            int LA2_1 = input.LA(2);

            if ((LA2_1 == TEXT || LA2_1 == 7)) {
              alt2 = 1;
            }

          } else if ((LA2_0 == TEXT || LA2_0 == 7)) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:5: ( WS )? option
              {
                // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:5: ( WS )?
                int alt1 = 2;
                int LA1_0 = input.LA(1);

                if ((LA1_0 == WS)) {
                  alt1 = 1;
                }
                switch (alt1) {
                  case 1:
                    // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:5: WS
                    {
                      WS1 = (Token) match(input, WS, FOLLOW_WS_in_vmOptions75);
                      stream_WS.add(WS1);
                    }
                    break;
                }

                pushFollow(FOLLOW_option_in_vmOptions77);
                option2 = option();

                state._fsp--;

                stream_option.add(option2.getTree());
              }
              break;

            default:
              break loop2;
          }
        } while (true);

        // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:16: ( WS )?
        int alt3 = 2;
        int LA3_0 = input.LA(1);

        if ((LA3_0 == WS)) {
          alt3 = 1;
        }
        switch (alt3) {
          case 1:
            // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:16: WS
            {
              WS3 = (Token) match(input, WS, FOLLOW_WS_in_vmOptions80);
              stream_WS.add(WS3);
            }
            break;
        }

        // AST REWRITE
        // elements: option
        // token labels:
        // rule labels: retval
        // token list labels:
        // rule list labels:
        // wildcard labels:
        retval.tree = root_0;
        RewriteRuleSubtreeStream stream_retval =
            new RewriteRuleSubtreeStream(
                adaptor, "rule retval", retval != null ? retval.tree : null);

        root_0 = (CommonTree) adaptor.nil();
        // 252:20: -> ( option )*
        {
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:252:23: ( option )*
          while (stream_option.hasNext()) {
            adaptor.addChild(root_0, stream_option.nextTree());
          }
          stream_option.reset();
        }

        retval.tree = root_0;
      }

      retval.stop = input.LT(-1);

      retval.tree = (CommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (CommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR end "vmOptions"

  public static class option_return extends ParserRuleReturnScope {
    CommonTree tree;

    public Object getTree() {
      return tree;
    }
  };

  // $ANTLR start "option"
  // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:254:1: option : ( '-' switchOption -> switchOption | nonSwitchOption -> nonSwitchOption );
  public final CommandLineParser.option_return option() throws RecognitionException {
    CommandLineParser.option_return retval = new CommandLineParser.option_return();
    retval.start = input.LT(1);

    CommonTree root_0 = null;

    Token char_literal4 = null;
    CommandLineParser.switchOption_return switchOption5 = null;

    CommandLineParser.nonSwitchOption_return nonSwitchOption6 = null;

    CommonTree char_literal4_tree = null;
    RewriteRuleTokenStream stream_7 = new RewriteRuleTokenStream(adaptor, "token 7");
    RewriteRuleSubtreeStream stream_switchOption =
        new RewriteRuleSubtreeStream(adaptor, "rule switchOption");
    RewriteRuleSubtreeStream stream_nonSwitchOption =
        new RewriteRuleSubtreeStream(adaptor, "rule nonSwitchOption");
    try {
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:254:8: ( '-' switchOption -> switchOption | nonSwitchOption -> nonSwitchOption )
      int alt4 = 2;
      int LA4_0 = input.LA(1);

      if ((LA4_0 == 7)) {
        alt4 = 1;
      } else if ((LA4_0 == TEXT)) {
        alt4 = 2;
      } else {
        NoViableAltException nvae = new NoViableAltException("", 4, 0, input);

        throw nvae;
      }
      switch (alt4) {
        case 1:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:254:10: '-' switchOption
          {
            char_literal4 = (Token) match(input, 7, FOLLOW_7_in_option95);
            stream_7.add(char_literal4);

            pushFollow(FOLLOW_switchOption_in_option97);
            switchOption5 = switchOption();

            state._fsp--;

            stream_switchOption.add(switchOption5.getTree());

            // AST REWRITE
            // elements: switchOption
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 254:27: -> switchOption
            {
              adaptor.addChild(root_0, stream_switchOption.nextTree());
            }

            retval.tree = root_0;
          }
          break;
        case 2:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:255:3: nonSwitchOption
          {
            pushFollow(FOLLOW_nonSwitchOption_in_option107);
            nonSwitchOption6 = nonSwitchOption();

            state._fsp--;

            stream_nonSwitchOption.add(nonSwitchOption6.getTree());

            // AST REWRITE
            // elements: nonSwitchOption
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 255:20: -> nonSwitchOption
            {
              adaptor.addChild(root_0, stream_nonSwitchOption.nextTree());
            }

            retval.tree = root_0;
          }
          break;
      }
      retval.stop = input.LT(-1);

      retval.tree = (CommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (CommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR end "option"

  public static class switchOption_return extends ParserRuleReturnScope {
    CommonTree tree;

    public Object getTree() {
      return tree;
    }
  };

  // $ANTLR start "switchOption"
  // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:257:1: switchOption : ({...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT '=' eText -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT WS eText -> | t= TEXT ->);
  public final CommandLineParser.switchOption_return switchOption() throws RecognitionException {
    CommandLineParser.switchOption_return retval = new CommandLineParser.switchOption_return();
    retval.start = input.LT(1);

    CommonTree root_0 = null;

    Token t = null;
    Token char_literal7 = null;
    Token WS9 = null;
    CommandLineParser.eText_return eText8 = null;

    CommandLineParser.eText_return eText10 = null;

    CommonTree t_tree = null;
    CommonTree char_literal7_tree = null;
    CommonTree WS9_tree = null;
    RewriteRuleTokenStream stream_WS = new RewriteRuleTokenStream(adaptor, "token WS");
    RewriteRuleTokenStream stream_TEXT = new RewriteRuleTokenStream(adaptor, "token TEXT");
    RewriteRuleTokenStream stream_8 = new RewriteRuleTokenStream(adaptor, "token 8");
    RewriteRuleSubtreeStream stream_eText = new RewriteRuleSubtreeStream(adaptor, "rule eText");

    int index = 0;
    String name = null;
    String value = null;

    try {
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:263:2: ({...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT '=' eText -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT WS eText -> | t= TEXT ->)
      int alt5 = 10;
      alt5 = dfa5.predict(input);
      switch (alt5) {
        case 1:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:263:4: {...}? =>t= TEXT
          {
            if (!((switchOptions.contains(input.LT(1).getText())))) {
              throw new FailedPredicateException(
                  input, "switchOption", "switchOptions.contains(input.LT(1).getText())");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption135);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 263:78: ->
            {
              adaptor.addChild(root_0, new SwitchNode(t));
            }

            retval.tree = root_0;
          }
          break;
        case 2:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:264:3: {...}? =>t= TEXT
          {
            if (!((VERBOSE.equals(input.LT(1).getText())
                || input.LT(1).getText().startsWith(VERBOSE + ':')))) {
              throw new FailedPredicateException(
                  input,
                  "switchOption",
                  "VERBOSE.equals(input.LT(1).getText()) || input.LT(1).getText().startsWith(VERBOSE+':')");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption166);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 264:107: ->
            {
              adaptor.addChild(root_0, new SwitchNode(t));
            }

            retval.tree = root_0;
          }
          break;
        case 3:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:265:3: {...}? =>t= TEXT
          {
            if (!((VERSION.equals(input.LT(1).getText())
                || input.LT(1).getText().startsWith(VERSION + ':')))) {
              throw new FailedPredicateException(
                  input,
                  "switchOption",
                  "VERSION.equals(input.LT(1).getText()) || input.LT(1).getText().startsWith(VERSION+':')");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption186);
            stream_TEXT.add(t);

            index = t.getText().indexOf(':');
            if (index > 0) {
              name = t.getText().substring(0, index);
              value = (index + 1) == t.getText().length() ? "" : t.getText().substring(index + 1);
            } else {
              name = t.getText();
            }

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 265:304: ->
            {
              adaptor.addChild(
                  root_0,
                  index < 0 ? new SwitchNode(t) : new ParametrizedNode(t, name, ":", value));
            }

            retval.tree = root_0;
          }
          break;
        case 4:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:266:3: {...}? =>t= TEXT
          {
            if (!((input.LT(1).getText().startsWith(XSHARE + ':')))) {
              throw new FailedPredicateException(
                  input, "switchOption", "input.LT(1).getText().startsWith(XSHARE+':')");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption203);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 266:60: ->
            {
              adaptor.addChild(root_0, new SwitchNode(t));
            }

            retval.tree = root_0;
          }
          break;
        case 5:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:267:3: {...}? =>t= TEXT
          {
            if (!((input.LT(1).getText().startsWith(XCJNI + ':')))) {
              throw new FailedPredicateException(
                  input, "switchOption", "input.LT(1).getText().startsWith(XCJNI+':')");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption218);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 267:61: ->
            {
              adaptor.addChild(root_0, new SwitchNode(t));
            }

            retval.tree = root_0;
          }
          break;
        case 6:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:268:3: {...}? =>t= TEXT '=' eText
          {
            if (!((input.LT(1).getText().charAt(0) == 'D'))) {
              throw new FailedPredicateException(
                  input, "switchOption", "input.LT(1).getText().charAt(0) == 'D'");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption235);
            stream_TEXT.add(t);

            char_literal7 = (Token) match(input, 8, FOLLOW_8_in_switchOption237);
            stream_8.add(char_literal7);

            pushFollow(FOLLOW_eText_in_switchOption239);
            eText8 = eText();

            state._fsp--;

            stream_eText.add(eText8.getTree());

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 268:67: ->
            {
              adaptor.addChild(
                  root_0,
                  new UserPropertyNode(
                      t,
                      (eText8 != null ? input.toString(eText8.start, eText8.stop) : null),
                      (t != null ? t.getCharPositionInLine() : 0)));
            }

            retval.tree = root_0;
          }
          break;
        case 7:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:269:3: {...}? =>t= TEXT
          {
            if (!((isParamOption(input.LT(1).getText())))) {
              throw new FailedPredicateException(
                  input, "switchOption", "isParamOption(input.LT(1).getText())");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption257);
            stream_TEXT.add(t);

            index = t.getText().indexOf(':');
            if (index > 0) {
              name = t.getText().substring(0, index);
              value = (index + 1) == t.getText().length() ? "" : t.getText().substring(index + 1);
            }

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 269:227: ->
            {
              adaptor.addChild(root_0, new ParametrizedNode(t, name, ":", value));
            }

            retval.tree = root_0;
          }
          break;
        case 8:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:270:3: {...}? =>t= TEXT
          {
            if (!((memOptions.matcher(input.LT(1).getText()).matches()))) {
              throw new FailedPredicateException(
                  input, "switchOption", "memOptions.matcher(input.LT(1).getText()).matches()");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption274);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 270:69: ->
            {
              adaptor.addChild(root_0, new ParametrizedNode(t, 3));
            }

            retval.tree = root_0;
          }
          break;
        case 9:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:271:3: {...}? =>t= TEXT WS eText
          {
            if (!((CLASSPATH.equals(input.LT(1).getText())
                || CLASSPATH_LONG.equals(input.LT(1).getText())))) {
              throw new FailedPredicateException(
                  input,
                  "switchOption",
                  "CLASSPATH.equals(input.LT(1).getText()) || CLASSPATH_LONG.equals(input.LT(1).getText())");
            }
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption291);
            stream_TEXT.add(t);

            WS9 = (Token) match(input, WS, FOLLOW_WS_in_switchOption293);
            stream_WS.add(WS9);

            pushFollow(FOLLOW_eText_in_switchOption295);
            eText10 = eText();

            state._fsp--;

            stream_eText.add(eText10.getTree());

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 271:112: ->
            {
              adaptor.addChild(
                  root_0,
                  new ParametrizedNode(
                      t,
                      " ",
                      (eText10 != null ? input.toString(eText10.start, eText10.stop) : null),
                      false));
            }

            retval.tree = root_0;
          }
          break;
        case 10:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:272:3: t= TEXT
          {
            t = (Token) match(input, TEXT, FOLLOW_TEXT_in_switchOption307);
            stream_TEXT.add(t);

            // AST REWRITE
            // elements:
            // token labels:
            // rule labels: retval
            // token list labels:
            // rule list labels:
            // wildcard labels:
            retval.tree = root_0;
            RewriteRuleSubtreeStream stream_retval =
                new RewriteRuleSubtreeStream(
                    adaptor, "rule retval", retval != null ? retval.tree : null);

            root_0 = (CommonTree) adaptor.nil();
            // 272:10: ->
            {
              adaptor.addChild(root_0, new UnrecognizedOption(t));
            }

            retval.tree = root_0;
          }
          break;
      }
      retval.stop = input.LT(-1);

      retval.tree = (CommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (CommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR end "switchOption"

  public static class eText_return extends ParserRuleReturnScope {
    CommonTree tree;

    public Object getTree() {
      return tree;
    }
  };

  // $ANTLR start "eText"
  // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:274:1: eText : ( '\\'' TEXT '\\'' | '\"' TEXT '\"' | TEXT );
  public final CommandLineParser.eText_return eText() throws RecognitionException {
    CommandLineParser.eText_return retval = new CommandLineParser.eText_return();
    retval.start = input.LT(1);

    CommonTree root_0 = null;

    Token char_literal11 = null;
    Token TEXT12 = null;
    Token char_literal13 = null;
    Token char_literal14 = null;
    Token TEXT15 = null;
    Token char_literal16 = null;
    Token TEXT17 = null;

    CommonTree char_literal11_tree = null;
    CommonTree TEXT12_tree = null;
    CommonTree char_literal13_tree = null;
    CommonTree char_literal14_tree = null;
    CommonTree TEXT15_tree = null;
    CommonTree char_literal16_tree = null;
    CommonTree TEXT17_tree = null;

    try {
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:274:7: ( '\\'' TEXT '\\'' | '\"' TEXT '\"' | TEXT )
      int alt6 = 3;
      switch (input.LA(1)) {
        case 9:
          {
            alt6 = 1;
          }
          break;
        case 10:
          {
            alt6 = 2;
          }
          break;
        case TEXT:
          {
            alt6 = 3;
          }
          break;
        default:
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
      }

      switch (alt6) {
        case 1:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:275:3: '\\'' TEXT '\\''
          {
            root_0 = (CommonTree) adaptor.nil();

            char_literal11 = (Token) match(input, 9, FOLLOW_9_in_eText324);
            char_literal11_tree = (CommonTree) adaptor.create(char_literal11);
            adaptor.addChild(root_0, char_literal11_tree);

            TEXT12 = (Token) match(input, TEXT, FOLLOW_TEXT_in_eText326);
            TEXT12_tree = (CommonTree) adaptor.create(TEXT12);
            adaptor.addChild(root_0, TEXT12_tree);

            char_literal13 = (Token) match(input, 9, FOLLOW_9_in_eText328);
            char_literal13_tree = (CommonTree) adaptor.create(char_literal13);
            adaptor.addChild(root_0, char_literal13_tree);
          }
          break;
        case 2:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:276:4: '\"' TEXT '\"'
          {
            root_0 = (CommonTree) adaptor.nil();

            char_literal14 = (Token) match(input, 10, FOLLOW_10_in_eText333);
            char_literal14_tree = (CommonTree) adaptor.create(char_literal14);
            adaptor.addChild(root_0, char_literal14_tree);

            TEXT15 = (Token) match(input, TEXT, FOLLOW_TEXT_in_eText335);
            TEXT15_tree = (CommonTree) adaptor.create(TEXT15);
            adaptor.addChild(root_0, TEXT15_tree);

            char_literal16 = (Token) match(input, 10, FOLLOW_10_in_eText338);
            char_literal16_tree = (CommonTree) adaptor.create(char_literal16);
            adaptor.addChild(root_0, char_literal16_tree);
          }
          break;
        case 3:
          // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:277:8: TEXT
          {
            root_0 = (CommonTree) adaptor.nil();

            TEXT17 = (Token) match(input, TEXT, FOLLOW_TEXT_in_eText347);
            TEXT17_tree = (CommonTree) adaptor.create(TEXT17);
            adaptor.addChild(root_0, TEXT17_tree);
          }
          break;
      }
      retval.stop = input.LT(-1);

      retval.tree = (CommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (CommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR end "eText"

  public static class nonSwitchOption_return extends ParserRuleReturnScope {
    CommonTree tree;

    public Object getTree() {
      return tree;
    }
  };

  // $ANTLR start "nonSwitchOption"
  // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:279:1: nonSwitchOption : t= TEXT ->;
  public final CommandLineParser.nonSwitchOption_return nonSwitchOption()
      throws RecognitionException {
    CommandLineParser.nonSwitchOption_return retval =
        new CommandLineParser.nonSwitchOption_return();
    retval.start = input.LT(1);

    CommonTree root_0 = null;

    Token t = null;

    CommonTree t_tree = null;
    RewriteRuleTokenStream stream_TEXT = new RewriteRuleTokenStream(adaptor, "token TEXT");

    try {
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:280:2: (t= TEXT ->)
      // /Users/tom/Projects/netbeans/jet-main/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/vmo/gen/CommandLine.g:280:4: t= TEXT
      {
        t = (Token) match(input, TEXT, FOLLOW_TEXT_in_nonSwitchOption359);
        stream_TEXT.add(t);

        // AST REWRITE
        // elements:
        // token labels:
        // rule labels: retval
        // token list labels:
        // rule list labels:
        // wildcard labels:
        retval.tree = root_0;
        RewriteRuleSubtreeStream stream_retval =
            new RewriteRuleSubtreeStream(
                adaptor, "rule retval", retval != null ? retval.tree : null);

        root_0 = (CommonTree) adaptor.nil();
        // 280:11: ->
        {
          adaptor.addChild(root_0, new UnknownOption(t));
        }

        retval.tree = root_0;
      }

      retval.stop = input.LT(-1);

      retval.tree = (CommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (CommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR end "nonSwitchOption"

  // Delegated rules

  protected DFA5 dfa5 = new DFA5(this);
  static final String DFA5_eotS = "\14\uffff";
  static final String DFA5_eofS = "\14\uffff";
  static final String DFA5_minS = "\1\5\1\4\12\uffff";
  static final String DFA5_maxS = "\1\5\1\10\12\uffff";
  static final String DFA5_acceptS = "\2\uffff\1\6\1\11\1\1\1\2\1\3\1\4\1\5\1\7\1\10\1\12";
  static final String DFA5_specialS = "\1\uffff\1\0\12\uffff}>";
  static final String[] DFA5_transitionS = {
    "\1\1", "\1\3\3\uffff\1\2", "", "", "", "", "", "", "", "", "", ""
  };

  static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS);
  static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS);
  static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS);
  static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS);
  static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS);
  static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS);
  static final short[][] DFA5_transition;

  static {
    int numStates = DFA5_transitionS.length;
    DFA5_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA5_transition[i] = DFA.unpackEncodedString(DFA5_transitionS[i]);
    }
  }

  class DFA5 extends DFA {

    public DFA5(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 5;
      this.eot = DFA5_eot;
      this.eof = DFA5_eof;
      this.min = DFA5_min;
      this.max = DFA5_max;
      this.accept = DFA5_accept;
      this.special = DFA5_special;
      this.transition = DFA5_transition;
    }

    public String getDescription() {
      return "257:1: switchOption : ({...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT '=' eText -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT -> | {...}? =>t= TEXT WS eText -> | t= TEXT ->);";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      TokenStream input = (TokenStream) _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA5_1 = input.LA(1);

          int index5_1 = input.index();
          input.rewind();
          s = -1;
          if ((LA5_1 == 8) && ((input.LT(1).getText().charAt(0) == 'D'))) {
            s = 2;
          } else if ((LA5_1 == WS)
              && ((CLASSPATH.equals(input.LT(1).getText())
                  || CLASSPATH_LONG.equals(input.LT(1).getText())))) {
            s = 3;
          } else if (((switchOptions.contains(input.LT(1).getText())))) {
            s = 4;
          } else if (((VERBOSE.equals(input.LT(1).getText())
              || input.LT(1).getText().startsWith(VERBOSE + ':')))) {
            s = 5;
          } else if (((VERSION.equals(input.LT(1).getText())
              || input.LT(1).getText().startsWith(VERSION + ':')))) {
            s = 6;
          } else if (((input.LT(1).getText().startsWith(XSHARE + ':')))) {
            s = 7;
          } else if (((input.LT(1).getText().startsWith(XCJNI + ':')))) {
            s = 8;
          } else if (((isParamOption(input.LT(1).getText())))) {
            s = 9;
          } else if (((memOptions.matcher(input.LT(1).getText()).matches()))) {
            s = 10;
          } else if ((true)) {
            s = 11;
          }

          input.seek(index5_1);
          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 5, _s, input);
      error(nvae);
      throw nvae;
    }
  }

  public static final BitSet FOLLOW_WS_in_vmOptions75 =
      new BitSet(new long[] {0x00000000000000A0L});
  public static final BitSet FOLLOW_option_in_vmOptions77 =
      new BitSet(new long[] {0x00000000000000B2L});
  public static final BitSet FOLLOW_WS_in_vmOptions80 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_7_in_option95 = new BitSet(new long[] {0x0000000000000020L});
  public static final BitSet FOLLOW_switchOption_in_option97 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_nonSwitchOption_in_option107 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption135 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption166 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption186 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption203 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption218 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption235 =
      new BitSet(new long[] {0x0000000000000100L});
  public static final BitSet FOLLOW_8_in_switchOption237 =
      new BitSet(new long[] {0x0000000000000620L});
  public static final BitSet FOLLOW_eText_in_switchOption239 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption257 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption274 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption291 =
      new BitSet(new long[] {0x0000000000000010L});
  public static final BitSet FOLLOW_WS_in_switchOption293 =
      new BitSet(new long[] {0x0000000000000620L});
  public static final BitSet FOLLOW_eText_in_switchOption295 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_switchOption307 =
      new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_9_in_eText324 = new BitSet(new long[] {0x0000000000000020L});
  public static final BitSet FOLLOW_TEXT_in_eText326 = new BitSet(new long[] {0x0000000000000200L});
  public static final BitSet FOLLOW_9_in_eText328 = new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_10_in_eText333 = new BitSet(new long[] {0x0000000000000020L});
  public static final BitSet FOLLOW_TEXT_in_eText335 = new BitSet(new long[] {0x0000000000000400L});
  public static final BitSet FOLLOW_10_in_eText338 = new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_eText347 = new BitSet(new long[] {0x0000000000000002L});
  public static final BitSet FOLLOW_TEXT_in_nonSwitchOption359 =
      new BitSet(new long[] {0x0000000000000002L});
}
@SuppressWarnings("all")
public class PsiInternalTwoParametersTestLanguageLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 8;
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__19 = 19;
  public static final int RULE_STRING = 6;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;

  // delegates
  // delegators

  public PsiInternalTwoParametersTestLanguageLexer() {
    ;
  }

  public PsiInternalTwoParametersTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public PsiInternalTwoParametersTestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "PsiInternalTwoParametersTestLanguage.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:11:7: ( '#1' )
      // PsiInternalTwoParametersTestLanguage.g:11:9: '#1'
      {
        match("#1");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:12:7: ( '#2' )
      // PsiInternalTwoParametersTestLanguage.g:12:9: '#2'
      {
        match("#2");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:13:7: ( '#3' )
      // PsiInternalTwoParametersTestLanguage.g:13:9: '#3'
      {
        match("#3");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:14:7: ( '#4' )
      // PsiInternalTwoParametersTestLanguage.g:14:9: '#4'
      {
        match("#4");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:15:7: ( '#5' )
      // PsiInternalTwoParametersTestLanguage.g:15:9: '#5'
      {
        match("#5");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:16:7: ( '#6' )
      // PsiInternalTwoParametersTestLanguage.g:16:9: '#6'
      {
        match("#6");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:17:7: ( '#7' )
      // PsiInternalTwoParametersTestLanguage.g:17:9: '#7'
      {
        match("#7");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:18:7: ( '#8' )
      // PsiInternalTwoParametersTestLanguage.g:18:9: '#8'
      {
        match("#8");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:19:7: ( '#9' )
      // PsiInternalTwoParametersTestLanguage.g:19:9: '#9'
      {
        match("#9");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:20:7: ( 'keyword' )
      // PsiInternalTwoParametersTestLanguage.g:20:9: 'keyword'
      {
        match("keyword");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:21:7: ( '#10' )
      // PsiInternalTwoParametersTestLanguage.g:21:9: '#10'
      {
        match("#10");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:22:7: ( '#11' )
      // PsiInternalTwoParametersTestLanguage.g:22:9: '#11'
      {
        match("#11");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:23:7: ( '#12' )
      // PsiInternalTwoParametersTestLanguage.g:23:9: '#12'
      {
        match("#12");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:661:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
      // ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // PsiInternalTwoParametersTestLanguage.g:661:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) (
      // 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // PsiInternalTwoParametersTestLanguage.g:661:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // PsiInternalTwoParametersTestLanguage.g:661:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // PsiInternalTwoParametersTestLanguage.g:661:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' ..
        // '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // PsiInternalTwoParametersTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:663:10: ( ( '0' .. '9' )+ )
      // PsiInternalTwoParametersTestLanguage.g:663:12: ( '0' .. '9' )+
      {
        // PsiInternalTwoParametersTestLanguage.g:663:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // PsiInternalTwoParametersTestLanguage.g:663:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:665:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' )
      // ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // PsiInternalTwoParametersTestLanguage.g:665:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) )
      // )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // PsiInternalTwoParametersTestLanguage.g:665:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' )
        // ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // PsiInternalTwoParametersTestLanguage.g:665:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"'
            // ) ) )* '\"'
            {
              match('\"');
              // PsiInternalTwoParametersTestLanguage.g:665:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) )
              // )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // PsiInternalTwoParametersTestLanguage.g:665:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalTwoParametersTestLanguage.g:665:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // PsiInternalTwoParametersTestLanguage.g:665:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' |
            // '\\'' ) ) )* '\\''
            {
              match('\'');
              // PsiInternalTwoParametersTestLanguage.g:665:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' )
              // ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // PsiInternalTwoParametersTestLanguage.g:665:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalTwoParametersTestLanguage.g:665:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:667:17: ( '/*' ( options {greedy=false; } : . )*
      // '*/' )
      // PsiInternalTwoParametersTestLanguage.g:667:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // PsiInternalTwoParametersTestLanguage.g:667:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // PsiInternalTwoParametersTestLanguage.g:667:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:669:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r'
      // )? '\\n' )? )
      // PsiInternalTwoParametersTestLanguage.g:669:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r'
      // )? '\\n' )?
      {
        match("//");

        // PsiInternalTwoParametersTestLanguage.g:669:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // PsiInternalTwoParametersTestLanguage.g:669:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // PsiInternalTwoParametersTestLanguage.g:669:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // PsiInternalTwoParametersTestLanguage.g:669:41: ( '\\r' )? '\\n'
            {
              // PsiInternalTwoParametersTestLanguage.g:669:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // PsiInternalTwoParametersTestLanguage.g:669:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:671:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // PsiInternalTwoParametersTestLanguage.g:671:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // PsiInternalTwoParametersTestLanguage.g:671:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // PsiInternalTwoParametersTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalTwoParametersTestLanguage.g:673:16: ( . )
      // PsiInternalTwoParametersTestLanguage.g:673:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // PsiInternalTwoParametersTestLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 |
    // T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING |
    // RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 20;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // PsiInternalTwoParametersTestLanguage.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // PsiInternalTwoParametersTestLanguage.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // PsiInternalTwoParametersTestLanguage.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // PsiInternalTwoParametersTestLanguage.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // PsiInternalTwoParametersTestLanguage.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // PsiInternalTwoParametersTestLanguage.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // PsiInternalTwoParametersTestLanguage.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // PsiInternalTwoParametersTestLanguage.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // PsiInternalTwoParametersTestLanguage.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // PsiInternalTwoParametersTestLanguage.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // PsiInternalTwoParametersTestLanguage.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // PsiInternalTwoParametersTestLanguage.g:1:76: T__22
        {
          mT__22();
        }
        break;
      case 13:
        // PsiInternalTwoParametersTestLanguage.g:1:82: T__23
        {
          mT__23();
        }
        break;
      case 14:
        // PsiInternalTwoParametersTestLanguage.g:1:88: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 15:
        // PsiInternalTwoParametersTestLanguage.g:1:96: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 16:
        // PsiInternalTwoParametersTestLanguage.g:1:105: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 17:
        // PsiInternalTwoParametersTestLanguage.g:1:117: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 18:
        // PsiInternalTwoParametersTestLanguage.g:1:133: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 19:
        // PsiInternalTwoParametersTestLanguage.g:1:149: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 20:
        // PsiInternalTwoParametersTestLanguage.g:1:157: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\12\1\25\1\12\2\uffff\3\12\2\uffff\1\36\10\uffff\1\25\12\uffff\4\25\1\44\1\uffff";
  static final String DFA12_eofS = "\45\uffff";
  static final String DFA12_minS =
      "\1\0\1\61\1\145\1\101\2\uffff\2\0\1\52\2\uffff\1\60\10\uffff\1\171\12\uffff\1\167\1\157\1\162\1\144\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\71\1\145\1\172\2\uffff\2\uffff\1\57\2\uffff\1\62\10\uffff\1\171\12\uffff\1\167\1\157\1\162\1\144\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\4\uffff\1\16\1\17\3\uffff\1\23\1\24\1\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\uffff\1\16\1\17\1\20\1\21\1\22\1\23\1\13\1\14\1\15\1\1\5\uffff\1\12";
  static final String DFA12_specialS = "\1\0\5\uffff\1\2\1\1\35\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\12\2\11\2\12\1\11\22\12\1\11\1\12\1\6\1\1\3\12\1\7\7\12\1\10\12\5\7\12\32\4\3\12\1\3\1\4\1\12\12\4\1\2\17\4\uff85\12",
    "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23",
    "\1\24",
    "\32\25\4\uffff\1\25\1\uffff\32\25",
    "",
    "",
    "\0\27",
    "\0\27",
    "\1\30\4\uffff\1\31",
    "",
    "",
    "\1\33\1\34\1\35",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\37",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\40",
    "\1\41",
    "\1\42",
    "\1\43",
    "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == '#')) {
            s = 1;
          } else if ((LA12_0 == 'k')) {
            s = 2;
          } else if ((LA12_0 == '^')) {
            s = 3;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'j')
              || (LA12_0 >= 'l' && LA12_0 <= 'z'))) {
            s = 4;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 5;
          } else if ((LA12_0 == '\"')) {
            s = 6;
          } else if ((LA12_0 == '\'')) {
            s = 7;
          } else if ((LA12_0 == '/')) {
            s = 8;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 9;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '$' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '.')
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 10;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_7 = input.LA(1);

          s = -1;
          if (((LA12_7 >= '\u0000' && LA12_7 <= '\uFFFF'))) {
            s = 23;
          } else s = 10;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_6 = input.LA(1);

          s = -1;
          if (((LA12_6 >= '\u0000' && LA12_6 <= '\uFFFF'))) {
            s = 23;
          } else s = 10;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class InternalSequencerTestLanguageLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__29 = 29;
  public static final int T__28 = 28;
  public static final int T__27 = 27;
  public static final int T__26 = 26;
  public static final int T__25 = 25;
  public static final int T__24 = 24;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int T__21 = 21;
  public static final int RULE_ANY_OTHER = 13;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int T__55 = 55;
  public static final int T__19 = 19;
  public static final int T__16 = 16;
  public static final int T__51 = 51;
  public static final int T__15 = 15;
  public static final int T__52 = 52;
  public static final int T__53 = 53;
  public static final int T__18 = 18;
  public static final int T__54 = 54;
  public static final int T__17 = 17;
  public static final int T__14 = 14;
  public static final int RULE_INT = 8;
  public static final int T__50 = 50;
  public static final int T__42 = 42;
  public static final int T__43 = 43;
  public static final int T__40 = 40;
  public static final int T__41 = 41;
  public static final int T__46 = 46;
  public static final int T__47 = 47;
  public static final int T__44 = 44;
  public static final int T__45 = 45;
  public static final int T__48 = 48;
  public static final int T__49 = 49;
  public static final int RULE_SL_COMMENT = 11;
  public static final int RULE_ML_COMMENT = 10;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int T__32 = 32;
  public static final int RULE_STRING = 9;
  public static final int T__33 = 33;
  public static final int T__34 = 34;
  public static final int T__35 = 35;
  public static final int T__36 = 36;
  public static final int T__37 = 37;
  public static final int T__38 = 38;
  public static final int T__39 = 39;
  public static final int RULE_ID1 = 5;
  public static final int RULE_ID2 = 6;
  public static final int RULE_ID3 = 7;
  public static final int RULE_WS = 12;

  // delegates
  // delegators

  public InternalSequencerTestLanguageLexer() {
    ;
  }

  public InternalSequencerTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalSequencerTestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "InternalSequencerTestLanguage.g";
  }

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:11:7: ( '#1' )
      // InternalSequencerTestLanguage.g:11:9: '#1'
      {
        match("#1");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:12:7: ( '#2' )
      // InternalSequencerTestLanguage.g:12:9: '#2'
      {
        match("#2");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:13:7: ( 'kw1' )
      // InternalSequencerTestLanguage.g:13:9: 'kw1'
      {
        match("kw1");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:14:7: ( 'kw2' )
      // InternalSequencerTestLanguage.g:14:9: 'kw2'
      {
        match("kw2");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:15:7: ( '#3' )
      // InternalSequencerTestLanguage.g:15:9: '#3'
      {
        match("#3");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:16:7: ( 'kw3' )
      // InternalSequencerTestLanguage.g:16:9: 'kw3'
      {
        match("kw3");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:17:7: ( '#4' )
      // InternalSequencerTestLanguage.g:17:9: '#4'
      {
        match("#4");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:18:7: ( '#5' )
      // InternalSequencerTestLanguage.g:18:9: '#5'
      {
        match("#5");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:19:7: ( 'kw4' )
      // InternalSequencerTestLanguage.g:19:9: 'kw4'
      {
        match("kw4");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:20:7: ( 'kw5' )
      // InternalSequencerTestLanguage.g:20:9: 'kw5'
      {
        match("kw5");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:21:7: ( '#6' )
      // InternalSequencerTestLanguage.g:21:9: '#6'
      {
        match("#6");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:22:7: ( ',' )
      // InternalSequencerTestLanguage.g:22:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:23:7: ( '#7' )
      // InternalSequencerTestLanguage.g:23:9: '#7'
      {
        match("#7");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:24:7: ( '#8' )
      // InternalSequencerTestLanguage.g:24:9: '#8'
      {
        match("#8");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:25:7: ( '#9' )
      // InternalSequencerTestLanguage.g:25:9: '#9'
      {
        match("#9");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:26:7: ( 'kw' )
      // InternalSequencerTestLanguage.g:26:9: 'kw'
      {
        match("kw");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:27:7: ( '#10' )
      // InternalSequencerTestLanguage.g:27:9: '#10'
      {
        match("#10");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:28:7: ( '#11' )
      // InternalSequencerTestLanguage.g:28:9: '#11'
      {
        match("#11");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "T__32"
  public final void mT__32() throws RecognitionException {
    try {
      int _type = T__32;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:29:7: ( '#12' )
      // InternalSequencerTestLanguage.g:29:9: '#12'
      {
        match("#12");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__32"

  // $ANTLR start "T__33"
  public final void mT__33() throws RecognitionException {
    try {
      int _type = T__33;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:30:7: ( '#13' )
      // InternalSequencerTestLanguage.g:30:9: '#13'
      {
        match("#13");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__33"

  // $ANTLR start "T__34"
  public final void mT__34() throws RecognitionException {
    try {
      int _type = T__34;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:31:7: ( '#14' )
      // InternalSequencerTestLanguage.g:31:9: '#14'
      {
        match("#14");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__34"

  // $ANTLR start "T__35"
  public final void mT__35() throws RecognitionException {
    try {
      int _type = T__35;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:32:7: ( '#15' )
      // InternalSequencerTestLanguage.g:32:9: '#15'
      {
        match("#15");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__35"

  // $ANTLR start "T__36"
  public final void mT__36() throws RecognitionException {
    try {
      int _type = T__36;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:33:7: ( '#16' )
      // InternalSequencerTestLanguage.g:33:9: '#16'
      {
        match("#16");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__36"

  // $ANTLR start "T__37"
  public final void mT__37() throws RecognitionException {
    try {
      int _type = T__37;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:34:7: ( '#17' )
      // InternalSequencerTestLanguage.g:34:9: '#17'
      {
        match("#17");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__37"

  // $ANTLR start "T__38"
  public final void mT__38() throws RecognitionException {
    try {
      int _type = T__38;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:35:7: ( '#18' )
      // InternalSequencerTestLanguage.g:35:9: '#18'
      {
        match("#18");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__38"

  // $ANTLR start "T__39"
  public final void mT__39() throws RecognitionException {
    try {
      int _type = T__39;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:36:7: ( '#19' )
      // InternalSequencerTestLanguage.g:36:9: '#19'
      {
        match("#19");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__39"

  // $ANTLR start "T__40"
  public final void mT__40() throws RecognitionException {
    try {
      int _type = T__40;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:37:7: ( '#20' )
      // InternalSequencerTestLanguage.g:37:9: '#20'
      {
        match("#20");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__40"

  // $ANTLR start "T__41"
  public final void mT__41() throws RecognitionException {
    try {
      int _type = T__41;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:38:7: ( '#21' )
      // InternalSequencerTestLanguage.g:38:9: '#21'
      {
        match("#21");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__41"

  // $ANTLR start "T__42"
  public final void mT__42() throws RecognitionException {
    try {
      int _type = T__42;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:39:7: ( '#22' )
      // InternalSequencerTestLanguage.g:39:9: '#22'
      {
        match("#22");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__42"

  // $ANTLR start "T__43"
  public final void mT__43() throws RecognitionException {
    try {
      int _type = T__43;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:40:7: ( 'Bye' )
      // InternalSequencerTestLanguage.g:40:9: 'Bye'
      {
        match("Bye");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__43"

  // $ANTLR start "T__44"
  public final void mT__44() throws RecognitionException {
    try {
      int _type = T__44;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:41:7: ( '#23' )
      // InternalSequencerTestLanguage.g:41:9: '#23'
      {
        match("#23");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__44"

  // $ANTLR start "T__45"
  public final void mT__45() throws RecognitionException {
    try {
      int _type = T__45;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:42:7: ( '#24' )
      // InternalSequencerTestLanguage.g:42:9: '#24'
      {
        match("#24");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__45"

  // $ANTLR start "T__46"
  public final void mT__46() throws RecognitionException {
    try {
      int _type = T__46;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:43:7: ( '#25' )
      // InternalSequencerTestLanguage.g:43:9: '#25'
      {
        match("#25");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__46"

  // $ANTLR start "T__47"
  public final void mT__47() throws RecognitionException {
    try {
      int _type = T__47;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:44:7: ( '#26' )
      // InternalSequencerTestLanguage.g:44:9: '#26'
      {
        match("#26");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__47"

  // $ANTLR start "T__48"
  public final void mT__48() throws RecognitionException {
    try {
      int _type = T__48;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:45:7: ( '#27' )
      // InternalSequencerTestLanguage.g:45:9: '#27'
      {
        match("#27");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__48"

  // $ANTLR start "T__49"
  public final void mT__49() throws RecognitionException {
    try {
      int _type = T__49;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:46:7: ( 'kw6' )
      // InternalSequencerTestLanguage.g:46:9: 'kw6'
      {
        match("kw6");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__49"

  // $ANTLR start "T__50"
  public final void mT__50() throws RecognitionException {
    try {
      int _type = T__50;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:47:7: ( '#28' )
      // InternalSequencerTestLanguage.g:47:9: '#28'
      {
        match("#28");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__50"

  // $ANTLR start "T__51"
  public final void mT__51() throws RecognitionException {
    try {
      int _type = T__51;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:48:7: ( '.' )
      // InternalSequencerTestLanguage.g:48:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__51"

  // $ANTLR start "T__52"
  public final void mT__52() throws RecognitionException {
    try {
      int _type = T__52;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:49:7: ( '#29' )
      // InternalSequencerTestLanguage.g:49:9: '#29'
      {
        match("#29");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__52"

  // $ANTLR start "T__53"
  public final void mT__53() throws RecognitionException {
    try {
      int _type = T__53;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:50:7: ( '#30' )
      // InternalSequencerTestLanguage.g:50:9: '#30'
      {
        match("#30");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__53"

  // $ANTLR start "T__54"
  public final void mT__54() throws RecognitionException {
    try {
      int _type = T__54;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:51:7: ( '#31' )
      // InternalSequencerTestLanguage.g:51:9: '#31'
      {
        match("#31");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__54"

  // $ANTLR start "T__55"
  public final void mT__55() throws RecognitionException {
    try {
      int _type = T__55;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:52:7: ( '#32' )
      // InternalSequencerTestLanguage.g:52:9: '#32'
      {
        match("#32");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__55"

  // $ANTLR start "RULE_ID1"
  public final void mRULE_ID1() throws RecognitionException {
    try {
      int _type = RULE_ID1;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4068:10: ( '$1' RULE_ID )
      // InternalSequencerTestLanguage.g:4068:12: '$1' RULE_ID
      {
        match("$1");

        mRULE_ID();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID1"

  // $ANTLR start "RULE_ID2"
  public final void mRULE_ID2() throws RecognitionException {
    try {
      int _type = RULE_ID2;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4070:10: ( '$2' RULE_ID )
      // InternalSequencerTestLanguage.g:4070:12: '$2' RULE_ID
      {
        match("$2");

        mRULE_ID();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID2"

  // $ANTLR start "RULE_ID3"
  public final void mRULE_ID3() throws RecognitionException {
    try {
      int _type = RULE_ID3;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4072:10: ( '$3' RULE_ID )
      // InternalSequencerTestLanguage.g:4072:12: '$3' RULE_ID
      {
        match("$3");

        mRULE_ID();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID3"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4074:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a'
      // .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // InternalSequencerTestLanguage.g:4074:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a'
      // .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // InternalSequencerTestLanguage.g:4074:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // InternalSequencerTestLanguage.g:4074:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // InternalSequencerTestLanguage.g:4074:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // InternalSequencerTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4076:10: ( ( '0' .. '9' )+ )
      // InternalSequencerTestLanguage.g:4076:12: ( '0' .. '9' )+
      {
        // InternalSequencerTestLanguage.g:4076:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // InternalSequencerTestLanguage.g:4076:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4078:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // InternalSequencerTestLanguage.g:4078:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // InternalSequencerTestLanguage.g:4078:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
        // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // InternalSequencerTestLanguage.g:4078:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
            // '\"'
            {
              match('\"');
              // InternalSequencerTestLanguage.g:4078:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // InternalSequencerTestLanguage.g:4078:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalSequencerTestLanguage.g:4078:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // InternalSequencerTestLanguage.g:4078:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) )
            // )* '\\''
            {
              match('\'');
              // InternalSequencerTestLanguage.g:4078:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // InternalSequencerTestLanguage.g:4078:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // InternalSequencerTestLanguage.g:4078:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4080:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // InternalSequencerTestLanguage.g:4080:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // InternalSequencerTestLanguage.g:4080:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // InternalSequencerTestLanguage.g:4080:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4082:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )? )
      // InternalSequencerTestLanguage.g:4082:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )?
      {
        match("//");

        // InternalSequencerTestLanguage.g:4082:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // InternalSequencerTestLanguage.g:4082:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // InternalSequencerTestLanguage.g:4082:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // InternalSequencerTestLanguage.g:4082:41: ( '\\r' )? '\\n'
            {
              // InternalSequencerTestLanguage.g:4082:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // InternalSequencerTestLanguage.g:4082:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4084:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // InternalSequencerTestLanguage.g:4084:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // InternalSequencerTestLanguage.g:4084:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // InternalSequencerTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // InternalSequencerTestLanguage.g:4086:16: ( . )
      // InternalSequencerTestLanguage.g:4086:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // InternalSequencerTestLanguage.g:1:8: ( T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20
    // | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 |
    // T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43
    // | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 |
    // T__55 | RULE_ID1 | RULE_ID2 | RULE_ID3 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT |
    // RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 52;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // InternalSequencerTestLanguage.g:1:10: T__14
        {
          mT__14();
        }
        break;
      case 2:
        // InternalSequencerTestLanguage.g:1:16: T__15
        {
          mT__15();
        }
        break;
      case 3:
        // InternalSequencerTestLanguage.g:1:22: T__16
        {
          mT__16();
        }
        break;
      case 4:
        // InternalSequencerTestLanguage.g:1:28: T__17
        {
          mT__17();
        }
        break;
      case 5:
        // InternalSequencerTestLanguage.g:1:34: T__18
        {
          mT__18();
        }
        break;
      case 6:
        // InternalSequencerTestLanguage.g:1:40: T__19
        {
          mT__19();
        }
        break;
      case 7:
        // InternalSequencerTestLanguage.g:1:46: T__20
        {
          mT__20();
        }
        break;
      case 8:
        // InternalSequencerTestLanguage.g:1:52: T__21
        {
          mT__21();
        }
        break;
      case 9:
        // InternalSequencerTestLanguage.g:1:58: T__22
        {
          mT__22();
        }
        break;
      case 10:
        // InternalSequencerTestLanguage.g:1:64: T__23
        {
          mT__23();
        }
        break;
      case 11:
        // InternalSequencerTestLanguage.g:1:70: T__24
        {
          mT__24();
        }
        break;
      case 12:
        // InternalSequencerTestLanguage.g:1:76: T__25
        {
          mT__25();
        }
        break;
      case 13:
        // InternalSequencerTestLanguage.g:1:82: T__26
        {
          mT__26();
        }
        break;
      case 14:
        // InternalSequencerTestLanguage.g:1:88: T__27
        {
          mT__27();
        }
        break;
      case 15:
        // InternalSequencerTestLanguage.g:1:94: T__28
        {
          mT__28();
        }
        break;
      case 16:
        // InternalSequencerTestLanguage.g:1:100: T__29
        {
          mT__29();
        }
        break;
      case 17:
        // InternalSequencerTestLanguage.g:1:106: T__30
        {
          mT__30();
        }
        break;
      case 18:
        // InternalSequencerTestLanguage.g:1:112: T__31
        {
          mT__31();
        }
        break;
      case 19:
        // InternalSequencerTestLanguage.g:1:118: T__32
        {
          mT__32();
        }
        break;
      case 20:
        // InternalSequencerTestLanguage.g:1:124: T__33
        {
          mT__33();
        }
        break;
      case 21:
        // InternalSequencerTestLanguage.g:1:130: T__34
        {
          mT__34();
        }
        break;
      case 22:
        // InternalSequencerTestLanguage.g:1:136: T__35
        {
          mT__35();
        }
        break;
      case 23:
        // InternalSequencerTestLanguage.g:1:142: T__36
        {
          mT__36();
        }
        break;
      case 24:
        // InternalSequencerTestLanguage.g:1:148: T__37
        {
          mT__37();
        }
        break;
      case 25:
        // InternalSequencerTestLanguage.g:1:154: T__38
        {
          mT__38();
        }
        break;
      case 26:
        // InternalSequencerTestLanguage.g:1:160: T__39
        {
          mT__39();
        }
        break;
      case 27:
        // InternalSequencerTestLanguage.g:1:166: T__40
        {
          mT__40();
        }
        break;
      case 28:
        // InternalSequencerTestLanguage.g:1:172: T__41
        {
          mT__41();
        }
        break;
      case 29:
        // InternalSequencerTestLanguage.g:1:178: T__42
        {
          mT__42();
        }
        break;
      case 30:
        // InternalSequencerTestLanguage.g:1:184: T__43
        {
          mT__43();
        }
        break;
      case 31:
        // InternalSequencerTestLanguage.g:1:190: T__44
        {
          mT__44();
        }
        break;
      case 32:
        // InternalSequencerTestLanguage.g:1:196: T__45
        {
          mT__45();
        }
        break;
      case 33:
        // InternalSequencerTestLanguage.g:1:202: T__46
        {
          mT__46();
        }
        break;
      case 34:
        // InternalSequencerTestLanguage.g:1:208: T__47
        {
          mT__47();
        }
        break;
      case 35:
        // InternalSequencerTestLanguage.g:1:214: T__48
        {
          mT__48();
        }
        break;
      case 36:
        // InternalSequencerTestLanguage.g:1:220: T__49
        {
          mT__49();
        }
        break;
      case 37:
        // InternalSequencerTestLanguage.g:1:226: T__50
        {
          mT__50();
        }
        break;
      case 38:
        // InternalSequencerTestLanguage.g:1:232: T__51
        {
          mT__51();
        }
        break;
      case 39:
        // InternalSequencerTestLanguage.g:1:238: T__52
        {
          mT__52();
        }
        break;
      case 40:
        // InternalSequencerTestLanguage.g:1:244: T__53
        {
          mT__53();
        }
        break;
      case 41:
        // InternalSequencerTestLanguage.g:1:250: T__54
        {
          mT__54();
        }
        break;
      case 42:
        // InternalSequencerTestLanguage.g:1:256: T__55
        {
          mT__55();
        }
        break;
      case 43:
        // InternalSequencerTestLanguage.g:1:262: RULE_ID1
        {
          mRULE_ID1();
        }
        break;
      case 44:
        // InternalSequencerTestLanguage.g:1:271: RULE_ID2
        {
          mRULE_ID2();
        }
        break;
      case 45:
        // InternalSequencerTestLanguage.g:1:280: RULE_ID3
        {
          mRULE_ID3();
        }
        break;
      case 46:
        // InternalSequencerTestLanguage.g:1:289: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 47:
        // InternalSequencerTestLanguage.g:1:297: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 48:
        // InternalSequencerTestLanguage.g:1:306: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 49:
        // InternalSequencerTestLanguage.g:1:318: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 50:
        // InternalSequencerTestLanguage.g:1:334: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 51:
        // InternalSequencerTestLanguage.g:1:350: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 52:
        // InternalSequencerTestLanguage.g:1:358: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\16\1\31\1\uffff\1\31\1\uffff\2\16\2\uffff\3\16\2\uffff\1\57\1\72\1\76\6\uffff\1\105\2\uffff\1\31\43\uffff\1\107\1\110\1\111\1\112\1\113\1\114\1\uffff\1\115\7\uffff";
  static final String DFA12_eofS = "\116\uffff";
  static final String DFA12_minS =
      "\1\0\1\61\1\167\1\uffff\1\171\1\uffff\1\61\1\101\2\uffff\2\0\1\52\2\uffff\3\60\6\uffff\1\60\2\uffff\1\145\43\uffff\6\60\1\uffff\1\60\7\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\71\1\167\1\uffff\1\171\1\uffff\1\63\1\172\2\uffff\2\uffff\1\57\2\uffff\2\71\1\62\6\uffff\1\172\2\uffff\1\145\43\uffff\6\172\1\uffff\1\172\7\uffff";
  static final String DFA12_acceptS =
      "\3\uffff\1\14\1\uffff\1\46\2\uffff\1\56\1\57\3\uffff\1\63\1\64\3\uffff\1\7\1\10\1\13\1\15\1\16\1\17\1\uffff\1\56\1\14\1\uffff\1\46\1\53\1\54\1\55\1\57\1\60\1\61\1\62\1\63\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\1\1\33\1\34\1\35\1\37\1\40\1\41\1\42\1\43\1\45\1\47\1\2\1\50\1\51\1\52\1\5\6\uffff\1\20\1\uffff\1\3\1\4\1\6\1\11\1\12\1\44\1\36";
  static final String DFA12_specialS = "\1\0\11\uffff\1\2\1\1\102\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\16\2\15\2\16\1\15\22\16\1\15\1\16\1\12\1\1\1\6\2\16\1\13\4\16\1\3\1\16\1\5\1\14\12\11\7\16\1\10\1\4\30\10\3\16\1\7\1\10\1\16\12\10\1\2\17\10\uff85\16",
    "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27",
    "\1\30",
    "",
    "\1\33",
    "",
    "\1\35\1\36\1\37",
    "\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "",
    "\0\41",
    "\0\41",
    "\1\42\4\uffff\1\43",
    "",
    "",
    "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56",
    "\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71",
    "\1\73\1\74\1\75",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\31\1\77\1\100\1\101\1\102\1\103\1\104\3\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "",
    "\1\106",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | RULE_ID1 | RULE_ID2 | RULE_ID3 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == '#')) {
            s = 1;
          } else if ((LA12_0 == 'k')) {
            s = 2;
          } else if ((LA12_0 == ',')) {
            s = 3;
          } else if ((LA12_0 == 'B')) {
            s = 4;
          } else if ((LA12_0 == '.')) {
            s = 5;
          } else if ((LA12_0 == '$')) {
            s = 6;
          } else if ((LA12_0 == '^')) {
            s = 7;
          } else if ((LA12_0 == 'A'
              || (LA12_0 >= 'C' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'j')
              || (LA12_0 >= 'l' && LA12_0 <= 'z'))) {
            s = 8;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 9;
          } else if ((LA12_0 == '\"')) {
            s = 10;
          } else if ((LA12_0 == '\'')) {
            s = 11;
          } else if ((LA12_0 == '/')) {
            s = 12;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 13;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '%' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '+')
              || LA12_0 == '-'
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 14;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_11 = input.LA(1);

          s = -1;
          if (((LA12_11 >= '\u0000' && LA12_11 <= '\uFFFF'))) {
            s = 33;
          } else s = 14;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_10 = input.LA(1);

          s = -1;
          if (((LA12_10 >= '\u0000' && LA12_10 <= '\uFFFF'))) {
            s = 33;
          } else s = 14;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class PsiInternalConcreteTestLanguageLexer extends Lexer {
  public static final int RULE_ID = 5;
  public static final int SUPER_ID = 8;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 12;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 10;
  public static final int RULE_ML_COMMENT = 9;
  public static final int T__19 = 19;
  public static final int RULE_STRING = 7;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 6;
  public static final int RULE_REAL = 4;
  public static final int RULE_WS = 11;

  // delegates
  // delegators

  public PsiInternalConcreteTestLanguageLexer() {
    ;
  }

  public PsiInternalConcreteTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public PsiInternalConcreteTestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "PsiInternalConcreteTestLanguage.g";
  }

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:11:7: ( 'model' )
      // PsiInternalConcreteTestLanguage.g:11:9: 'model'
      {
        match("model");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:12:7: ( ':' )
      // PsiInternalConcreteTestLanguage.g:12:9: ':'
      {
        match(':');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:13:7: ( 'overriddenelement' )
      // PsiInternalConcreteTestLanguage.g:13:9: 'overriddenelement'
      {
        match("overriddenelement");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:14:7: ( 'overridden other element' )
      // PsiInternalConcreteTestLanguage.g:14:9: 'overridden other element'
      {
        match("overridden other element");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:15:7: ( '-' )
      // PsiInternalConcreteTestLanguage.g:15:9: '-'
      {
        match('-');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:16:7: ( 'subrule1' )
      // PsiInternalConcreteTestLanguage.g:16:9: 'subrule1'
      {
        match("subrule1");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:17:7: ( 'subrule3' )
      // PsiInternalConcreteTestLanguage.g:17:9: 'subrule3'
      {
        match("subrule3");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:18:7: ( 'element' )
      // PsiInternalConcreteTestLanguage.g:18:9: 'element'
      {
        match("element");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:19:7: ( 'overridemodel' )
      // PsiInternalConcreteTestLanguage.g:19:9: 'overridemodel'
      {
        match("overridemodel");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:20:7: ( 'extendedmodel' )
      // PsiInternalConcreteTestLanguage.g:20:9: 'extendedmodel'
      {
        match("extendedmodel");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:629:9: ( SUPER_ID )
      // PsiInternalConcreteTestLanguage.g:629:11: SUPER_ID
      {
        mSUPER_ID();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_REAL"
  public final void mRULE_REAL() throws RecognitionException {
    try {
      int _type = RULE_REAL;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:631:11: ( RULE_INT '.' RULE_INT )
      // PsiInternalConcreteTestLanguage.g:631:13: RULE_INT '.' RULE_INT
      {
        mRULE_INT();
        match('.');
        mRULE_INT();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_REAL"

  // $ANTLR start "SUPER_ID"
  public final void mSUPER_ID() throws RecognitionException {
    try {
      // PsiInternalConcreteTestLanguage.g:633:19: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '\\u00F6'
      // | '\\u00E4' | '\\u00FC' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // PsiInternalConcreteTestLanguage.g:633:21: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '\\u00F6' |
      // '\\u00E4' | '\\u00FC' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // PsiInternalConcreteTestLanguage.g:633:21: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // PsiInternalConcreteTestLanguage.g:633:21: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')
            || input.LA(1) == '\u00E4'
            || input.LA(1) == '\u00F6'
            || input.LA(1) == '\u00FC') {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // PsiInternalConcreteTestLanguage.g:633:77: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // PsiInternalConcreteTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

    } finally {
    }
  }
  // $ANTLR end "SUPER_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:635:10: ( ( '0' .. '9' )+ )
      // PsiInternalConcreteTestLanguage.g:635:12: ( '0' .. '9' )+
      {
        // PsiInternalConcreteTestLanguage.g:635:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // PsiInternalConcreteTestLanguage.g:635:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:637:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // PsiInternalConcreteTestLanguage.g:637:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
      // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // PsiInternalConcreteTestLanguage.g:637:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
        // '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // PsiInternalConcreteTestLanguage.g:637:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) )
            // )* '\"'
            {
              match('\"');
              // PsiInternalConcreteTestLanguage.g:637:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // PsiInternalConcreteTestLanguage.g:637:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalConcreteTestLanguage.g:637:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // PsiInternalConcreteTestLanguage.g:637:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) )
            // )* '\\''
            {
              match('\'');
              // PsiInternalConcreteTestLanguage.g:637:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // PsiInternalConcreteTestLanguage.g:637:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // PsiInternalConcreteTestLanguage.g:637:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:639:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // PsiInternalConcreteTestLanguage.g:639:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // PsiInternalConcreteTestLanguage.g:639:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // PsiInternalConcreteTestLanguage.g:639:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:641:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )? )
      // PsiInternalConcreteTestLanguage.g:641:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )?
      // '\\n' )?
      {
        match("//");

        // PsiInternalConcreteTestLanguage.g:641:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // PsiInternalConcreteTestLanguage.g:641:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // PsiInternalConcreteTestLanguage.g:641:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // PsiInternalConcreteTestLanguage.g:641:41: ( '\\r' )? '\\n'
            {
              // PsiInternalConcreteTestLanguage.g:641:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // PsiInternalConcreteTestLanguage.g:641:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:643:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // PsiInternalConcreteTestLanguage.g:643:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // PsiInternalConcreteTestLanguage.g:643:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // PsiInternalConcreteTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // PsiInternalConcreteTestLanguage.g:645:16: ( . )
      // PsiInternalConcreteTestLanguage.g:645:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // PsiInternalConcreteTestLanguage.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 |
    // T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_REAL | RULE_INT | RULE_STRING |
    // RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 18;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // PsiInternalConcreteTestLanguage.g:1:10: T__13
        {
          mT__13();
        }
        break;
      case 2:
        // PsiInternalConcreteTestLanguage.g:1:16: T__14
        {
          mT__14();
        }
        break;
      case 3:
        // PsiInternalConcreteTestLanguage.g:1:22: T__15
        {
          mT__15();
        }
        break;
      case 4:
        // PsiInternalConcreteTestLanguage.g:1:28: T__16
        {
          mT__16();
        }
        break;
      case 5:
        // PsiInternalConcreteTestLanguage.g:1:34: T__17
        {
          mT__17();
        }
        break;
      case 6:
        // PsiInternalConcreteTestLanguage.g:1:40: T__18
        {
          mT__18();
        }
        break;
      case 7:
        // PsiInternalConcreteTestLanguage.g:1:46: T__19
        {
          mT__19();
        }
        break;
      case 8:
        // PsiInternalConcreteTestLanguage.g:1:52: T__20
        {
          mT__20();
        }
        break;
      case 9:
        // PsiInternalConcreteTestLanguage.g:1:58: T__21
        {
          mT__21();
        }
        break;
      case 10:
        // PsiInternalConcreteTestLanguage.g:1:64: T__22
        {
          mT__22();
        }
        break;
      case 11:
        // PsiInternalConcreteTestLanguage.g:1:70: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 12:
        // PsiInternalConcreteTestLanguage.g:1:78: RULE_REAL
        {
          mRULE_REAL();
        }
        break;
      case 13:
        // PsiInternalConcreteTestLanguage.g:1:88: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 14:
        // PsiInternalConcreteTestLanguage.g:1:97: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 15:
        // PsiInternalConcreteTestLanguage.g:1:109: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 16:
        // PsiInternalConcreteTestLanguage.g:1:125: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 17:
        // PsiInternalConcreteTestLanguage.g:1:141: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 18:
        // PsiInternalConcreteTestLanguage.g:1:149: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\20\1\uffff\1\20\1\uffff\2\20\1\16\1\uffff\1\27\3\16\2\uffff\1\20\2\uffff\1\20\1\uffff\3\20\2\uffff\1\27\4\uffff\12\20\1\55\4\20\1\uffff\6\20\1\72\3\20\1\76\1\77\1\uffff\3\20\2\uffff\5\20\1\uffff\6\20\1\117\1\120\1\20\2\uffff\2\20\1\124\1\uffff";
  static final String DFA12_eofS = "\125\uffff";
  static final String DFA12_minS =
      "\1\0\1\157\1\uffff\1\166\1\uffff\1\165\1\154\1\101\1\uffff\1\56\2\0\1\52\2\uffff\1\144\2\uffff\1\145\1\uffff\1\142\1\145\1\164\2\uffff\1\56\4\uffff\1\145\2\162\1\155\1\145\1\154\1\162\1\165\1\145\1\156\1\60\1\151\1\154\1\156\1\144\1\uffff\1\144\1\145\1\164\1\145\1\144\1\61\1\60\1\144\1\145\1\155\2\60\1\uffff\1\155\1\156\1\157\2\uffff\1\157\1\40\2\144\1\154\1\uffff\3\145\2\154\1\155\2\60\1\145\2\uffff\1\156\1\164\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\157\1\uffff\1\166\1\uffff\1\165\1\170\1\u00fc\1\uffff\1\71\2\uffff\1\57\2\uffff\1\144\2\uffff\1\145\1\uffff\1\142\1\145\1\164\2\uffff\1\71\4\uffff\1\145\2\162\1\155\1\145\1\154\1\162\1\165\1\145\1\156\1\172\1\151\1\154\1\156\1\144\1\uffff\1\144\1\145\1\164\2\145\1\63\1\172\1\144\1\145\1\155\2\172\1\uffff\1\155\1\156\1\157\2\uffff\1\157\1\145\2\144\1\154\1\uffff\3\145\2\154\1\155\2\172\1\145\2\uffff\1\156\1\164\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\2\uffff\1\2\1\uffff\1\5\3\uffff\1\13\4\uffff\1\21\1\22\1\uffff\1\13\1\2\1\uffff\1\5\3\uffff\1\15\1\14\1\uffff\1\16\1\17\1\20\1\21\17\uffff\1\1\14\uffff\1\10\3\uffff\1\6\1\7\5\uffff\1\4\11\uffff\1\11\1\12\3\uffff\1\3";
  static final String DFA12_specialS = "\1\1\11\uffff\1\2\1\0\111\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\16\2\15\2\16\1\15\22\16\1\15\1\16\1\12\4\16\1\13\5\16\1\4\1\16\1\14\12\11\1\2\6\16\32\10\3\16\1\7\1\10\1\16\4\10\1\6\7\10\1\1\1\10\1\3\3\10\1\5\7\10\151\16\1\10\21\16\1\10\5\16\1\10\uff03\16",
    "\1\17",
    "",
    "\1\22",
    "",
    "\1\24",
    "\1\25\13\uffff\1\26",
    "\32\20\4\uffff\1\20\1\uffff\32\20\151\uffff\1\20\21\uffff\1\20\5\uffff\1\20",
    "",
    "\1\30\1\uffff\12\31",
    "\0\32",
    "\0\32",
    "\1\33\4\uffff\1\34",
    "",
    "",
    "\1\36",
    "",
    "",
    "\1\37",
    "",
    "\1\40",
    "\1\41",
    "\1\42",
    "",
    "",
    "\1\30\1\uffff\12\31",
    "",
    "",
    "",
    "",
    "\1\43",
    "\1\44",
    "\1\45",
    "\1\46",
    "\1\47",
    "\1\50",
    "\1\51",
    "\1\52",
    "\1\53",
    "\1\54",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "\1\56",
    "\1\57",
    "\1\60",
    "\1\61",
    "",
    "\1\62",
    "\1\63",
    "\1\64",
    "\1\65",
    "\1\66\1\67",
    "\1\70\1\uffff\1\71",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "\1\73",
    "\1\74",
    "\1\75",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "",
    "\1\100",
    "\1\101",
    "\1\102",
    "",
    "",
    "\1\103",
    "\1\105\104\uffff\1\104",
    "\1\106",
    "\1\107",
    "\1\110",
    "",
    "\1\111",
    "\1\112",
    "\1\113",
    "\1\114",
    "\1\115",
    "\1\116",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    "\1\121",
    "",
    "",
    "\1\122",
    "\1\123",
    "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_REAL | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_11 = input.LA(1);

          s = -1;
          if (((LA12_11 >= '\u0000' && LA12_11 <= '\uFFFF'))) {
            s = 26;
          } else s = 14;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'm')) {
            s = 1;
          } else if ((LA12_0 == ':')) {
            s = 2;
          } else if ((LA12_0 == 'o')) {
            s = 3;
          } else if ((LA12_0 == '-')) {
            s = 4;
          } else if ((LA12_0 == 's')) {
            s = 5;
          } else if ((LA12_0 == 'e')) {
            s = 6;
          } else if ((LA12_0 == '^')) {
            s = 7;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'd')
              || (LA12_0 >= 'f' && LA12_0 <= 'l')
              || LA12_0 == 'n'
              || (LA12_0 >= 'p' && LA12_0 <= 'r')
              || (LA12_0 >= 't' && LA12_0 <= 'z')
              || LA12_0 == '\u00E4'
              || LA12_0 == '\u00F6'
              || LA12_0 == '\u00FC')) {
            s = 8;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 9;
          } else if ((LA12_0 == '\"')) {
            s = 10;
          } else if ((LA12_0 == '\'')) {
            s = 11;
          } else if ((LA12_0 == '/')) {
            s = 12;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 13;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= ',')
              || LA12_0 == '.'
              || (LA12_0 >= ';' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\u00E3')
              || (LA12_0 >= '\u00E5' && LA12_0 <= '\u00F5')
              || (LA12_0 >= '\u00F7' && LA12_0 <= '\u00FB')
              || (LA12_0 >= '\u00FD' && LA12_0 <= '\uFFFF'))) {
            s = 14;
          }

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_10 = input.LA(1);

          s = -1;
          if (((LA12_10 >= '\u0000' && LA12_10 <= '\uFFFF'))) {
            s = 26;
          } else s = 14;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class InternalTwoContextsTestLanguageLexer extends Lexer {
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__12 = 12;
  public static final int RULE_ID = 4;
  public static final int RULE_WS = 9;
  public static final int RULE_INT = 5;
  public static final int EOF = -1;
  public static final int RULE_STRING = 6;
  public static final int RULE_ANY_OTHER = 10;
  public static final int RULE_SL_COMMENT = 8;
  public static final int T__11 = 11;

  // delegates
  // delegators

  public InternalTwoContextsTestLanguageLexer() {
    ;
  }

  public InternalTwoContextsTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalTwoContextsTestLanguageLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:11:7: ( ';' )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:11:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:12:7: ( 'refersTo' )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:12:9: 'refersTo'
      {
        match("refersTo");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:327:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:327:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:327:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:327:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:327:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:329:10: ( ( '0' .. '9' )+ )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:329:12: ( '0' .. '9' )+
      {
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:329:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:329:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:66: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:331:137: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:333:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:333:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:333:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:333:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:41: ( '\\r' )? '\\n'
            {
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:335:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:337:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:337:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:337:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:339:16: ( . )
      // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:339:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:8: ( T__11 | T__12 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 9;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:22: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 4:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:30: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 5:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:39: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 6:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:51: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 7:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:67: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 8:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:83: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 9:
        // ../org.eclipse.xtext.ui.tests/src-gen/org/eclipse/xtext/ui/tests/editor/contentassist/ui/contentassist/antlr/internal/InternalTwoContextsTestLanguage.g:1:91: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\2\uffff\1\15\1\12\2\uffff\3\12\3\uffff\1\15\6\uffff\5\15\1\31\1" + "\uffff";
  static final String DFA12_eofS = "\32\uffff";
  static final String DFA12_minS =
      "\1\0\1\uffff\1\145\1\101\2\uffff\2\0\1\52\3\uffff\1\146\6\uffff"
          + "\1\145\1\162\1\163\1\124\1\157\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\uffff\1\145\1\172\2\uffff\2\uffff\1\57\3\uffff\1\146"
          + "\6\uffff\1\145\1\162\1\163\1\124\1\157\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\1\uffff\1\1\2\uffff\1\3\1\4\3\uffff\1\10\1\11\1\1\1\uffff\1\3\1"
          + "\4\1\5\1\6\1\7\1\10\6\uffff\1\2";
  static final String DFA12_specialS = "\1\0\5\uffff\1\2\1\1\22\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\12\2\11\2\12\1\11\22\12\1\11\1\12\1\6\4\12\1\7\7\12\1\10"
        + "\12\5\1\12\1\1\5\12\32\4\3\12\1\3\1\4\1\12\21\4\1\2\10\4\uff85"
        + "\12",
    "",
    "\1\14",
    "\32\15\4\uffff\1\15\1\uffff\32\15",
    "",
    "",
    "\0\17",
    "\0\17",
    "\1\20\4\uffff\1\21",
    "",
    "",
    "",
    "\1\23",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\24",
    "\1\25",
    "\1\26",
    "\1\27",
    "\1\30",
    "\12\15\7\uffff\32\15\4\uffff\1\15\1\uffff\32\15",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == ';')) {
            s = 1;
          } else if ((LA12_0 == 'r')) {
            s = 2;
          } else if ((LA12_0 == '^')) {
            s = 3;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'a' && LA12_0 <= 'q')
              || (LA12_0 >= 's' && LA12_0 <= 'z'))) {
            s = 4;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 5;
          } else if ((LA12_0 == '\"')) {
            s = 6;
          } else if ((LA12_0 == '\'')) {
            s = 7;
          } else if ((LA12_0 == '/')) {
            s = 8;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 9;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '.')
              || LA12_0 == ':'
              || (LA12_0 >= '<' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 10;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_7 = input.LA(1);

          s = -1;
          if (((LA12_7 >= '\u0000' && LA12_7 <= '\uFFFF'))) {
            s = 15;
          } else s = 10;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_6 = input.LA(1);

          s = -1;
          if (((LA12_6 >= '\u0000' && LA12_6 <= '\uFFFF'))) {
            s = 15;
          } else s = 10;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #24
0
@SuppressWarnings({"all", "warnings", "unchecked"})
public class eelLexer extends Lexer {
  public static final int EOF = -1;
  public static final int EXPONENT = 4;
  public static final int FLOAT = 5;
  public static final int HEX_DIGIT = 6;
  public static final int ID = 7;
  public static final int INT = 8;
  public static final int LEFTPAR = 9;
  public static final int QID = 10;
  public static final int RIGHTPAR = 11;
  public static final int STRING = 12;
  public static final int WS = 13;

  // delegates
  // delegators
  public Lexer[] getDelegates() {
    return new Lexer[] {};
  }

  public eelLexer() {}

  public eelLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public eelLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g";
  }

  // $ANTLR start "ID"
  public final void mID() throws RecognitionException {
    try {
      int _type = ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:25:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:25:7: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:25:32: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
        loop1:
        do {
          int alt1 = 2;
          int LA1_0 = input.LA(1);

          if (((LA1_0 >= '0' && LA1_0 <= '9')
              || (LA1_0 >= 'A' && LA1_0 <= 'Z')
              || LA1_0 == '_'
              || (LA1_0 >= 'a' && LA1_0 <= 'z'))) {
            alt1 = 1;
          }

          switch (alt1) {
            case 1:
              // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop1;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "ID"

  // $ANTLR start "QID"
  public final void mQID() throws RecognitionException {
    try {
      int _type = QID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:24:6: ( ID ( '.' ID )* )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:24:8: ID ( '.' ID )*
      {
        mID();

        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:24:10: ( '.' ID )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if ((LA2_0 == '.')) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:24:11: '.' ID
              {
                match('.');

                mID();
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "QID"

  // $ANTLR start "INT"
  public final void mINT() throws RecognitionException {
    try {
      int _type = INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:30:5: ( ( '0' .. '9' )+ )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:30:7: ( '0' .. '9' )+
      {
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:30:7: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "INT"

  // $ANTLR start "LEFTPAR"
  public final void mLEFTPAR() throws RecognitionException {
    try {
      int _type = LEFTPAR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:33:9: ( '(' )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:33:11: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "LEFTPAR"

  // $ANTLR start "RIGHTPAR"
  public final void mRIGHTPAR() throws RecognitionException {
    try {
      int _type = RIGHTPAR;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:36:9: ( ')' )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:36:11: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "RIGHTPAR"

  // $ANTLR start "FLOAT"
  public final void mFLOAT() throws RecognitionException {
    try {
      int _type = FLOAT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT )
      int alt10 = 3;
      alt10 = dfa10.predict(input);
      switch (alt10) {
        case 1:
          // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )?
          {
            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:9: ( '0' .. '9' )+
            int cnt4 = 0;
            loop4:
            do {
              int alt4 = 2;
              int LA4_0 = input.LA(1);

              if (((LA4_0 >= '0' && LA4_0 <= '9'))) {
                alt4 = 1;
              }

              switch (alt4) {
                case 1:
                  // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
                  {
                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                  break;

                default:
                  if (cnt4 >= 1) break loop4;
                  EarlyExitException eee = new EarlyExitException(4, input);
                  throw eee;
              }
              cnt4++;
            } while (true);

            match('.');

            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:25: ( '0' .. '9' )*
            loop5:
            do {
              int alt5 = 2;
              int LA5_0 = input.LA(1);

              if (((LA5_0 >= '0' && LA5_0 <= '9'))) {
                alt5 = 1;
              }

              switch (alt5) {
                case 1:
                  // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
                  {
                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                  break;

                default:
                  break loop5;
              }
            } while (true);

            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:37: ( EXPONENT )?
            int alt6 = 2;
            int LA6_0 = input.LA(1);

            if ((LA6_0 == 'E' || LA6_0 == 'e')) {
              alt6 = 1;
            }
            switch (alt6) {
              case 1:
                // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:40:37: EXPONENT
                {
                  mEXPONENT();
                }
                break;
            }
          }
          break;
        case 2:
          // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:41:9: '.' ( '0' .. '9' )+ ( EXPONENT )?
          {
            match('.');

            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:41:13: ( '0' .. '9' )+
            int cnt7 = 0;
            loop7:
            do {
              int alt7 = 2;
              int LA7_0 = input.LA(1);

              if (((LA7_0 >= '0' && LA7_0 <= '9'))) {
                alt7 = 1;
              }

              switch (alt7) {
                case 1:
                  // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
                  {
                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                  break;

                default:
                  if (cnt7 >= 1) break loop7;
                  EarlyExitException eee = new EarlyExitException(7, input);
                  throw eee;
              }
              cnt7++;
            } while (true);

            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:41:25: ( EXPONENT )?
            int alt8 = 2;
            int LA8_0 = input.LA(1);

            if ((LA8_0 == 'E' || LA8_0 == 'e')) {
              alt8 = 1;
            }
            switch (alt8) {
              case 1:
                // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:41:25: EXPONENT
                {
                  mEXPONENT();
                }
                break;
            }
          }
          break;
        case 3:
          // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:42:9: ( '0' .. '9' )+ EXPONENT
          {
            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:42:9: ( '0' .. '9' )+
            int cnt9 = 0;
            loop9:
            do {
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if (((LA9_0 >= '0' && LA9_0 <= '9'))) {
                alt9 = 1;
              }

              switch (alt9) {
                case 1:
                  // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
                  {
                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                  break;

                default:
                  if (cnt9 >= 1) break loop9;
                  EarlyExitException eee = new EarlyExitException(9, input);
                  throw eee;
              }
              cnt9++;
            } while (true);

            mEXPONENT();
          }
          break;
      }
      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "FLOAT"

  // $ANTLR start "STRING"
  public final void mSTRING() throws RecognitionException {
    try {
      int _type = STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:46:5: ( '\"' (~ ( '\"' ) )* '\"' )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:46:8: '\"' (~ ( '\"' ) )* '\"'
      {
        match('\"');

        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:46:12: (~ ( '\"' ) )*
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\u0000' && LA11_0 <= '!') || (LA11_0 >= '#' && LA11_0 <= '\uFFFF'))) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                    || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop11;
          }
        } while (true);

        match('\"');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "STRING"

  // $ANTLR start "EXPONENT"
  public final void mEXPONENT() throws RecognitionException {
    try {
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:52:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:52:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
      {
        if (input.LA(1) == 'E' || input.LA(1) == 'e') {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:52:22: ( '+' | '-' )?
        int alt12 = 2;
        int LA12_0 = input.LA(1);

        if ((LA12_0 == '+' || LA12_0 == '-')) {
          alt12 = 1;
        }
        switch (alt12) {
          case 1:
            // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
            {
              if (input.LA(1) == '+' || input.LA(1) == '-') {
                input.consume();
              } else {
                MismatchedSetException mse = new MismatchedSetException(null, input);
                recover(mse);
                throw mse;
              }
            }
            break;
        }

        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:52:33: ( '0' .. '9' )+
        int cnt13 = 0;
        loop13:
        do {
          int alt13 = 2;
          int LA13_0 = input.LA(1);

          if (((LA13_0 >= '0' && LA13_0 <= '9'))) {
            alt13 = 1;
          }

          switch (alt13) {
            case 1:
              // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt13 >= 1) break loop13;
              EarlyExitException eee = new EarlyExitException(13, input);
              throw eee;
          }
          cnt13++;
        } while (true);
      }

    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "EXPONENT"

  // $ANTLR start "HEX_DIGIT"
  public final void mHEX_DIGIT() throws RecognitionException {
    try {
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:55:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:
      {
        if ((input.LA(1) >= '0' && input.LA(1) <= '9')
            || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
            || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }
      }

    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "HEX_DIGIT"

  // $ANTLR start "WS"
  public final void mWS() throws RecognitionException {
    try {
      int _type = WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:56:5: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )
      // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:56:9: ( ' ' | '\\t' | '\\r' | '\\n' )
      {
        if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
            || input.LA(1) == '\r'
            || input.LA(1) == ' ') {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        _channel = HIDDEN;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "WS"

  public void mTokens() throws RecognitionException {
    // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:8: ( ID | QID | INT | LEFTPAR | RIGHTPAR | FLOAT | STRING | WS )
    int alt14 = 8;
    alt14 = dfa14.predict(input);
    switch (alt14) {
      case 1:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:10: ID
        {
          mID();
        }
        break;
      case 2:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:13: QID
        {
          mQID();
        }
        break;
      case 3:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:17: INT
        {
          mINT();
        }
        break;
      case 4:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:21: LEFTPAR
        {
          mLEFTPAR();
        }
        break;
      case 5:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:29: RIGHTPAR
        {
          mRIGHTPAR();
        }
        break;
      case 6:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:38: FLOAT
        {
          mFLOAT();
        }
        break;
      case 7:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:44: STRING
        {
          mSTRING();
        }
        break;
      case 8:
        // C:\\Users\\Administrator\\Documents\\NetBeansProjects\\EELLibrary\\src\\main\\antlr3\\com\\mycompany\\eellibrary\\parsers\\eel.g:1:51: WS
        {
          mWS();
        }
        break;
    }
  }

  protected DFA10 dfa10 = new DFA10(this);
  protected DFA14 dfa14 = new DFA14(this);
  static final String DFA10_eotS = "\5\uffff";
  static final String DFA10_eofS = "\5\uffff";
  static final String DFA10_minS = "\2\56\3\uffff";
  static final String DFA10_maxS = "\1\71\1\145\3\uffff";
  static final String DFA10_acceptS = "\2\uffff\1\2\1\1\1\3";
  static final String DFA10_specialS = "\5\uffff}>";
  static final String[] DFA10_transitionS = {
    "\1\2\1\uffff\12\1", "\1\3\1\uffff\12\1\13\uffff\1\4\37\uffff\1\4", "", "", ""
  };

  static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
  static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
  static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
  static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
  static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
  static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
  static final short[][] DFA10_transition;

  static {
    int numStates = DFA10_transitionS.length;
    DFA10_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
    }
  }

  class DFA10 extends DFA {

    public DFA10(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 10;
      this.eot = DFA10_eot;
      this.eof = DFA10_eof;
      this.min = DFA10_min;
      this.max = DFA10_max;
      this.accept = DFA10_accept;
      this.special = DFA10_special;
      this.transition = DFA10_transition;
    }

    public String getDescription() {
      return "39:1: FLOAT : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT );";
    }
  }

  static final String DFA14_eotS = "\1\uffff\1\11\1\13\5\uffff\1\11\3\uffff";
  static final String DFA14_eofS = "\14\uffff";
  static final String DFA14_minS = "\1\11\2\56\5\uffff\1\56\3\uffff";
  static final String DFA14_maxS = "\2\172\1\145\5\uffff\1\172\3\uffff";
  static final String DFA14_acceptS = "\3\uffff\1\4\1\5\1\6\1\7\1\10\1\uffff\1\1\1\2\1\3";
  static final String DFA14_specialS = "\14\uffff}>";
  static final String[] DFA14_transitionS = {
    "\2\7\2\uffff\1\7\22\uffff\1\7\1\uffff\1\6\5\uffff\1\3\1\4\4"
        + "\uffff\1\5\1\uffff\12\2\7\uffff\32\1\4\uffff\1\1\1\uffff\32"
        + "\1",
    "\1\12\1\uffff\12\10\7\uffff\32\10\4\uffff\1\10\1\uffff\32\10",
    "\1\5\1\uffff\12\2\13\uffff\1\5\37\uffff\1\5",
    "",
    "",
    "",
    "",
    "",
    "\1\12\1\uffff\12\10\7\uffff\32\10\4\uffff\1\10\1\uffff\32\10",
    "",
    "",
    ""
  };

  static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
  static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
  static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
  static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
  static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
  static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
  static final short[][] DFA14_transition;

  static {
    int numStates = DFA14_transitionS.length;
    DFA14_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
    }
  }

  class DFA14 extends DFA {

    public DFA14(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 14;
      this.eot = DFA14_eot;
      this.eof = DFA14_eof;
      this.min = DFA14_min;
      this.max = DFA14_max;
      this.accept = DFA14_accept;
      this.special = DFA14_special;
      this.transition = DFA14_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( ID | QID | INT | LEFTPAR | RIGHTPAR | FLOAT | STRING | WS );";
    }
  }
}
@SuppressWarnings("all")
public class InternalSimpleUnorderedGroupsTestLanguageLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__29 = 29;
  public static final int T__28 = 28;
  public static final int T__27 = 27;
  public static final int T__26 = 26;
  public static final int T__25 = 25;
  public static final int T__24 = 24;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 8;
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__19 = 19;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int T__32 = 32;
  public static final int RULE_STRING = 6;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;

  // delegates
  // delegators

  public InternalSimpleUnorderedGroupsTestLanguageLexer() {
    ;
  }

  public InternalSimpleUnorderedGroupsTestLanguageLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalSimpleUnorderedGroupsTestLanguageLexer(
      CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:11:7: ( '1' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:11:9: '1'
      {
        match('1');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:12:7: ( 'a' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:12:9: 'a'
      {
        match('a');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:13:7: ( 'b' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:13:9: 'b'
      {
        match('b');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:14:7: ( '2' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:14:9: '2'
      {
        match('2');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:15:7: ( 'c' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:15:9: 'c'
      {
        match('c');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:16:7: ( 'd' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:16:9: 'd'
      {
        match('d');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:17:7: ( '3' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:17:9: '3'
      {
        match('3');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:18:7: ( '4' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:18:9: '4'
      {
        match('4');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:19:7: ( '5' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:19:9: '5'
      {
        match('5');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:20:7: ( '6' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:20:9: '6'
      {
        match('6');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:21:7: ( '7' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:21:9: '7'
      {
        match('7');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:22:7: ( '8' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:22:9: '8'
      {
        match('8');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:23:7: ( '9' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:23:9: '9'
      {
        match('9');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:24:7: ( '10' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:24:9: '10'
      {
        match("10");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:25:7: ( '11' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:25:9: '11'
      {
        match("11");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:26:7: ( '12' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:26:9: '12'
      {
        match("12");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:27:7: ( '13' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:27:9: '13'
      {
        match("13");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:28:7: ( '14' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:28:9: '14'
      {
        match("14");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:29:7: ( 'datatypes' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:29:9: 'datatypes'
      {
        match("datatypes");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:30:7: ( 'serialization' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:30:9: 'serialization'
      {
        match("serialization");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:31:7: ( 'bug302585' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:31:9: 'bug302585'
      {
        match("bug302585");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "T__32"
  public final void mT__32() throws RecognitionException {
    try {
      int _type = T__32;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:32:7: ( 'nested' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:32:9: 'nested'
      {
        match("nested");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__32"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3025:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3025:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3025:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3025:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3025:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3027:10: ( ( '0' .. '9' )+ )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3027:12: ( '0' .. '9' )+
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3027:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3027:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:21: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:28: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:54: '\\\\' .
                    {
                      match('\\');
                      matchAny();
                    }
                    break;
                  case 2:
                    // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3029:61: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3031:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3031:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3031:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3031:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:41: ( '\\r' )? '\\n'
            {
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3033:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3035:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3035:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3035:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3037:16: ( . )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:3037:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 29;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:76: T__22
        {
          mT__22();
        }
        break;
      case 13:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:82: T__23
        {
          mT__23();
        }
        break;
      case 14:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:88: T__24
        {
          mT__24();
        }
        break;
      case 15:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:94: T__25
        {
          mT__25();
        }
        break;
      case 16:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:100: T__26
        {
          mT__26();
        }
        break;
      case 17:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:106: T__27
        {
          mT__27();
        }
        break;
      case 18:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:112: T__28
        {
          mT__28();
        }
        break;
      case 19:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:118: T__29
        {
          mT__29();
        }
        break;
      case 20:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:124: T__30
        {
          mT__30();
        }
        break;
      case 21:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:130: T__31
        {
          mT__31();
        }
        break;
      case 22:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:136: T__32
        {
          mT__32();
        }
        break;
      case 23:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:142: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 24:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:150: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 25:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:159: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 26:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:171: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 27:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:187: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 28:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:203: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 29:
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parser/unorderedGroups/parser/antlr/internal/InternalSimpleUnorderedGroupsTestLanguage.g:1:211: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\1\35\1\37\1\42\1\43\1\44\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\2\40\1\27\2\uffff\3\27\2\uffff\1\64\1\65\1\66\1\67\1\70\4\uffff\1\40\3\uffff\1\40\10\uffff\2\40\11\uffff\17\40\1\114\3\40\1\uffff\3\40\1\123\1\124\1\40\2\uffff\3\40\1\131\1\uffff";
  static final String DFA12_eofS = "\132\uffff";
  static final String DFA12_minS =
      "\1\0\15\60\2\145\1\101\2\uffff\2\0\1\52\2\uffff\5\60\4\uffff\1\147\3\uffff\1\164\10\uffff\1\162\1\163\11\uffff\1\63\1\141\1\151\1\164\1\60\1\164\1\141\1\145\1\62\1\171\1\154\1\144\1\65\1\160\1\151\1\60\1\70\1\145\1\172\1\uffff\1\65\1\163\1\141\2\60\1\164\2\uffff\1\151\1\157\1\156\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\71\2\172\1\71\2\172\7\71\2\145\1\172\2\uffff\2\uffff\1\57\2\uffff\5\71\4\uffff\1\147\3\uffff\1\164\10\uffff\1\162\1\163\11\uffff\1\63\1\141\1\151\1\164\1\60\1\164\1\141\1\145\1\62\1\171\1\154\1\144\1\65\1\160\1\151\1\172\1\70\1\145\1\172\1\uffff\1\65\1\163\1\141\2\172\1\164\2\uffff\1\151\1\157\1\156\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\21\uffff\1\27\1\30\3\uffff\1\34\1\35\5\uffff\1\1\1\30\1\2\1\27\1\uffff\1\3\1\4\1\5\1\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\2\uffff\1\31\1\32\1\33\1\34\1\16\1\17\1\20\1\21\1\22\23\uffff\1\26\6\uffff\1\25\1\23\4\uffff\1\24";
  static final String DFA12_specialS = "\1\1\22\uffff\1\0\1\2\105\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\27\2\26\2\27\1\26\22\27\1\26\1\27\1\23\4\27\1\24\7\27\1\25\1\22\1\1\1\4\1\7\1\10\1\11\1\12\1\13\1\14\1\15\7\27\32\21\3\27\1\20\1\21\1\27\1\2\1\3\1\5\1\6\11\21\1\17\4\21\1\16\7\21\uff85\27",
    "\1\30\1\31\1\32\1\33\1\34\5\36",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\24\40\1\41\5\40",
    "\12\36",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\1\45\31\40",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "\1\56",
    "\1\57",
    "\32\40\4\uffff\1\40\1\uffff\32\40",
    "",
    "",
    "\0\60",
    "\0\60",
    "\1\61\4\uffff\1\62",
    "",
    "",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "\12\36",
    "",
    "",
    "",
    "",
    "\1\71",
    "",
    "",
    "",
    "\1\72",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\73",
    "\1\74",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\75",
    "\1\76",
    "\1\77",
    "\1\100",
    "\1\101",
    "\1\102",
    "\1\103",
    "\1\104",
    "\1\105",
    "\1\106",
    "\1\107",
    "\1\110",
    "\1\111",
    "\1\112",
    "\1\113",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    "\1\115",
    "\1\116",
    "\1\117",
    "",
    "\1\120",
    "\1\121",
    "\1\122",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    "\1\125",
    "",
    "",
    "\1\126",
    "\1\127",
    "\1\130",
    "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  static class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_19 = input.LA(1);

          s = -1;
          if (((LA12_19 >= '\u0000' && LA12_19 <= '\uFFFF'))) {
            s = 48;
          } else s = 23;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == '1')) {
            s = 1;
          } else if ((LA12_0 == 'a')) {
            s = 2;
          } else if ((LA12_0 == 'b')) {
            s = 3;
          } else if ((LA12_0 == '2')) {
            s = 4;
          } else if ((LA12_0 == 'c')) {
            s = 5;
          } else if ((LA12_0 == 'd')) {
            s = 6;
          } else if ((LA12_0 == '3')) {
            s = 7;
          } else if ((LA12_0 == '4')) {
            s = 8;
          } else if ((LA12_0 == '5')) {
            s = 9;
          } else if ((LA12_0 == '6')) {
            s = 10;
          } else if ((LA12_0 == '7')) {
            s = 11;
          } else if ((LA12_0 == '8')) {
            s = 12;
          } else if ((LA12_0 == '9')) {
            s = 13;
          } else if ((LA12_0 == 's')) {
            s = 14;
          } else if ((LA12_0 == 'n')) {
            s = 15;
          } else if ((LA12_0 == '^')) {
            s = 16;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || (LA12_0 >= 'e' && LA12_0 <= 'm')
              || (LA12_0 >= 'o' && LA12_0 <= 'r')
              || (LA12_0 >= 't' && LA12_0 <= 'z'))) {
            s = 17;
          } else if ((LA12_0 == '0')) {
            s = 18;
          } else if ((LA12_0 == '\"')) {
            s = 19;
          } else if ((LA12_0 == '\'')) {
            s = 20;
          } else if ((LA12_0 == '/')) {
            s = 21;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 22;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '(' && LA12_0 <= '.')
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 23;
          }

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_20 = input.LA(1);

          s = -1;
          if (((LA12_20 >= '\u0000' && LA12_20 <= '\uFFFF'))) {
            s = 48;
          } else s = 23;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #26
0
@SuppressWarnings({"all", "warnings", "unchecked"})
public class RobotLexer extends Lexer {
  public static final int EOF = -1;
  public static final int T__8 = 8;
  public static final int T__9 = 9;
  public static final int T__10 = 10;
  public static final int T__11 = 11;
  public static final int T__12 = 12;
  public static final int T__13 = 13;
  public static final int T__14 = 14;
  public static final int T__15 = 15;
  public static final int T__16 = 16;
  public static final int T__17 = 17;
  public static final int T__18 = 18;
  public static final int T__19 = 19;
  public static final int T__20 = 20;
  public static final int T__21 = 21;
  public static final int T__22 = 22;
  public static final int T__23 = 23;
  public static final int T__24 = 24;
  public static final int T__25 = 25;
  public static final int T__26 = 26;
  public static final int T__27 = 27;
  public static final int T__28 = 28;
  public static final int T__29 = 29;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int T__32 = 32;
  public static final int T__33 = 33;
  public static final int T__34 = 34;
  public static final int T__35 = 35;
  public static final int T__36 = 36;
  public static final int LINEBREAK = 4;
  public static final int STRING_LITERAL = 5;
  public static final int TEXT = 6;
  public static final int WHITESPACE = 7;

  public java.util.List<org.antlr.runtime3_4_0.RecognitionException> lexerExceptions =
      new java.util.ArrayList<org.antlr.runtime3_4_0.RecognitionException>();
  public java.util.List<Integer> lexerExceptionsPosition = new java.util.ArrayList<Integer>();

  public void reportError(org.antlr.runtime3_4_0.RecognitionException e) {
    lexerExceptions.add(e);
    lexerExceptionsPosition.add(((org.antlr.runtime3_4_0.ANTLRStringStream) input).index());
  }

  // delegates
  // delegators
  public Lexer[] getDelegates() {
    return new Lexer[] {};
  }

  public RobotLexer() {}

  public RobotLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public RobotLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "Robot.g";
  }

  // $ANTLR start "T__8"
  public final void mT__8() throws RecognitionException {
    try {
      int _type = T__8;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:15:6: ( '(' )
      // Robot.g:15:8: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__8"

  // $ANTLR start "T__9"
  public final void mT__9() throws RecognitionException {
    try {
      int _type = T__9;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:16:6: ( ')' )
      // Robot.g:16:8: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__9"

  // $ANTLR start "T__10"
  public final void mT__10() throws RecognitionException {
    try {
      int _type = T__10;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:17:7: ( ',' )
      // Robot.g:17:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__10"

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:18:7: ( '=' )
      // Robot.g:18:9: '='
      {
        match('=');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:19:7: ( 'and' )
      // Robot.g:19:9: 'and'
      {
        match("and");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:20:7: ( 'angle' )
      // Robot.g:20:9: 'angle'
      {
        match("angle");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:21:7: ( 'bip' )
      // Robot.g:21:9: 'bip'
      {
        match("bip");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:22:7: ( 'col' )
      // Robot.g:22:9: 'col'
      {
        match("col");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:23:7: ( 'display' )
      // Robot.g:23:9: 'display'
      {
        match("display");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:24:7: ( 'distance' )
      // Robot.g:24:9: 'distance'
      {
        match("distance");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:25:7: ( 'do' )
      // Robot.g:25:9: 'do'
      {
        match("do");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:26:7: ( 'duration' )
      // Robot.g:26:9: 'duration'
      {
        match("duration");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:27:7: ( 'end' )
      // Robot.g:27:9: 'end'
      {
        match("end");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:28:7: ( 'hasTurned' )
      // Robot.g:28:9: 'hasTurned'
      {
        match("hasTurned");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:29:7: ( 'if' )
      // Robot.g:29:9: 'if'
      {
        match("if");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:30:7: ( 'line' )
      // Robot.g:30:9: 'line'
      {
        match("line");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:31:7: ( 'move' )
      // Robot.g:31:9: 'move'
      {
        match("move");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:32:7: ( 'msg' )
      // Robot.g:32:9: 'msg'
      {
        match("msg");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:33:7: ( 'not' )
      // Robot.g:33:9: 'not'
      {
        match("not");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:34:7: ( 'obstacle' )
      // Robot.g:34:9: 'obstacle'
      {
        match("obstacle");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:35:7: ( 'or' )
      // Robot.g:35:9: 'or'
      {
        match("or");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:36:7: ( 'power' )
      // Robot.g:36:9: 'power'
      {
        match("power");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:37:7: ( 'repeat' )
      // Robot.g:37:9: 'repeat'
      {
        match("repeat");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:38:7: ( 'setTurnAngle' )
      // Robot.g:38:9: 'setTurnAngle'
      {
        match("setTurnAngle");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "T__32"
  public final void mT__32() throws RecognitionException {
    try {
      int _type = T__32;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:39:7: ( 'stopEngine' )
      // Robot.g:39:9: 'stopEngine'
      {
        match("stopEngine");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__32"

  // $ANTLR start "T__33"
  public final void mT__33() throws RecognitionException {
    try {
      int _type = T__33;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:40:7: ( 'stopProgram' )
      // Robot.g:40:9: 'stopProgram'
      {
        match("stopProgram");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__33"

  // $ANTLR start "T__34"
  public final void mT__34() throws RecognitionException {
    try {
      int _type = T__34;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:41:7: ( 'then' )
      // Robot.g:41:9: 'then'
      {
        match("then");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__34"

  // $ANTLR start "T__35"
  public final void mT__35() throws RecognitionException {
    try {
      int _type = T__35;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:42:7: ( 'turn' )
      // Robot.g:42:9: 'turn'
      {
        match("turn");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__35"

  // $ANTLR start "T__36"
  public final void mT__36() throws RecognitionException {
    try {
      int _type = T__36;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:43:7: ( 'while' )
      // Robot.g:43:9: 'while'
      {
        match("while");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__36"

  // $ANTLR start "STRING_LITERAL"
  public final void mSTRING_LITERAL() throws RecognitionException {
    try {
      int _type = STRING_LITERAL;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:2479:15: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\'
      // ) | ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A'
      // .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
      // ) | '\\\\' ( '0' .. '7' ) |~ ( '\\\\' | '\"' ) )* '\"' ) )
      // Robot.g:2480:2: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) |
      // ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' ..
      // 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) |
      // '\\\\' ( '0' .. '7' ) |~ ( '\\\\' | '\"' ) )* '\"' )
      {
        // Robot.g:2480:2: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
        // | ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A'
        // .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
        // ) ) | '\\\\' ( '0' .. '7' ) |~ ( '\\\\' | '\"' ) )* '\"' )
        // Robot.g:2480:2: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) |
        // ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' ..
        // 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
        // | '\\\\' ( '0' .. '7' ) |~ ( '\\\\' | '\"' ) )* '\"'
        {
          match('\"');

          // Robot.g:2480:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | (
          // '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' ..
          // 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
          // ) | '\\\\' ( '0' .. '7' ) |~ ( '\\\\' | '\"' ) )*
          loop1:
          do {
            int alt1 = 5;
            int LA1_0 = input.LA(1);

            if ((LA1_0 == '\\')) {
              switch (input.LA(2)) {
                case '\"':
                case '\'':
                case '\\':
                case 'b':
                case 'f':
                case 'n':
                case 'r':
                case 't':
                  {
                    alt1 = 1;
                  }
                  break;
                case 'u':
                  {
                    alt1 = 2;
                  }
                  break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                  {
                    alt1 = 3;
                  }
                  break;
              }

            } else if (((LA1_0 >= '\u0000' && LA1_0 <= '!')
                || (LA1_0 >= '#' && LA1_0 <= '[')
                || (LA1_0 >= ']' && LA1_0 <= '\uFFFF'))) {
              alt1 = 4;
            }

            switch (alt1) {
              case 1:
                // Robot.g:2480:6: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
                {
                  match('\\');

                  if (input.LA(1) == '\"'
                      || input.LA(1) == '\''
                      || input.LA(1) == '\\'
                      || input.LA(1) == 'b'
                      || input.LA(1) == 'f'
                      || input.LA(1) == 'n'
                      || input.LA(1) == 'r'
                      || input.LA(1) == 't') {
                    input.consume();
                  } else {
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    recover(mse);
                    throw mse;
                  }
                }
                break;
              case 2:
                // Robot.g:2480:47: ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' ..
                // '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' ..
                // '9' | 'a' .. 'f' | 'A' .. 'F' ) )
                {
                  // Robot.g:2480:47: ( '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' ..
                  // '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0'
                  // .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
                  // Robot.g:2480:48: '\\\\' 'u' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' ..
                  // '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '0'
                  // .. '9' | 'a' .. 'f' | 'A' .. 'F' )
                  {
                    match('\\');

                    match('u');

                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                        || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
                        || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }

                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                        || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
                        || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }

                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                        || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
                        || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }

                    if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                        || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
                        || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
                      input.consume();
                    } else {
                      MismatchedSetException mse = new MismatchedSetException(null, input);
                      recover(mse);
                      throw mse;
                    }
                  }
                }
                break;
              case 3:
                // Robot.g:2480:169: '\\\\' ( '0' .. '7' )
                {
                  match('\\');

                  if ((input.LA(1) >= '0' && input.LA(1) <= '7')) {
                    input.consume();
                  } else {
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    recover(mse);
                    throw mse;
                  }
                }
                break;
              case 4:
                // Robot.g:2480:184: ~ ( '\\\\' | '\"' )
                {
                  if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                      || (input.LA(1) >= '#' && input.LA(1) <= '[')
                      || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                    input.consume();
                  } else {
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    recover(mse);
                    throw mse;
                  }
                }
                break;

              default:
                break loop1;
            }
          } while (true);

          match('\"');
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "STRING_LITERAL"

  // $ANTLR start "TEXT"
  public final void mTEXT() throws RecognitionException {
    try {
      int _type = TEXT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:2482:5: ( ( ( 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '-' )+ ) )
      // Robot.g:2483:2: ( ( 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '-' )+ )
      {
        // Robot.g:2483:2: ( ( 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '-' )+ )
        // Robot.g:2483:2: ( 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '-' )+
        {
          // Robot.g:2483:2: ( 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '_' | '-' )+
          int cnt2 = 0;
          loop2:
          do {
            int alt2 = 2;
            int LA2_0 = input.LA(1);

            if ((LA2_0 == '-'
                || (LA2_0 >= '0' && LA2_0 <= '9')
                || (LA2_0 >= 'A' && LA2_0 <= 'Z')
                || LA2_0 == '_'
                || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
              alt2 = 1;
            }

            switch (alt2) {
              case 1:
                // Robot.g:
                {
                  if (input.LA(1) == '-'
                      || (input.LA(1) >= '0' && input.LA(1) <= '9')
                      || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                      || input.LA(1) == '_'
                      || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                    input.consume();
                  } else {
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    recover(mse);
                    throw mse;
                  }
                }
                break;

              default:
                if (cnt2 >= 1) break loop2;
                EarlyExitException eee = new EarlyExitException(2, input);
                throw eee;
            }
            cnt2++;
          } while (true);
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "TEXT"

  // $ANTLR start "WHITESPACE"
  public final void mWHITESPACE() throws RecognitionException {
    try {
      int _type = WHITESPACE;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:2485:11: ( ( ( ' ' | '\\t' | '\\f' ) ) )
      // Robot.g:2486:2: ( ( ' ' | '\\t' | '\\f' ) )
      {
        if (input.LA(1) == '\t' || input.LA(1) == '\f' || input.LA(1) == ' ') {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        _channel = 99;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "WHITESPACE"

  // $ANTLR start "LINEBREAK"
  public final void mLINEBREAK() throws RecognitionException {
    try {
      int _type = LINEBREAK;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // Robot.g:2489:10: ( ( ( '\\r\\n' | '\\r' | '\\n' ) ) )
      // Robot.g:2490:2: ( ( '\\r\\n' | '\\r' | '\\n' ) )
      {
        // Robot.g:2490:2: ( ( '\\r\\n' | '\\r' | '\\n' ) )
        // Robot.g:2490:2: ( '\\r\\n' | '\\r' | '\\n' )
        {
          // Robot.g:2490:2: ( '\\r\\n' | '\\r' | '\\n' )
          int alt3 = 3;
          int LA3_0 = input.LA(1);

          if ((LA3_0 == '\r')) {
            int LA3_1 = input.LA(2);

            if ((LA3_1 == '\n')) {
              alt3 = 1;
            } else {
              alt3 = 2;
            }
          } else if ((LA3_0 == '\n')) {
            alt3 = 3;
          } else {
            NoViableAltException nvae = new NoViableAltException("", 3, 0, input);

            throw nvae;
          }
          switch (alt3) {
            case 1:
              // Robot.g:2490:3: '\\r\\n'
              {
                match("\r\n");
              }
              break;
            case 2:
              // Robot.g:2490:12: '\\r'
              {
                match('\r');
              }
              break;
            case 3:
              // Robot.g:2490:19: '\\n'
              {
                match('\n');
              }
              break;
          }
        }

        _channel = 99;
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "LINEBREAK"

  public void mTokens() throws RecognitionException {
    // Robot.g:1:8: ( T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 |
    // T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29
    // | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | STRING_LITERAL | TEXT | WHITESPACE
    // | LINEBREAK )
    int alt4 = 33;
    alt4 = dfa4.predict(input);
    switch (alt4) {
      case 1:
        // Robot.g:1:10: T__8
        {
          mT__8();
        }
        break;
      case 2:
        // Robot.g:1:15: T__9
        {
          mT__9();
        }
        break;
      case 3:
        // Robot.g:1:20: T__10
        {
          mT__10();
        }
        break;
      case 4:
        // Robot.g:1:26: T__11
        {
          mT__11();
        }
        break;
      case 5:
        // Robot.g:1:32: T__12
        {
          mT__12();
        }
        break;
      case 6:
        // Robot.g:1:38: T__13
        {
          mT__13();
        }
        break;
      case 7:
        // Robot.g:1:44: T__14
        {
          mT__14();
        }
        break;
      case 8:
        // Robot.g:1:50: T__15
        {
          mT__15();
        }
        break;
      case 9:
        // Robot.g:1:56: T__16
        {
          mT__16();
        }
        break;
      case 10:
        // Robot.g:1:62: T__17
        {
          mT__17();
        }
        break;
      case 11:
        // Robot.g:1:68: T__18
        {
          mT__18();
        }
        break;
      case 12:
        // Robot.g:1:74: T__19
        {
          mT__19();
        }
        break;
      case 13:
        // Robot.g:1:80: T__20
        {
          mT__20();
        }
        break;
      case 14:
        // Robot.g:1:86: T__21
        {
          mT__21();
        }
        break;
      case 15:
        // Robot.g:1:92: T__22
        {
          mT__22();
        }
        break;
      case 16:
        // Robot.g:1:98: T__23
        {
          mT__23();
        }
        break;
      case 17:
        // Robot.g:1:104: T__24
        {
          mT__24();
        }
        break;
      case 18:
        // Robot.g:1:110: T__25
        {
          mT__25();
        }
        break;
      case 19:
        // Robot.g:1:116: T__26
        {
          mT__26();
        }
        break;
      case 20:
        // Robot.g:1:122: T__27
        {
          mT__27();
        }
        break;
      case 21:
        // Robot.g:1:128: T__28
        {
          mT__28();
        }
        break;
      case 22:
        // Robot.g:1:134: T__29
        {
          mT__29();
        }
        break;
      case 23:
        // Robot.g:1:140: T__30
        {
          mT__30();
        }
        break;
      case 24:
        // Robot.g:1:146: T__31
        {
          mT__31();
        }
        break;
      case 25:
        // Robot.g:1:152: T__32
        {
          mT__32();
        }
        break;
      case 26:
        // Robot.g:1:158: T__33
        {
          mT__33();
        }
        break;
      case 27:
        // Robot.g:1:164: T__34
        {
          mT__34();
        }
        break;
      case 28:
        // Robot.g:1:170: T__35
        {
          mT__35();
        }
        break;
      case 29:
        // Robot.g:1:176: T__36
        {
          mT__36();
        }
        break;
      case 30:
        // Robot.g:1:182: STRING_LITERAL
        {
          mSTRING_LITERAL();
        }
        break;
      case 31:
        // Robot.g:1:197: TEXT
        {
          mTEXT();
        }
        break;
      case 32:
        // Robot.g:1:202: WHITESPACE
        {
          mWHITESPACE();
        }
        break;
      case 33:
        // Robot.g:1:213: LINEBREAK
        {
          mLINEBREAK();
        }
        break;
    }
  }

  protected DFA4 dfa4 = new DFA4(this);
  static final String DFA4_eotS =
      "\5\uffff\20\26\4\uffff\4\26\1\64\3\26\1\70\5\26\1\76\7\26\1\106"
          + "\1\26\1\110\1\111\1\26\1\uffff\1\26\1\115\1\26\1\uffff\2\26\1\121"
          + "\1\122\1\26\1\uffff\7\26\1\uffff\1\26\2\uffff\3\26\1\uffff\1\26"
          + "\1\140\1\141\2\uffff\5\26\1\150\1\151\1\26\1\153\4\26\2\uffff\1"
          + "\26\1\161\4\26\2\uffff\1\166\1\uffff\5\26\1\uffff\1\174\3\26\1\uffff"
          + "\1\u0080\4\26\1\uffff\3\26\1\uffff\1\u0088\1\u0089\1\26\1\u008b"
          + "\3\26\2\uffff\1\u008f\1\uffff\3\26\1\uffff\1\26\1\u0094\2\26\1\uffff"
          + "\1\u0097\1\u0098\2\uffff";
  static final String DFA4_eofS = "\u0099\uffff";
  static final String DFA4_minS =
      "\1\11\4\uffff\1\156\1\151\1\157\1\151\1\156\1\141\1\146\1\151\2"
          + "\157\1\142\1\157\2\145\2\150\4\uffff\1\144\1\160\1\154\1\163\1\55"
          + "\1\162\1\144\1\163\1\55\1\156\1\166\1\147\1\164\1\163\1\55\1\167"
          + "\1\160\1\164\1\157\1\145\1\162\1\151\1\55\1\154\2\55\1\160\1\uffff"
          + "\1\141\1\55\1\124\1\uffff\2\145\2\55\1\164\1\uffff\2\145\1\124\1"
          + "\160\2\156\1\154\1\uffff\1\145\2\uffff\1\154\1\141\1\164\1\uffff"
          + "\1\165\2\55\2\uffff\1\141\1\162\1\141\1\165\1\105\2\55\1\145\1\55"
          + "\1\141\1\156\1\151\1\162\2\uffff\1\143\1\55\1\164\1\162\1\156\1"
          + "\162\2\uffff\1\55\1\uffff\1\171\1\143\1\157\1\156\1\154\1\uffff"
          + "\1\55\1\156\1\147\1\157\1\uffff\1\55\1\145\1\156\2\145\1\uffff\1"
          + "\101\1\151\1\147\1\uffff\2\55\1\144\1\55\2\156\1\162\2\uffff\1\55"
          + "\1\uffff\1\147\1\145\1\141\1\uffff\1\154\1\55\1\155\1\145\1\uffff"
          + "\2\55\2\uffff";
  static final String DFA4_maxS =
      "\1\172\4\uffff\1\156\1\151\1\157\1\165\1\156\1\141\1\146\1\151\1"
          + "\163\1\157\1\162\1\157\1\145\1\164\1\165\1\150\4\uffff\1\147\1\160"
          + "\1\154\1\163\1\172\1\162\1\144\1\163\1\172\1\156\1\166\1\147\1\164"
          + "\1\163\1\172\1\167\1\160\1\164\1\157\1\145\1\162\1\151\1\172\1\154"
          + "\2\172\1\164\1\uffff\1\141\1\172\1\124\1\uffff\2\145\2\172\1\164"
          + "\1\uffff\2\145\1\124\1\160\2\156\1\154\1\uffff\1\145\2\uffff\1\154"
          + "\1\141\1\164\1\uffff\1\165\2\172\2\uffff\1\141\1\162\1\141\1\165"
          + "\1\120\2\172\1\145\1\172\1\141\1\156\1\151\1\162\2\uffff\1\143\1"
          + "\172\1\164\1\162\1\156\1\162\2\uffff\1\172\1\uffff\1\171\1\143\1"
          + "\157\1\156\1\154\1\uffff\1\172\1\156\1\147\1\157\1\uffff\1\172\1"
          + "\145\1\156\2\145\1\uffff\1\101\1\151\1\147\1\uffff\2\172\1\144\1"
          + "\172\2\156\1\162\2\uffff\1\172\1\uffff\1\147\1\145\1\141\1\uffff"
          + "\1\154\1\172\1\155\1\145\1\uffff\2\172\2\uffff";
  static final String DFA4_acceptS =
      "\1\uffff\1\1\1\2\1\3\1\4\20\uffff\1\36\1\37\1\40\1\41\33\uffff\1"
          + "\13\3\uffff\1\17\5\uffff\1\25\7\uffff\1\5\1\uffff\1\7\1\10\3\uffff"
          + "\1\15\3\uffff\1\22\1\23\15\uffff\1\20\1\21\6\uffff\1\33\1\34\1\uffff"
          + "\1\6\5\uffff\1\26\4\uffff\1\35\5\uffff\1\27\3\uffff\1\11\7\uffff"
          + "\1\12\1\14\1\uffff\1\24\3\uffff\1\16\4\uffff\1\31\2\uffff\1\32\1"
          + "\30";
  static final String DFA4_specialS = "\u0099\uffff}>";
  static final String[] DFA4_transitionS = {
    "\1\27\1\30\1\uffff\1\27\1\30\22\uffff\1\27\1\uffff\1\25\5\uffff"
        + "\1\1\1\2\2\uffff\1\3\1\26\2\uffff\12\26\3\uffff\1\4\3\uffff"
        + "\32\26\4\uffff\1\26\1\uffff\1\5\1\6\1\7\1\10\1\11\2\26\1\12"
        + "\1\13\2\26\1\14\1\15\1\16\1\17\1\20\1\26\1\21\1\22\1\23\2\26"
        + "\1\24\3\26",
    "",
    "",
    "",
    "",
    "\1\31",
    "\1\32",
    "\1\33",
    "\1\34\5\uffff\1\35\5\uffff\1\36",
    "\1\37",
    "\1\40",
    "\1\41",
    "\1\42",
    "\1\43\3\uffff\1\44",
    "\1\45",
    "\1\46\17\uffff\1\47",
    "\1\50",
    "\1\51",
    "\1\52\16\uffff\1\53",
    "\1\54\14\uffff\1\55",
    "\1\56",
    "",
    "",
    "",
    "",
    "\1\57\2\uffff\1\60",
    "\1\61",
    "\1\62",
    "\1\63",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\71",
    "\1\72",
    "\1\73",
    "\1\74",
    "\1\75",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\77",
    "\1\100",
    "\1\101",
    "\1\102",
    "\1\103",
    "\1\104",
    "\1\105",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\107",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\112\3\uffff\1\113",
    "",
    "\1\114",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\116",
    "",
    "\1\117",
    "\1\120",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\123",
    "",
    "\1\124",
    "\1\125",
    "\1\126",
    "\1\127",
    "\1\130",
    "\1\131",
    "\1\132",
    "",
    "\1\133",
    "",
    "",
    "\1\134",
    "\1\135",
    "\1\136",
    "",
    "\1\137",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "",
    "",
    "\1\142",
    "\1\143",
    "\1\144",
    "\1\145",
    "\1\146\12\uffff\1\147",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\152",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\154",
    "\1\155",
    "\1\156",
    "\1\157",
    "",
    "",
    "\1\160",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\162",
    "\1\163",
    "\1\164",
    "\1\165",
    "",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "",
    "\1\167",
    "\1\170",
    "\1\171",
    "\1\172",
    "\1\173",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\175",
    "\1\176",
    "\1\177",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\u0081",
    "\1\u0082",
    "\1\u0083",
    "\1\u0084",
    "",
    "\1\u0085",
    "\1\u0086",
    "\1\u0087",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\u008a",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\u008c",
    "\1\u008d",
    "\1\u008e",
    "",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "",
    "\1\u0090",
    "\1\u0091",
    "\1\u0092",
    "",
    "\1\u0093",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\u0095",
    "\1\u0096",
    "",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "\1\26\2\uffff\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
    "",
    ""
  };

  static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
  static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
  static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
  static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
  static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
  static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
  static final short[][] DFA4_transition;

  static {
    int numStates = DFA4_transitionS.length;
    DFA4_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]);
    }
  }

  class DFA4 extends DFA {

    public DFA4(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 4;
      this.eot = DFA4_eot;
      this.eof = DFA4_eof;
      this.min = DFA4_min;
      this.max = DFA4_max;
      this.accept = DFA4_accept;
      this.special = DFA4_special;
      this.transition = DFA4_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | STRING_LITERAL | TEXT | WHITESPACE | LINEBREAK );";
    }
  }
}
Пример #27
0
@SuppressWarnings("all")
public class InternalCpnDslLexer extends Lexer {
  public static final int T__19 = 19;
  public static final int RULE_ID = 6;
  public static final int RULE_STRING = 4;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;
  public static final int RULE_SL_COMMENT = 8;
  public static final int EOF = -1;
  public static final int RULE_ML_COMMENT = 7;

  // delegates
  // delegators

  public InternalCpnDslLexer() {
    ;
  }

  public InternalCpnDslLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalCpnDslLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:11:7: ( 'argumentmodel' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:11:9: 'argumentmodel'
      {
        match("argumentmodel");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:12:7: ( 'cost' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:12:9: 'cost'
      {
        match("cost");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:13:7: ( 'duration' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:13:9: 'duration'
      {
        match("duration");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:14:7: ( 'team' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:14:9: 'team'
      {
        match("team");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:15:7: ( 'facility' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:15:9: 'facility'
      {
        match("facility");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:16:7: ( 'plan' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:16:9: 'plan'
      {
        match("plan");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:17:7: ( 'element' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:17:9: 'element'
      {
        match("element");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:18:7: ( 'estimated' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:18:9: 'estimated'
      {
        match("estimated");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:19:7: ( '(' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:19:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:20:7: ( ')' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:20:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:21:7: ( 'actual' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:21:9: 'actual'
      {
        match("actual");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1324:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1324:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1324:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1324:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1324:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1326:10: ( ( '0' .. '9' )+ )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1326:12: ( '0' .. '9' )+
      {
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1326:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1326:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:66: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1328:137: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1330:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1330:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1330:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1330:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:41: ( '\\r' )? '\\n'
            {
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1332:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1334:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1334:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1334:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1336:16: ( . )
      // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1336:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 18;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:76: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 13:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:84: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 14:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:93: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 15:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:105: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 16:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:121: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 17:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:137: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 18:
        // ../net.certware.planning.cpn.ui/src-gen/net/certware/planning/cpn/ui/contentassist/antlr/internal/InternalCpnDsl.g:1:145: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\7\24\2\uffff\1\21\2\uffff\3\21\2\uffff\2\24\1\uffff\7\24"
          + "\7\uffff\13\24\1\67\1\24\1\71\1\24\1\73\4\24\1\uffff\1\24\1\uffff"
          + "\1\24\1\uffff\3\24\1\105\5\24\1\uffff\2\24\1\115\2\24\1\120\1\121"
          + "\1\uffff\2\24\2\uffff\1\124\1\24\1\uffff\2\24\1\130\1\uffff";
  static final String DFA12_eofS = "\131\uffff";
  static final String DFA12_minS =
      "\1\0\1\143\1\157\1\165\1\145\1\141\2\154\2\uffff\1\101\2\uffff\2"
          + "\0\1\52\2\uffff\1\147\1\164\1\uffff\1\163\1\162\1\141\1\143\1\141"
          + "\1\145\1\164\7\uffff\2\165\1\164\1\141\1\155\1\151\1\156\1\155\1"
          + "\151\1\155\1\141\1\60\1\164\1\60\1\154\1\60\1\145\1\155\1\145\1"
          + "\154\1\uffff\1\151\1\uffff\1\151\1\uffff\1\156\1\141\1\156\1\60"
          + "\1\157\4\164\1\uffff\1\156\1\171\1\60\1\145\1\155\2\60\1\uffff\1"
          + "\144\1\157\2\uffff\1\60\1\144\1\uffff\1\145\1\154\1\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\162\1\157\1\165\1\145\1\141\1\154\1\163\2\uffff\1\172"
          + "\2\uffff\2\uffff\1\57\2\uffff\1\147\1\164\1\uffff\1\163\1\162\1"
          + "\141\1\143\1\141\1\145\1\164\7\uffff\2\165\1\164\1\141\1\155\1\151"
          + "\1\156\1\155\1\151\1\155\1\141\1\172\1\164\1\172\1\154\1\172\1\145"
          + "\1\155\1\145\1\154\1\uffff\1\151\1\uffff\1\151\1\uffff\1\156\1\141"
          + "\1\156\1\172\1\157\4\164\1\uffff\1\156\1\171\1\172\1\145\1\155\2"
          + "\172\1\uffff\1\144\1\157\2\uffff\1\172\1\144\1\uffff\1\145\1\154"
          + "\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\10\uffff\1\11\1\12\1\uffff\1\14\1\15\3\uffff\1\21\1\22\2\uffff"
          + "\1\14\7\uffff\1\11\1\12\1\15\1\16\1\17\1\20\1\21\24\uffff\1\2\1"
          + "\uffff\1\4\1\uffff\1\6\11\uffff\1\13\7\uffff\1\7\2\uffff\1\3\1\5"
          + "\2\uffff\1\10\3\uffff\1\1";
  static final String DFA12_specialS = "\1\2\14\uffff\1\1\1\0\112\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\21\2\20\2\21\1\20\22\21\1\20\1\21\1\15\4\21\1\16\1\10\1"
        + "\11\5\21\1\17\12\14\7\21\32\13\3\21\1\12\1\13\1\21\1\1\1\13"
        + "\1\2\1\3\1\7\1\5\11\13\1\6\3\13\1\4\6\13\uff85\21",
    "\1\23\16\uffff\1\22",
    "\1\25",
    "\1\26",
    "\1\27",
    "\1\30",
    "\1\31",
    "\1\32\6\uffff\1\33",
    "",
    "",
    "\32\24\4\uffff\1\24\1\uffff\32\24",
    "",
    "",
    "\0\37",
    "\0\37",
    "\1\40\4\uffff\1\41",
    "",
    "",
    "\1\43",
    "\1\44",
    "",
    "\1\45",
    "\1\46",
    "\1\47",
    "\1\50",
    "\1\51",
    "\1\52",
    "\1\53",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\54",
    "\1\55",
    "\1\56",
    "\1\57",
    "\1\60",
    "\1\61",
    "\1\62",
    "\1\63",
    "\1\64",
    "\1\65",
    "\1\66",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\70",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\72",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\74",
    "\1\75",
    "\1\76",
    "\1\77",
    "",
    "\1\100",
    "",
    "\1\101",
    "",
    "\1\102",
    "\1\103",
    "\1\104",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\106",
    "\1\107",
    "\1\110",
    "\1\111",
    "\1\112",
    "",
    "\1\113",
    "\1\114",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\116",
    "\1\117",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "",
    "\1\122",
    "\1\123",
    "",
    "",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    "\1\125",
    "",
    "\1\126",
    "\1\127",
    "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_14 = input.LA(1);

          s = -1;
          if (((LA12_14 >= '\u0000' && LA12_14 <= '\uFFFF'))) {
            s = 31;
          } else s = 17;

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_13 = input.LA(1);

          s = -1;
          if (((LA12_13 >= '\u0000' && LA12_13 <= '\uFFFF'))) {
            s = 31;
          } else s = 17;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'a')) {
            s = 1;
          } else if ((LA12_0 == 'c')) {
            s = 2;
          } else if ((LA12_0 == 'd')) {
            s = 3;
          } else if ((LA12_0 == 't')) {
            s = 4;
          } else if ((LA12_0 == 'f')) {
            s = 5;
          } else if ((LA12_0 == 'p')) {
            s = 6;
          } else if ((LA12_0 == 'e')) {
            s = 7;
          } else if ((LA12_0 == '(')) {
            s = 8;
          } else if ((LA12_0 == ')')) {
            s = 9;
          } else if ((LA12_0 == '^')) {
            s = 10;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || LA12_0 == 'b'
              || (LA12_0 >= 'g' && LA12_0 <= 'o')
              || (LA12_0 >= 'q' && LA12_0 <= 's')
              || (LA12_0 >= 'u' && LA12_0 <= 'z'))) {
            s = 11;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 12;
          } else if ((LA12_0 == '\"')) {
            s = 13;
          } else if ((LA12_0 == '\'')) {
            s = 14;
          } else if ((LA12_0 == '/')) {
            s = 15;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 16;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '*' && LA12_0 <= '.')
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || (LA12_0 >= '{' && LA12_0 <= '\uFFFF'))) {
            s = 17;
          }

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
@SuppressWarnings("all")
public class InternalOpServiceModelLexer extends Lexer {
  public static final int RULE_ID = 4;
  public static final int T__28 = 28;
  public static final int T__27 = 27;
  public static final int T__26 = 26;
  public static final int T__25 = 25;
  public static final int T__24 = 24;
  public static final int T__23 = 23;
  public static final int T__22 = 22;
  public static final int RULE_ANY_OTHER = 10;
  public static final int T__21 = 21;
  public static final int T__20 = 20;
  public static final int EOF = -1;
  public static final int RULE_SL_COMMENT = 8;
  public static final int RULE_ML_COMMENT = 7;
  public static final int T__19 = 19;
  public static final int RULE_STRING = 6;
  public static final int T__16 = 16;
  public static final int T__15 = 15;
  public static final int T__18 = 18;
  public static final int T__17 = 17;
  public static final int T__12 = 12;
  public static final int T__11 = 11;
  public static final int T__14 = 14;
  public static final int T__13 = 13;
  public static final int RULE_INT = 5;
  public static final int RULE_WS = 9;

  // delegates
  // delegators

  public InternalOpServiceModelLexer() {
    ;
  }

  public InternalOpServiceModelLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public InternalOpServiceModelLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g";
  }

  // $ANTLR start "T__11"
  public final void mT__11() throws RecognitionException {
    try {
      int _type = T__11;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:11:7: ( 'package' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:11:9: 'package'
      {
        match("package");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__11"

  // $ANTLR start "T__12"
  public final void mT__12() throws RecognitionException {
    try {
      int _type = T__12;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:12:7: ( 'service' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:12:9: 'service'
      {
        match("service");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__12"

  // $ANTLR start "T__13"
  public final void mT__13() throws RecognitionException {
    try {
      int _type = T__13;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:13:7: ( '{' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:13:9: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__13"

  // $ANTLR start "T__14"
  public final void mT__14() throws RecognitionException {
    try {
      int _type = T__14;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:14:7: ( '}' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:14:9: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__14"

  // $ANTLR start "T__15"
  public final void mT__15() throws RecognitionException {
    try {
      int _type = T__15;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:15:7: ( 'operation' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:15:9: 'operation'
      {
        match("operation");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__15"

  // $ANTLR start "T__16"
  public final void mT__16() throws RecognitionException {
    try {
      int _type = T__16;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:16:7: ( '(' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:16:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__16"

  // $ANTLR start "T__17"
  public final void mT__17() throws RecognitionException {
    try {
      int _type = T__17;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:17:7: ( ',' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:17:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__17"

  // $ANTLR start "T__18"
  public final void mT__18() throws RecognitionException {
    try {
      int _type = T__18;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:18:7: ( ')' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:18:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__18"

  // $ANTLR start "T__19"
  public final void mT__19() throws RecognitionException {
    try {
      int _type = T__19;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:19:7: ( 'not' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:19:9: 'not'
      {
        match("not");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__19"

  // $ANTLR start "T__20"
  public final void mT__20() throws RecognitionException {
    try {
      int _type = T__20;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:20:7: ( 'unique' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:20:9: 'unique'
      {
        match("unique");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__20"

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:21:7: ( '.' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:21:9: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:22:7: ( 'boolean' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:22:9: 'boolean'
      {
        match("boolean");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:23:7: ( 'String' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:23:9: 'String'
      {
        match("String");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:24:7: ( 'int' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:24:9: 'int'
      {
        match("int");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:25:7: ( 'float' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:25:9: 'float'
      {
        match("float");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:26:7: ( 'double' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:26:9: 'double'
      {
        match("double");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:27:7: ( 'long' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:27:9: 'long'
      {
        match("long");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:28:7: ( 'Parcelable' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:28:9: 'Parcelable'
      {
        match("Parcelable");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "RULE_ID"
  public final void mRULE_ID() throws RecognitionException {
    try {
      int _type = RULE_ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:537:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:537:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
      {
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:537:11: ( '^' )?
        int alt1 = 2;
        int LA1_0 = input.LA(1);

        if ((LA1_0 == '^')) {
          alt1 = 1;
        }
        switch (alt1) {
          case 1:
            // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:537:11: '^'
            {
              match('^');
            }
            break;
        }

        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();

        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:537:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ID"

  // $ANTLR start "RULE_INT"
  public final void mRULE_INT() throws RecognitionException {
    try {
      int _type = RULE_INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:539:10: ( ( '0' .. '9' )+ )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:539:12: ( '0' .. '9' )+
      {
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:539:12: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:539:13: '0' .. '9'
              {
                matchRange('0', '9');
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_INT"

  // $ANTLR start "RULE_STRING"
  public final void mRULE_STRING() throws RecognitionException {
    try {
      int _type = RULE_STRING;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
      {
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
        int alt6 = 2;
        int LA6_0 = input.LA(1);

        if ((LA6_0 == '\"')) {
          alt6 = 1;
        } else if ((LA6_0 == '\'')) {
          alt6 = 2;
        } else {
          NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

          throw nvae;
        }
        switch (alt6) {
          case 1:
            // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
            {
              match('\"');
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
              loop4:
              do {
                int alt4 = 3;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\\')) {
                  alt4 = 1;
                } else if (((LA4_0 >= '\u0000' && LA4_0 <= '!')
                    || (LA4_0 >= '#' && LA4_0 <= '[')
                    || (LA4_0 >= ']' && LA4_0 <= '\uFFFF'))) {
                  alt4 = 2;
                }

                switch (alt4) {
                  case 1:
                    // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:66: ~ ( ( '\\\\' | '\"' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!')
                          || (input.LA(1) >= '#' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop4;
                }
              } while (true);

              match('\"');
            }
            break;
          case 2:
            // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
            {
              match('\'');
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
              loop5:
              do {
                int alt5 = 3;
                int LA5_0 = input.LA(1);

                if ((LA5_0 == '\\')) {
                  alt5 = 1;
                } else if (((LA5_0 >= '\u0000' && LA5_0 <= '&')
                    || (LA5_0 >= '(' && LA5_0 <= '[')
                    || (LA5_0 >= ']' && LA5_0 <= '\uFFFF'))) {
                  alt5 = 2;
                }

                switch (alt5) {
                  case 1:
                    // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                    {
                      match('\\');
                      if (input.LA(1) == '\"'
                          || input.LA(1) == '\''
                          || input.LA(1) == '\\'
                          || input.LA(1) == 'b'
                          || input.LA(1) == 'f'
                          || input.LA(1) == 'n'
                          || input.LA(1) == 'r'
                          || (input.LA(1) >= 't' && input.LA(1) <= 'u')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;
                  case 2:
                    // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:541:137: ~ ( ( '\\\\' | '\\'' ) )
                    {
                      if ((input.LA(1) >= '\u0000' && input.LA(1) <= '&')
                          || (input.LA(1) >= '(' && input.LA(1) <= '[')
                          || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
                        input.consume();

                      } else {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        recover(mse);
                        throw mse;
                      }
                    }
                    break;

                  default:
                    break loop5;
                }
              } while (true);

              match('\'');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_STRING"

  // $ANTLR start "RULE_ML_COMMENT"
  public final void mRULE_ML_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_ML_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:543:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:543:19: '/*' ( options {greedy=false; } : . )* '*/'
      {
        match("/*");

        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:543:24: ( options {greedy=false; } : . )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == '*')) {
            int LA7_1 = input.LA(2);

            if ((LA7_1 == '/')) {
              alt7 = 2;
            } else if (((LA7_1 >= '\u0000' && LA7_1 <= '.')
                || (LA7_1 >= '0' && LA7_1 <= '\uFFFF'))) {
              alt7 = 1;
            }

          } else if (((LA7_0 >= '\u0000' && LA7_0 <= ')') || (LA7_0 >= '+' && LA7_0 <= '\uFFFF'))) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:543:52: .
              {
                matchAny();
              }
              break;

            default:
              break loop7;
          }
        } while (true);

        match("*/");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ML_COMMENT"

  // $ANTLR start "RULE_SL_COMMENT"
  public final void mRULE_SL_COMMENT() throws RecognitionException {
    try {
      int _type = RULE_SL_COMMENT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
      {
        match("//");

        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:24: (~ ( ( '\\n' | '\\r' ) ) )*
        loop8:
        do {
          int alt8 = 2;
          int LA8_0 = input.LA(1);

          if (((LA8_0 >= '\u0000' && LA8_0 <= '\t')
              || (LA8_0 >= '\u000B' && LA8_0 <= '\f')
              || (LA8_0 >= '\u000E' && LA8_0 <= '\uFFFF'))) {
            alt8 = 1;
          }

          switch (alt8) {
            case 1:
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:24: ~ ( ( '\\n' | '\\r' ) )
              {
                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t')
                    || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f')
                    || (input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF')) {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop8;
          }
        } while (true);

        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:40: ( ( '\\r' )? '\\n' )?
        int alt10 = 2;
        int LA10_0 = input.LA(1);

        if ((LA10_0 == '\n' || LA10_0 == '\r')) {
          alt10 = 1;
        }
        switch (alt10) {
          case 1:
            // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:41: ( '\\r' )? '\\n'
            {
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:41: ( '\\r' )?
              int alt9 = 2;
              int LA9_0 = input.LA(1);

              if ((LA9_0 == '\r')) {
                alt9 = 1;
              }
              switch (alt9) {
                case 1:
                  // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:545:41: '\\r'
                  {
                    match('\r');
                  }
                  break;
              }

              match('\n');
            }
            break;
        }
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_SL_COMMENT"

  // $ANTLR start "RULE_WS"
  public final void mRULE_WS() throws RecognitionException {
    try {
      int _type = RULE_WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:547:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:547:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
      {
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:547:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
        int cnt11 = 0;
        loop11:
        do {
          int alt11 = 2;
          int LA11_0 = input.LA(1);

          if (((LA11_0 >= '\t' && LA11_0 <= '\n') || LA11_0 == '\r' || LA11_0 == ' ')) {
            alt11 = 1;
          }

          switch (alt11) {
            case 1:
              // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:
              {
                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n')
                    || input.LA(1) == '\r'
                    || input.LA(1) == ' ') {
                  input.consume();

                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt11 >= 1) break loop11;
              EarlyExitException eee = new EarlyExitException(11, input);
              throw eee;
          }
          cnt11++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_WS"

  // $ANTLR start "RULE_ANY_OTHER"
  public final void mRULE_ANY_OTHER() throws RecognitionException {
    try {
      int _type = RULE_ANY_OTHER;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:549:16: ( . )
      // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:549:18: .
      {
        matchAny();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
    }
  }
  // $ANTLR end "RULE_ANY_OTHER"

  public void mTokens() throws RecognitionException {
    // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
    int alt12 = 25;
    alt12 = dfa12.predict(input);
    switch (alt12) {
      case 1:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:10: T__11
        {
          mT__11();
        }
        break;
      case 2:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:16: T__12
        {
          mT__12();
        }
        break;
      case 3:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:22: T__13
        {
          mT__13();
        }
        break;
      case 4:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:28: T__14
        {
          mT__14();
        }
        break;
      case 5:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:34: T__15
        {
          mT__15();
        }
        break;
      case 6:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:40: T__16
        {
          mT__16();
        }
        break;
      case 7:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:46: T__17
        {
          mT__17();
        }
        break;
      case 8:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:52: T__18
        {
          mT__18();
        }
        break;
      case 9:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:58: T__19
        {
          mT__19();
        }
        break;
      case 10:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:64: T__20
        {
          mT__20();
        }
        break;
      case 11:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:70: T__21
        {
          mT__21();
        }
        break;
      case 12:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:76: T__22
        {
          mT__22();
        }
        break;
      case 13:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:82: T__23
        {
          mT__23();
        }
        break;
      case 14:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:88: T__24
        {
          mT__24();
        }
        break;
      case 15:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:94: T__25
        {
          mT__25();
        }
        break;
      case 16:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:100: T__26
        {
          mT__26();
        }
        break;
      case 17:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:106: T__27
        {
          mT__27();
        }
        break;
      case 18:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:112: T__28
        {
          mT__28();
        }
        break;
      case 19:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:118: RULE_ID
        {
          mRULE_ID();
        }
        break;
      case 20:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:126: RULE_INT
        {
          mRULE_INT();
        }
        break;
      case 21:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:135: RULE_STRING
        {
          mRULE_STRING();
        }
        break;
      case 22:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:147: RULE_ML_COMMENT
        {
          mRULE_ML_COMMENT();
        }
        break;
      case 23:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:163: RULE_SL_COMMENT
        {
          mRULE_SL_COMMENT();
        }
        break;
      case 24:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:179: RULE_WS
        {
          mRULE_WS();
        }
        break;
      case 25:
        // ../com.robotoworks.mechanoid.ops/src-gen/com/robotoworks/mechanoid/ops/parser/antlr/internal/InternalOpServiceModel.g:1:187: RULE_ANY_OTHER
        {
          mRULE_ANY_OTHER();
        }
        break;
    }
  }

  protected DFA12 dfa12 = new DFA12(this);
  static final String DFA12_eotS =
      "\1\uffff\2\34\2\uffff\1\34\3\uffff\2\34\1\uffff\7\34\1\32\2\uffff"
          + "\3\32\2\uffff\1\34\1\uffff\1\34\2\uffff\1\34\3\uffff\2\34\1\uffff"
          + "\7\34\5\uffff\3\34\1\102\3\34\1\106\7\34\1\uffff\3\34\1\uffff\2"
          + "\34\1\123\7\34\1\133\1\34\1\uffff\4\34\1\141\1\34\1\143\1\uffff"
          + "\1\144\1\34\1\146\1\147\1\34\1\uffff\1\151\2\uffff\1\34\2\uffff"
          + "\1\34\1\uffff\1\34\1\155\1\34\1\uffff\1\157\1\uffff";
  static final String DFA12_eofS = "\160\uffff";
  static final String DFA12_minS =
      "\1\0\1\141\1\145\2\uffff\1\160\3\uffff\1\157\1\156\1\uffff\1\157"
          + "\1\164\1\156\1\154\2\157\1\141\1\101\2\uffff\2\0\1\52\2\uffff\1"
          + "\143\1\uffff\1\162\2\uffff\1\145\3\uffff\1\164\1\151\1\uffff\1\157"
          + "\1\162\1\164\1\157\1\165\1\156\1\162\5\uffff\1\153\1\166\1\162\1"
          + "\60\1\161\1\154\1\151\1\60\1\141\1\142\1\147\1\143\1\141\1\151\1"
          + "\141\1\uffff\1\165\1\145\1\156\1\uffff\1\164\1\154\1\60\1\145\1"
          + "\147\1\143\1\164\1\145\1\141\1\147\1\60\1\145\1\uffff\1\154\2\145"
          + "\1\151\1\60\1\156\1\60\1\uffff\1\60\1\141\2\60\1\157\1\uffff\1\60"
          + "\2\uffff\1\142\2\uffff\1\156\1\uffff\1\154\1\60\1\145\1\uffff\1"
          + "\60\1\uffff";
  static final String DFA12_maxS =
      "\1\uffff\1\141\1\145\2\uffff\1\160\3\uffff\1\157\1\156\1\uffff\1"
          + "\157\1\164\1\156\1\154\2\157\1\141\1\172\2\uffff\2\uffff\1\57\2"
          + "\uffff\1\143\1\uffff\1\162\2\uffff\1\145\3\uffff\1\164\1\151\1\uffff"
          + "\1\157\1\162\1\164\1\157\1\165\1\156\1\162\5\uffff\1\153\1\166\1"
          + "\162\1\172\1\161\1\154\1\151\1\172\1\141\1\142\1\147\1\143\1\141"
          + "\1\151\1\141\1\uffff\1\165\1\145\1\156\1\uffff\1\164\1\154\1\172"
          + "\1\145\1\147\1\143\1\164\1\145\1\141\1\147\1\172\1\145\1\uffff\1"
          + "\154\2\145\1\151\1\172\1\156\1\172\1\uffff\1\172\1\141\2\172\1\157"
          + "\1\uffff\1\172\2\uffff\1\142\2\uffff\1\156\1\uffff\1\154\1\172\1"
          + "\145\1\uffff\1\172\1\uffff";
  static final String DFA12_acceptS =
      "\3\uffff\1\3\1\4\1\uffff\1\6\1\7\1\10\2\uffff\1\13\10\uffff\1\23"
          + "\1\24\3\uffff\1\30\1\31\1\uffff\1\23\1\uffff\1\3\1\4\1\uffff\1\6"
          + "\1\7\1\10\2\uffff\1\13\7\uffff\1\24\1\25\1\26\1\27\1\30\17\uffff"
          + "\1\11\3\uffff\1\16\14\uffff\1\21\7\uffff\1\17\5\uffff\1\12\1\uffff"
          + "\1\15\1\20\1\uffff\1\1\1\2\1\uffff\1\14\3\uffff\1\5\1\uffff\1\22";
  static final String DFA12_specialS = "\1\0\25\uffff\1\2\1\1\130\uffff}>";
  static final String[] DFA12_transitionS = {
    "\11\32\2\31\2\32\1\31\22\32\1\31\1\32\1\26\4\32\1\27\1\6\1\10"
        + "\2\32\1\7\1\32\1\13\1\30\12\25\7\32\17\24\1\22\2\24\1\15\7\24"
        + "\3\32\1\23\1\24\1\32\1\24\1\14\1\24\1\20\1\24\1\17\2\24\1\16"
        + "\2\24\1\21\1\24\1\11\1\5\1\1\2\24\1\2\1\24\1\12\5\24\1\3\1\32"
        + "\1\4\uff82\32",
    "\1\33",
    "\1\35",
    "",
    "",
    "\1\40",
    "",
    "",
    "",
    "\1\44",
    "\1\45",
    "",
    "\1\47",
    "\1\50",
    "\1\51",
    "\1\52",
    "\1\53",
    "\1\54",
    "\1\55",
    "\32\34\4\uffff\1\34\1\uffff\32\34",
    "",
    "",
    "\0\57",
    "\0\57",
    "\1\60\4\uffff\1\61",
    "",
    "",
    "\1\63",
    "",
    "\1\64",
    "",
    "",
    "\1\65",
    "",
    "",
    "",
    "\1\66",
    "\1\67",
    "",
    "\1\70",
    "\1\71",
    "\1\72",
    "\1\73",
    "\1\74",
    "\1\75",
    "\1\76",
    "",
    "",
    "",
    "",
    "",
    "\1\77",
    "\1\100",
    "\1\101",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\103",
    "\1\104",
    "\1\105",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\107",
    "\1\110",
    "\1\111",
    "\1\112",
    "\1\113",
    "\1\114",
    "\1\115",
    "",
    "\1\116",
    "\1\117",
    "\1\120",
    "",
    "\1\121",
    "\1\122",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\124",
    "\1\125",
    "\1\126",
    "\1\127",
    "\1\130",
    "\1\131",
    "\1\132",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\134",
    "",
    "\1\135",
    "\1\136",
    "\1\137",
    "\1\140",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\142",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\145",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\150",
    "",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "",
    "",
    "\1\152",
    "",
    "",
    "\1\153",
    "",
    "\1\154",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    "\1\156",
    "",
    "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
    ""
  };

  static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
  static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
  static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
  static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
  static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
  static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
  static final short[][] DFA12_transition;

  static {
    int numStates = DFA12_transitionS.length;
    DFA12_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
    }
  }

  class DFA12 extends DFA {

    public DFA12(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 12;
      this.eot = DFA12_eot;
      this.eof = DFA12_eof;
      this.min = DFA12_min;
      this.max = DFA12_max;
      this.accept = DFA12_accept;
      this.special = DFA12_special;
      this.transition = DFA12_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
    }

    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      IntStream input = _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA12_0 = input.LA(1);

          s = -1;
          if ((LA12_0 == 'p')) {
            s = 1;
          } else if ((LA12_0 == 's')) {
            s = 2;
          } else if ((LA12_0 == '{')) {
            s = 3;
          } else if ((LA12_0 == '}')) {
            s = 4;
          } else if ((LA12_0 == 'o')) {
            s = 5;
          } else if ((LA12_0 == '(')) {
            s = 6;
          } else if ((LA12_0 == ',')) {
            s = 7;
          } else if ((LA12_0 == ')')) {
            s = 8;
          } else if ((LA12_0 == 'n')) {
            s = 9;
          } else if ((LA12_0 == 'u')) {
            s = 10;
          } else if ((LA12_0 == '.')) {
            s = 11;
          } else if ((LA12_0 == 'b')) {
            s = 12;
          } else if ((LA12_0 == 'S')) {
            s = 13;
          } else if ((LA12_0 == 'i')) {
            s = 14;
          } else if ((LA12_0 == 'f')) {
            s = 15;
          } else if ((LA12_0 == 'd')) {
            s = 16;
          } else if ((LA12_0 == 'l')) {
            s = 17;
          } else if ((LA12_0 == 'P')) {
            s = 18;
          } else if ((LA12_0 == '^')) {
            s = 19;
          } else if (((LA12_0 >= 'A' && LA12_0 <= 'O')
              || (LA12_0 >= 'Q' && LA12_0 <= 'R')
              || (LA12_0 >= 'T' && LA12_0 <= 'Z')
              || LA12_0 == '_'
              || LA12_0 == 'a'
              || LA12_0 == 'c'
              || LA12_0 == 'e'
              || (LA12_0 >= 'g' && LA12_0 <= 'h')
              || (LA12_0 >= 'j' && LA12_0 <= 'k')
              || LA12_0 == 'm'
              || (LA12_0 >= 'q' && LA12_0 <= 'r')
              || LA12_0 == 't'
              || (LA12_0 >= 'v' && LA12_0 <= 'z'))) {
            s = 20;
          } else if (((LA12_0 >= '0' && LA12_0 <= '9'))) {
            s = 21;
          } else if ((LA12_0 == '\"')) {
            s = 22;
          } else if ((LA12_0 == '\'')) {
            s = 23;
          } else if ((LA12_0 == '/')) {
            s = 24;
          } else if (((LA12_0 >= '\t' && LA12_0 <= '\n') || LA12_0 == '\r' || LA12_0 == ' ')) {
            s = 25;
          } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\b')
              || (LA12_0 >= '\u000B' && LA12_0 <= '\f')
              || (LA12_0 >= '\u000E' && LA12_0 <= '\u001F')
              || LA12_0 == '!'
              || (LA12_0 >= '#' && LA12_0 <= '&')
              || (LA12_0 >= '*' && LA12_0 <= '+')
              || LA12_0 == '-'
              || (LA12_0 >= ':' && LA12_0 <= '@')
              || (LA12_0 >= '[' && LA12_0 <= ']')
              || LA12_0 == '`'
              || LA12_0 == '|'
              || (LA12_0 >= '~' && LA12_0 <= '\uFFFF'))) {
            s = 26;
          }

          if (s >= 0) return s;
          break;
        case 1:
          int LA12_23 = input.LA(1);

          s = -1;
          if (((LA12_23 >= '\u0000' && LA12_23 <= '\uFFFF'))) {
            s = 47;
          } else s = 26;

          if (s >= 0) return s;
          break;
        case 2:
          int LA12_22 = input.LA(1);

          s = -1;
          if (((LA12_22 >= '\u0000' && LA12_22 <= '\uFFFF'))) {
            s = 47;
          } else s = 26;

          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 12, _s, input);
      error(nvae);
      throw nvae;
    }
  }
}
Пример #29
0
  /**
   * Generates a scanner for the specified input file.
   *
   * @param inputFile a file containing a lexical specification to generate a scanner for.
   */
  public static void generate(File inputFile) {

    Out.resetCounters();

    Timer totalTime = new Timer();
    Timer time = new Timer();

    LexScan scanner = null;
    LexParse parser = null;
    FileReader inputReader = null;

    totalTime.start();

    try {
      Out.println(ErrorMessages.READING, inputFile.toString());
      inputReader = new FileReader(inputFile);
      scanner = new LexScan(inputReader);
      scanner.setFile(inputFile);
      parser = new LexParse(scanner);
    } catch (FileNotFoundException e) {
      Out.error(ErrorMessages.CANNOT_OPEN, inputFile.toString());
      throw new GeneratorException();
    }

    try {
      NFA nfa = (NFA) parser.parse().value;

      Out.checkErrors();

      if (Options.dump) Out.dump(ErrorMessages.get(ErrorMessages.NFA_IS) + Out.NL + nfa + Out.NL);

      if (Options.dot) nfa.writeDot(Emitter.normalize("nfa.dot", null)); // $NON-NLS-1$

      Out.println(ErrorMessages.NFA_STATES, nfa.numStates);

      time.start();
      DFA dfa = nfa.getDFA();
      time.stop();
      Out.time(ErrorMessages.DFA_TOOK, time);

      dfa.checkActions(scanner, parser);

      nfa = null;

      if (Options.dump) Out.dump(ErrorMessages.get(ErrorMessages.DFA_IS) + Out.NL + dfa + Out.NL);

      if (Options.dot) dfa.writeDot(Emitter.normalize("dfa-big.dot", null)); // $NON-NLS-1$

      Out.checkErrors();

      time.start();
      dfa.minimize();
      time.stop();

      Out.time(ErrorMessages.MIN_TOOK, time);

      if (Options.dump) Out.dump(ErrorMessages.get(ErrorMessages.MIN_DFA_IS) + Out.NL + dfa);

      if (Options.dot) dfa.writeDot(Emitter.normalize("dfa-min.dot", null)); // $NON-NLS-1$

      time.start();

      Emitter e = new Emitter(inputFile, parser, dfa);
      e.emit();

      time.stop();

      Out.time(ErrorMessages.WRITE_TOOK, time);

      totalTime.stop();

      Out.time(ErrorMessages.TOTAL_TIME, totalTime);
    } catch (ScannerException e) {
      Out.error(e.file, e.message, e.line, e.column);
      throw new GeneratorException();
    } catch (MacroException e) {
      Out.error(e.getMessage());
      throw new GeneratorException();
    } catch (IOException e) {
      Out.error(ErrorMessages.IO_ERROR, e.toString());
      throw new GeneratorException();
    } catch (OutOfMemoryError e) {
      Out.error(ErrorMessages.OUT_OF_MEMORY);
      throw new GeneratorException();
    } catch (GeneratorException e) {
      throw new GeneratorException();
    } catch (Exception e) {
      e.printStackTrace();
      throw new GeneratorException();
    }
  }
Пример #30
0
@SuppressWarnings({"all", "warnings", "unchecked"})
public class JPoclASTLexer extends Lexer {
  public static final int EOF = -1;
  public static final int T__21 = 21;
  public static final int T__22 = 22;
  public static final int T__23 = 23;
  public static final int T__24 = 24;
  public static final int T__25 = 25;
  public static final int T__26 = 26;
  public static final int T__27 = 27;
  public static final int T__28 = 28;
  public static final int T__29 = 29;
  public static final int T__30 = 30;
  public static final int T__31 = 31;
  public static final int T__32 = 32;
  public static final int T__33 = 33;
  public static final int T__34 = 34;
  public static final int T__35 = 35;
  public static final int T__36 = 36;
  public static final int T__37 = 37;
  public static final int T__38 = 38;
  public static final int T__39 = 39;
  public static final int T__40 = 40;
  public static final int T__41 = 41;
  public static final int T__42 = 42;
  public static final int T__43 = 43;
  public static final int T__44 = 44;
  public static final int T__45 = 45;
  public static final int T__46 = 46;
  public static final int T__47 = 47;
  public static final int T__48 = 48;
  public static final int T__49 = 49;
  public static final int ASSIGN = 4;
  public static final int BLOCK = 5;
  public static final int BOOLEAN = 6;
  public static final int CALC = 7;
  public static final int DOT = 8;
  public static final int ECHO = 9;
  public static final int FUNCCALL = 10;
  public static final int FUNCDECL = 11;
  public static final int ID = 12;
  public static final int INT = 13;
  public static final int NL = 14;
  public static final int PDECS = 15;
  public static final int PLUS = 16;
  public static final int SIGN = 17;
  public static final int STRUCTEQUAL = 18;
  public static final int STRUCTVALUES = 19;
  public static final int WS = 20;

  // delegates
  // delegators
  public Lexer[] getDelegates() {
    return new Lexer[] {};
  }

  public JPoclASTLexer() {}

  public JPoclASTLexer(CharStream input) {
    this(input, new RecognizerSharedState());
  }

  public JPoclASTLexer(CharStream input, RecognizerSharedState state) {
    super(input, state);
  }

  public String getGrammarFileName() {
    return "C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g";
  }

  // $ANTLR start "T__21"
  public final void mT__21() throws RecognitionException {
    try {
      int _type = T__21;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:6:7: ( '!' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:6:9: '!'
      {
        match('!');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__21"

  // $ANTLR start "T__22"
  public final void mT__22() throws RecognitionException {
    try {
      int _type = T__22;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:7:7: ( '%' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:7:9: '%'
      {
        match('%');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__22"

  // $ANTLR start "T__23"
  public final void mT__23() throws RecognitionException {
    try {
      int _type = T__23;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:8:7: ( '&&' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:8:9: '&&'
      {
        match("&&");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__23"

  // $ANTLR start "T__24"
  public final void mT__24() throws RecognitionException {
    try {
      int _type = T__24;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:9:7: ( '(' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:9:9: '('
      {
        match('(');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__24"

  // $ANTLR start "T__25"
  public final void mT__25() throws RecognitionException {
    try {
      int _type = T__25;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:10:7: ( ')' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:10:9: ')'
      {
        match(')');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__25"

  // $ANTLR start "T__26"
  public final void mT__26() throws RecognitionException {
    try {
      int _type = T__26;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:11:7: ( '*' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:11:9: '*'
      {
        match('*');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__26"

  // $ANTLR start "T__27"
  public final void mT__27() throws RecognitionException {
    try {
      int _type = T__27;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:12:7: ( '+' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:12:9: '+'
      {
        match('+');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__27"

  // $ANTLR start "T__28"
  public final void mT__28() throws RecognitionException {
    try {
      int _type = T__28;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:13:7: ( ',' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:13:9: ','
      {
        match(',');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__28"

  // $ANTLR start "T__29"
  public final void mT__29() throws RecognitionException {
    try {
      int _type = T__29;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:14:7: ( '-' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:14:9: '-'
      {
        match('-');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__29"

  // $ANTLR start "T__30"
  public final void mT__30() throws RecognitionException {
    try {
      int _type = T__30;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:15:7: ( '/' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:15:9: '/'
      {
        match('/');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__30"

  // $ANTLR start "T__31"
  public final void mT__31() throws RecognitionException {
    try {
      int _type = T__31;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:16:7: ( ';' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:16:9: ';'
      {
        match(';');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__31"

  // $ANTLR start "T__32"
  public final void mT__32() throws RecognitionException {
    try {
      int _type = T__32;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:17:7: ( '<' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:17:9: '<'
      {
        match('<');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__32"

  // $ANTLR start "T__33"
  public final void mT__33() throws RecognitionException {
    try {
      int _type = T__33;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:18:7: ( '<=' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:18:9: '<='
      {
        match("<=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__33"

  // $ANTLR start "T__34"
  public final void mT__34() throws RecognitionException {
    try {
      int _type = T__34;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:19:7: ( '=' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:19:9: '='
      {
        match('=');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__34"

  // $ANTLR start "T__35"
  public final void mT__35() throws RecognitionException {
    try {
      int _type = T__35;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:20:7: ( '==' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:20:9: '=='
      {
        match("==");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__35"

  // $ANTLR start "T__36"
  public final void mT__36() throws RecognitionException {
    try {
      int _type = T__36;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:21:7: ( '>' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:21:9: '>'
      {
        match('>');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__36"

  // $ANTLR start "T__37"
  public final void mT__37() throws RecognitionException {
    try {
      int _type = T__37;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:22:7: ( '>=' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:22:9: '>='
      {
        match(">=");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__37"

  // $ANTLR start "T__38"
  public final void mT__38() throws RecognitionException {
    try {
      int _type = T__38;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:23:7: ( '^' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:23:9: '^'
      {
        match('^');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__38"

  // $ANTLR start "T__39"
  public final void mT__39() throws RecognitionException {
    try {
      int _type = T__39;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:24:7: ( 'bool' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:24:9: 'bool'
      {
        match("bool");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__39"

  // $ANTLR start "T__40"
  public final void mT__40() throws RecognitionException {
    try {
      int _type = T__40;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:25:7: ( 'if' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:25:9: 'if'
      {
        match("if");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__40"

  // $ANTLR start "T__41"
  public final void mT__41() throws RecognitionException {
    try {
      int _type = T__41;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:26:7: ( 'int' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:26:9: 'int'
      {
        match("int");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__41"

  // $ANTLR start "T__42"
  public final void mT__42() throws RecognitionException {
    try {
      int _type = T__42;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:27:7: ( 'return' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:27:9: 'return'
      {
        match("return");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__42"

  // $ANTLR start "T__43"
  public final void mT__43() throws RecognitionException {
    try {
      int _type = T__43;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:28:7: ( 'struct' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:28:9: 'struct'
      {
        match("struct");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__43"

  // $ANTLR start "T__44"
  public final void mT__44() throws RecognitionException {
    try {
      int _type = T__44;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:29:7: ( 'void' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:29:9: 'void'
      {
        match("void");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__44"

  // $ANTLR start "T__45"
  public final void mT__45() throws RecognitionException {
    try {
      int _type = T__45;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:30:7: ( 'while' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:30:9: 'while'
      {
        match("while");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__45"

  // $ANTLR start "T__46"
  public final void mT__46() throws RecognitionException {
    try {
      int _type = T__46;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:31:7: ( '{' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:31:9: '{'
      {
        match('{');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__46"

  // $ANTLR start "T__47"
  public final void mT__47() throws RecognitionException {
    try {
      int _type = T__47;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:32:7: ( '||' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:32:9: '||'
      {
        match("||");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__47"

  // $ANTLR start "T__48"
  public final void mT__48() throws RecognitionException {
    try {
      int _type = T__48;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:33:7: ( '}' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:33:9: '}'
      {
        match('}');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__48"

  // $ANTLR start "T__49"
  public final void mT__49() throws RecognitionException {
    try {
      int _type = T__49;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:34:7: ( '~' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:34:9: '~'
      {
        match('~');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "T__49"

  // $ANTLR start "BOOLEAN"
  public final void mBOOLEAN() throws RecognitionException {
    try {
      int _type = BOOLEAN;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:144:9: ( 'false' | 'true' )
      int alt1 = 2;
      int LA1_0 = input.LA(1);

      if ((LA1_0 == 'f')) {
        alt1 = 1;
      } else if ((LA1_0 == 't')) {
        alt1 = 2;
      } else {
        NoViableAltException nvae = new NoViableAltException("", 1, 0, input);

        throw nvae;
      }
      switch (alt1) {
        case 1:
          // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:144:11: 'false'
          {
            match("false");
          }
          break;
        case 2:
          // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:144:21: 'true'
          {
            match("true");
          }
          break;
      }
      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "BOOLEAN"

  // $ANTLR start "ECHO"
  public final void mECHO() throws RecognitionException {
    try {
      int _type = ECHO;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:146:6: ( 'echo' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:146:8: 'echo'
      {
        match("echo");
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "ECHO"

  // $ANTLR start "ID"
  public final void mID() throws RecognitionException {
    try {
      int _type = ID;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:148:3: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_'
      // ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:148:5: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
      // ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
      {
        if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z')
            || input.LA(1) == '_'
            || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:148:29: ( 'a' .. 'z' | 'A' .. 'Z' |
        // '0' .. '9' | '_' )*
        loop2:
        do {
          int alt2 = 2;
          int LA2_0 = input.LA(1);

          if (((LA2_0 >= '0' && LA2_0 <= '9')
              || (LA2_0 >= 'A' && LA2_0 <= 'Z')
              || LA2_0 == '_'
              || (LA2_0 >= 'a' && LA2_0 <= 'z'))) {
            alt2 = 1;
          }

          switch (alt2) {
            case 1:
              // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')
                    || (input.LA(1) >= 'A' && input.LA(1) <= 'Z')
                    || input.LA(1) == '_'
                    || (input.LA(1) >= 'a' && input.LA(1) <= 'z')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              break loop2;
          }
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "ID"

  // $ANTLR start "INT"
  public final void mINT() throws RecognitionException {
    try {
      int _type = INT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:150:5: ( ( '0' .. '9' )+ )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:150:7: ( '0' .. '9' )+
      {
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:150:7: ( '0' .. '9' )+
        int cnt3 = 0;
        loop3:
        do {
          int alt3 = 2;
          int LA3_0 = input.LA(1);

          if (((LA3_0 >= '0' && LA3_0 <= '9'))) {
            alt3 = 1;
          }

          switch (alt3) {
            case 1:
              // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:
              {
                if ((input.LA(1) >= '0' && input.LA(1) <= '9')) {
                  input.consume();
                } else {
                  MismatchedSetException mse = new MismatchedSetException(null, input);
                  recover(mse);
                  throw mse;
                }
              }
              break;

            default:
              if (cnt3 >= 1) break loop3;
              EarlyExitException eee = new EarlyExitException(3, input);
              throw eee;
          }
          cnt3++;
        } while (true);
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "INT"

  // $ANTLR start "WS"
  public final void mWS() throws RecognitionException {
    try {
      int _type = WS;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:153:5: ( ( ' ' | '\\t' ) )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:153:9: ( ' ' | '\\t' )
      {
        if (input.LA(1) == '\t' || input.LA(1) == ' ') {
          input.consume();
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          recover(mse);
          throw mse;
        }

        skip();
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "WS"

  // $ANTLR start "NL"
  public final void mNL() throws RecognitionException {
    try {
      int _type = NL;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:158:5: ( ( '\\r' )? '\\n' | '\\r' )
      int alt5 = 2;
      int LA5_0 = input.LA(1);

      if ((LA5_0 == '\r')) {
        int LA5_1 = input.LA(2);

        if ((LA5_1 == '\n')) {
          alt5 = 1;
        } else {
          alt5 = 2;
        }
      } else if ((LA5_0 == '\n')) {
        alt5 = 1;
      } else {
        NoViableAltException nvae = new NoViableAltException("", 5, 0, input);

        throw nvae;
      }
      switch (alt5) {
        case 1:
          // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:158:7: ( '\\r' )? '\\n'
          {
            // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:158:7: ( '\\r' )?
            int alt4 = 2;
            int LA4_0 = input.LA(1);

            if ((LA4_0 == '\r')) {
              alt4 = 1;
            }
            switch (alt4) {
              case 1:
                // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:158:7: '\\r'
                {
                  match('\r');
                }
                break;
            }

            match('\n');
          }
          break;
        case 2:
          // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:158:20: '\\r'
          {
            match('\r');
          }
          break;
      }
      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "NL"

  // $ANTLR start "DOT"
  public final void mDOT() throws RecognitionException {
    try {
      int _type = DOT;
      int _channel = DEFAULT_TOKEN_CHANNEL;
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:160:5: ( '.' )
      // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:160:7: '.'
      {
        match('.');
      }

      state.type = _type;
      state.channel = _channel;
    } finally {
      // do for sure before leaving
    }
  }
  // $ANTLR end "DOT"

  public void mTokens() throws RecognitionException {
    // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:8: ( T__21 | T__22 | T__23 | T__24 |
    // T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36
    // | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 |
    // T__48 | T__49 | BOOLEAN | ECHO | ID | INT | WS | NL | DOT )
    int alt6 = 36;
    alt6 = dfa6.predict(input);
    switch (alt6) {
      case 1:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:10: T__21
        {
          mT__21();
        }
        break;
      case 2:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:16: T__22
        {
          mT__22();
        }
        break;
      case 3:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:22: T__23
        {
          mT__23();
        }
        break;
      case 4:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:28: T__24
        {
          mT__24();
        }
        break;
      case 5:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:34: T__25
        {
          mT__25();
        }
        break;
      case 6:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:40: T__26
        {
          mT__26();
        }
        break;
      case 7:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:46: T__27
        {
          mT__27();
        }
        break;
      case 8:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:52: T__28
        {
          mT__28();
        }
        break;
      case 9:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:58: T__29
        {
          mT__29();
        }
        break;
      case 10:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:64: T__30
        {
          mT__30();
        }
        break;
      case 11:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:70: T__31
        {
          mT__31();
        }
        break;
      case 12:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:76: T__32
        {
          mT__32();
        }
        break;
      case 13:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:82: T__33
        {
          mT__33();
        }
        break;
      case 14:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:88: T__34
        {
          mT__34();
        }
        break;
      case 15:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:94: T__35
        {
          mT__35();
        }
        break;
      case 16:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:100: T__36
        {
          mT__36();
        }
        break;
      case 17:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:106: T__37
        {
          mT__37();
        }
        break;
      case 18:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:112: T__38
        {
          mT__38();
        }
        break;
      case 19:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:118: T__39
        {
          mT__39();
        }
        break;
      case 20:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:124: T__40
        {
          mT__40();
        }
        break;
      case 21:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:130: T__41
        {
          mT__41();
        }
        break;
      case 22:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:136: T__42
        {
          mT__42();
        }
        break;
      case 23:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:142: T__43
        {
          mT__43();
        }
        break;
      case 24:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:148: T__44
        {
          mT__44();
        }
        break;
      case 25:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:154: T__45
        {
          mT__45();
        }
        break;
      case 26:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:160: T__46
        {
          mT__46();
        }
        break;
      case 27:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:166: T__47
        {
          mT__47();
        }
        break;
      case 28:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:172: T__48
        {
          mT__48();
        }
        break;
      case 29:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:178: T__49
        {
          mT__49();
        }
        break;
      case 30:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:184: BOOLEAN
        {
          mBOOLEAN();
        }
        break;
      case 31:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:192: ECHO
        {
          mECHO();
        }
        break;
      case 32:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:197: ID
        {
          mID();
        }
        break;
      case 33:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:200: INT
        {
          mINT();
        }
        break;
      case 34:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:204: WS
        {
          mWS();
        }
        break;
      case 35:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:207: NL
        {
          mNL();
        }
        break;
      case 36:
        // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclAST.g:1:210: DOT
        {
          mDOT();
        }
        break;
    }
  }

  protected DFA6 dfa6 = new DFA6(this);
  static final String DFA6_eotS =
      "\14\uffff\1\43\1\45\1\47\1\uffff\6\35\4\uffff\3\35\13\uffff\1\35"
          + "\1\63\11\35\1\uffff\1\75\7\35\1\105\1\uffff\2\35\1\110\2\35\1\113"
          + "\1\114\1\uffff\2\35\1\uffff\1\117\1\113\2\uffff\1\120\1\121\3\uffff";
  static final String DFA6_eofS = "\122\uffff";
  static final String DFA6_minS =
      "\1\11\13\uffff\3\75\1\uffff\1\157\1\146\1\145\1\164\1\157\1\150"
          + "\4\uffff\1\141\1\162\1\143\13\uffff\1\157\1\60\2\164\1\162\2\151"
          + "\1\154\1\165\1\150\1\154\1\uffff\1\60\2\165\1\144\1\154\1\163\1"
          + "\145\1\157\1\60\1\uffff\1\162\1\143\1\60\2\145\2\60\1\uffff\1\156"
          + "\1\164\1\uffff\2\60\2\uffff\2\60\3\uffff";
  static final String DFA6_maxS =
      "\1\176\13\uffff\3\75\1\uffff\1\157\1\156\1\145\1\164\1\157\1\150"
          + "\4\uffff\1\141\1\162\1\143\13\uffff\1\157\1\172\2\164\1\162\2\151"
          + "\1\154\1\165\1\150\1\154\1\uffff\1\172\2\165\1\144\1\154\1\163\1"
          + "\145\1\157\1\172\1\uffff\1\162\1\143\1\172\2\145\2\172\1\uffff\1"
          + "\156\1\164\1\uffff\2\172\2\uffff\2\172\3\uffff";
  static final String DFA6_acceptS =
      "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\3\uffff"
          + "\1\22\6\uffff\1\32\1\33\1\34\1\35\3\uffff\1\40\1\41\1\42\1\43\1"
          + "\44\1\15\1\14\1\17\1\16\1\21\1\20\13\uffff\1\24\11\uffff\1\25\7"
          + "\uffff\1\23\2\uffff\1\30\2\uffff\1\36\1\37\2\uffff\1\31\1\26\1\27";
  static final String DFA6_specialS = "\122\uffff}>";
  static final String[] DFA6_transitionS = {
    "\1\37\1\40\2\uffff\1\40\22\uffff\1\37\1\1\3\uffff\1\2\1\3\1"
        + "\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\41\1\12\12\36\1\uffff\1\13"
        + "\1\14\1\15\1\16\2\uffff\32\35\3\uffff\1\17\1\35\1\uffff\1\35"
        + "\1\20\2\35\1\34\1\32\2\35\1\21\10\35\1\22\1\23\1\33\1\35\1\24"
        + "\1\25\3\35\1\26\1\27\1\30\1\31",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\42",
    "\1\44",
    "\1\46",
    "",
    "\1\50",
    "\1\51\7\uffff\1\52",
    "\1\53",
    "\1\54",
    "\1\55",
    "\1\56",
    "",
    "",
    "",
    "",
    "\1\57",
    "\1\60",
    "\1\61",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "\1\62",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\1\64",
    "\1\65",
    "\1\66",
    "\1\67",
    "\1\70",
    "\1\71",
    "\1\72",
    "\1\73",
    "\1\74",
    "",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\1\76",
    "\1\77",
    "\1\100",
    "\1\101",
    "\1\102",
    "\1\103",
    "\1\104",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "",
    "\1\106",
    "\1\107",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\1\111",
    "\1\112",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "",
    "\1\115",
    "\1\116",
    "",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "",
    "",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
    "",
    "",
    ""
  };

  static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS);
  static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS);
  static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS);
  static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS);
  static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS);
  static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS);
  static final short[][] DFA6_transition;

  static {
    int numStates = DFA6_transitionS.length;
    DFA6_transition = new short[numStates][];
    for (int i = 0; i < numStates; i++) {
      DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]);
    }
  }

  class DFA6 extends DFA {

    public DFA6(BaseRecognizer recognizer) {
      this.recognizer = recognizer;
      this.decisionNumber = 6;
      this.eot = DFA6_eot;
      this.eof = DFA6_eof;
      this.min = DFA6_min;
      this.max = DFA6_max;
      this.accept = DFA6_accept;
      this.special = DFA6_special;
      this.transition = DFA6_transition;
    }

    public String getDescription() {
      return "1:1: Tokens : ( T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | BOOLEAN | ECHO | ID | INT | WS | NL | DOT );";
    }
  }
}