* source/compiler/harbour.l
* source/compiler/harbour.slx
* Added inline c support for hb_comp_iLanguage == LANG_OBJ_MODULE
* source/compiler/harbour.sly
* Added support for HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) in Statement : ( MacroVar and MacroExpr ) to sync with harbour.y
* source/rtl/profiler.prg
+ Added HB_Profile::ignoreSymbol().
* Changed HB_Profile::gather() to use HB_Profile::ignoreSymbol() to
decide if a symbol should be ignored. This will let developers
modify what is and isn't ignored by subclassing HB_Profile and
implementing their own version of HB_Profile::ignoreSymbol().
* include/hbexpra.c
+ Added logic to optimize 2nd parameter of __DBLIST().
Scan it if array, and optiimize elements that are codeblocks containg macros to the core value of such macro.
* source/rdd/dblist.prg
+ Added logic to scan abEval for Strings, parse and convert them to codeblocks.
+ Added HB_aTokens()
/* This should complete support for:
cFields := "Field1,Field2,..."
LIST &cFields*/ ...
*/
* classes.c
Fixed function __CLSNEW.
Changed variable USHORT uiSize to ULONG ulSize
This fix random GPFs in function hb_clsDictRealloc by creating
classes.
* include/hbapi.h
* Changed 2nd parameter to BYTE iContext in hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext )
* include/hbexprop.h
+ Added #define HB_ET_MACRO_LIST 16 /* &variable used as in literal arrays or parentesised expressions. */
+ Added #define HB_ET_MACRO_INDEX 32 /* &variable used as arrays index. */
* include/hbexprb.c
+ Added macro list support logic to hb_compExprUseArray()
+ Added generation of HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX in hb_compExprUseMacro()
/* HB_P_MACROLIST and HB_P_MACROLISTEND are only generated as an enevelope if array contains a one or more macro element
which will generate an HB_P_MACROPUSHLIST. */
* include/hbpcode.h
* source/compiler/genc.c
* source/compiler/hbfix.c
* source/compiler/hbpcode.c
+ Added: new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.
* source/vm/hvm.c
* source/vm/macro.c
+ Added: support for new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.
/* HB_P_MACROPUSHINDEX not completed yet.*/
/* NOTE: This implements macro as literal array arguments list syntax <{ &cMacro }>.
( &Cmacro ) and Array[ &cMacro ] are not completed yet.
*** All prgs must be recompiled due to new opcodes !!!
*/
* include/hbexpra.c
% Wrapped hb_compExprSetGetBlock() unneeded with simplex build, with #ifndef SIMPLEX
* include/hbexprb.c
* Disabled support for HB_PUSHMACROARG within hb_compExprUseAssign()
* include/hbexprc.c
* Disabled support for HB_PUSHMACROARG within hb_compExprPushOperEq()
* include/hbapi.h
+ Added #define HB_MAX_MACRO_ARGS 16
* source/vm/hvm.c
* source/vm/macro.c
+ Added support for nested HB_P_MACROPUSHARG
* contrib/dot/pp.prg
- Removed bSplit in PP_PreProLine(). Instead added logic to split the line unless line is a directive.