2001-08-07 01:10 UTC-0800 Ron Pinkas <ron@profit-master.com>
+ doc/en/clipper.txt
+ New file describing Harbour features that are different from Clipper.
* include/hbpcode.h
* Corrected typo in comment /* Thanks to Dave for info. */
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2001-08-07 01:10 UTC-0800 Ron Pinkas <ron@profit-master.com>
|
||||
+ doc/en/clipper.txt
|
||||
+ New file describing Harbour features that are different from Clipper.
|
||||
|
||||
* include/hbpcode.h
|
||||
* Corrected typo in comment /* Thanks to Dave for info. */
|
||||
|
||||
2001-08-06 23:50 UTC-0800 Ron Pinkas <ron@profit-master.com>
|
||||
* source/compiler/harbour.c
|
||||
! Corrected assigment of HB_FS_FIRST scope, for proper execution of first non INIT/EXIT procedure in main module.
|
||||
|
||||
58
harbour/doc/en/clipper.txt
Normal file
58
harbour/doc/en/clipper.txt
Normal file
@@ -0,0 +1,58 @@
|
||||
This document attempts to describes the features separating Harbour
|
||||
from Clipper.
|
||||
|
||||
/* TODO: @FunPointer(), and all other Harbour extensions. */
|
||||
|
||||
Harbour Macro Compiler
|
||||
----------------------
|
||||
The Harbour Macro Compiler offers 2 additional layers of functionality
|
||||
controlled by means of HB_SETMACRO()* function, not available in Clipper.
|
||||
|
||||
HB_SETMACRO( HB_SM_HARBOUR, TRUE ) will enable macro compilation and
|
||||
evaluation of complex expressions not supported by Clipper like:
|
||||
|
||||
- exp++, exp--, exp += exp, (exp), etc..
|
||||
- Nested codeblocks.
|
||||
- Expressions longer then 254 characters.
|
||||
|
||||
HB_SETMACRO( HB_SM_XBASE, TRUE ) will enable macro compilation and
|
||||
evaluation of comma separated lists in all contexts where lists are
|
||||
acceptable by Clipper*, including:
|
||||
|
||||
- { &cMacro } // Literal array elements list.
|
||||
- SomeArray[ &cMacro ] // Array index list.
|
||||
- SomeFun( &cMacro ) // Arguments list.
|
||||
- ( &cMacro ) // parenthesized list expression.
|
||||
|
||||
*Clipper only supports list macros within codeblocks context.
|
||||
|
||||
Both these extra layers are activated by default.
|
||||
|
||||
* See also -k Compiler switch.
|
||||
|
||||
LIST Command
|
||||
------------
|
||||
|
||||
LIST &cMacro
|
||||
|
||||
LIST in clipper [superficially] supports macros of lists expressions. No
|
||||
error will be produced, and all expressions in the list will be
|
||||
evaluated, but *only* the *last* expression will be displayed. This is
|
||||
not a documented in either the LIST or the Macro Operator, but is the
|
||||
de-facto behavior in all Clipper 5.x versions.
|
||||
|
||||
Harbour instead will not only evaluate all of the expressions in
|
||||
such list macro, but will also display all such values. This default
|
||||
behavior may be disabled with HB_SETMACRO( HB_SM_XBASE, .F. )*
|
||||
|
||||
* See also -k Compiler switch.
|
||||
|
||||
INIT/EXIT and startup procedures
|
||||
--------------------------------
|
||||
|
||||
In Clipper the startup procedure is always the first procedure/function
|
||||
of the main module, even if such symbol is an INIT or EXIT symbol. In
|
||||
such case the program will never execute the "main" symbol. In Harbour
|
||||
the first *non* INIT/EXIT symbol, will be executed as the main symbol
|
||||
after all INIT procedures have been executed.
|
||||
|
||||
@@ -186,8 +186,8 @@ typedef enum
|
||||
HB_P_TRUE, /* 120 pushes true on the virtual machine stack */
|
||||
HB_P_ZERO, /* 121 places a ZERO on the virtual machine stack */
|
||||
HB_P_ONE, /* 122 places a ONE on the virtual machine stack */
|
||||
HB_P_MACROLIST, /* 122 HB_P_MACROPUSHLIST enevelope start. */
|
||||
HB_P_MACROLISTEND, /* 123 HB_P_MACROPUSHLIST enevelope end. */
|
||||
HB_P_MACROLIST, /* 122 HB_P_MACROPUSHLIST envelope start. */
|
||||
HB_P_MACROLISTEND, /* 123 HB_P_MACROPUSHLIST envelope end. */
|
||||
/* NOTE: This have to be the last definition */
|
||||
HB_P_LAST_PCODE /* 123 this defines the number of defined pcodes */
|
||||
} HB_PCODE;
|
||||
|
||||
Reference in New Issue
Block a user