Commit Graph

178 Commits

Author SHA1 Message Date
Ron Pinkas
c0a23acbcf 2001-04-16 14:40 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     + Added all GET Methods definitions (still need Exported Vars ) - Thanks to Luiz.
     + Added TBCOLUMN definitions - Thanks to Luiz.

   * source/rtl/tget.prg
     ! Correted :ToDecPos to return SELF as in Clipper (after verifying there was NO Low-Level Code conflict).
2001-04-16 21:34:14 +00:00
Ron Pinkas
71f9281476 2001-04-13 09:40 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     + Added TODO comment.

   * source/rdd/dbcmd.c
      Posted COPY TO fix for Harrier (default to TOP if REST or WHILE not provided)
2001-04-13 16:39:10 +00:00
David G. Holm
0e07837322 See ChangeLog entry 2001-04-12 15:00 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2001-04-12 18:56:30 +00:00
Ron Pinkas
5018447cf3 2001-04-10 16:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbcomp.h
     * Changed order of COMDECLARED elements to be more intuitive for static initialization.

   * source/compiler/harbour.c
   * source/compiler/hbpcode.c
     ! Added type casting needed for C++ compilers.
2001-04-10 23:18:33 +00:00
Ron Pinkas
fc1f6778a8 2001-04-09 22:40 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/hbgenerr.c
     * Corrected spelling for suspicious.

   * source/compiler/hbpcode.c
     * Commented one debung printf()

   * include/hbcomp.h
     + Added extern PCOMCLASS hb_comp_pReleaseClass

   * source/compiler/genc.c
     + Added logic to release declared classes after compilation.

   * source/compiler/harbour.c
     + Added logic for standard classes declaration to hb_compDeclaredInit()
     + Added ERROR class declaration and started GET class declaration
2001-04-10 03:42:27 +00:00
Ron Pinkas
bf9fd1abba 2001-04-09 11:50 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hberrors.h
   * source/compiler/hbgenerr.c
     + Added #define HB_COMP_WARN_PARAM_SUSPECT 18 -> "4Suspecious parameter: %s expected: \'%s\'"

   * include/hbcomp.h
     + Added extern PCOMDECLARED  hb_comp_pReleaseDeclared;

   * source/compiler/harbour.c
     + Added static void hb_compDeclaredInit( void ) initializes decalaration of standard functions;

   * source/compiler/genc.c
     * Changed release code from hb_comp_pFirstDeclared to hb_comp_pReleaseDeclared.

   * source/compiler/hbpcode.c
     * Many refinments.
2001-04-09 19:02:59 +00:00
Ron Pinkas
274cba392f 2001-04-08 16:15 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hberrors.h
     ! Corrected typo.

   * source/compiler/harbour.sly
   * source/compiler/harbour.y
     ! Corrected few incorrect "Unreachable code warnings".
     ! Corrected hb_compPushLine() in RECOVER and RECOVERUSING

   * source/compiler/harbour.c
   * source/compiler/hbpcode.c
     ! Improved StrongType logic.
2001-04-08 23:16:24 +00:00
Ron Pinkas
bb7e6f1111 2001-03-24 02:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/hbpcode.c
     ! Fixed some StrongType logic.

   * source/compiler/genc.c
   * source/rdd/dbf1.c
   * source/rtl/gtapi.c
   * source/vm/hvm.c
     ! Corrected Compiler warnings.

   * source/compiler/harbour.c
   * include/hbcomp.h
     * Minor formatting.
2001-04-07 20:27:26 +00:00
Antonio Linares
948b6b4b3b improved support for HB_P_STATICNAME 2001-02-08 10:17:17 +00:00
Antonio Linares
560e500161 HB_P_STATICNAME opcode support. 2001-02-05 09:38:02 +00:00
Antonio Linares
25abb78d95 HB_P_LOCALNAME local index fixed 2001-02-02 14:40:36 +00:00
Ron Pinkas
d51b90e182 2001-01-20 17:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* hb_slex.vc
     + Added -DSIMPLEX to CLIBFLAGS

   * source/compiler/genc.c
     * Minor correction.

   * utils/hbpp/hbpp.c
   * source/pp/pplib.c
   * include/hbcomp.h
   * source/compiler/harbour.c
     + Added hb_comp_iLinePRG and hb_comp_iLineINLINE

   * source/compiler/harbour.l
   * source/compiler/harbour.slx
   * source/compiler/hbgenerr.c
     + Added logic to disallow multiple HB_INLINE() per source line.

   * source/pp/ppcomp.c
   * source/pp/ppcore.c
   * source/pp/pragma.c
     * Corrected double spacing in PPO generation, and added #pragma BEGINDUMP to PPO.
