0

我需要为 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 就是这样一个别名。

4

1 回答 1

1

如果

  • 语法明确区分“普通代码”和“Javascript 转义”
  • 你不关心 Javascript 部分的编辑器支持

那么您可以创建一个 Xtext 语法来逐字解析 Javascript 部分。

如果不查看 DSL 并了解其用例,我无法给出更具体的建议。

于 2014-10-31T18:12:29.840 回答