如何匹配ANTLR解析器中的任何符号(不是词法分析器)?

Suz*_*ioc 6 grammar parsing antlr antlr4

如何匹配ANTLR解析器中的任何符号(不是词法分析器)?ANTLR4解析器的完整语言描述在哪里?

UPDATE

答案是"不可能的"吗?

Mik*_*hke 5

您首先需要了解每个部分在解析中的角色:

词法分析器:这是标记输入字符串的对象.标记意味着将输入字符流转换为抽象标记符号(通常只是一个数字).

解析器:这是仅与令牌一起使用以确定语言结构的对象.语言(写为一个或多个语法文件)定义有效的令牌组合.

如您所见,解析器甚至不知道字母是什么.它只知道令牌.所以你的问题已经错了.

话虽如此,知道为什么要在解析器中跳过单个输入字母可能会有所帮助.看起来您的基本概念需要调整.


Bar*_*ers 4

这取决于你所说的“符号”是什么意思。要匹配解析器规则内的任何标记,请使用.(DOT) 元字符。如果您尝试匹配解析器规则中的任何字符,那么您就不走运了,ANTLR 中的解析器规则和词法分析器规则之间存在严格的分离。不可能匹配解析器规则内的任何字符。