Macro: SEND$CMD

Module location: FMACDD line 10356 (view source)

  #IFSAME !1 !2
    #IFDEF !3 // if a variable, constant or expression...it's defined
      OBJECT$SEND$DEFINE !3
    #ELSE
      #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
            // this is where we can get tricky and use access methods
            #IFDEF USE$NEAR$OBJECT
              OBJECT$SEND$DEFINE (obj(GET_!3))
            #ELSE
              OBJECT$SEND$DEFINE (!3(Current_object))
            #ENDIF
          #ELSE // if defined as a function but not an access method. This is an error
            #ERROR 300 Invalid Object reference
          #ENDIF
        #ELSE
          // not yet defined. We could either forward ref as object or
          // declare an error. For now let's just do an error.
          #ERROR 300 Invalid Object reference
          // 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