有没有办法在 Rascal 中用 g4 语法进行解析。我有一些用 Antlr 编写的语法,如何在 rascal 中使用它并使用 rascal 重新定义。任何能说明这一点的资源也将不胜感激
最好在 Rascal 中再次输入语法。这应该主要是一对一的映射,但通常需要进行简化以使 Rascal 语法更清晰。例如,表达式子语言的运算符只需要一个非终结符名称。
自动迁移原则上是可能的,但这种转换所能提供的保证是有限的。它可能会意外地引入解析错误或歧义,或者删除错误和歧义。这主要是由于大多数人在 ANTLR 中使用两阶段词法分析/解析设置,而 rascal 使用单阶段。因此,手动理解映射要好得多。
存在从 SDF2 语法到 Rascal 的自动转换,因为它们的语义非常接近。