查找 Java 语法

Finding Java Grammars

我正在进入 Rascal - 干得漂亮!

我已经完成了 Tutor 的一半,可能会超前,但我的兴趣之一是重构 Java。我看过 Tijs van der Storm 的 Curry On 2016 talk,他在其中展示了一个例子(视频第 16 分钟左右的 "TrafoFields" 模块)。

我很想从事这类工作,所以我在文档中搜索了 Java 语法和使用它的类似示例,但无济于事。此外,库文档在 lang::java 下只有 m3jdt。我重新加载了 Tijs 的视频,发现他使用 lang::java::\syntax::Java15。我盲目地尝试在 Repl 中导入它并且它起作用了(尽管有很多警告)!我打开 Rascal .jar 文件发现这个包里还有更多。

所以我在这方面的问题是:

都是好问题;并且还提出了改进建议。同时,如果您遇到困难,请提出更多问题。

简短回答:我们优先记录最常用的内容和大学课程中使用的内容,然后是我们收到的问题。所以谢谢你的提问。

倒序:

  1. 反斜杠是一种通用的转义符,用于在 Rascal 中使用标识符,这也是语言中的关键字。所以任何变量或包名或模块名都可以命名为 "if" 但你必须转义它。这在为编程语言定义抽象语法树时有很大帮助,正如您可以想象的那样 "if" 将是 ast 节点类型的好名字。 "Syntax" 恰好也是 Rascal 中的关键字。
  2. eclipse 中的 Rascal 资源管理器视图可用于交互式浏览库。您还可以使用 util::FileSystem 爬取库并获得库中所有内容的第一个 class 表示,例如 |std:///|。同意,这些是穷人的解决方案,一个很好的功能是一个完全索引的可搜索库。我们已经完成了一半(请参阅我们为支持这一点所做的 analysis::text:: Lucene 前期工作。
  3. 这是一个反问,我接受它作为改进建议,答案是肯定的。