2014-09-05 64 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