0
我們有一個自定義的基於Xtext的DSL,並通過Xtend在此DSL中編寫的文檔生成C++代碼。這裏是DSL的一個簡單的例子:如何在Xtext IDE中顯示錯誤,前提是在聲明類型之前引用類型
component CMP
{
type A
{
B member_1;
}
type B
{
string member_1;
}
}
最後,對每component
元件產生含有C++結構(基於type
元素)的頭文件。現在發生以下問題:在我的DSL A
和B
中可以正確解析(即使B
聲明晚於A
)。但是當我們生成C++代碼並執行諸如resource.contents.filter(TypeElement)
來遍歷所有type
元素時,它們將按照文檔中聲明的相同順序傳遞。這會導致編譯器錯誤生成C++頭文件,因爲B
聲明晚於A
,並且無需前向聲明即無法通過編譯器解析。
我想要的是在這種情況下在IDE中顯示一個錯誤(即如果在文檔後面出現type
的引用存在)。有這種場景的標準驗證器嗎?如果不是,處理這個問題最合適的方法是什麼?
預先感謝您!
非常感謝您的解釋,Zarnekow先生!這對我很有幫助。 – Vivit