Пример #1
0
 List<ANTLRMessage> checkLexerDFA(String gtext, String modeName, String expecting)
     throws Exception {
   ErrorQueue equeue = new ErrorQueue();
   LexerGrammar g = new LexerGrammar(gtext, equeue);
   g.atn = createATN(g);
   //		LexerATNToDFAConverter conv = new LexerATNToDFAConverter(g);
   //		DFA dfa = conv.createDFA(modeName);
   //		g.setLookaheadDFA(0, dfa); // only one decision to worry about
   //
   //		String result = null;
   //		if ( dfa!=null ) result = dfa.toString();
   //		assertEquals(expecting, result);
   //
   //		return equeue.all;
   return null;
 }
Пример #2
0
  public LexerInterpreter createLexerInterpreter(CharStream input) {
    if (this.isParser()) {
      throw new IllegalStateException(
          "A lexer interpreter can only be created for a lexer or combined grammar.");
    }

    if (this.isCombined()) {
      return implicitLexer.createLexerInterpreter(input);
    }

    char[] serializedAtn = ATNSerializer.getSerializedAsChars(atn);
    ATN deserialized = new ATNDeserializer().deserialize(serializedAtn);
    return new LexerInterpreter(
        fileName,
        Arrays.asList(getTokenDisplayNames()),
        Arrays.asList(getRuleNames()),
        ((LexerGrammar) this).modes.keySet(),
        deserialized,
        input);
  }
Пример #3
0
 static {
   lexerGrammar.add("\\(", TokenType.OPEN_PAREN);
   lexerGrammar.add("\\)", TokenType.CLOSE_PAREN);
   lexerGrammar.add("&&", TokenType.AND);
   lexerGrammar.add("\\|\\|", TokenType.OR);
   lexerGrammar.add("==", TokenType.EQUAL);
   lexerGrammar.add("!=", TokenType.NOT_EQUAL);
   lexerGrammar.add(">=", TokenType.GREATER_THAN_OR_EQUAL);
   lexerGrammar.add("<=", TokenType.LESS_THAN_OR_EQUAL);
   lexerGrammar.add(">", TokenType.GREATER_THAN);
   lexerGrammar.add("<", TokenType.LESS_THAN);
   lexerGrammar.add(
       "(\"[^\"\\\\\\r\\n]*(?:\\\\.[^\"\\\\\\r\\n]*)*\")|\\d+|true|false", TokenType.CONSTANT);
   lexerGrammar.add("[a-zA-Z][a-zA-Z0-9_]*", TokenType.FIELD_NAME);
 }