2014-10-30 53 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