问题标签 [kiama]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
551 浏览

scala - 在 Kiama/Scala 中有条件地重写术语

我正在尝试在 Kiama 中实现“承诺选择”操作(以及以类似方式工作的其他一些功能)。

我想重写一个术语,如果它的一个子术语可以被成功重写(这个想法是,一旦你启动任一分支,你就已经承诺了)。

目前,我可以这样做:

所以 r2 只有在它可以成功地将 r1 应用于第一个子项时才会触发。

这感觉不太像 Kiama-ish。我觉得我应该使用同余,但我无法从文档中弄清楚它们是如何工作的。

谁能建议一种更优雅和 Kiamaish 的方式来做到这一点?

0 投票
1 回答
494 浏览

scala - Scala 中用于外部 DSL 评估的库

在 scala 中评估外部 DSL 需要哪些步骤,哪些库可用于这些步骤?

在四处挖掘之后,我能够使用解析器组合器从案例类中创建一个 AST。该过程的下一步是什么?我查看了 kiama(https://code.google.com/p/kiama/),但从文档中似乎不清楚(可能是由于我有限的语言处理知识)如何维护符号表,如何将操作绑定到 dsl 语句等等

0 投票
1 回答
68 浏览

scala - 类型不匹配与 packrat scala/kiama 错误

我正在 Scala (kiama) 中创建一个 mini-java 编译器。我的一个名为“tipe”的代码块给了我一个错误,我的 Scala 入门知识无法破解。

这是我的代码(有点不完整,但我不相信这是给我的错误)

当我尝试编译我的程序时出现以下错误:

发现类型不匹配:

找到:SyntaxAnalysis.this.Parser[Object]

必需:SyntaxAnalysis.this.PackratParser[funjs.FunJSTree.type]

小费~(“->”~>小费)|

带有指向 | 的箭头

任何帮助将不胜感激,我是 Scala 的新手,这对我来说相当复杂。