我有这个语法(从第 109 行开始(,在 IDE 中用于收集有关正在编辑的源代码文件(其 Z80 程序集(的信息
我需要触发解析器规则或有一种强大的方法来解释解析树(ErrorNodes(以检测用户输入的不完整/部分文本。
我添加了一个"部分"解析器规则,该规则使用底部定义的 ANY 令牌捕获所有字符。但是,这不起作用。
我还尝试查看解析树,看看是否有某种方法可以编写逻辑(在我的侦听器中(来提升它,但似乎新的部分文本有时甚至没有出现在解析树中......
这听起来像是岛屿语法。通常的过程(例如,参见ANTLR 4书中的"将XML岛与文本海洋分开"(是首先有一个带有有效标记的词法分析器语法文件,然后是一个全部捕获。看来你已经做到了,所以也许使用 intellij 插件看看它是如何标记输入的。 语法规则必须允许大量垃圾,如果它像你建议的那样不完整。哦,你需要词法分析器中的包罗万象,而不是解析器。注意不要在解析器中使用.+
。它会消耗一切。或.+?
.