簡體   English   中英

可以將xtext用作Java中的一種表達語言嗎?

[英]Can xtext be used as an expression language within Java?

我們正在考慮使用xtext開發DSL,該DSL可用於簡化一些復雜的邏輯和查詢操作,但希望在Java類中就地使用它。 能做到嗎?

我們想要的是使用它來開發類似於LINQ的東西,但是可以在Java中使用。 我見過的所有xtext示例都從DSL生成.java類,這很好,但並不完全是我們在這里想要的。

因此,類似:

List<ICreature> dragons = dataEngine.parse(get Monster where Type = Dragon and HitPoints > 1000);

我相信,如果查詢是在單獨的查詢文件中預先編寫的,然后通過xtext生成器編譯成可以傳遞給我們的數據管理層的形式,那么我們可以做到這一點,但是我們需要比這更靈活的方法。

xText看起來很有前途,但看來我們最終可能會使用jOOQ或類似的東西代替真正的DSL。

但似乎我們最終可能會使用jOOQ或類似的東西代替真正的DSL。

jOOQ 一種真正的DSL :-)一種真正的內部域特定語言 ,而不是外部DSL 實際上,我最近一直在研究Xtend / Xtext,以了解是否可以通過定義用於解析SQL語句的實際語法並將其轉換為jOOQ來增強jOOQ本身,使其看起來不像Java,而更像SQL。調用。

用與上述Xtend和Xtext相同的人創造的名為Xbase的技術,這似乎是可行的。 實際上,Xtend語言基於Xbase。 根據他們的文檔,這將使您可以將自己的語法集成到幾乎類似於Java的語言中,從而定義Java與自己的DSL之間的交互模式。

到目前為止,我還沒有成功理解他們的文檔,但是也許您可以在他們的論壇上獲得一些幫助?

不,不幸的是,Eclipse的Java編輯器,Java解析器和編譯器都不允許進行這種鈎掛。 使用Xbase,您可以在DSL中嵌入類似Java的表達式和語句,但是不支持相反的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM