2011-11-28 75 views
1

我想將我的終端放到單獨的文件中,因爲我將在生產版本中使用外部詞法分析器。我試着回答using custom terminals definitions。所以我有一個mypackage/Tokens.xtext文件和含有兩個文件中的Xtext語法

grammar mypackage.MyDsl with mypackage.Tokens 

生成工作正常,一個mypackage/MyDsl.xtext文件,但它會創建一個在src-genMyDslStandaloneSetupGenerated不編譯,因爲它調用不存在mypackage.TokensStandaloneSetup.doSetup()。它還生成src-gen/mypackage/services/MyDslGrammarAccess,它指的是也不存在的TokensGrammarAccess類。所以我的問題基本上是:當我有另一個語法文件時,還應該做些什麼來使其可用?

回答

1

您還需要爲令牌語法運行生成器。

+0

這意味着我必須寫一些額外的文件(S),其中包括髮電機?還有哪些其他文件要寫入? –

0

在Xtext中,您通常會將令牌(終端)和解析器規則放入同一個.xtext文件中。你有什麼特別的理由要分裂這個嗎?

+0

我想做同樣的事情。我的理由是我生成了「基本語法」,並希望將生成的令牌放在單獨的文件中。 – Tobias

0

,原因很簡單:

Easier to Read and work with the Grammar for everybody (especially other users)

好像還的Xtext不支持使用多個.xtext文件