如何在 Antlr4 中为不匹配或部分令牌创建解析器规则



我有这个语法(从第 109 行开始(,在 IDE 中用于收集有关正在编辑的源代码文件(其 Z80 程序集(的信息

我需要触发解析器规则或有一种强大的方法来解释解析树(ErrorNodes(以检测用户输入的不完整/部分文本。

我添加了一个"部分"解析器规则,该规则使用底部定义的 ANY 令牌捕获所有字符。但是,这不起作用。

我还尝试查看解析树,看看是否有某种方法可以编写逻辑(在我的侦听器中(来提升它,但似乎新的部分文本有时甚至没有出现在解析树中......

这听起来像是岛屿语法。通常的过程(例如,参见ANTLR 4书中的"将XML岛与文本海洋分开"(是首先有一个带有有效标记的词法分析器语法文件,然后是一个全部捕获。看来你已经做到了,所以也许使用 intellij 插件看看它是如何标记输入的。 语法规则必须允许大量垃圾,如果它像你建议的那样不完整。哦,你需要词法分析器中的包罗万象,而不是解析器。注意不要在解析器中使用.+。它会消耗一切。.+?.

相关内容

  • 没有找到相关文章

最新更新