Commit Graph

646 Commits

Author SHA1 Message Date
Jean-Francois Lefebvre
b7abfe9244 2001-01-08 22:18 GMT+0100 JFL (mafact) <jfl@mafact.com> 2001-01-08 21:24:17 +00:00
Ron Pinkas
1d698b2bf5 2000-01-02 17:10 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/genc.c
     * Minor correction.
2001-01-03 01:08:10 +00:00
Ron Pinkas
db79a72304 2000-01-02 10:00 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.l
     + Added support for inline C code.
2001-01-02 18:10:43 +00:00
Ron Pinkas
191a684ad8 2000-01-01 23:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     * Minor correction in hb_compInlineAdd()
2001-01-02 07:36:29 +00:00
Ron Pinkas
8d2b4bd7f0 2000-01-01 22:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hberrors.h
   * source/compiler/hbgenerr.c
     + Added: "Unterminated inline block in function: \'%s\'" and "Too many inline blocks"

   * include/hbcomp.h
   * source/compiler/harbour.c
     + Added hb_compInlineNew(), hb_compInlineAdd(), and hb_compInlineFind()

   * source/pp/ppcomp.c
   * source/compiler/harbour.slx
   * source/compiler/genc.c
     + Added support for inline C code blocks.

   + tests/inline_c.prg
     + Added new test to demonstrate new inline C support.
2001-01-02 06:53:30 +00:00
Ryszard Glab
ccc567b1d0 ChangeLog 2000-12-12 21:25 UTC+0100 2000-12-12 20:22:23 +00:00
Ron Pinkas
edb06cb10a 2000-12-03 15:05 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     ! Optimized __GETA() support, and changed it to be implementated identical to Clipper.
       /* Clipper passed a bGet Block which refrences the Base Array Variable and not the Variable itself.
          Clipper passes NIL instead of bGet block if the Base Array is MACROVAR or MACROTEXT.
          Clipper does not optimize "&Macro" to Macro, but Harbour does! */

   * source/rtl/tgetint.prg
     * __GETA() Changed 1st parameter aVar to bGetArray and logic to get the Base Array if bGetArray is NIL
       /* Optimized to not use macro if possible (most cases) even if the GetArray is a macro. */

   * tests/testget.prg
     + Added additional test.
2000-12-03 23:21:19 +00:00
Ron Pinkas
21a332f04c 2000-12-01 01:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     ! Minor optimization.
   * source/rtl/tgetint.prg
     * Corrected typo
2000-12-01 09:53:40 +00:00
Ron Pinkas
0c2228a024 2000-11-30 18:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbmacro.h
   * source/macro/macro.y
   * source/vm/macro.c
     ! Renamed hb_compParse() to hb_macroYYParse(). We already have hb_macroParse() and hcompparse()

   * source/compiler/harbour.y
     * Added token GET (not used) just so that harboury.h is compatible with harbour.sly

   * source/rtl/tgetint.prg
     * Reverted to use _1 and == NIL to not break Clipper compatibility.

     /* Ryszard, if you want to re-introduce PCount() and HB_PVALUE(), I'll ask (since I wrote this original code)
        that you protect it with #ifdef FLEX etc. If you do I would suggest you further protect it with #ifdef STRICT...
	becuase this will defintly break strict compatability. */
2000-12-01 02:25:20 +00:00
Ron Pinkas
5fa7ef36f3 2000-11-30 10:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     ! Commented out support for Self: as SELF, treat as any other Identifier, until we finalize SELF support.
2000-11-30 18:00:27 +00:00
Ryszard Glab
4866775e31 ChangeLog 2000-11-30 10:55 UTC+0100 2000-11-30 09:45:07 +00:00
Ron Pinkas
159793c2ce 2000-11-29 13:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     * Exported: hb_compFieldGetPos() and hb_compMemvarGetPos()

   * source/compiler/harbour.sly
     ! Changed __GET() support to be parameter compatible with Clipper

   * include/hberrors.h
   * source/compiler/hbgenerr.c
     + Added Error: "GET contains complex macro"

   * source/pp/pptable.c
     - Removed bSetGet from rule of GET, PP output now Clipper compatible.

   * source/vm/memvars.c
     + Added HB_FUNC( __ISMV ) // Return .T. if passed string as a Memory Variable.

   * source/rtl/tgetint.prg
     ! Fixed __GET() to be 100% parameter compatible with Clipper.
     ! When 1st parameter (bSetGet) is NIL the bSetGet will be built internaly,
       not using macro in most cases, even if the Get Variable itslef is a macro :-)

   /* Ryszard, this will further break Flex support for GET, but makes __GET() 100% Clipper compatible as you suggested.
      Please note, that Clipper does *NOT* pass a bSetGet *only* when the Get Var is a *simple* *non* declared Variable.
      Declared Variables in this context are: MEMVAR, FIELD, LOCAL, and STATIC. For all of those, bSetGet *is* generated!
      Clipper also generates bSetGet for "Complex Variables", i.e. Aliased Variables, Object Data, etc.! */
