Macro: SEND$CMD
#IFSAME !1 !2
#IFDEF !3 // if a variable, constant or expression...it's defined
OBJECT$SEND$DEFINE !3
#ELSE
// remove .obj resolution. must manually add this
//#IFDEF !3.OBJ // old style: If global object or defined w/ .obj (ugh)
// OBJECT$SEND$DEFINE !3.OBJ
//#ELSE
#IFDEF GET_!3 // if defined as a function
#IF (GET_!3>$40000000) // and an object access method
// replace simple name with expression syntax
OBJECT$SEND$DEFINE (!3(Current_object))
#ELSE // if defined as a function but not an access method. This is an error
#ERROR DFERR_COMP_INVALID_OBJECT_REFERENCE "Already defined as a function"
#ENDIF
#ELSE
// 12.0 change:
// !3 is not defined but we will pass this on and allow the compiler to attempt to resolve it
OBJECT$SEND$DEFINE (!3(Current_object))
//// not yet defined. We could either forward ref as object or
//// declare an error. For now let's just do an error.
//#ERROR DFERR_COMP_INVALID_OBJECT_REFERENCE Object .Not. yet defined
//// here is how we would forward ref as obj
////!A [] OBJ$SEND |CI0 |VL
////#FREF (!3(Current_object)) !a
#ENDIF
//#ENDIF
#ENDIF
#ELSE
!A [] OBJ$SEND CURRENT_OBJECT |VL
#ENDIF