我使用JSON grammar from the antlr4 grammar repository来解析JSON文件。它工作正常,并使用通常的规则忽略空格:WS: [ \t\n\r] + -> skip;
我想重新使用词法分析器识别eclipse中语法高亮的所有标记。它还需要指定空格标记,但调用JSONLexer.nextToken()
会跳过它们。
直接使用词法分析器有没有办法不跳过空格?
答案 0 :(得分:2)
使用以下内容:
WS: [ \t\n\r] + -> channel(HIDDEN);
它不会完全丢弃空白,而是仍然会创建WS
个令牌,但它们最终会出现在一个单独的频道上(名为HIDDEN
)。解析器只能“监听”到单个通道,但词法分析器仍允许您从任何通道检索令牌。