Macro: SEND$CMD

Module location: FMAC line 11420 (view source)

  #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