我需要为 IDE 提供一个非常简单的 DSL 的语法检查器和验证器。
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 中定义的别名在 then 子句中作为变量出现。在这个例子中,$ctr 就是这样一个别名。