* source/compiler/hvm.c
* Added FAR support to HB_P_SEQBEGIN and HB_P_SEQEND
* source/compiler/harbour.c
* Modified hb_compGenJumpThere() to revert back to "short" JUMPs when fixing the jumps, it will than use HB_P_NOOP for the unused 3rd byte.
* It now supports all variations of JUMP including SEQBEGIN and SEQEND as well as the logig to not interfere with "short" JUMPs.
+ Added more error handling to hb_compGenJumpThere()
* source/include/hbexprb.c
* Modified handling of .OR. .AND. and IIF() to use "short" JUMPs - note the use of -1 when calling hb_compGenJumpXXX().
* source/compiler/genc.c
+ Added support for HB_P_NOOP (was missing!)
* Modified HB_P_SEQBEGIN and HB_P_SEQEND to support FAR jumps
* source/compiler/hbgenerr.c
+ Added following errors:
"Jump offset too long for HB_P_JUMP needed HB_P_JUMPFAR",
"Jump offset too long for HB_P_JUMPTRUE needed HB_P_JUMPFARTRUE",
"Jump offset too long for HB_P_JUMPFALSE needed HB_P_JUMPFARFALSE",
"HB_P_JUMPx not found when fixing offset"
* source/include/hbexprb.c
+ Added following defines:
#define HB_COMP_ERR_INVALID_JUMP 45
#define HB_COMP_ERR_INVALID_JUMPTRUE 46
#define HB_COMP_ERR_INVALID_JUMPFALSE 47
#define HB_COMP_ERR_JUMP_NOT_FOUND 48
* harbour.y
+ added support for _FIELD->Expression and _FIELD->ALIAS->Expression
"REPLACE Field WITH Exp" and "REPLACE ALIAS->Field WITH Exp" are supported
"REPLACE 1->Field WITH Exp" will compile but requires some more work by Ryszard.
+ added support for Aliased Variables in Push/Pop support.
+ added "Invalid alias expression" error to _szCERRORS.
- Removed Todo # 9 support for _FIELD->Alias->Field.
* harbour.l
+ added {Integer} definition - used by _Field->Area#-> rule
+ added MEMV->& and MEMVA&-> to MACROOP defeinition.
+ added rules for _FIELD->"{Integer}"->", _FIELD->"{Number}"->" (Error condition), _FIELD->"{Integer}"->" and _FIELD->"{Identifier}"->"
* Hberror.h
+ added #define ERR_ALIASEXP 38
+ /Tests/TstAlias.prg
added new test to demonstrate support for aliased expression.
* hberrors.h
+added define WARN_ASSIGN_TYPE and WARN_ASSIGN_SUSPECTED
* compiler.h
+added struct STACK_VAL_TYPE *PSTAC_VAL_TYPE
* harbour.l
+added support for tokens AS NUMERIC, AS CHARACTER, AS LOGICAL, AS DATE, AS ARRAY, AS OBJECT
*modified iLine to initialize to 0 rather than 1
* harbour.y
+added support for extended variable declaration with strong typing
+added logic to support warnings on incompatible and suspecious variable assignments
* compiler.h
added member iUsed to struct VAR
* hberrors.h
added define of codeblock parameter not used warning
* harbour.y
removed PDECLARED_VAR struct definition
removed code to maintain FunVars list
added code to GetVarPos() to reflect use of declared variable
added logic to FixReturns() and CodeBlockEnd() to generate warnings on non used decalred vaiables
removed previous version of nonused declared variables warnings from FunDedf() and {Main}
* include/hberrors.h
added WARN_VAR_NOT_USED
* source/compiler/harbour.y
added warning message "Variable \'%s\' declared but not used in function: %s"
added linked list FunVars to record the usage of declared variables
added logic to maintain FunVars
added logic to check usage as per FunVars in GenReturn()
* include/hberrors.h
added define WARN_AMBIGUOUS_VAR 1
added declaration for new function GenWarning()
* source/compiler/harbour.y
added _szWarnings[] to include parse warning messages
added function GenWarning()
added /w compiler switch to enable warnings
added warning message for ambiguous vars