/********************************************************************* NAME : SubclassPCommand DESCRIPTION : Determines if a class is a subclass of another INPUTS : None RETURNS : TRUE if class-1 is a subclass of class-2 SIDE EFFECTS : None NOTES : H/L Syntax : (subclassp <class-1> <class-2>) *********************************************************************/ globle intBool SubclassPCommand( void *theEnv) { DEFCLASS *c1,*c2; if (CheckTwoClasses(theEnv,"subclassp",&c1,&c2) == FALSE) return(FALSE); return(EnvSubclassP(theEnv,(void *) c1,(void *) c2)); }
/********************************************************************* NAME : SubclassPCommand DESCRIPTION : Determines if a class is a subclass of another INPUTS : None RETURNS : True if class-1 is a subclass of class-2 SIDE EFFECTS : None NOTES : H/L Syntax : (subclassp <class-1> <class-2>) *********************************************************************/ void SubclassPCommand( Environment *theEnv, UDFContext *context, UDFValue *returnValue) { Defclass *c1, *c2; if (CheckTwoClasses(context,"subclassp",&c1,&c2) == false) { returnValue->lexemeValue = FalseSymbol(theEnv); return; } returnValue->lexemeValue = CreateBoolean(theEnv,SubclassP(c1,c2)); }