2000-11-29 21:54:03 +00:00
Ron Pinkas
2c5ad9f51d 2000-11-27 08:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbapi.h
   * source/rtl/idle.c
     + Added hb_idleReset()
   * source/rtl/inkey.c
     * Replaced direct idle flags reset with call to hb_idleReset()
   * tests/testidle.prg
     + Added 2nd block test.

   + tests/testget.prg
     + Added test for plain gets, array gets, macro gets, and object data gets.

   * hb_slex.bc
   * include/hbver.h
   * source/common/hbver.c
   * source/compiler/genc.c
   * source/compiler/genjava.c
   * source/compiler/genobj32.c
   * source/compiler/hbusage.c
     + Added HB_VER_LEX macro and added to Build Info.

   * config/dos/djgpp.cf
   * config/linux/gcc.cf
   * config/w32/bcc32.cf
   * config/w32/gcc.cf
     + Added -DSIMPLEX to C[LIB]FLAGS of SimpLex build
2000-11-27 19:17:44 +00:00
Ron Pinkas
8a712df3c5 2000-11-26 21:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hberrors.h
   * source/pp/ppcomp.c
   * source/pp/ppcore.c
     + Added error support for Input buffer overflow .
2000-11-27 05:13:00 +00:00
Ron Pinkas
96cd0348b4 2000-11-26 18:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     + Added Error message if NUMERALS_PER_LINE is exhausted, and set it to 3000 (just below apparent parser limitation)
2000-11-27 02:50:42 +00:00
Ron Pinkas
7c25a95b82 2000-11-24 21:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.y
   * source/compiler/harbour.sly
     + Added support for MacroExpr as FunCall
2000-11-25 05:10:21 +00:00
Jean-Francois Lefebvre
2459138130 2000-11-24 00:10 UTC+0100 jfl (mafact) <jfl@mafact.com> 2000-11-23 23:08:19 +00:00
Ron Pinkas
75294d2ded 2000-11-21 08:55 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/pp/ppcomp.c
   * source/compiler/harbour.c
     * Corrected compiler warnings.

   * source/compiler/harbour.slx
     * Small optimization in handling of s_sLastBlock

   * tests/tstblock.prg
     + Added complex early macro test.
2000-11-21 16:56:14 +00:00
Ron Pinkas
5497bdf1e1 2000-11-16 02:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     ! Fixed jump optimization for HB_P_SEQBEGIN and HB_P_SEQEND
2000-11-16 16:02:46 +00:00
Ryszard Glab
c4c3b17b9a ChangeLog 2000-11-13 20:25 UTC+0100 2000-11-13 19:14:32 +00:00
Ron Pinkas
d60088eac0 2000-11-10 11:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     + Added support for early macro of expansion declared symbol for simple macro expression within CodeBlock (Like Clipper).

   * source/rtl/tgetint.prg
     ! Corrected creation of bSetGet if uVar == NIL, to avoid compile error:
       "Code block contains both macro and declared symbol references".
2000-11-10 19:43:13 +00:00
Ron Pinkas
3ad80020bf 2000-11-08 24:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/cmdcheck.c
   * utils/hbpp/hbpp.c
     + Added missing type case for C++ compilers.

   * source/compiler/simplex.c
     * Added 1 missing var reset.
2000-11-08 22:10:48 +00:00
Ron Pinkas
bcca8b7b78 2000-11-07 22:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hberrors.h
     + Added: #define HB_COMP_ERR_BLOCK                       47
   * source/compiler/hbgenerr.c
     + Added Error: "Code block contains both macro and declared symbol references"

   * source/compiler/harbour.c
     * Made public: hb_compLocalGetPos() and hb_compStaticGetPos()

   * source/compiler/harbour.slx
     + Added: char * hb_comp_SLX_LastBlock( BOOL bReset )

   * source/compiler/harbour.sly
     + Added logic to support Early Expansions of Macro within CodeBlock unless parenthesized.

   + tests/tstblock.prg
     + New test of Early/Late expansion of Macros within CodeBlocks.
2000-11-08 07:25:07 +00:00
Ryszard Glab
9372a26e6b ChangeLog 2000-11-07 16:25 UTC+0100 2000-11-07 15:23:57 +00:00
Ron Pinkas
28e1134746 2000-11-06 22:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/cmdcheck.c
   * utils/hbpp/hbpp.c
     + Added support for complex Command Line #defines

   * source/pp/ppcore.c
     * Renamed ParseDefine() to hb_pp_ParseDefine() and made it public.
