Macro: REGISTER_OBJECT

Module location: FMAC line 11604 (view source)

changes: Check that object name is not already a global/class function Add alternate access syntax @Name check that the name is not an internal function MG: 7/2/99 No mangling here for object access method, because no parameters. If we decide to mangle on return type (not likely) we can change this and use MARG.

  #IFDEF UI.EXISTS
  #ELSE
    USE UI
  #ENDIF

  // check for following errors
  // 1. name defined as internal function
  // 2. name defined as overloaded function
  // 3. name defined as global function
  // 4. name defined as non-overloaded class function

  #IF ( (!Zl & 1)=0)
    #IFSAME FN$!1  __F__
      #ERROR DFERR_COMP_ILLEGAL_OBJECT_DEFINTION !1 is an internal function name
    #ENDIF
  #ENDIF

  // check if name is already used for overloaded function, if so, error
  #IFDEF GET_!1_OVERLOADED
    #ERROR DFERR_COMP_ILLEGAL_OBJECT_DEFINTION !1 Already defined as a overloaded function
  #ELSE
    // Check that object name is not already a global or class function.
    #IFDEF GET_!1
      #IF (GET_!1<$40000001)
        #IF (GET_!1<0)
          #ERROR DFERR_COMP_ILLEGAL_OBJECT_DEFINTION !1 Already defined as a global function
        #ELSE
          #ERROR DFERR_COMP_ILLEGAL_OBJECT_DEFINTION !1 Already defined as a function/Property
        #ENDIF
      #ENDIF
    #ELSE
      #REPLACE GET_!1 |CI!ZH
      #FREG GET_!1 RETURNS INTEGER
      // register additional object access methods
      // #REPLACE @!1 (!1(current_object))
    #ENDIF // if Get_ defined
  #ENDIF  // if Get_ overloaded