home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / fast220c.zip / OBJECTS.CH < prev    next >
Text File  |  1993-08-28  |  3KB  |  83 lines

  1. // Objects.ch ver 2.0 c
  2. // (C) Antonio Linares, 1993
  3.  
  4. // Antonio Linares
  5. // Avd. R. Soriano 68, 1-7
  6. // 29600 Marbella - SPAIN
  7.  
  8. //----------------------------------------------------------------------------//
  9.  
  10. #ifndef _OBJECTS_CH
  11. #define _OBJECTS_CH
  12.  
  13. #xcommand DEFAULT <uVar1> := <uVal1> ;
  14.                [, <uVarN> := <uValN> ] => ;
  15.                   <uVar1> := If( <uVar1> == nil, <uVal1>, <uVar1> ) ;;
  16.                 [ <uVarN> := If( <uVarN> == nil, <uValN>, <uVarN> ); ]
  17.  
  18. #xcommand CLASS <ClassName> ;
  19.              [ <from: INHERIT FROM, FROM, OF> <Parent1> [ ,<ParentN> ] ] ;
  20.           => ;
  21.           function <ClassName>() ;;
  22.              static nClassHandle ;;
  23.                 if nClassHandle == nil ;;
  24.                    ClsNew( <"ClassName">, { [ <Parent1>():ClassH ] ;
  25.                                             [,<ParentN>():ClassH ] } ) ;;
  26.                    #define _PARENT <Parent1>():ClassH
  27.  
  28. #xcommand DATA <Data1> [,<DataN>] => ;
  29.             ClsAddData( <"Data1">, 0 ) [; ClsAddData( <"DataN">, 0 ) ]
  30.  
  31. #xcommand VAR <Data1> [,<DataN>] => ;
  32.             ClsAddData( <"Data1">, 0 ) [; ClsAddData( <"DataN">, 0 ) ]
  33.  
  34. #xcommand METHOD <MethodName>( [<uParms,...>] ) CONSTRUCTOR => ;
  35.             ClsAddMethod( <"MethodName">, ;
  36.             { | Self [, <uParms> ] | <MethodName>( Self [, <uParms> ] ), Self } )
  37.  
  38. #xcommand METHOD <MethodName>( [<uParms,...>] ) => ;
  39.             ClsAddMethod( <"MethodName">, ;
  40.             { | Self [, <uParms> ] | <MethodName>( Self [, <uParms> ] ) } )
  41.  
  42. #xcommand METHOD <MethodName>( [<uParms,...>] ) VIRTUAL => ;
  43.             ClsAddMethod( <"MethodName">, { || nil } )
  44.  
  45. #xcommand METHOD <MethodName>( [<uParms,...>] ) SETGET => ;
  46.             ClsAddMethod( <"MethodName">,;
  47.                 { | Self [,<uParms>] | <MethodName>( Self [,<uParms>] ) } ) ;;
  48.             ClsAddMethod( "_" + <"MethodName">,;
  49.                 { | Self [,<uParms>] | <MethodName>( Self [,<uParms>] ) } )
  50.  
  51. #xcommand METHOD <MethodName>( [<uParms,...>] ) ;
  52.           <inline: BLOCK, INLINE> <bCodeBlock> => ;
  53.           ClsAddMethod( <"MethodName">, <bCodeBlock> )
  54.  
  55. #xcommand ENDCLASS => ;
  56.                 nClassHandle = nClsMake() ;;
  57.              end ;;
  58.           return __ClassIns( nClassHandle )
  59.  
  60. #xtranslate :: => Self:
  61.  
  62. //------ METHODS Sintax -----------
  63.  
  64. // C++ style
  65. #xtranslate METHOD <ClassName>::<MethodName>( [<uParms,...>] ) => ;
  66.          static function <MethodName>( Self [, <uParms>] ) // CLASS <ClassName>
  67.  
  68. // ASPEN style
  69. #xtranslate METHOD <MethodName>( [<uParms,...>] ) CLASS <ClassName> => ;
  70.          static function <MethodName>( Self [, <uParms>] ) // CLASS <ClassName>
  71.  
  72. #xtranslate FUNCTION <ClassName>.<MethodName>( [<uParms,...>] ) => ;
  73.          static function <MethodName>( Self [, <uParms>] ) // CLASS <ClassName>
  74.  
  75. //---------------------------------
  76.  
  77. #xtranslate Super:<Method>( [<uParms,...>] ) => ;
  78.        Super( _PARENT, <"Method">, Self [,<uParms>] )
  79.  
  80. #endif
  81.  
  82. //----------------------------------------------------------------------------//
  83.