2000-11-07 06:10:11 +00:00
Ryszard Glab
92e1ff661f ChangeLog 2000-11-04 13:35 UTC+0100 2000-11-04 12:39:40 +00:00
Ron Pinkas
3a7b8b8893 2000-11-02 20:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     + Added rule to accept Get and GetA as FunCall

   * source/compiler/harbour.y
     + Added support for pseudo function _GET_()
   * source/compiler/harbour.l
     + Added _GET_(...) => __GET(...)/__GETA(...) logic from harbour.sly

   * source/macro/macro.slx
     * Corrected YY_DECL #define (Thanks John)

   * source/rtl/tget.prg
   * include/hbextern.ch
     - Removed no longer needed _GET_()
2000-11-03 23:42:27 +00:00
Ron Pinkas
c3cde2a777 2000-11-02 15:20 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     + Added support for extended parameters to __GET() and __GETA()
     ! Corrected 2nd parameter of __GETA() to reflect only the Base Array Name.

   * source/rtl/tget.prg
     ! Added support for :SubScript in __GETA()

   * include/hbextern.ch
     - Removed _GET_
     + Added __GETA
2000-11-02 23:18:49 +00:00
Ron Pinkas
ee24175dc0 2000-11-01 17:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.sly
     ! Optimized _GET_ support.
     + Added support for GET of ObjectData and ObjectData ArrayIndex.

   * source/rtl/tget.prg
     + Added method ParsePict() and logic to support dynamic modification of the picture by altering :Picture as in Clipper.

   * tests/testread.prg
     + Added line to demonstrate GET of ObjectData and dynamic modification of a PICTURE clause.
2000-11-02 01:28:51 +00:00
Ron Pinkas
97f36b7075 2000-11-01 04:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     + Added support for pseudo function _GET_(...)
   * source/compiler/harbour.sly
     + Added support for pseudo function _GET_(...) to be converted into appropriate __GET(...) or __GETA(...)
   * source/rtl/tget.prg
     + Added __GETA() to correctly support early binding of Array Element Index of GET
   * tests/testread.prg
     + Added code to test correct (early) binding of Array Element Index of GET
2000-11-01 12:23:24 +00:00
Ron Pinkas
b324acddea 2000-10-27 08:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/genc.c
    * source/compiler/genhrb.c
    * source/compiler/genjava.c
    * source/compiler/genobj32.c
    * source/compiler/harbour.c
    * source/compiler/harbour.l
    * source/compiler/harbour.slx
    * source/compiler/harbour.sly
    * source/compiler/harbour.y
      - Removed License Exception from core compiler files that are not part of HVM or HRL

    /* Dave, could you please verify this is correct. */
2000-10-27 15:54:28 +00:00
Ron Pinkas
5fc2d50895 2000-10-22 09:05 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/simplex.c
     ! Corrrected bug reported by Luiz regarding menuto.prg

   * source/compiler/harbour.slx
     ! Corrected 1 debug trace message.

   * contrib/dot/pp.prg
     ! Corrected "Unbalanced '{'" warning reported by John.
     ! Corrected 2 typos in variable names reported by John.
2000-10-22 16:10:16 +00:00
Ryszard Glab
19679cd238 ChangeLog 2000-10-15 14;25 UTC+0100 2000-10-15 12:15:48 +00:00
David G. Holm
82ea52b808 See ChangeLog entry 2000-10-10 16:30 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2000-10-10 20:48:46 +00:00
David G. Holm
e3c4d1c3d1 See ChangeLog entry 2000-10-05 16:00 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2000-10-05 20:14:26 +00:00
David G. Holm
31d5180c0a See ChangeLog entry 2000-10-05 15:00 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2000-10-05 19:10:56 +00:00
Ron Pinkas
90dd4a548c 2000-10-02 13:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/hbpcode.c
     * Corrected 1 compiler warning.

   * source/pp/ppcomp.c
     * Cleaned-up and corrected bug when rules files had an #include directive.
     + Added CloseInclude() and moved relevant logic into it.

   * source/pp/ppcore.c
     - Removed unused s_iIncludes, and hb_pp_nEmptyStrings

   * utils/hbpp/hbpp.c
     + Added local hb_pp_nEmptyStrings to hb_pp_Parse()
2000-10-02 20:02:42 +00:00
Ron Pinkas
c286823cb4 Added few comments. 2000-09-27 16:39:49 +00:00
Ron Pinkas
807f1e918a 2000-09-23 10:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.l
     * Removed TODO 4 Char abbreviation (done few weeks back).
