首页 > 解决方案 > ANTLR tokenVocab 中的相对路径

问题描述

我是 ANTLR 的新手,正在取得进展,并遇到了这个问题。

我有这样的结构:

-- MAIN
---|__ SUB
       |__ ABCLexer.g4
       |__ ABCParser.g4
   BaseLexer.g4

我想在 ABCParser 中使用 BaseLexer。所以,我尝试了很多东西,例如:

options {tokenVocab=BaseLexer;}
options {tokenVocab='../BaseLexer';}
options {tokenVocab='fullpath to BaseLexer';}

我还尝试了 import 看看我是否可以让它工作。一切都无济于事。在我将所有内容拉回同一目录之前,有没有简单的方法可以做到这一点?

标签: antlrantlr4

解决方案


不要在导入语句中使用路径,而是在工具调用中指定语法搜索路径,如工具选项文档中所述:

$ antlr4 -lib /tmp A.g4

在 vscode 的 ANTLR4 扩展中,您将改为在文档中描述的扩展设置中提供此信息(请参阅importDir设置)。


推荐阅读