Commit Graph

536 Commits

Author SHA1 Message Date
Ron Pinkas
6aa2f45f5b 2000-07-22 23:30 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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.
2000-07-23 06:32:31 +00:00
Alexander S.Kresin
f59a96e84f 2000-07-22 23:08 GMT+3 Alexander Kresin <alex@belacy.belgorod.su> 2000-07-22 19:17:46 +00:00
Ryszard Glab
f3fd7233db ChangeLog 2000-07-16 17:40 UTC+0100 2000-07-16 15:37:11 +00:00
Ryszard Glab
ffe49c60fd ChangeLog 2000-07-15 20:00 UTC+0100 2000-07-15 17:50:44 +00:00
Ron Pinkas
b3e611d907 2000-07-14 22:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     ! Removed Todo: Hex Numbers. There are no more known TODOs.
2000-07-15 05:42:12 +00:00
Ron Pinkas
7fdc515e94 2000-07-14 09:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/simplex.c
     ! Minor correction, to accept a match, if all rule's tokens used.
2000-07-14 16:42:37 +00:00
Ron Pinkas
de94c9d0b3 2000-07-13 19:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     ! Removed excess characters at end of #undef directives.
2000-07-14 02:01:43 +00:00
Ron Pinkas
9de1dac58e 2000-07-13 07:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     * Corrected premature release of MACROTEXT
2000-07-13 14:45:21 +00:00
Ron Pinkas
531c38c9f8 2000-07-12 20:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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
2000-07-13 03:45:45 +00:00
David G. Holm
753c7cc298 2000-07-12 12:30 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2000-07-12 16:41:36 +00:00
Maurilio Longo
c4dfba86e4 20000712-18:18 GMT+2 Maurilio Longo <maurilio.longo@libero.it> 2000-07-12 16:26:03 +00:00
Ryszard Glab
7f4edde7c8 ChangeLog 2000-07-12 10:25 UTC+0100 2000-07-12 08:19:34 +00:00
Viktor Szakats
7a5701da69 2000-07-12 08:46 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-07-12 07:29:09 +00:00
Ron Pinkas
fc355a3bac 2000-07-11 09:30 UTC+0800 Ron Pinkas <ron@profit-master.com>
* hb_slex.bc
     * Updated to match makefile.bc

   * source/compiler/harbour.l
   * source/compiler/harbour.c
     - Removed refrences to hb_compReleaseStrings()

   * source/compiler/harbour.slx
     * Changed identifier reuse logic to use hb_compIdentifierNew()
2000-07-11 16:48:10 +00:00
Ryszard Glab
1ceccebaf4 ChangeLog 2000-07-11 12:00 UTC+0100 2000-07-11 11:02:16 +00:00
Ron Pinkas
de70fac98b 2000-07-10 20:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbcomp.h
   * source/compiler/harbour.y
   * source/compiler/hbgenerr.c
     - Removed hb_comp_szFile

   * source/compiler/harbour.slx
     * Reduced aStrings and YY_BUF_SIZE to 2048

   * source/compiler/simplex.c
     + Added RTL license exception.
2000-07-11 03:29:43 +00:00
Ryszard Glab
24a16531ea ChangeLog 2000-07-10 11:10 UTC+0100 2000-07-10 09:03:42 +00:00
Ron Pinkas
1d9fdf35aa 2000-07-09 01:02 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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.
2000-07-09 08:34:21 +00:00
Ron Pinkas
8d1cb942ee 2000-07-08 19:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source\compiler\simplex.c
  * source\compiler\harbour.slx
    * Short term copies dynamic memory copies of yytext are being released at <EOL>.
2000-07-09 02:50:37 +00:00
Ron Pinkas
0f31168af5 2000-07-08 15:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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.
2000-07-08 22:15:46 +00:00
Ron Pinkas
0ffa8abdf3 commented SHOW_TOKENS in harbour.slx 2000-07-08 00:51:49 +00:00
Ron Pinkas
0f6294e523 - include\harbour.slx
- source\compiler\harbourl.c

  + b32_slex.bat
  + hb_slex.bc

  + source\compiler\hbslex.c
  + source\compiler\simplex.c
  + source\compiler\harbour.slx
