/* $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$
*/