/* $DOC$ $TEMPLATE$ Document $NAME$ Macro compiler $CATEGORY$ Document $SUBCATEGORY$ Compiler $DESCRIPTION$ Invoking the macro compiler: ``` &variable ``` or ``` &( expression ) ``` or ``` &variable.text ``` $END$ */ /* $DOC$ $TEMPLATE$ Function $NAME$ hb_SetMacro() $CATEGORY$ API $SUBCATEGORY$ Macro $ONELINER$ Enable/disable the macro compiler runtime features. $SYNTAX$ hb_SetMacro( , [] ) --> lOldSetting $ARGUMENTS$ One of the `HB_SM_*` constants defined in set.ch. .T. to enable or .F. to disable a feature $RETURNS$ hb_SetMacro() return the old state of requested feature. $DESCRIPTION$ This function enables or disables some features of the macro compiler. The Harbour is extending the macro features compared to an original set available in CA-Cl*pper. Enabling/disabling some of them allows to keep strict CA-Cl*pper compatibility. Available features are: `HB_SM_HARBOUR` - enables Harbour extensions: operators: `++`, `--`, `+=`, `-=`, `*=`, `/=`, `^=` objects: assignments to an instance variable `HB_SM_XBASE` - enables other Xbase++ dialects extensions: expanding of expressions lists `HB_SM_SHORTCUTS` - enables optimized evaluation of logical operators (`.AND.`, `.OR.`) `HB_SM_PREPROC` - enables preprocessing of commands This is meaningful if Harbour is compiled with HB_MACRO_STATEMENTS flag $EXAMPLES$ #include "hbmacro.ch" INIT PROCEDURE IWANTCLIPPER() ? hb_SetMacro( HB_SM_HARBOUR, .F. ) ? hb_SetMacro( HB_SM_XBASE, .F. ) RETURN $STATUS$ R $COMPLIANCE$ H $PLATFORMS$ All $FILES$ Header file is set.ch Library is core $SEEALSO$ Macro compiler $END$ */