


public class Name extends Node {
	public String id;

	public Name(String id) {
		this.id = id;
	}

	/**
	 * Generate a name without location info
	 */
	public static Name genName(String id) {
		return new Name(id );
	}

	public Value interp(Scope s) {
		return s.lookup(id);
	}

	@Override
	public Value typecheck(Scope s) {
		Value v = s.lookup(id);
		if (v != null) {
			return v;
		} else {
			_.abort(this, "unbound variable: " + id);
			return Value.VOID;
		}
	}

	public String toString() {
		return id;
	}
}

@@ -1,11 +1,10 @@
 %0A%0A
-%0A
 public c
@@ -392,16 +392,46 @@
 se %7B%0A%09%09%09
+S.error(%22%E5%8F%98%E9%87%8F%E6%9C%AA%E5%AE%9A%E4%B9%89%EF%BC%9A %22 + id);%0A%09%09%09//
 _.abort(

improve errror