* hb_slex.vc
* makefile.vc
* Synched make files.
* contrib/libmisc/makefile.vc
! Corrected BIN_DIR to ../../bin/vc
* source/compiler/simplex.c
* Revised 1 debug message.
* source/compiler/harbour.slx
* Improved yytext handling.
* source/compiler/harbour.sly
* source/compiler/harbour.y
+ Added <yyerrok> after <yyclearin> to enable reporting of errors on consecutive lines. (only first line was reported!)
* source/compiler/harbour.l
! Corrected definition of _PROCREQ_()
* tests/testdecl.prg
- Removed 1 line of unspported syntax.
* source/macro/macro.slx
* source/compiler/harbour.slx
% Greatly optimized, much simplified, smaller, and faster.
! Converted all "non conventional" macros to functions.
* source/compiler/simplex.c
% Greatly optimized, now as fast as Flex based lexer.
! Converted all "non conventional" macros to functions.
+ Added support for predefind match pattern, {WS} (White Space), in KEYWORDS and WORDS.
+ source/compiler/harbour.sly
* Same as harbour.y, excluding un-needed support for reserved words used as identifiers.
/* Harbour.slx works with either harbour.y or harbour.sly, but harbour.sly creates smaller harbour.exe. */
* hb_slex.bc
* Modified to use harbour.sly
* config/dos/djgpp.cf
+ Added support for $(C_USER) and $(L_USER) /* Could someone please verify, that this is the correct way. */
* source/compiler/simplex.c
+ Added: #define SUSPEND_WORDS 8192, and minor support logic.
* source/compiler/harbour.slx
! Removed 14 #defines, and 14 cases from hb_lex_CustomAction(), by taking advantage of SUSPEND_WORDS.
* source/macro/macro.slx
- Removed 1 unused variable.
* 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 ...)
* source/compiler/harbour.c
* source/compiler/harbour.y
+ Added support for DECLARE FunName(...) AS CLASS ClassName
+ Added support for DECLARE FunName( ... @SomeFun() ... ) - Function Pointer declared parameter.
* source/compiler/simplex.c
* Corrected some compiler warnings.
* source/compiler/harbour.slx
* Reenabled support for ID_ON_HOLD.
* include/hberror.h
+ Added: #define HB_COMP_WARN_RETURN_SUSPECT 28
* source/compiler/hbgenerr.c
+ Added: "4Suspecious return type: \'%s\' expected: \'%s\'"
* source/compiler/hbpcode.c
+ Completed support for Strong Typed variables as declared classes, as well as Adaptive Typed usage with declared classes.
* Few other corrections and enhancements.
* include/hbclass.ch
+ Added TClass declaration:
DECLARE TClass ;
New( cName AS STRING, OPTIONAL SuperParams ) AS CLASS TClass ;
Create() AS OBJECT;
Instance() AS OBJECT ;
AddClsMthds( cName AS STRING, @Method(), nScope AS NUMERIC, n2 AS NUMERIC, n3 AS NUMERIC );
AddMultiClsData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING );
AddMultiData( cType AS STRING, uVal, nScope AS NUMERIC, aDatas AS ARRAY OF STRING );
AddMethod( cName AS STRING, @Method(), nScope AS NUMERIC );
AddInLine( cName AS STRING, bBlock AS CODEBLOCK, nScope AS NUMERIC );
AddVirtual( cName AS STRING )
+ Added declaration to s_oClass AS CLASS TClass
* tests/testdecl.prg
* Minor refinement.
* source/compiler/simplex.c
! Optimized Keywords and Words search, Lexer is 10-15% faster.
* source/compiler/harbour.slx
* source/macro/macro.slx
! Sorted Keywords and Words, to support optimized search, by simplex.
* source/compiler/simplex.c
* Minor improvements.
* source/compiler/harbour.slx
- Removed un-needed cases in hb_lex_CustomAction() added by Ryszard.
- Removed 1 rule each for WHILE CASE BREAK and RETURN to default trailing '[' to string delimiter.
* tests/keywords.prg
* Corrected few lines that had '[' as Array Index to String Delimiter after CASE, BREAK etc.
/* Note keywords.prg should now be valid other than 3 (old) correct errors to do with FIELD*/
SimpLex based harbour does compile it correctly Flex reports 26 incorrect errors.
* source/compiler/harbour.c
* Corrected display of errors statistics to use \r so that error count doen't appear connected to the last reported
compiler line number progress.
* source/macro/macro.slx
- Removed unused asHold
* source/compiler/harbour.slx
- Removed unused asHold
- Optimized some rules.
* source/compiler/simplex.c
- Removed unused asHold
* tests/keywords.prg
* Uncommented all code that was commented other than few lines which I added TODO: PP ... for (problem resulting from PP)
* source/compiler/harbour.slx
! Optimized rules, removed ~100 rules. Rules are simpler, smaller, and faster.
* source/compiler/simplex.c
+ Added: bIgnoreWords (allows for reserve words check to be suspened).
+ Added: iLastToken to save last read Token
+ Added immediate call to CUSTOM_ACTION for Keys, Words, and Selfs, without having to reduce first (when requested).
* Optimized Keys search to not check bNewLine on every iteration.
+ source/macro/macro.slx
+ source/macro/macroslx.c
+ Added SimpLex based macro lexer
* hb_slex.bc
* Modified to use SimpLex based macro support.
/* Could some one please add same to GNU make system? */
* source/compiler/simplex.c
* Added void yy_bytes_buffer()
* source/compiler/harbour.slx
- Removed AS CHARACTER, AS BOOLEAN, AS OBJ, AS NUM
/* Left AS VARIANT and AS USUAL until vote results tabulated. */
* utils/hbdoc/ft_funcs.prg
* Changed AS CHAR -> AS STRING and AS NUM to AS NUMERIC
* source/compiler/simplex.c
* Changed to use YY_DECL macro in declaration of yylex()
+ doc/simplex.txt
+ Added 1st draft of SimpLex documentation.
* source/compiler/simplex.c
+ Added overidable macro STREAM_EXCEPTION()
* source/compiler/harbour.l
* Modified to return every \n to correct line numbers reporting.
/* Note: removed note about . after \n, I beleive it was needed to avoid conflict with $ which is no longer used,
and should be avoided, due to few other side effects. */
source/compiler/harbour.slx
* Standadized un-terminated strings messages.
* source/compiler/harbour.slx
! Optimized handling of Hex Numbers.
+ Added hash support for literal strings.
* Increased aTexts[] to 1024
* source/compiler/simplex.c
! Removed todo of pair action.
* source/compiler/harbour.slx
* Corrected support for PARAMETERS
+ Added type casts to allow c++ mode compilation
* source/compiler/simplex.c
- Removed unused vars.
+ Added type casts to allow c++ mode compilation
* include/hbcomp.h
+ Added: external BOOL hb_comp_bSimpLex
* source/compiler/harbour.c
+ Added: BOOL hb_comp_bSimpLex
+ Added: if( hb_comp_bSimpLex ) tests before releasing name strings of vars, and symbols.
+ Added: call to hb_compReleaseStrings(), if hb_comp_SimpLes is TRUE, after code generation.
* source/compiler/harbour.slx
+ Added: logic to resuse same allocated strings when string for identifier was perviously allocated.
+ Added: INIT_ACTION macro to set hb_comp_bSimpLex to TRUE.
+ Added: Function hb_compReleaseStrings()
* source/compiler/harbour.l
+ Added: empty Function hb_compReleaseStrings() to avoid link error.
* source/compiler/hbslex.c
* source/compiler/simplex.c
* Moved standard #includes from simplex to hbslex.
* source\compiler\simplex.c
* Improved handling of WhiteSpace, NewLine, and Eof.
* source\compiler\harbour.slx
+ Added rule to return only last CR in sequence of empty lines.