仅在解析器中忽略空格

时间:2016-03-13 13:01:33

标签: java antlr4

我使用JSON grammar from the antlr4 grammar repository来解析JSON文件。它工作正常,并使用通常的规则忽略空格:WS: [ \t\n\r] + -> skip;

我想重新使用词法分析器识别eclipse中语法高亮的所有标记。它还需要指定空格标记,但调用JSONLexer.nextToken()会跳过它们。

直接使用词法分析器有没有办法跳过空格?

1 个答案:

答案 0 :(得分:2)

使用以下内容:

WS: [ \t\n\r] + -> channel(HIDDEN);

它不会完全丢弃空白,而是仍然会创建WS个令牌,但它们最终会出现在一个单独的频道上(名为HIDDEN)。解析器只能“监听”到单个通道,但词法分析器仍允许您从任何通道检索令牌。