2001-01-21 01:47:49 +00:00
Ron Pinkas
71b35897c3 2001-01-13 02:25 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/genc.c
   * source/compiler/harbour.c
   * source/pp/pragma.c
     + Added support for #pragma BEGINDUMP ... [#pragma STOPDUMP] or EOF.
       /* BEGINDUMP & STOPDUMP are just a suggestion. */

   * utils/hbpp/hbpp.c
   * source/pp/pplib.c
     + Added empty stub hb_compInlineAdd() (needed by pragma.c)

   * tests/inline_c.prg
     + Added code to demonstrate #pragam BEGINDUMP
2001-01-13 10:28:32 +00:00
Ron Pinkas
7c6bd0b33b 2001-01-10 18:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbcomp.h
   * source/compiler/harbour.c
     + Added members szFileName and iLine to structure INLINE, set to originating PRG name and line number.

   * source/compiler/genc.c
     + Added #line directive to INLINE generations, so C compile warnings/errors will report source file and line number in PRG.

   * source/compiler/harbour.l
   * source/compiler/harbour.slx
     + Added Error message if inline C is used with non C output.
     + Added support for {} on same line
     * Minor optimization

   * include/hberrors.h
   * source/compiler/hbgenerr.c
     + Added: "Inline C requires C output generartion, use -gc[n]"
2001-01-11 02:31:36 +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
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
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
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
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
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
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
Ron Pinkas
dfde3317a5 2000-08-28 15:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbcomp.h
     + Added: extern void hb_compDeclaredParameterAdd( char * szVarName, BYTE cValueType );

   * source/compiler/harbour.y
     ! Changed hb_compVariableAdd() to hb_compDeclaredParameterAdd() for Declaration Rules.

   * source/compiler/harbour.c
     ! Moved logic from hb_compVariableAdd() to new hb_compDeclaredParameterAdd() for "dummy" variables (Declaration Parameters).

   * source/compiler/hbpcode.c
     ! Minor corrections.
2000-08-28 22:10:20 +00:00
Ron Pinkas
da1d815d4d 2000-08-28 10:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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.
2000-08-28 17:55:49 +00:00
Viktor Szakats
a38b766d6d 2000-08-17 12:18 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-08-17 10:20:09 +00:00
Ron Pinkas
c06672fe89 2000-08-08 02:00 UTC+0800 Ron Pinkas <ron@profit-master.com>
* 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)
2000-08-08 09:11:01 +00:00
Ron Pinkas
209fbcb4ac 2000-08-03 18:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
    * Added call to hb_pp_init() between multiple prg compilations.
2000-08-04 01:49:00 +00:00
Ryszard Glab
39596ad2dd ChangeLog 2000-08-01 18:20 UTC+0100 2000-08-01 16:17:13 +00:00
Ryszard Glab
7b75b62b6e ChangeLog 2000-07-29 09:45 UTC+0100 2000-07-29 07:36:06 +00:00
Viktor Szakats
f1c10aae9d 2000-07-29 03:28 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-07-29 01:39:59 +00:00
Ron Pinkas
61fc20ffda Corrected other instance of pVar->iDeclLine to use hb_comp_iCompiled 2000-07-27 08:51:00 +00:00
Ron Pinkas
f8e8ba7897 2000-07-27 01:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     ! Corrected pVar->iDeclLine line number

   * source/compiler/hbgenerr.c
     ! Corrcted intermitent GPF when hb_compGenWarning() was called with NULL hb_comp_files.pLast
2000-07-27 08:48:17 +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
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
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
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
Viktor Szakats
1479859068 2000-06-19 10:11 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-06-19 08:12:44 +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
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