2000-09-23 17:08:41 +00:00
Ron Pinkas
a3c43d0a26 Modified to use harbour.sly rather than harbour.y when using SimpLex. 2000-09-19 17:27:51 +00:00
Ron Pinkas
df03398e17 Minor esthetics changes. 2000-09-19 15:40:07 +00:00
Ron Pinkas
d7a1cd7c31 Changed const to static for language definition variable declarations. 2000-09-19 15:14:54 +00:00
Ron Pinkas
eca55336b8 Corrected djgpp warning. 2000-09-19 05:36:54 +00:00
Ron Pinkas
a5e4deaa88 2000-09-18 09:30 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
   * source/compiler/harbour.sly
   * source/compiler/harbour.y
   * source/compiler/simplex.c
   * source/macro/macro.slx
     ! Corrected compiler warnings.
2000-09-18 16:36:54 +00:00
Ron Pinkas
ba6f7b3667 2000-09-17 23:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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
2000-09-18 07:04:53 +00:00
Ron Pinkas
4a4e7b593b 2000-09-08 03:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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.
2000-09-08 11:00:40 +00:00
Ron Pinkas
b1658bda6d 2000-09-07 00:10 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbcomp.h
   * source/compiler/harbour.c
     + Added: char hb_comp_cCastType

   * source/compiler/harbour.y
     ! Optimized AsType
     + Added: support for type casting like: Var := FunCal() AS ... and, return Var AS ...
     /* Todo: add support for Array[n] := ... AS ..., and oVar:Data := ... AS ... */

   * source/compiler/hbpcode.c
     + Added type casting support to:
       HB_P_POPLOCAL
       HB_P_POPLOCALNEAR
       HB_P_POPMEMVAR
       HB_P_POPSTATIC
       HB_P_RETVALUE

   * include/hbclass.ch
     + Added type casting to resolve Strong Type warnings:
       return s_oClass:Instance() AS CLASS _CLASS_NAME_
       local Self AS CLASS <ClassName> := QSelf() AS CLASS <ClassName>

   /* Note: Strong Type code, and Class code, should compile with upto -w4, without [invalid] Strong Type warnings. */
2000-09-07 07:31:31 +00:00
Ron Pinkas
c201844c39 2000-09-06 12:40 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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 ...)
2000-09-06 19:53:10 +00:00
Ron Pinkas
488bdded7a 2000-09-02 12:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/pp/ppcore.c
     + Added new kind of Result Marker - OMMIT, singinfied as <-Identifier->
       /* This allows for custom code based on existance of optional clause, when the value of the clause itself is not needed */

   * include/hbclass.ch
     * Took advantage of new Ommit Result Marker, changed [<.ctor.> AS CLASS _CLASS_NAME_] to [<-ctor-> AS CLASS _CLASS_NAME_]

   * source/compiler/harbour.y
     - Removed rules for DummyTrue, used in _HB_MEMBER (no longer needed)
2000-09-02 19:54:48 +00:00
Ron Pinkas
2d1a852803 2000-09-02 09:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* hb_slex.bc
     * Synchronized with makefile.bc

   * include/hbclass.ch
     + Added: [AS <type>] optional clause to all Methods/Messages syntax.
     + Added directives to generate class declaration from same class creation code.

   * include/hbcomp.h
   * source/compiler/harbour.c
     + Added: char hb_comp_cDataListType;

   * source/compiler/harbour.l
     + Added support for new _HB_CLASS and _HB_MEMBER alternate class declaration syntax.

   * source/macro/macro.slx
     ! Moved .T., .Y., .F., and, .N. from self contained words to words.

   * source/compiler/harbour.slx
     ! Moved .T., .Y., .F., and, .N. from self contained words to words.
     + Added support for new _HB_CLASS and _HB_MEMBER alternate class declaration syntax.

   * source/compiler/harbour.y
     ! Improved definition of formal and optional paramter lists.
     + Added support for alternate class declaration syntax:
       _HB_CLASS ClassName
       _HB_MEMBER { [AS ...] Var1, VarN }
       _HB_MEMBER MethodName( [ [OPTIONAL] [@]FormalParam [AS ...] | @FunPointer() ] ) [ AS ... ]
       /* This syntax allows the class declaration to be on multiple seperated lines (needed to allow utilization of class creation code.)
          Tokens _HB_CLASS & _HB_MEMBER are not final, until some discussion with Ryszard. */

   * source/compiler/hbpcode.c
     * Completed classes strong type support for adaptive type variable.

   * source/rtl/tlabel.prg
   * source/rtl/treport.prg
     ! Corrected typos: AS {} -> INIT {} AS ARRAY, AS .T. -> INIT .T. AS LOGICAL etc..

   * tests/testdecl.prg
     * Changed to demonstrate class creation used as declaration.

   * utils/hbtest/hbtest.prg
     * Changed DBFNTX -> DBFCDX (was not working because DBFNTX is disabled.
2000-09-02 16:30:36 +00:00