2014-09-05 54 views
2

我至今认为答案的简单问题是:Antlr4从路径中输入语法

是否可以从子目录导入语法?例如: -

grammar literals; 

import myFolder/IntegerLiterals; 

结构如下:

/ 
literals.g4 
myFolder/ 
    IntegerLiterals.g4 

回答

2

有这些示例回购的ANTLR 4 grammar written in ANTLR 4

让我们来仔细看看:

delegateGrammars 
    : IMPORT delegateGrammar (COMMA delegateGrammar)* SEMI 
    ; 

delegateGrammar 
    : id ASSIGN id 
    | id 
    ; 

id : RULE_REF 
    | TOKEN_REF 
    ; 

所以,看起来像真的答案是否定的,因为你不能把目录分隔在那里。文件名称必须是有效的规则/标记名称。

+0

感谢您链接到源代码! – Diolor 2014-09-06 02:14:16

+0

@Dolor真正的来源实际上是[在这里写成ANTLR 3](https://github.com/antlr/antlr4/blob/master/tool/src/org/antlr/v4/parse/ANTLRParser.g)。它有一个等同的'delegateGrammars'规则。 – 2014-09-06 11:10:42

+0

是的,这是一个语法ID不是文件名。 – 2014-09-06 18:00:32