diff --git a/tool/test/org/antlr/v4/test/TestParseTreeMatcher.java b/tool/test/org/antlr/v4/test/TestParseTreeMatcher.java index e90667ab3..34f6de132 100644 --- a/tool/test/org/antlr/v4/test/TestParseTreeMatcher.java +++ b/tool/test/org/antlr/v4/test/TestParseTreeMatcher.java @@ -115,6 +115,27 @@ public class TestParseTreeMatcher extends BaseTest { assertEquals(expected, results); } + @Test + public void testHiddenTokensNotSeenByTreePatternParser() throws Exception { + String grammar = + "grammar X2;\n" + + "s : ID '=' expr ';' ;\n" + + "expr : ID | INT ;\n" + + "ID : [a-z]+ ;\n" + + "INT : [0-9]+ ;\n" + + "WS : [ \\r\\n\\t]+ -> channel(HIDDEN) ;\n"; + boolean ok = + rawGenerateAndBuildRecognizer("X2.g4", grammar, "X2Parser", "X2Lexer", false); + assertTrue(ok); + + ParseTreePatternMatcher p = getMatcher("X2"); + + ParseTreePattern t = p.compile("s", " = ;"); + String results = t.patternTree.toStringTree(p.getParser()); + String expected = "(s = (expr ) ;)"; + assertEquals(expected, results); + } + @Test public void testCompilingMultipleTokens() throws Exception { String grammar =