查找 Java 语法
Finding Java Grammars
我正在进入 Rascal - 干得漂亮!
我已经完成了 Tutor 的一半,可能会超前,但我的兴趣之一是重构 Java。我看过 Tijs van der Storm 的 Curry On 2016 talk,他在其中展示了一个例子(视频第 16 分钟左右的 "TrafoFields" 模块)。
我很想从事这类工作,所以我在文档中搜索了 Java 语法和使用它的类似示例,但无济于事。此外,库文档在 lang::java
下只有 m3
和 jdt
。我重新加载了 Tijs 的视频,发现他使用 lang::java::\syntax::Java15
。我盲目地尝试在 Repl 中导入它并且它起作用了(尽管有很多警告)!我打开 Rascal .jar 文件发现这个包里还有更多。
所以我在这方面的问题是:
- 为什么文档中没有这个?我原以为图书馆文档是详尽无遗的。你不能至少在食谱中添加 "TrafoFields" 吗?!
- 除了在线文档(除了搜索 .jar 文件)之外,还有其他方法可以找到此类模块吗?
- "syntax"、
::\syntax
之前的模块名称中这个奇怪的反斜杠是什么?
都是好问题;并且还提出了改进建议。同时,如果您遇到困难,请提出更多问题。
简短回答:我们优先记录最常用的内容和大学课程中使用的内容,然后是我们收到的问题。所以谢谢你的提问。
倒序:
- 反斜杠是一种通用的转义符,用于在 Rascal 中使用标识符,这也是语言中的关键字。所以任何变量或包名或模块名都可以命名为 "if" 但你必须转义它。这在为编程语言定义抽象语法树时有很大帮助,正如您可以想象的那样 "if" 将是 ast 节点类型的好名字。 "Syntax" 恰好也是 Rascal 中的关键字。
- eclipse 中的 Rascal 资源管理器视图可用于交互式浏览库。您还可以使用 util::FileSystem 爬取库并获得库中所有内容的第一个 class 表示,例如
|std:///|
。同意,这些是穷人的解决方案,一个很好的功能是一个完全索引的可搜索库。我们已经完成了一半(请参阅我们为支持这一点所做的 analysis::text:: Lucene
前期工作。
- 这是一个反问,我接受它作为改进建议,答案是肯定的。
我正在进入 Rascal - 干得漂亮!
我已经完成了 Tutor 的一半,可能会超前,但我的兴趣之一是重构 Java。我看过 Tijs van der Storm 的 Curry On 2016 talk,他在其中展示了一个例子(视频第 16 分钟左右的 "TrafoFields" 模块)。
我很想从事这类工作,所以我在文档中搜索了 Java 语法和使用它的类似示例,但无济于事。此外,库文档在 lang::java
下只有 m3
和 jdt
。我重新加载了 Tijs 的视频,发现他使用 lang::java::\syntax::Java15
。我盲目地尝试在 Repl 中导入它并且它起作用了(尽管有很多警告)!我打开 Rascal .jar 文件发现这个包里还有更多。
所以我在这方面的问题是:
- 为什么文档中没有这个?我原以为图书馆文档是详尽无遗的。你不能至少在食谱中添加 "TrafoFields" 吗?!
- 除了在线文档(除了搜索 .jar 文件)之外,还有其他方法可以找到此类模块吗?
- "syntax"、
::\syntax
之前的模块名称中这个奇怪的反斜杠是什么?
都是好问题;并且还提出了改进建议。同时,如果您遇到困难,请提出更多问题。
简短回答:我们优先记录最常用的内容和大学课程中使用的内容,然后是我们收到的问题。所以谢谢你的提问。
倒序:
- 反斜杠是一种通用的转义符,用于在 Rascal 中使用标识符,这也是语言中的关键字。所以任何变量或包名或模块名都可以命名为 "if" 但你必须转义它。这在为编程语言定义抽象语法树时有很大帮助,正如您可以想象的那样 "if" 将是 ast 节点类型的好名字。 "Syntax" 恰好也是 Rascal 中的关键字。
- eclipse 中的 Rascal 资源管理器视图可用于交互式浏览库。您还可以使用 util::FileSystem 爬取库并获得库中所有内容的第一个 class 表示,例如
|std:///|
。同意,这些是穷人的解决方案,一个很好的功能是一个完全索引的可搜索库。我们已经完成了一半(请参阅我们为支持这一点所做的analysis::text:: Lucene
前期工作。 - 这是一个反问,我接受它作为改进建议,答案是肯定的。