changes: declare an error if not within an object if within a class, this should be inside of a method
#IF (!b & 1) // if not within an object..error
// if within a class (2) but not within a procedure (4) we have an error
// you should not place objects in classes outside of methods
#IF (!b = 3) // 3 = in class and in object, not in method
#IF (!Zl & 1)
#REM WARNING 4391: Object/End_object within class is .NOT. in a method
#ELSE
#ERROR DFERR_COMP_ILLEGAL_CODE_PLACEMENT Object/End_object within class should be in a method
#ENDIF
#ENDIF
// If within method, we count number of nested objects.
// If lt 0, declare an error, End_procedure will check for >0
#IF ( !b & 4 ) // if object within method
#SET ZM$ !Zm-1 // decrement count
#IF (!Zm < 0) // if lt 0, declare error
#ERROR DFERR_COMP_ILLEGAL_CODE_PLACEMENT End_Object without Object in Method
#ENDIF
#ENDIF
// if here we are within a object.
// if we are within a class we are also within a procedure
//
// The following section was added 01-08-90 by SAL to support inheritable
// end-instance macros for classes
//
#IFSUB '!$$SC' //if flex-defined class
#IFSUB '!$$EM' //if end-instance macro defined for class,
!$$EM !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
#ELSE
FORWARD_END_CONSTRUCT !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
DEFAULT_END_OBJECT //else use default
#ENDIF
#SPOP //restore old class name
//
// end of addition 01-08-90 by SAL
//
#ELSE
#ERROR DFERR_COMP_ILLEGAL_CODE_PLACEMENT End_Object without Object
#ENDIF