1 21 22 package org.armedbear.lisp; 23 24 public final class UnboundVariable extends CellError 25 { 26 public UnboundVariable(LispObject obj) throws ConditionThrowable 28 { 29 super(obj instanceof Cons ? obj : list2(Keyword.NAME, obj)); 30 } 31 32 public String getMessage() 33 { 34 LispThread thread = LispThread.currentThread(); 35 Environment oldDynEnv = thread.getDynamicEnvironment(); 36 thread.bindSpecial(_PRINT_ESCAPE_, T); 37 StringBuffer sb = new StringBuffer ("The variable "); 38 try { 40 sb.append(getCellName().writeToString()); 41 } 42 catch (Throwable t) {} 43 sb.append(" is unbound."); 44 thread.setDynamicEnvironment(oldDynEnv); 45 return sb.toString(); 46 } 47 48 public LispObject typeOf() 49 { 50 return Symbol.UNBOUND_VARIABLE; 51 } 52 53 public LispClass classOf() 54 { 55 return BuiltInClass.UNBOUND_VARIABLE; 56 } 57 58 public LispObject typep(LispObject type) throws ConditionThrowable 59 { 60 if (type == Symbol.UNBOUND_VARIABLE) 61 return T; 62 if (type == BuiltInClass.UNBOUND_VARIABLE) 63 return T; 64 return super.typep(type); 65 } 66 } 67 | Popular Tags |