2000-07-08 00:27:47 +00:00
Ron Pinkas
758e044984 Added proposed new Lexer files harbour.slx and harbourl.c 2000-07-06 06:51:57 +00:00
Ron Pinkas
5f871ca7b3 2000-06-26 06:22 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.l
     ! Fixed 3 typos that made strings to be compiled with the closing string delimiter, causing Run-Time error 9004.
2000-06-26 13:27:54 +00:00
Ron Pinkas
4f5dd5cb17 2000-06-25 22:14 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-26 05:30:43 +00:00
Ron Pinkas
2a7952bc28 2000-06-25 03:35 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hbgenerr.c
     ! Refined line numbers reported.

   * source/compiler/harbour.l
     ! Rewrote (again) rules for STRING1 STRING2 STRING3 INDEX. Rules for strings much simpler.
       /* Flex had some problem with $ that caused output of strings. */
2000-06-25 23:09:08 +00:00
Ron Pinkas
057aabe723 2000-06-25 03:35 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hbgenerr.c
     ! Fixed line number when in <eol> was 1 too short.

   * make_b32.bat
     ! Removed -i (ignore erros).
2000-06-25 10:38:11 +00:00
Ron Pinkas
2bdcf6417e 2000-06-24 11:42 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-24 19:06:52 +00:00
Ron Pinkas
baf6469d63 2000-06-22 03:30 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-22 10:38:30 +00:00
Ron Pinkas
6e356923ef 2000-06-19 13:38 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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 [...] */
2000-06-20 04:31:43 +00:00
Viktor Szakats
1479859068 2000-06-19 10:11 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-06-19 08:12:44 +00:00
Viktor Szakats
8fafebb35b 2000-06-17 18:58 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-06-17 16:56:00 +00:00
Ron Pinkas
cc8488348d 2000-06-16 01:42 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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)
2000-06-16 08:48:09 +00:00
Ron Pinkas
99ca708ef6 2000-06-15 20:56 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-16 04:07:14 +00:00
Ron Pinkas
1738f03fce 2000-06-13 03:00 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-13 10:08:22 +00:00
Ryszard Glab
b58aaa9a88 ChangeLog 2000-06-12 16:00 UTC+0100 2000-06-12 13:54:31 +00:00
Ryszard Glab
bc1ffaa562 ChangeLog 2000-06-12 15:40 UTC+0100 2000-06-12 13:37:08 +00:00
Ron Pinkas
cfedfaf3f2 2000-06-11 23:30 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
source/compiler/harbour.c
     * hb_compCompile() Added Clipper like message showing how many parse errors found.
     * hb_compAutoOpen() added 2nd paramter pointer to bSkipGen of caller (hb_compCompile()).
       Added logic to not "remember" hb_comp_bAnyWarning and hb_comp_iErrorCount from previous parsings.
