use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by antlr.
the class ParserATNSimulator method getTokenName.
public String getTokenName(int t) {
if (t == Token.EOF) {
return "EOF";
}
Vocabulary vocabulary = parser != null ? parser.getVocabulary() : VocabularyImpl.EMPTY_VOCABULARY;
String displayName = vocabulary.getDisplayName(t);
if (displayName.equals(Integer.toString(t))) {
return displayName;
}
return displayName + "<" + t + ">";
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by antlr.
the class LexerATNFactory method tokenRef.
@Override
public Handle tokenRef(TerminalAST node) {
// Ref to EOF in lexer yields char transition on -1
if (node.getText().equals("EOF")) {
ATNState left = newState(node);
ATNState right = newState(node);
left.addTransition(new AtomTransition(right, IntStream.EOF));
return new Handle(left, right);
}
return _ruleRef(node);
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by antlr.
the class TestSymbolIssues method testStringLiteralRedefs.
@Test
public void testStringLiteralRedefs() throws Exception {
String grammar = "lexer grammar L;\n" + "A : 'a' ;\n" + "mode X;\n" + "B : 'a' ;\n" + "mode Y;\n" + "C : 'a' ;\n";
LexerGrammar g = new LexerGrammar(grammar);
String expectedTokenIDToTypeMap = "{EOF=-1, A=1, B=2, C=3}";
String expectedStringLiteralToTypeMap = "{}";
String expectedTypeToTokenList = "[A, B, C]";
assertEquals(expectedTokenIDToTypeMap, g.tokenNameToTypeMap.toString());
assertEquals(expectedStringLiteralToTypeMap, g.stringLiteralToTypeMap.toString());
assertEquals(expectedTypeToTokenList, realElements(g.typeToTokenList).toString());
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by antlr.
the class TestParserInterpreter method testEmptyInputWithCallsAfter.
@Test
public void testEmptyInputWithCallsAfter() throws Exception {
LexerGrammar lg = new LexerGrammar("lexer grammar L;\n" + "A : 'a' ;\n");
Grammar g = new Grammar("parser grammar T;\n" + "s : x y ;\n" + "x : EOF ;\n" + "y : z ;\n" + "z : ;", lg);
ParseTree t = testInterp(lg, g, "s", "", "(s (x <EOF>) (y z))");
// s
assertEquals("0..0", t.getSourceInterval().toString());
// x
assertEquals("0..0", t.getChild(0).getSourceInterval().toString());
// unspecified assertEquals("0..-1", t.getChild(1).getSourceInterval().toString()); // x
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by antlr.
the class TestParserInterpreter method testEOFInChild.
@Test
public void testEOFInChild() throws Exception {
LexerGrammar lg = new LexerGrammar("lexer grammar L;\n" + "A : 'a' ;\n");
Grammar g = new Grammar("parser grammar T;\n" + "s : x ;\n" + "x : A EOF ;", lg);
ParseTree t = testInterp(lg, g, "s", "a", "(s (x a <EOF>))");
assertEquals("0..1", t.getSourceInterval().toString());
assertEquals("0..1", t.getChild(0).getSourceInterval().toString());
}
Aggregations