2014-10-30 40 views
0

我需要爲非常簡單的DSL提供帶有語法檢查器和驗證器的IDE。適合使用XText和XTend進行處理的場景?

DSL的解釋器已經存在,所以不需要另一個解釋器。 DSL適用於xtext & xtend except它允許我們轉義到javascript,我聽說這是一個相當雜亂的語言。

XText是否適合這種情況?我聽說將xtext改寫爲javascript非常困難,而且我還沒有看到可以輕鬆鏈接或擴展的開源xtext javascript項目。

謝謝!

編輯: 我正在使用的dsl是nools規則語言。它看起來像這樣:

rule "rule report to user" { 
    when{ 
     $ctr: Counter $ctr.count % 1000 == 0 {count: $count} 
    } 
    then{ 
     console.log("Progressing..."); 
     modify($ctr, function(){this.count = $count + 1;}); 
    } 
} 

JavaScript出現在when子句中的每個語句的模式中。在這個例子中,模式是「$ ctr.count%1000 == 0」)。模式中有非數量的非JavaScript替換,例如以支持正則表達式運算符'=〜'。

then子句的全部內容是JavaScript,除了在when中作爲變量出現的別名定義在else子句中時。在這個例子中$ ctr就是這樣一個別名。

回答

1

如果

  • 語法明確分開「正常代碼」和「使用Javascript逃脫」
  • 你不關心對JavaScript的零件

編輯器支持,那麼你可以創建一個Xtext語法,逐字分析Javascript部分。

沒有看到DSL並知道它的用例,我不能給出更具體的建議。

+0

謝謝。我用更多的信息修改了這個問題。是否有一個解析Javascript的現有Xtext語法? – Colin 2014-10-31 19:49:59

+0

我在Github上發現了一個打字稿語法的概念證明: github.com/vorburger/eclipse-typescript-xtext/ 但是我猜這樣做很好,需要花費很多時間。 JavaScript不是簡單的語言=) – 2014-11-01 20:30:08

+0

感謝您的意見。我會看看,時間是一個重要因素,所以IDE支持可能不在我們的未來。 – Colin 2014-11-02 11:01:46