* contrib/dot/pp.prg
+ Added #ifdef WIN to support using Windows MessageBox() instead of Alert(), use BLD pp -dWIN to activate.
* contrib/dot/pp_harb.ch
+ Minor revision in TInnterpreter() class.
+ Added wrapper for MessageBox()
* contrib/dot/rp_run.ch
+ Added #ifdef #command to translate
* contrib/dot/pp.prg
+ PP_RunArray( asLines, aParams )
+ PP_Exec( aProcedures, aInitExit, nProcId, aParams )
* Modified all PP_RunXXXX() to use PP_Exec()
* RP_Comp_Err() now repports source line and line number with the sysntax error.
* contrib/dot/pp_harb.ch
+ Added Tinterpreter() class
METHOD New()
METHOD AddLine( cLine )
METHOD SetScript( cText )
METHOD Compile()
METHOD Run()
METHOD RunFile( cFile, aParams, cPPOExt, bBlanks ) INLINE PP_Run( cFile, aParams, cPPOExt, bBlanks )
METHOD ClearRules()
METHOD InitStdRules()
METHOD LoadClass()
METHOD LoadFiveWin()
* contrib/dot/prgscrpt.prg
* Modified to demonstrate TInterpreter() syntax.
* include/hbapi.h
* source/vm/arrays.c
* Fixed bug, in hb_stackArrayFromParams() and modified to accept a frame base parameter.
* source/vm/arrayshb.c
+ Added HB_APARAMS() PRG wrapper to hb_stackArrayFromParams() returning array with passed parameter of the function calling HB_APARAMS()
* source/rtl/do.c
* Added required frams base parameter in calls to hb_stackArrayFromParams(). This fix population of oErr:Args if error occurs.
* contrib/dot/pp.prg
+ Added PP_PreProText( cText [, acLines ] ) returns the pre-process text and optional file asLines with pre=processed lines.
+ Added PP_RunText( cText, [bPreProcess], [aParmas] ) returns the return value of executed code. bPreProcess defaults to .T.
* Enhanced PP_Run( cFile [, aParams] ) to accept optioanl Array with Paramaters.
! Minor correction in NextExp().
* contrib/dot/prgscrpt.prg
* Rewrote sample to demonstarte new simpler wrapper functions:
* contrib/dot/pp.prg
* Renamed PP_ProcessLine() to PP_PreProLine() and PP_ProcessFile() to PP_PreProFile() to allow 10 chars uniqueness.
* Changed STATIC ExecuteMethod() to PP_ExecMethod() and STATIC ExecuteProcedure() to PP_ExecProcedure()
to allow call from external modules, while preserving name space, and 10 chars uniqeness.
* Removed STATIC from RP_*_Err() to allow calls from external modules.
* Changed PP_CompileLine() to accept array of compiled procedures, instead of using a static.
This allows thread safety, and support calls from external modules.
* Changed RP_Run_Err() to accept 2nd parameter the Compiled Procedures Array, and 3rd parameter Module Name.
This allows thread safety, and support calls from external modules.
+ Added PP_RunInit() to support initialization for Interpreter mode from external modules.
+ Added #ifdef __HARBOUR_ #include "pp_harb.ch" to allow Clipper to compile pp.prg.
* contrib/dot/rp_run.ch
* Changed ExecuteMethod() calls to PP_ExecMethod()
+ contrib/dot/pp_harb.ch
+ Added external file holding Harbour specific code that Clipper could not compile.
+ contrib/dot/prgscrpt.prg
+ Added sample to demonstrate PP interpreter embeded in a small prg to run prg driven scripts.
* contrib/dot/pp.prg
* Renamed Main() to PP_Main(), ProcessFile() to PP_ProcessFile() and ProcessLine() to PP_ProcessLine()
* Qualified all "private" functions/procedures with STATIC.
* contrib/dot/pp.prg
* Few minor corrections to NextExp()
! Fixed generation of compiled rules results to always have marker place holders, even if no results exist.
+ Added TraceLog() message about repeatble results for non optional markers.
* Updated burned-in rules for FiveWin.ch with newly generated rules.
+ Added few #ifdef FW to better support compilation with \fwh\samples\buildh.bat
+ Added #include "fwextern.ch" (#ifdef FW) to force link most FW modules.
/* PP, if built like this:
BUILDH pp -dFW
(note -dFW) will produce PP.exe which will run most \fwh\samples\*.prg
Test like this:
PP Tutor01 -R
etc... :-)
*/
* 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.