v4: integrate 9870 to main (unit test for partially predicated alts)

[git-p4: depot-paths = "//depot/code/antlr4/main/": change = 9871]
This commit is contained in:
sharwell 2012-01-18 09:44:43 -08:00
parent 491744f893
commit 252cfbda78
1 changed files with 26 additions and 0 deletions

View File

@ -252,6 +252,32 @@ public class TestSemPredEvalParser extends BaseTest {
assertEquals(expecting, found); assertEquals(expecting, found);
} }
@Test
public void testUnpredicatedPathsInAlt() throws Exception{
String grammar =
"grammar T;\n" +
"s : a {System.out.println(\"alt 1\");}\n" +
" | b {System.out.println(\"alt 2\");}\n" +
" ;\n" +
"a : {false}? ID INT\n" +
" | ID INT\n" +
" ;\n" +
"b : ID ID\n" +
" ;\n" +
"ID : 'a'..'z'+ ;\n" +
"INT : '0'..'9'+;\n" +
"WS : (' '|'\\n') {skip();} ;\n";
String found = execParser("T.g", grammar, "TParser", "TLexer", "s",
"x 4", false);
String expecting =
"alt 1\n";
assertEquals(expecting, found);
expecting = "";
assertEquals(expecting, stderrDuringParse);
}
@Test public void testActionHidesPreds() throws Exception { @Test public void testActionHidesPreds() throws Exception {
// can't see preds, resolves to first alt found (1 in this case) // can't see preds, resolves to first alt found (1 in this case)
String grammar = String grammar =