2000-06-12 06:41:50 +00:00
Ron Pinkas
4b20bace29 2000-06-11 21:30 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* include/hbcomp.h
     * Enclosed declarations of functions to support in-line nested compilation within #ifdef HB_NESTED_COMPILE

   source/compiler/harbour.y
     * Enclosed functions to support in-line nested compilation within #ifdef HB_NESTED_COMPILE
     * Changed rules for DO ... to add name of module to hb_comp_pAutoOpen linked list.
     + Added hb_compAutoOpen() - Parses the needed externals when -m not specified
     - Defed out hb_compYACCMAIN() (#if 0) - no longer needed, moved logic into hb_compCompile() and hb_compAutoOpen()

   source/compiler/harbour.l
     + Added #define YY_USER_ACTION ... to fix Flex problem with ^ (BOL RegExp)
     * Enclosed functions to support in-line nested compilation within #ifdef HB_NESTED_COMPILE

   source/compiler/harbour.c
     * Enclosed functions to support in-line nested compilation within #ifdef HB_NESTED_COMPILE
     * Modified hb_compCompile() to support future in-line nested compilation, and defed it out.
     * Changed hb_compCompile() to call hb_compAutoOpen() for modules called in DO ... that are not defined in main prg.
     ! Completed -m support, by default directives in external opened modules will be avialable to subsequent externals.
       this feature is defed out if strict compatibilty ise selected.
2000-06-12 04:50:50 +00:00
David G. Holm
3e36a6ea4b See ChangeLog entry 2000-06-09 15:30 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2000-06-09 19:39:24 +00:00
Ron Pinkas
f4a4d1f980 2000-06-07 22:50 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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
2000-06-09 06:59:56 +00:00
Ron Pinkas
52c70a7db3 2000-06-07 22:50 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-08 05:50:09 +00:00
Ron Pinkas
31f151b6ae 2000-06-06 20:10 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/cmdcheck.c
      + Implemented support for -m

    * include/hbcomp.h
      + Added structure _HARBVARS to hold Harbour Session Variables
      + Added structure +AUTOOPEN to hold names of external modules already compiled.

    * source/compiler/harbour.c
      + Moved the parsing/compiling logic into new hb_compCompile()
      + Added:
		static void hb_compAutoOpenAdd( char * szName );
		static BOOL hb_compAutoOpenFind( char * szName );
		static void hb_compSaveVars( PHARBVARS, int );
		static void hb_compRestoreVars( PHARBVARS, int );

    * source/compiler/harbour.l
      + Added:
		void * hb_compGet_YY_CURRENT_BUFFER()
		void hb_compSet_YY_CURRENT_BUFFER( void * pBuffer )
		int hb_compGet_yy_init( void )
		void hb_compSet_yy_init( int i )
		int hb_compGet_yy_start( void )
		void hb_compSet_yy_start( int i )
		int hb_compGet_yy_did_buffer_switch_on_eof( void )
		void hb_compSet_yy_did_buffer_switch_on_eof( int i )

     * source/compiler/harbour.y
       + Added logic to call hb_compCompile() when DO ... or DO ... WITH
       + Added:
		void * hb_compGet_pLoops( void )
		void hb_compSet_pLoops( void * pLoops )
		void * hb_compGet_rtvars( void )
		void hb_compSet_rtvars( void * rtvars )

      *	source/compiler/hbusage.c
	+ Added display of -m compiler switch

Please note:

1. Implementation is practicaly completed, but there is one known issue to be resolved: Once we open and compile
   an external module, the very next prg line in the parent prg is not processed, I would love to get some assistance
   with this - Ryszard, Antonio, Victor, Paul? as I am seriously limited with time over this week.
   It seems I am not saving one of Bison/Flex vars, so my restore of the previous session is not complete :-(

2. Clipper seem to have a bug, on the following code:
   DO WHILE WITH ...
   Clipper will attempt to compile external "WITH.PRG" instead of "WHILE.PRG", can any one advise if I am missing something here...
   In our implementation the above line will attemp to compile "WHILE.PRG"
2000-06-07 03:47:47 +00:00
Ron Pinkas
a3a61fd11d 2000-06-04 03:05 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* 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.
2000-06-04 10:12:52 +00:00
Viktor Szakats
6be58420c8 2000-06-02 02:54 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-06-02 01:55:16 +00:00
Viktor Szakats
d13e8ab76f 2000-06-02 02:54 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-06-02 01:34:35 +00:00
Viktor Szakats
879a134ee1 2000-05-29 08:29 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-29 06:28:24 +00:00
Viktor Szakats
9217251a5a 2000-05-29 02:47 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-29 00:51:57 +00:00
Viktor Szakats
eb952f521c 2000-05-28 22:57 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-28 21:01:27 +00:00
Viktor Szakats
be81ee127d 2000-05-27 23:12 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-28 19:52:03 +00:00