use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by tunnelvisionlabs.
the class TestATNSerialization method testLexerEOF.
@Test
public void testLexerEOF() throws Exception {
LexerGrammar lg = new LexerGrammar("lexer grammar L;\n" + "INT : 'a' EOF ;\n");
String expecting = "max type 1\n" + "0:TOKEN_START -1\n" + "1:RULE_START 0\n" + "2:RULE_STOP 0\n" + "3:BASIC 0\n" + "4:BASIC 0\n" + "5:BASIC 0\n" + "rule 0:1 1\n" + "mode 0:0\n" + "0->1 EPSILON 0,0,0\n" + "1->3 EPSILON 0,0,0\n" + "3->4 ATOM 97,0,0\n" + "4->5 ATOM 0,0,1\n" + "5->2 EPSILON 0,0,0\n" + "0:0\n";
ATN atn = createATN(lg, true);
String result = ATNSerializer.getDecoded(atn, Arrays.asList(lg.getRuleNames()), Arrays.asList(lg.getTokenNames()));
assertEquals(expecting, result);
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by tunnelvisionlabs.
the class TestATNSerialization method testLexerEOFInSet.
@Test
public void testLexerEOFInSet() throws Exception {
LexerGrammar lg = new LexerGrammar("lexer grammar L;\n" + "INT : 'a' (EOF|'\\n') ;\n");
String expecting = "max type 1\n" + "0:TOKEN_START -1\n" + "1:RULE_START 0\n" + "2:RULE_STOP 0\n" + "3:BASIC 0\n" + "4:BASIC 0\n" + "5:BLOCK_START 0 6\n" + "6:BLOCK_END 0\n" + "rule 0:1 1\n" + "mode 0:0\n" + "0:EOF, '\\n'..'\\n'\n" + "0->1 EPSILON 0,0,0\n" + "1->3 EPSILON 0,0,0\n" + "3->5 ATOM 97,0,0\n" + "4->6 SET 0,0,0\n" + "5->4 EPSILON 0,0,0\n" + "6->2 EPSILON 0,0,0\n" + "0:0\n" + "1:5\n";
ATN atn = createATN(lg, true);
String result = ATNSerializer.getDecoded(atn, Arrays.asList(lg.getRuleNames()), Arrays.asList(lg.getTokenNames()));
assertEquals(expecting, result);
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by tunnelvisionlabs.
the class TestATNConstruction method testEmptyOrEmpty.
@Test
public void testEmptyOrEmpty() throws Exception {
Grammar g = new Grammar("parser grammar P;\n" + "a : | ;");
String expecting = "RuleStart_a_0->BlockStart_4\n" + "BlockStart_4->s2\n" + "BlockStart_4->s3\n" + "s2->BlockEnd_5\n" + "s3->BlockEnd_5\n" + "BlockEnd_5->RuleStop_a_1\n" + "RuleStop_a_1-EOF->s6\n";
checkRuleATN(g, "a", expecting);
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by tunnelvisionlabs.
the class TestATNConstruction method testAStar.
@Test
public void testAStar() throws Exception {
Grammar g = new Grammar("parser grammar P;\n" + "a : A*;");
String expecting = "RuleStart_a_0->StarLoopEntry_5\n" + "StarLoopEntry_5->StarBlockStart_3\n" + "StarLoopEntry_5->s6\n" + "StarBlockStart_3->s2\n" + "s6->RuleStop_a_1\n" + "s2-A->BlockEnd_4\n" + "RuleStop_a_1-EOF->s8\n" + "BlockEnd_4->StarLoopBack_7\n" + "StarLoopBack_7->StarLoopEntry_5\n";
checkRuleATN(g, "a", expecting);
}
use of org.antlr.v4.runtime.Recognizer.EOF in project antlr4 by tunnelvisionlabs.
the class TestATNConstruction method testAOptional.
@Test
public void testAOptional() throws Exception {
Grammar g = new Grammar("parser grammar P;\n" + "a : A?;");
String expecting = "RuleStart_a_0->BlockStart_3\n" + "BlockStart_3->s2\n" + "BlockStart_3->BlockEnd_4\n" + "s2-A->BlockEnd_4\n" + "BlockEnd_4->RuleStop_a_1\n" + "RuleStop_a_1-EOF->s5\n";
checkRuleATN(g, "a", expecting);
}
Aggregations