* include/hberrors.h
* Changed #define HB_PP_ERR_INCLUDE_SELF to HB_PP_ERR_INCLUDE_CYCLIC
* source/pp/ppcore.c
* Changed "Can\'t #include self \'%s\'" to "Cyclic #include not allowed: \'%s\'"
* Changed self refernce #include detection, to detect any #include of an already opened file.
* hb_slex.bc
* makefile.bc
+ Added: -Phb_comp -C to Flex (macro.l) as per GNU make.
+ Added: -phb_comp to Bison (macro.y) as per GNU make.
/* We might need same change in other make files (VC etc.) */
/* BTW, Do we have SimpLex support in those other make files? */
* source/macro/macro.l
* source/macro/macro.y
- Removed: #define yylex hb_complex
* source/macro/macroslx.c
- Removed un-needed comment.
* source/pp/ppcore.c
! Fixed unintended side effect of UPPER-CASING #include file names.
* source/macro/macro.l
* source/macro/macro.y
+ Added: #define yylex hb_complex
* source/pp/ppcore.c
+ Added check for the file path when checking self reference of #include.
+ Added logic to ignore case when checing self reference of #include.
* source/compiler/harbour.l
+ Added rule for orphan "]"
* Monor improvments to INDEX
* source/compiler/hbgenerr.c
* Minor improvements
* source/pp/ppcomp.c
! Corrected line number was adding EmptyLines twice.
* include/hbclass.ch
- Uncommented the VO #xtranslate as they do work correctly.
* source/pp/pplib.c
- Removed int hb_comp_iIncLine
* include/hbcomp.h
- Removed int hb_comp_iIncLine
+ Added int hb_comp_iCompiled
+ Added char* hb_comp_szFile
+ Added BOOL hb_comp_bError
* source/compiler/harbour.c
! Fixed Compile Time Line Numbers
! Fixed Run Time Line Numbers
* source/compiler/harbour.l
! Rewrote rules for STRING1 STRING2 STRING3 INDEX, were severly broken with regard to unterminated support.
/* When working on errors, I founf major problems, with unterminated Array Index and Unterminated Strings
I'm surprised no one reported. This mass was a nightmere to fix. it seems to be working great now. */
* source/compiler/harbour.y
! Many fixes to support correct line numbers.
* source/compiler/hbgenerr.c
! Fixed Error System to never report more than 1 error per source line.
* source/pp/ppcomp.c
- Removed code for hb_comp_iIncLine
* source/pp/ppcore.c
* Minor formating.
* source/pp/ppcore.c
! Added bStrict parameter to getExpReal(), all calls to getExpReal() pass FALSE, other than isExpres().
So getExpReal() will now return invalid tokens like unterminated strings, unless bStrict is TRUE.
* include/hbclass.ch
! Uncommented #xtranslate that was not pre-processing correctly, before recent fixes to ppcore.c and now works correctly.
* source/compiler/harbour.c
! Fixed hb_compLinePush() to generate correct Run-Time Line Numbers.
* source/pp/ppcomp.c
- Removed one // comment.
* source/pp/ppcore.c
* Increased MAX_EXP to 2048 as requested by Brian Hays.
* source/compiler/hbgenerr.c
* source/pp/ppcomp.c
! Fixed reporting of line numbers on erros.
* source/pp/ppcore.c
* More support for [] as string delimiters.
* source/compiler/harbour.l
+ Added support for:
ELSIF [ some string ] ...
DO WHILE [ some string ] ...
WHILE [ some string ] ...
CASE [ some string ] ...
/* Strangly, Clipper chockes on elseif [...] */
* source/pp/ppcore.c
! Fixed isExpress() to check last charcter of the expression and return false if it is one of these:
":/*+-%^=(<>". This fixed another problem reported by Brian Hays to do with the VO comaptibility #translates.
/* We still have to find, why was isExpress() called with only partial expression, this should be fixed. */
* makefile.bc
- Removed redundant -Iinclude from echo into make.tmp (Harbour.exe)
* source/compiler/hbgenerr.c
- Removed no longer needed int iLine
* source/pp/ppcore.c
! Fixed bug PP was not able to parse #command/translate if no space before "=>" like:
#translate CRLF=>Chr(13) + Chr(10)
* source/compiler/harbour.l
* source/compiler/harbour.y
+ Added support for _ProcReq_() - compile time function used to implement SET FORMAT TO and
SET PROCEDURE TO. Clipper implementation doesn't allow a run time function with this name, Harbour
will only intercept it as compile time function, if used at BOL.
As compile time function it only accepts a single "Literal", or "Literal + Literal".
* source/compiler/hbgenerr.c
* source/pp/ppcomp.c
! Fixed line numbering. Warnnings and Errors, should now report correct line numbers.
* source/pp/ppcomp.c
! Fixed missing CR at EOF of #include file, causing #line directive to be on same line with the next line in parrent file.
! Big Improvment of line numbering of #line directive - almost identical to Clipper - to be continued.
* makefile.bc
+ Added ppcomp.c and ppcore.c to list of harbour.exe dependencies.
* source/pp/ppcore.c
* source/compiler/harbour.y
! Corrected initialization of pFile->iLine to 1
* source/pp/ppcomp.c
! Fixed redundnant empty lines generation and line numbering.
* include/hbpp.h
* source/compiler/harbour.c
* source/pp/ppcore.c
* Modified hb_pp_SetRules() to receive 2nd parameter BOOL hb_comp_bQuiet, since ppcore is part of PP.lib which is linked
into HBRUN.exe which does not include harbour.c where hb_comp_bQuiet is defined.
* source/compiler/harbour.l
! Fixed parse error on IF [...]
* source/vm/classes.c
Posted patch provided by JF
* source/rtl/tobject.prg
Posted missing file provided by JF
* source/compiler/harbour.c
* main() Moved calls to hb_pp_init() to hb_pp_SetRules() in ppcore.c to avoid redefinition of standard defs.
* source/pp/ppcore.c
* hb_pp_SetRules() Moved calls to hb_pp_init() from main() in Harbour.c to avoid redefinition of standard defs.
! Minor fixes to warnings and errors.
* source/pp/ppcore.c
* Changed hb_pp_SetRules() to only always default to .CH extension, if file name supplied without extension.
! Converted some printf() messages to standard warnnings and errors.
* include/hberrors.h
+ Added:
#define HB_PP_ERR_CANNOT_OPEN_RULES 15
#define HB_COMP_ERR_BAD_RULES_FILE_NAME 16
#define HB_PP_WARN_NO_DIRECTIVES 2
* source/pp/ppcore.c
* Changed hb_pp_SetRules() to only default to .CH extension, if file name as supplied without extension was not found.
! Improved Messages to report various possible conditions.
* include/hbcomp.h
+ Added: extern char * hb_pp_STD_CH;
* include/hbpp.h
+ Added: extern void hb_pp_SetRules( BOOL (*hb_compInclude)(char *, PATHNAMES * ) );
* source/compiler/hbusage.c
* source/compiler/harbour.c
* source/compiler/cmdcheck.c
+ Added support for -u[FileName]
- Removed TODO for -u
* source/pp/ppcomp.c
+ Added hb_pp_ReadRules() - Logic to process directives from user supplied command defs.
* source/pp/ppcore.c
+ Added hb_pp_SetRules() - Logic to use predefined rules, none, or user defined.
* source/pp/pptable.c
+ Added hb_pp_Table() - Moved predefined rules into this function, to allow for conditional use.
* source/pp/ppcore.c
! Added logic to CommandStuff() to fix problem with Keyword or Match Marker are matched after non provided multiple optional patterns.