SmallJava 语言的作用域与库管理
1. 检查类型设置
在 @Check 注解中指定 CheckType.NORMAL ,这会指示 Xtext 仅在保存文件时调用该方法,而非在编辑过程中调用(默认是 CheckType.FAST )。这样做是因为此检查可能需要一些时间,若在编辑时执行,可能会降低编辑器性能。Eclipse JDT 也仅在保存文件时检查跨文件的类重复情况。
2. 提供库
2.1 库的必要性
当前 SmallJava 的实现不允许引用如 Object 、 String 、 Integer 和 Boolean 等类型。我们可以使用这些类型来声明用常量表达式初始化的变量。直接在语法中硬编码这些类或类型并非最佳做法,因为语法应仅处理语法本身,且硬编码后难以扩展类的方法。
2.2 创建库
我们遵循库的方式来解决这个问题。编写一个单一文件 mainlib.smalljava ,包含以下 SmallJava 类:
package smalljava.lang;
class Object {
public Object clone() {
return this;
}
public String toString() {
// fake implementation
超级会员免费看
订阅专栏 解锁全文
1787

被折叠的 条评论
为什么被折叠?



