* source/compiler/harbour.c
* Exported: hb_compFieldGetPos() and hb_compMemvarGetPos()
* source/compiler/harbour.sly
! Changed __GET() support to be parameter compatible with Clipper
* include/hberrors.h
* source/compiler/hbgenerr.c
+ Added Error: "GET contains complex macro"
* source/pp/pptable.c
- Removed bSetGet from rule of GET, PP output now Clipper compatible.
* source/vm/memvars.c
+ Added HB_FUNC( __ISMV ) // Return .T. if passed string as a Memory Variable.
* source/rtl/tgetint.prg
! Fixed __GET() to be 100% parameter compatible with Clipper.
! When 1st parameter (bSetGet) is NIL the bSetGet will be built internaly,
not using macro in most cases, even if the Get Variable itslef is a macro :-)
/* Ryszard, this will further break Flex support for GET, but makes __GET() 100% Clipper compatible as you suggested.
Please note, that Clipper does *NOT* pass a bSetGet *only* when the Get Var is a *simple* *non* declared Variable.
Declared Variables in this context are: MEMVAR, FIELD, LOCAL, and STATIC. For all of those, bSetGet *is* generated!
Clipper also generates bSetGet for "Complex Variables", i.e. Aliased Variables, Object Data, etc.! */
* include/hbset.h
* include/set.ch
* source/pp/pptable.c
+ Added _SET_IDLEREPEAT = 101
* source/rtl/set.c
+ Added suport for SET( _SET_IDLEREPEAT ) - Default is .T.
* source/rtl/idle.c
- Removed HB_IDLE_RESET()
* Changed handling of Idle Process to default to REPEAT.
* tests/onidle.prg
- Removed call to HB_IDLE_RESET()
+ tests/testidle.prg
+ New test of Idle Blocks in default (REPEAT) mode and optional NON REPEAT mode.
* include/hberrors.h
+ Added: #define HB_COMP_ERR_BLOCK 47
* source/compiler/hbgenerr.c
+ Added Error: "Code block contains both macro and declared symbol references"
* source/compiler/harbour.c
* Made public: hb_compLocalGetPos() and hb_compStaticGetPos()
* source/compiler/harbour.slx
+ Added: char * hb_comp_SLX_LastBlock( BOOL bReset )
* source/compiler/harbour.sly
+ Added logic to support Early Expansions of Macro within CodeBlock unless parenthesized.
+ tests/tstblock.prg
+ New test of Early/Late expansion of Macros within CodeBlocks.
* include/hbexpra.c
* source/pp/pptable.c
! Excluded Ryszard changes using #if[n]def SIMPLEX from SimpLex version.
Ryszard code remains intact for Flex version (including 3 reported bugs).
* hb_slex.bc
+ Added -DSIMPLEX when compiling source/pp/pptable.c, source/compiler/expropta.c, and source/macro/macroa.c
/* This allow conditional exclusion of Ryszard changes for SimpLex version. */
/* Todo - have to do same in GNU make */
* source/compiler/harbour.sly
+ Added rule to accept Get and GetA as FunCall
* source/compiler/harbour.y
+ Added support for pseudo function _GET_()
* source/compiler/harbour.l
+ Added _GET_(...) => __GET(...)/__GETA(...) logic from harbour.sly
* source/macro/macro.slx
* Corrected YY_DECL #define (Thanks John)
* source/rtl/tget.prg
* include/hbextern.ch
- Removed no longer needed _GET_()
* source/compiler/harbour.sly
+ Added support for extended parameters to __GET() and __GETA()
! Corrected 2nd parameter of __GETA() to reflect only the Base Array Name.
* source/rtl/tget.prg
! Added support for :SubScript in __GETA()
* include/hbextern.ch
- Removed _GET_
+ Added __GETA
* contrib/dot/pp.prg
! Added logic to support multi-word stoppers needed by multi-word restricted list, like
[ <lClick: ON CLICK, ON LEFT CLICK> <uLClick> ]
/* Only 1 known error remains in processing of fwh/samples/fwbrow.prg */
* include/hbclass.ch
* Temprarily removed \ preceding < of not existing match markers, in nested # directive in result.
/* Need to be readded once PP is fixed. */
* contrib/dot/pp.prg
! More corrections and refinments in pre-processing
* Improved handling of command line parameters (no longer requires -P, -CCH doesn't require -U)
! Corrected handling of file extension.
* include/hbclass.ch
* Corrected <MethodName> to \<MethodName> when result marker not a match marker.
* Corrected <params,...> to <param> (result marker used match marker format).
* include/hbcomp.h
* source/compiler/harbour.c
+ Added: char hb_comp_cCastType
* source/compiler/harbour.y
! Optimized AsType
+ Added: support for type casting like: Var := FunCal() AS ... and, return Var AS ...
/* Todo: add support for Array[n] := ... AS ..., and oVar:Data := ... AS ... */
* source/compiler/hbpcode.c
+ Added type casting support to:
HB_P_POPLOCAL
HB_P_POPLOCALNEAR
HB_P_POPMEMVAR
HB_P_POPSTATIC
HB_P_RETVALUE
* include/hbclass.ch
+ Added type casting to resolve Strong Type warnings:
return s_oClass:Instance() AS CLASS _CLASS_NAME_
local Self AS CLASS <ClassName> := QSelf() AS CLASS <ClassName>
/* Note: Strong Type code, and Class code, should compile with upto -w4, without [invalid] Strong Type warnings. */
* source/compiler/harbour.l
+ Added AS CHAR[ACTER] for compatibility with FW (FW can't use #translate AS CHAR => AS STRING, because FW also uses AS CHAR
in DLL calls where AS CHAR referes to *native* char type).
! Correted AS ... to allow multiple space/tab, and support abbreviations.
* source/compiler/simplex.c
+ Added KEYWORD_ACTION() and WORD_ACTION() macros.
* source/macro/macro.slx
! Optimized numerous HB_*_ID to a single HB_IDENTIFIER.
* source/compiler/harbour.slx
+ Added AS CHAR[ACTER] for compatibility with FW (FW can't use #translate AS CHAR => AS STRING, because FW also uses AS CHAR
in DLL calls where AS CHAR referes to *native* char type.
! Optimized numerous HB_*_ID to a single HB_IDENTIFIER.
* include/hbclass.ch
* Changed _<AssignName> to <AssignName> in HB_MEMBER directives.
+ Added AS CLASS <ClassName> to LOCAL Self := QSelf()
* tests/testdecl.prg
+ Added code to demonstrate missing support for class memeber RT type protection (AS ...)