* contrib/dot/pp.prg
! Fixed support for '$' in NextToken() and NextExp()
+ Added nAtSkipStr() to exclude content of strings when searching for ';'
! Fixed Multi Line logic to use nAtSkipStr() instead of At()
+ Added infile C versions for NextToken() and NextIdentifier()
+ Added precompiled rules for FiveWin.ch (Harbour)
+ Added precompiled rules for RP_Run.ch.
* source/compiler/genc.c
+ Added few #include files to generation of inline C.
* contrib/dot/pp.prg
* Few corrections to NextToken() and CompileRule() to match Clipper behaviour regrding decimal point, and decimal numbers.
* source/pp/ppcore.c
- Removed unused variable as per compiler warning.
* source/vm/hvm.c
! Fixed HB_P_POPFIELD and HB_P_POPVARIABLE to NOT pop top stack element pre-maturely.
Item is now pop only after assignment took place. This fixes problem where the FieldPut rutine had to use the stack,
thus overriding the assigned item.
* include/hbclass.ch
! Corrected few minor typos.
* source/compiler/harbour.slx
* source/macro/macro.slx
- Commented few unused lines.
* contrib/dot/pp.prg
% Rewrote NextToken() and NextExp().
+ Added NextIdentifier()
! Found that Clipper PP is not processing tokens read by NextToken() and NextExp() so removed recursive support,
and changed logic in ProcessLine() to linear process:
#defines against all valid Identifiers - Expansion forces a resacn from top.
#[x]translates against all tokens - Expansion forces a resacn from top of #defines.
#[x]command agains the first token - Expansion forces a resacn from top of #defines.
! Corrected and refined many aspects of Interpreter mode.
+ Added ExecuteMethod() and support for OO syntax.
+ Added support for -I<includepaths...> command line switch.
* contrib/dot/rp_run.ch
+ Added support for OO syntax.
* contrib/dot/pp.txt
* Updated documentation.
* include/hbclass.ch
% Removed many redundant rules (recently added for OO integrity checks).
/* Found the PP problem that stopped me from implementing this optimized form before.
It seems the PP has a problem with "[" follwing a an identifier without a space prefix like:
#command TEST[([<param,...>])]
It seems to work OK like this:
#command TEST [([<param,...>])]
*/
* include/hbclass.ch
! Fixed declaration support for OnError() METHODS
! Fixed support for Methods having space prefixing the "( ... )" in the method implementation.
+ Refined #error messages to report the Class Name .
* source/pp/ppcore.c
* Removed recently added but not required support of #define expansion in #error directive.
* include/hbclass.ch
+ Added logic for NO Checking of OO Syntax (#ifdef NO_OO_ERR) - Use /dNO_OO_ERR to disable OO Syntax Checking.
* source/pp/ppcore.c
* Temporarily disabled support of #define expansion in #error directive.