我在这样的目录中有两个语法文件:
+- 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
我是否仅限于将所有语法和词法分析器文件放在同一目录中?
答案 0 :(得分:1)
你不受限制。
Numbers.token
语法目录中应该有一个Lang.g4
文件。之后,您可以通过以下方式使用tokenVocab
:
options {
tokenVocab = Numbers;
}
要将生成的文件放置到自定义位置,您可以使用-o
命令行参数。见这里:ANTLR Tool Command Line Options。