* 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.
*harbour/include/hbclass.ch
Now support MI, scoping, fowarding and delegating
Also support 10 chars limit by not prefixing the Classname when in 10 chars mode
*harbour/include/hbsetup.ch
Allow the configuration of Hidden message
*harbour/source/rtl/objfunc.prg
added function __objDerivedFrom(oSelf, oObj | cClassName)
*harbour/source/rtl/tclass.prg
Major modification to implement MI & scoping
Added message :Super to acces frist superclass object instance
Added message :IsDerivedFrom(oObj | cClassName ) (Xbase++ comp.)
*harbour/source/vm/proc.c
added char * hb_procname( int iLevel, char * szName )
extracted from HB_FUNC( PROCNAME ) to allow it to be called from c
HB_FUNC( PROCNAME ) modified to call the previous'one
*harbour/source/vm/classes.c
Major modification to implement MI & Scoping
Added function Sender() used by delegating to allow full polymorphism
Added function __CLS_PARAM used by the preprocessor
* source/compiler/hbpcode.c
! Fixed ambigious else in hb_StrongType()
* source/pp/pptable.c
! Fixed STRUCTURE rule to allow nesting of structures.
* tests/teststru.prg
* Enhanced to demonstrate Structure as element of other structure and self reference capabilities.
* source/compiler/harbour.c
+ Added code to main() to process symbols and look for the first symbol in the prg and give it scope HB_FS_FIRST
* source/compiler/genc.c
+ Added check for HB_FS_FIRST in the symbol processing loop, and output to the symbol table.
* source/vm/hvm.c
! Fixed bug where if first symbol was an init symbol, it got executed twice.
* source/vm/runner.c
+ Added logic to look for first symbol, to provide correct startup.
! Fixed bug where if first symbol was an init symbol, it got executed twice.
* source/rtl/tclass.prg
! Corrected minor typo in HB_Structure()
* tests/teststru.prg
! Corrected minor typo.
+ tests/testinit.prg
+ Added file to test proper startup processing.
* source/compiler/harbour.l
+ Added "as structure", "as stru", "as array of structure", "as array of stru"
* source/compiler/hbpcode.c
* Improved some logic in hb_StrongType()
* source/vm/hvm.c
! Corrected startup symbol when having to use Main() as per Ryszard.
* source/pp/pptable.c
+ Added the equivalent of:
#COMMANDS STRUCTURE <StruName> <Var1> AS <Type1> [, <VarN> AS <TypeN> ] => ;
STATIC __<StruName> := {|| IF( __<StruName> == NIL, , ) , HB_Structure( <"StruName">, { <"Var1"> [, <"VarN">] } )} ;;
DECLARE <StruName> <Var1> AS <Type1> [ <VarN> AS <TypeN> ] ;;
#TRANSLATE AS NEW <ClassName> => AS CLASS <StruName> := ( Eval( __<StruName> ), HB_Structure( <StruName> ) )
#TRANSLATE AS NEW <ClassName> => AS CLASS <ClassName> := <ClassName>():New()
* source/rtl/tclass.prg
+ Added Function HB_Structure() ( Fully Declared! ) This function is used internally, but may be freely called from Clipper level.
It Aceepts Parameter 1 Structure Name, and optional parameter 2, as array of structure variable names.
If called with 2nd parameter, returns NIL (just creates the new Structure), if called with just parameter 1, it returns
new instance of defined structure.
+ tests\teststru.prg
+ Added demo for new structure syntax
* source/compiler/harbour.y
- Removed few unneeded hb_strdup() from calls to hb_compClassFind()
+ Added auto addition of Method Declaration for the SET Function of a declared Var of a declared class.
* source/compiler/harbour.c
- Removed few unneeded hb_strdup() from calls to hb_compClassFind()
* source/compiler/harbour.l
+ Added "as class"
* source/compiler/harbour.y
! Fixed shift conflicts and reduce conflicts.
* Modified rules for syntax "AS Object ClassName" to "As Class ClassName"
* tests/testwarn.prg
! Corrected the #translate to reflect latest syntax
! Corrected syntax to use AS CLASS ClassName instead of AS OBJECT ClassName.
* include/hbvmpub.h
+ Added: #define HB_FS_FIRST ( ( HB_SYMBOLSCOPE ) 0x40 )
* source/compiler/genc.c
+ Added logic to add | HB_FS_FIRST to first defined symbol in a prg.
* source/vm/hvm.c
* Modified hb_vmProcessSymbols() to llok for HB_FS_FIRST for startup procedure instead of any first symbol.
* source/compiler/harbour.y
* Minor consilidation in AsType
*** I am aware of 6 reduce conflicts resulting from previous removal of FROM_CLASS, and am looking into it. ***
* tests/testwarn.prg
! Corrected the #translate to reflect latest syntax
* source/compiler/harbour.l
- Removed rule for "FROM CLASS"
+ Added "AS Obj" as an abrreviation for "AS Object"
* source/compiler/harbour.y
* Changed "AS Object FROM CLASS ClassName" to "As Object ClassName"
* tests/testwarn.prg
* Modified code to demonstrate new syntax for "As Object..."