如何导入(或使用 tokenVocab)不同 directory/package 中的语法文件?
How to import (or use tokenVocab) for a grammar file in a different directory/package?
我在这样的目录中有两个语法文件:
+- antlr4
+- common
| +- Numbers.g4
+- lang
+- Lang.g4
在Lang.g4
里面,我尝试做:
grammar Lang;
options {
tokenVocab = common.Numbers;
}
但是我得到一个错误:
cannot find tokens file <PROJECT_LOCATION>/target/generated-sources/antlr4/common.Numbers.tokens
我是否仅限于将所有语法和词法分析器文件放在同一目录中?
你不限。
您应该在 Lang.g4
语法目录中有一个 Numbers.token
文件。之后你可以通过以下方式使用tokenVocab
:
options {
tokenVocab = Numbers;
}
要将生成的文件放置到自定义位置,您可以使用 -o
命令行参数。看这里:ANTLR Tool Command Line Options.
我在这样的目录中有两个语法文件:
+- antlr4
+- common
| +- Numbers.g4
+- lang
+- Lang.g4
在Lang.g4
里面,我尝试做:
grammar Lang;
options {
tokenVocab = common.Numbers;
}
但是我得到一个错误:
cannot find tokens file <PROJECT_LOCATION>/target/generated-sources/antlr4/common.Numbers.tokens
我是否仅限于将所有语法和词法分析器文件放在同一目录中?
你不限。
您应该在 Lang.g4
语法目录中有一个 Numbers.token
文件。之后你可以通过以下方式使用tokenVocab
:
options {
tokenVocab = Numbers;
}
要将生成的文件放置到自定义位置,您可以使用 -o
命令行参数。看这里:ANTLR Tool Command Line Options.