Macro: FORWARD_END_CONSTRUCT

Module location: FMAC line 6923 (view source)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Command: FORWARD_END_CONSTRUCT ClassName { <argument> ... } Parameters: ClassName is the name of the class which owns the macro that is forwarding. <argument> is any argument required Description: This command allows the instance-ending macros defined for classes to 'inherit' the instance-ending macro(s) defined by their superclass(es). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= <currentClassName> { <arg> ... }

  #IFSUB '!1$SC' // if flex-defined class
    #SPUSH       // note: #SPUSH with no arg it pushes !$ (with no replacement). Don't pass arguments (obsolete technique as of 11.1)
    #SET $$ !1$SC  //get superclass name
    #IFSUB '!$$EM' //if end-instance macro defined,
      !$$EM !$ !2 !3 !4 !5 !6 !7 !8 !9  //use it
    #ELSE
      FORWARD_END_CONSTRUCT !$ !2 !3 !4 !5 !6 !7 !8 !9
    #ENDIF
    #SPOP       // note: #SPOP always pops to $$ - it never takes an argument
  #ELSE
    DEFAULT_END_OBJECT  //else use default
  #ENDIF