我目前正在開發一種通用的基於代理的編程語言(它的syntaxt會受到Java的啓發,我們也使用這種語言的對象)。Can Xtext可用於解析通用編程語言嗎?
自項目開始以來,我們對使用ANTLR或Xtext的事實懷疑。那時我們發現Xtext正在實現ANTLR的一個子集。所以我們決定使用ANLTR來爲我們的語言失去使用我們的語言免費提供完整的Eclipse編輯器的可能性(Xtext提供了這樣一個很好的功能)。
但是,據我所知,今年夏天Xtext項目已完成big step forward。從鏈接引用:
Xtext的侷限性是什麼?
Sven:您可以使用Xtext實現幾乎所有類型的編程語言或DSL 。有一個例外,那就是如果你需要使用 所謂的'語義謂詞',這是一個相當複雜的事情,我認爲這不值得在這裏解釋。很少有語言真的需要這個概念。然而,突出的例子是C/C++。我們希望 考慮下一個版本的該主題。
而這也加強在Xtext documentation:
什麼的Xtext?無論您是想創建小型文本域特定語言(DSL)還是想實現全面的通用編程語言。藉助Xtext,您可以快速創建您自己的語言 。另外,如果您已經有一個現有的 語言,但它缺乏像樣的工具支持,您可以使用Xtext創建一個基於Eclipse的高級開發環境,該編程體驗在現代Java IDE中提供了 編輯體驗,其時間極短。我們稱Xtext爲語言開發框架。
如果Xtext已經擺脫了過去的限制,爲什麼仍然無法找到最好的已知編程語言(Java,C#等)的複雜Xtext語法?
在ANTLR網站上,你可以找到噸這樣的語法例子,對於所關注的Xtext,而不是隻有我能找到的樣本是一個文檔中的報道。那麼Xtext是否仍然不成熟用於實現通用編程語言?我有點擔心這個......我不會開始重新寫的Xtext語法的,然後認識到,它不適合那個。
很高興有一位Xtext負責人回覆我的問題,感謝您的關注。我並沒有期望擁有一套完整的工具來處理在Xtext上實現的Java/C++(正如您所說的,沒有必要)我正在尋找一些複雜的Xtext語法的很好的例子。對於ANTLR,你會發現許多流行的編程語言語法可以使用。對Xtext來說情況並非如此,所以我想知道是否有可能在Xtext中無縫編寫Java語法,因爲在其他論壇中,對於以前的Xtext版本,您深深地感到不鼓勵人們這樣做。 – 2011-04-12 10:01:39
用Xtext實現的編程語言的最好例子是Xtend和Xbase。它的範圍已經完全實現,它支持完整的Java.generics和類Scala類型推斷。可以在這裏找到語法:http://goo.gl/QGR9d和http://goo.gl/7kl23 – 2011-04-12 12:05:41
許多人多謝謝斯文!我會很好的看看它!這似乎是一個非常好的測試案例,用於在行動中使用Xtext。我讓你知道我的調查結果:) – 2011-04-17 21:01:32