diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b5fd2b0124..c95e0f38cb 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,149 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-11-10 05:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * make_b32.bat + + make_b32.mak + - makefile.bc + * make_gcc.sh + + make_gcc.mak + - makefile.gc + * make_vc.bat + + make_vc.mak + - makefile.vc + * common.mak + - contrib/maketpl.b32 + + contrib/mtpl_b32.mak + - contrib/maketpl.vc + + contrib/mtpl_vc.mak + - contrib/maketpl.mak + + contrib/mtpl.mak + * contrib/libct/make_b32.bat + * contrib/libct/make_vc.bat + % Makefile name cleanup, batch file synchronization, + setting name cleanup. Some minor fixes. + Now all non-GNU makefiles have the .mak extension. + + - contrib/xhb/makefile.vc + * contrib/xhb/make_b32.bat + + contrib/xhb/common.mak + - contrib/xhb/makefile.bc + * contrib/xhb/make_vc.bat + - contrib/libmisc/makefile.vc + * contrib/libmisc/make_b32.bat + + contrib/libmisc/common.mak + - contrib/libmisc/makefile.bc + * contrib/libmisc/make_vc.bat + + contrib/apollo/common.mak + - contrib/apollo/makefile.bc + * contrib/apollo/make_b32.bat + + contrib/apollo/make_vc.bat + - contrib/htmllib/makefile.vc + * contrib/htmllib/make_b32.bat + + contrib/htmllib/common.mak + - contrib/htmllib/Makefile.bc + * contrib/htmllib/make_vc.bat + * contrib/libct/make_b32.bat + * contrib/libct/make_vc.bat + - contrib/libgt/makefile.vc + * contrib/libgt/make_b32.bat + + contrib/libgt/common.mak + - contrib/libgt/makefile.bc + * contrib/libgt/make_vc.bat + * contrib/libnf/make_b32.bat + - contrib/libnf/makefile.vc + * contrib/libnf/make_vc.bat + + contrib/libnf/common.mak + - contrib/libnf/makefile.bc + * contrib/gd/make_b32.bat + + contrib/gd/common.mak + - contrib/gd/makefile.bc + + contrib/gd/make_vc.bat + - contrib/tip/makefile.vc + * contrib/tip/make_b32.bat + + contrib/tip/common.mak + - contrib/tip/makefile.bc + * contrib/tip/make_vc.bat + + contrib/adordd/common.mak + - contrib/adordd/makefile.bc + * contrib/adordd/make_b32.bat + + contrib/adordd/make_vc.bat + - contrib/rdd_ads/makefile.vc + * contrib/rdd_ads/make_b32.bat + + contrib/rdd_ads/common.mak + - contrib/rdd_ads/makefile.bc + * contrib/rdd_ads/make_vc.bat + + contrib/btree/common.mak + - contrib/btree/makefile.bc + * contrib/btree/make_b32.bat + + contrib/btree/make_vc.bat + + contrib/directx/common.mak + - contrib/directx/makefile.bc + - contrib/directx/makefile.vc + * contrib/directx/make_b32.bat + * contrib/directx/make_vc.bat + + contrib/win32/common.mak + - contrib/win32/makefile.bc + - contrib/win32/makefile.vc + * contrib/win32/make_b32.bat + * contrib/win32/make_vc.bat + + contrib/bmdbfcdx/common.mak + - contrib/bmdbfcdx/makefile.bc + * contrib/bmdbfcdx/make_b32.bat + + contrib/bmdbfcdx/make_vc.bat + - contrib/samples/makefile.vc + * contrib/samples/make_b32.bat + + contrib/samples/common.mak + - contrib/samples/makefile.bc + * contrib/samples/make_vc.bat + * contrib/mysql/common.mak + - contrib/mysql/makefile.bc + * contrib/mysql/make_b32.bat + + contrib/mysql/make_vc.bat + * contrib/pgsql/common.mak + - contrib/pgsql/makefile.bc + * contrib/pgsql/make_b32.bat + + contrib/pgsql/make_vc.bat + * Changed most libs to use the generic non-GNU makefiles. + + Added support for MSVC for all above libs. + ; directx won't build under MSVC with an error. + + Added "implib" for rdd_ads. TOFIX: Doesn't work for MSVC. + ; TOFIX: I couldn't compile pgsql using latest 8.2.5. + + * contrib/samples/gauge.c + ! Fixed MSVC warning. + + + odbc/test + + odbc/test/bld_b32.bat + + odbc/test/harbour.mdb + + odbc/test/odbcdemo.prg + + odbc/test/browodbc.prg + + odbc/test/odbccall.prg + + odbc/test/testodbc.prg + - odbc/bld_b32.bat + - odbc/harbour.mdb + - odbc/odbcdemo.prg + - odbc/browodbc.prg + - odbc/odbccall.prg + - odbc/testodbc.prg + - odbc/bldodbc.bat + + odbc/make_b32.bat + + odbc/make_vc.bat + - odbc/hbodbc.b32 + + odbc/common.mak + * Moved test functions to test fir. + ! Fixed bld_b32.bat + ! Renamed non-GNU BC make files to be in sync with the rest of contribs. + ; TOFIX: There are some warnings under MSVC. + ; TOFIX: .def -> .lib conversions fails under MSVC. + + - contrib/ole + - contrib/delphi + - contrib/hb_struc + - contrib/dot + - contrib/tprepro + - Removed obsolete, incomplete or non-working contribs. + 2007-11-09 15:20 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * source/compiler/hbcomp.c ! Changed error messaged to go to stderr on non-Unix diff --git a/harbour/common.mak b/harbour/common.mak index 2ec30a0136..bc9c7a553e 100644 --- a/harbour/common.mak +++ b/harbour/common.mak @@ -46,12 +46,12 @@ LIBEXT=.lib # Directory macros. These should never have to change. # -BIN_DIR = bin\$(CC_DIRNAME) -OBJ_DIR = obj\$(CC_DIRNAME) -LIB_DIR = lib\$(CC_DIRNAME) +BIN_DIR = bin\$(HB_CC_NAME) +OBJ_DIR = obj\$(HB_CC_NAME) +LIB_DIR = lib\$(HB_CC_NAME) DLL_ROOTDIR = obj\dll -DLL_OBJ_DIR = $(DLL_ROOTDIR)\$(CC_DIRNAME) +DLL_OBJ_DIR = $(DLL_ROOTDIR)\$(HB_CC_NAME) # Targets Destination Directories HB_DEST_DIRS = \ @@ -217,7 +217,7 @@ HBDOC_EXE = $(BIN_DIR)\hbdoc$(EXEEXT) HBMAKE_EXE = $(BIN_DIR)\hbmake$(EXEEXT) HBVER_EXE = $(BIN_DIR)\hbverfix$(EXEEXT) -HARBOUR_DLL = $(BIN_DIR)\harbour-$(CC_DIRNAME)$(DLLEXT) +HARBOUR_DLL = $(BIN_DIR)\harbour-$(HB_CC_NAME)$(DLLEXT) HBTESTDLL_EXE= $(BIN_DIR)\hbtest-dll$(EXEEXT) #********************************************************** diff --git a/harbour/contrib/adordd/common.mak b/harbour/contrib/adordd/common.mak new file mode 100644 index 0000000000..835be016b2 --- /dev/null +++ b/harbour/contrib/adordd/common.mak @@ -0,0 +1,17 @@ +# +# $Id$ +# + +LIBNAME = adordd + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\adordd.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/adordd/make_b32.bat b/harbour/contrib/adordd/make_b32.bat index cbf3534d55..e2eeba3252 100644 --- a/harbour/contrib/adordd/make_b32.bat +++ b/harbour/contrib/adordd/make_b32.bat @@ -3,29 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\adordd.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\adordd.bak del ..\..\lib\b32\adordd.bak - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\adordd.lib del ..\..\lib\b32\adordd.lib - if exist ..\..\lib\b32\adordd.bak del ..\..\lib\b32\adordd.bak + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT -:EXIT \ No newline at end of file +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/adordd/make_vc.bat b/harbour/contrib/adordd/make_vc.bat new file mode 100644 index 0000000000..96eca5a7e9 --- /dev/null +++ b/harbour/contrib/adordd/make_vc.bat @@ -0,0 +1,54 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/adordd/makefile.bc b/harbour/contrib/adordd/makefile.bc deleted file mode 100644 index c9806dc74d..0000000000 --- a/harbour/contrib/adordd/makefile.bc +++ /dev/null @@ -1,25 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of AdoRdd.lib - RDD for Microsoft ADO - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\adordd.lib : \ - $(OBJ_DIR)\adordd.obj - -$(OBJ_DIR)\adordd.obj : adordd.c -adordd.c : adordd.prg - -.c.obj: - bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\adordd.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w2 -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ diff --git a/harbour/contrib/apollo/common.mak b/harbour/contrib/apollo/common.mak new file mode 100644 index 0000000000..f361656429 --- /dev/null +++ b/harbour/contrib/apollo/common.mak @@ -0,0 +1,18 @@ +# +# $Id$ +# + +LIBNAME = apollo + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\apollo.obj \ + $(OBJ_DIR)\apollo1.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/apollo/make_b32.bat b/harbour/contrib/apollo/make_b32.bat index 6df42ee764..e2eeba3252 100644 --- a/harbour/contrib/apollo/make_b32.bat +++ b/harbour/contrib/apollo/make_b32.bat @@ -3,33 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\apollo.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\apollo.lib del ..\..\lib\b32\apollo.lib - if exist ..\..\lib\b32\apollo.bak del ..\..\lib\b32\apollo.bak - if exist ..\..\obj\b32\apollo.obj del ..\..\obj\b32\apollo.obj - if exist ..\..\obj\b32\apollo1.c del ..\..\obj\b32\apollo1.c - if exist ..\..\obj\b32\apollo1.bak del ..\..\obj\b32\apollo1.bak - if exist ..\..\obj\b32\apollo1.obj del ..\..\obj\b32\apollo1.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/apollo/make_vc.bat b/harbour/contrib/apollo/make_vc.bat new file mode 100644 index 0000000000..96eca5a7e9 --- /dev/null +++ b/harbour/contrib/apollo/make_vc.bat @@ -0,0 +1,54 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/apollo/makefile.bc b/harbour/contrib/apollo/makefile.bc deleted file mode 100644 index ff07cce6e4..0000000000 --- a/harbour/contrib/apollo/makefile.bc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$# - - -# makefile for Borland C/C++ 32 bits -# Building of apollo.lib - VistaSoftware's Apollo database driver - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\apollo.lib : \ - $(OBJ_DIR)\apollo.obj \ - $(OBJ_DIR)\apollo1.obj - -$(OBJ_DIR)\apollo1.c : apollo1.prg -$(OBJ_DIR)\apollo1.obj : $(OBJ_DIR)\apollo1.c -$(OBJ_DIR)\apollo.obj : apollo.c - -.c.obj: - bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\apollo.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/bmdbfcdx/common.mak b/harbour/contrib/bmdbfcdx/common.mak new file mode 100644 index 0000000000..27f1655117 --- /dev/null +++ b/harbour/contrib/bmdbfcdx/common.mak @@ -0,0 +1,18 @@ +# +# $Id$ +# + +LIBNAME = bmdbfcdx + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\bmdbfcdx1.obj \ + $(OBJ_DIR)\bmsixcdx1.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/bmdbfcdx/make_b32.bat b/harbour/contrib/bmdbfcdx/make_b32.bat index 51d54ecf2e..e2eeba3252 100644 --- a/harbour/contrib/bmdbfcdx/make_b32.bat +++ b/harbour/contrib/bmdbfcdx/make_b32.bat @@ -3,33 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\bmdbfcdx.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\bmdbfcdx.bak del ..\..\lib\b32\bmdbfcdx.bak - copy ..\..\lib\b32\bmsixcdx.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\bmsixcdx.bak del ..\..\lib\b32\bmsixcdx.bak - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\bmdbfcdx.lib del ..\..\lib\b32\bmdbfcdx.lib - if exist ..\..\lib\b32\bmdbfcdx.bak del ..\..\lib\b32\bmdbfcdx.bak - if exist ..\..\lib\b32\bmsixcdx.lib del ..\..\lib\b32\bmsixcdx.lib - if exist ..\..\lib\b32\bmsixcdx.bak del ..\..\lib\b32\bmsixcdx.bak + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT -:EXIT \ No newline at end of file +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/bmdbfcdx/make_vc.bat b/harbour/contrib/bmdbfcdx/make_vc.bat new file mode 100644 index 0000000000..96eca5a7e9 --- /dev/null +++ b/harbour/contrib/bmdbfcdx/make_vc.bat @@ -0,0 +1,54 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/bmdbfcdx/makefile.bc b/harbour/contrib/bmdbfcdx/makefile.bc deleted file mode 100644 index 803a33bb6e..0000000000 --- a/harbour/contrib/bmdbfcdx/makefile.bc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of bmdbfcdx.lib -# Clipper 5.3 DBFCDX compatible on SET OPTIMiZE ON - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\bmdbfcdx.lib : \ - $(OBJ_DIR)\bmdbfcdx1.obj \ - $(OBJ_DIR)\bmsixcdx1.obj - -$(OBJ_DIR)\bmdbfcdx1.obj : bmdbfcdx1.c -$(OBJ_DIR)\bmsixcdx1.obj : bmsixcdx1.c - - -.c.obj: - bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\bmdbfcdx.lib -+$@,, - diff --git a/harbour/contrib/btree/common.mak b/harbour/contrib/btree/common.mak new file mode 100644 index 0000000000..0f80926cfe --- /dev/null +++ b/harbour/contrib/btree/common.mak @@ -0,0 +1,18 @@ +# +# $Id$ +# + +LIBNAME = hb_btree + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\hb_btree.obj \ + $(OBJ_DIR)\tbtree.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/btree/make_b32.bat b/harbour/contrib/btree/make_b32.bat index 0192f51a13..e2eeba3252 100644 --- a/harbour/contrib/btree/make_b32.bat +++ b/harbour/contrib/btree/make_b32.bat @@ -3,32 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\hb_btree.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\hb_btree.lib del ..\..\lib\b32\hb_btree.lib - if exist ..\..\lib\b32\hb_btree.bak del ..\..\lib\b32\hb_btree.bak - if exist ..\..\obj\b32\hb_btree.obj del ..\..\obj\b32\hb_btree.obj - if exist ..\..\obj\b32\tbtree.obj del ..\..\obj\b32\tbtree.obj - if exist ..\..\obj\b32\tbtree.c del ..\..\obj\b32\tbtree.c + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/btree/make_vc.bat b/harbour/contrib/btree/make_vc.bat new file mode 100644 index 0000000000..96eca5a7e9 --- /dev/null +++ b/harbour/contrib/btree/make_vc.bat @@ -0,0 +1,54 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/btree/makefile.bc b/harbour/contrib/btree/makefile.bc deleted file mode 100644 index 617a66e953..0000000000 --- a/harbour/contrib/btree/makefile.bc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of hb_btree.lib - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\hb_btree.lib : \ - $(OBJ_DIR)\hb_btree.obj \ - $(OBJ_DIR)\tbtree.obj - -$(OBJ_DIR)\tbtree.c : tbtree.prg -$(OBJ_DIR)\tbtree.obj : $(OBJ_DIR)\tbtree.c -$(OBJ_DIR)\hb_btree.obj : hb_btree.c - -.c.obj: - bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\hb_btree.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w2 -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/delphi/hbdll/bld_sdll.bat b/harbour/contrib/delphi/hbdll/bld_sdll.bat deleted file mode 100644 index 50bafe7055..0000000000 --- a/harbour/contrib/delphi/hbdll/bld_sdll.bat +++ /dev/null @@ -1,84 +0,0 @@ -rem Self contained Harbour DLL, original idea and research Antonio Linares -rem -rem $Id$ -rem -@ECHO OFF -CLS - -if A%1 == A GOTO :SINTAX -if NOT EXIST %1.prg GOTO :NOEXIST - -ECHO Compiling... - -set hdir=c:\hb-dev\harbour -set bcdir=c:\borland\bcc55\bin - -%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include -L%bcdir%\..\lib %hdir%\source\vm\maindll.c - -rem Files to integrate harbour DLL to Delphi -%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include -L%bcdir%\..\lib macrcall.c -%hdir%\bin\harbour -n -w errorsys -%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include errorsys.c - -%hdir%\bin\harbour %1 /n /i%hdir%\include /w /p %2 %3 > clip.log -@type clip.log -IF ERRORLEVEL 1 PAUSE -IF ERRORLEVEL 1 GOTO EXIT - -echo -O2 -I%hdir%\include %1.c > b32.bc -%bcdir%\bcc32 -M -c @b32.bc -:ENDCOMPILE - -IF EXIST %1.rc %bcdir%\brc32 -r %1 - -echo c0d32.obj + > b32.bc -echo %1.obj+errorsys.obj+maindll.obj+macrcall.obj, + >> b32.bc -echo %1.dll, + >> b32.bc -echo %1.map, + >> b32.bc -rem echo ..\lib\FiveH.lib ..\lib\FiveHC.lib + >> b32.bc -echo %hdir%\lib\rtl.lib + >> b32.bc -echo %hdir%\lib\vm.lib + >> b32.bc -echo %hdir%\lib\gtwin.lib + >> b32.bc -echo %hdir%\lib\lang.lib + >> b32.bc -echo %hdir%\lib\macro.lib + >> b32.bc -echo %hdir%\lib\rdd.lib + >> b32.bc -echo %hdir%\lib\dbfntx.lib + >> b32.bc -echo %hdir%\lib\dbfcdx.lib + >> b32.bc -echo %hdir%\lib\debug.lib + >> b32.bc -echo %hdir%\lib\common.lib + >> b32.bc -echo %hdir%\lib\pp.lib + >> b32.bc - -rem Uncomment these two lines to use Advantage RDD -rem echo %hdir%\lib\rddads.lib + >> b32.bc -rem echo ..\lib\Ace32.lib + >> b32.bc - -echo %bcdir%\lib\import32.lib + >> b32.bc -echo %bcdir%\lib\cw32.lib + >> b32.bc -echo %bcdir%\lib\psdk\odbc32.lib, >> b32.bc -IF EXIST %1.res echo %1.res >> b32.bc -%bcdir%\ilink32 -Tpd -aa -L%bcdir%\..\lib -L%bcdir%\..\lib\PSDK @b32.bc - -rem delete temporary files -@del %1.c -@del %1.il? - -IF ERRORLEVEL 1 GOTO LINKERROR -ECHO * self contained DLL successfully built -GOTO EXIT -ECHO - -:LINKERROR -rem if exist meminfo.txt notepad meminfo.txt -rem PAUSE * Linking errors * -GOTO EXIT - -:SINTAX -ECHO SYNTAX: Build [Program] {-- No especifiques la extensi˝n PRG -ECHO {-- Don't specify .PRG extension -GOTO EXIT - -:NOEXIST -ECHO The specified PRG %1 does not exist - -:EXIT - diff --git a/harbour/contrib/delphi/hbdll/easypath.dpr b/harbour/contrib/delphi/hbdll/easypath.dpr deleted file mode 100644 index 325caf9b1e..0000000000 --- a/harbour/contrib/delphi/hbdll/easypath.dpr +++ /dev/null @@ -1,17 +0,0 @@ -{* - * $Id$ - *} - -program EasyPath; - -uses - Forms, - Main in 'Main.pas' {Main_FRM}; - -{$R *.RES} - -begin - Application.Initialize; - Application.CreateForm(TMain_FRM, Main_FRM); - Application.Run; -end. diff --git a/harbour/contrib/delphi/hbdll/errorsys.prg b/harbour/contrib/delphi/hbdll/errorsys.prg deleted file mode 100644 index 0c26f3c7fd..0000000000 --- a/harbour/contrib/delphi/hbdll/errorsys.prg +++ /dev/null @@ -1,206 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * The default error handler - * - * Copyright 1999 Antonio Linares - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#include "common.ch" -#include "error.ch" - -PROCEDURE ErrorSys - - ErrorBlock( { | oError | DefError( oError ) } ) - - RETURN - -STATIC FUNCTION DefError( oError ) - LOCAL cMessage - LOCAL cDOSError - - LOCAL aOptions - LOCAL nChoice - - LOCAL n - - // By default, division by zero results in zero - IF oError:genCode == EG_ZERODIV - RETURN 0 - ENDIF - - // Set NetErr() of there was a database open error - IF oError:genCode == EG_OPEN .AND. ; - oError:osCode == 32 .AND. ; - oError:canDefault - NetErr( .T. ) - RETURN .F. - ENDIF - - // Set NetErr() if there was a lock error on dbAppend() - IF oError:genCode == EG_APPENDLOCK .AND. ; - oError:canDefault - NetErr( .T. ) - RETURN .F. - ENDIF - - cMessage := ErrorMessage( oError )+Chr(13) - IF ! Empty( oError:osCode ) - cDOSError := "(DOS Error " + LTrim( Str( oError:osCode ) ) + ")" - ENDIF - - /* RETRY OPTIONS NOT AVAILABLE RIGHT NOW - COMMENTED OUT ONLY FOR DELPHI INTEGRATION - - // Build buttons - - aOptions := {} - -// AAdd( aOptions, "Break" ) - AAdd( aOptions, "Quit" ) - - IF oError:canRetry - AAdd( aOptions, "Retry" ) - ENDIF - - IF oError:canDefault - AAdd( aOptions, "Default" ) - ENDIF - - // Show alert box - - nChoice := 0 - WHILE nChoice == 0 - - IF Empty( oError:osCode ) - - nChoice := Alert( cMessage, aOptions ) - ELSE - nChoice := Alert( cMessage + ";" + cDOSError, aOptions) - ENDIF - - ENDDO - - IF ! Empty( nChoice ) - DO CASE - CASE aOptions[ nChoice ] == "Break" - Break( oError ) - CASE aOptions[ nChoice ] == "Retry" - RETURN .T. - CASE aOptions[ nChoice ] == "Default" - RETURN .F. - ENDCASE - ENDIF - - */ - - // "Quit" selected - - IF ! Empty( oError:osCode ) - cMessage += " " + cDOSError+Chr(13) - ENDIF - - n := 2 - WHILE ! Empty( ProcName( n ) ) - /* CHANGED */ - cMessage += "Called from " + ProcName( n ) + ; - "(" + AllTrim( Str( ProcLine( n ) ) ) + ")"+Chr(13) - - // QUESTION: from a DLL point of view, there is not main procedure, - // instead of that, something that is not a valid string is - // given, causing this errorsys routine to be re-entrant. - // This next line is a temporal workaround to this problem, - // and a specific code to this Harbour to Delphi integration. - If Upper(ProcName(n)) = 'MACROCALL' - Exit - EndIf - n++ - ENDDO - - MSGBOX( cMessage ) // Windows MessageBox - - D('QUIT') // NOTE: A QUIT in a DLL is something not very smart, better to - // QUIT // let Delphi to end properly. - - RETURN .F. - -// [vszakats] - -STATIC FUNCTION ErrorMessage( oError ) - LOCAL cMessage - - // start error message - cMessage := iif( oError:severity > ES_WARNING, "Error", "Warning" ) + " " - - // add subsystem name if available - IF ISCHARACTER( oError:subsystem ) - cMessage += oError:subsystem() - ELSE - cMessage += "???" - ENDIF - - // add subsystem's error code if available - IF ISNUMBER( oError:subCode ) - cMessage += "/" + LTrim( Str( oError:subCode ) ) - ELSE - cMessage += "/???" - ENDIF - - // add error description if available - IF ISCHARACTER( oError:description ) - cMessage += " " + oError:description - ENDIF - - // add either filename or operation - DO CASE - CASE !Empty( oError:filename ) - cMessage += ": " + oError:filename - CASE !Empty( oError:operation ) - cMessage += ": " + oError:operation - ENDCASE - - RETURN cMessage diff --git a/harbour/contrib/delphi/hbdll/macrcall.c b/harbour/contrib/delphi/hbdll/macrcall.c deleted file mode 100644 index 4bd744ac1b..0000000000 --- a/harbour/contrib/delphi/hbdll/macrcall.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * - * Macro processing requested from Delphi and setting callbacks - * to interact with Delphi - * - * Copyright 2002 Jorge A. Giraldo S. - * - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#define HB_OS_WIN_32_USED - -#include "hbvm.h" -#include "hbapiitm.h" -#include "hbstack.h" - -#if defined(HB_OS_WIN_32) - -// Function pointer type -typedef long (__stdcall *CallBackFuncType)(const char* message); - -// Setter function -HB_EXPORT __stdcall void SetCallBack(CallBackFuncType fun); - -char * HB_EXPORT __stdcall MacroCall( char * sParam ) -{ - char *szFunc = "MacroCall"; - - PHB_DYNS pDynSym = hb_dynsymFindName( szFunc ); /* The PRG function to use */ - - if( pDynSym ) - { - - hb_vmPushSymbol( pDynSym->pSymbol ); - hb_vmPushNil(); - hb_vmPushString( sParam, strlen( sParam ) ); - - hb_vmFunction( 1 ); /* as we receive one parameter */ - - return hb_stack.Return.item.asString.value; - - } - else - return "error ..."; - -} - -static CallBackFuncType cbfun = 0; -void __stdcall SetCallBack(CallBackFuncType fun) -{ - CallBackFuncType oldfun = cbfun; - cbfun = fun; - return oldfun; -} - -HB_FUNC( CALLBACK ) -{ - long result = 0; - - if (cbfun != 0) - { - - result = cbfun( hb_parc( 1 ) ); - } - else - { - MessageBox( NULL, //HWINDOW of the window that owns the message box - "CallBack failed under MacrCall.c" , //Text - "Warning" ,//Title - MB_OK | MB_ICONINFORMATION );//Bit mask flags - } - - hb_retl( result ); // QUESTION: If you can make this to return a char pointer - // being interpreted correctly by Delphi, - // please inform me, I'm all ears, thank you. -} - -HB_FUNC( MSGBOX ) - { - MessageBox( 0, hb_parc( 1 ), "Warning", 0 ); - } - -#endif diff --git a/harbour/contrib/delphi/hbdll/main.dfm b/harbour/contrib/delphi/hbdll/main.dfm deleted file mode 100644 index 02bc41ca91..0000000000 Binary files a/harbour/contrib/delphi/hbdll/main.dfm and /dev/null differ diff --git a/harbour/contrib/delphi/hbdll/main.pas b/harbour/contrib/delphi/hbdll/main.pas deleted file mode 100644 index 6ce3c0f0f7..0000000000 --- a/harbour/contrib/delphi/hbdll/main.pas +++ /dev/null @@ -1,221 +0,0 @@ -{* - * $Id$ - *} - -{* - * Harbour Project source code: - * - * Copyright 2002 Jorge A. Giraldo S. - * - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - *} - -unit Main; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, Buttons, ComCtrls; - -type - TMain_FRM = class(TForm) - BitBtn1: TBitBtn; - ProgressBar1: TProgressBar; - procedure BitBtn1Click(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - - -var - Main_FRM: TMain_FRM; - oApplication : TApplication; - -type - CallBackFuncType = function (mesg: PChar): integer; stdcall; - -procedure SetCallBack(cbfunc: CallBackFuncType); stdcall; - external 'MyProg' name 'SetCallBack'; - -function MacroCall( pParam : pchar ) : pchar; stdcall; - external 'MyProg' name 'MacroCall'; - -function h( sParam : String ) : variant; -function ExtParam( sString : String; iPos : Integer; sSepar : String ) : String; -function AllTrim(sString: string): string; - -implementation - -{$R *.DFM} - -procedure TMain_FRM.BitBtn1Click(Sender: TObject); -begin - ProgressBar1.Position := 0; - ShowMessage( h(' MakeIndex("..\..\..\TESTS\TEST", "ZIP") ') ); - -end; - -function h( sParam : String ) : variant; -Var - sRtnVal, - sType, - sResult : String; -begin - sRtnVal := MacroCall( PChar(sParam) ); - sType := Copy(sRtnVal,1,1); - sResult := Copy(sRtnVal,2,Length(sRtnVal)-1); - - // Changes string result to the expected type - if sType = 'C' then // is character - result := sResult - else - if sType = 'I' then // integer - result := StrToInt(sResult) - else - if sType = 'F' then // float - result := StrToFloat(sResult) - else - if sType = 'D' then // date - result := StrToDate(sResult) - else - if sType = 'L' then // boolean - if sResult = 'True' then - result := true - else - result := false - else - result := unassigned; - -end; - -function ReceiveCallBack(mesg: PChar): integer; stdcall; -var - s, sCommand : String; -begin - s := String(mesg); - sCommand := ExtParam(s,1,','); - - if sCommand = 'QUIT' then - begin - ShowMessage(ExtParam(s,2,',')); - oApplication.Terminate; - Halt(0); - end - else - if sCommand = 'ProgressBar1' then - Main_FRM.ProgressBar1.Position := StrToInt(ExtParam(s, 2, ',')); - - oApplication.ProcessMessages; - - // The answer our Harbour program expects. - // Callbackresult is a Harbour Public variable - // that is requested when expecting some answer. - // h(' CallBackResult := "NOANSWER" '); - - result := 0; -end; - -function ExtParam( sString : String; iPos : Integer; sSepar : String ) : String; -var - sStrT, sPara : String; - iX, iPosiT : Integer; - -begin - sStrT := AllTrim(sString)+sSepar; - iX := 0; - sPara := ''; // tiene que haber al menos un parametro - While true do - begin - Inc(iX); - iPosiT := Pos(sSepar, sStrT); - if iPosiT = 0 then - Break; - sPara := Copy(sStrT, 1, iPosiT-1); - if iX = iPos then - break; - sStrT := Copy(sStrT, iPosiT+1, Length(sStrT)-iPosiT+1); - sPara := ''; - end; - result := AllTrim(sPara); -end; - -function AllTrim(sString: string): string; -var - n, - nBeginPos, - nEndPos : Integer; -begin - nBeginPos := 0; - for n := 1 to Length(sString) do - if sString[n] <> ' ' then - begin - nBeginPos := n; - break; - end; - - - nEndPos := Length(sString); - If nBeginPos <> 0 then - begin - for n := Length(sString) downto 1 do - if sString[n] <> ' ' then - begin - nEndPos := n; - break; - end; - end; - - Result := Copy(sString, nBeginPos, nEndPos-nBeginPos+1); - -end; - -Initialization -begin - SetCallBack(ReceiveCallBack); - oApplication := Application; -end; - -end. diff --git a/harbour/contrib/delphi/hbdll/myprog.prg b/harbour/contrib/delphi/hbdll/myprog.prg deleted file mode 100644 index 810ec240bb..0000000000 --- a/harbour/contrib/delphi/hbdll/myprog.prg +++ /dev/null @@ -1,116 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * - * Macro processing requested from Delphi and setting callbacks - * to interact with Delphi - * - * Copyright 2002 Jorge A. Giraldo S. - * - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#Include 'HbClass.ch' - -MEMVAR CallBackResult - -FUNCTION MakeIndex( cFileName, cField ) -PUBLIC CallBackResult := '' - -? -? 'Please click the Delphi App to see the status' -? -Use (cFileName) Alias FIL -Index on &(cField) to (cFileName) EVAL IndexStatus() EVERY LastRec()/10 -Close FIL -RETURN 'The file '+cFileName+' has been indexed' - -FUNCTION IndexStatus -LOCAL cCompleted := LTrim( Str(Int((RecNo()/LastRec()) * 100)) ), nSeconds -D('ProgressBar1'+','+cCompleted) - -nSeconds := Seconds() // Let's make this thing to go slowly -WHILE nSeconds+1 >= Seconds() -END - -RETURN .T. - -//---------------------------------------// -// Library functions // -//---------------------------------------// - -FUNCTION D( cString ) -CallBack( cString ) -RETURN CallBackResult - -FUNCTION MacroCall( cString ) -LOCAL xMacroResult, cRtnType, cRtnVal - -cRtnType := ValType( xMacroResult := &(cString) ) - -// Well, if memory is like a string, why not to use strings -// for any type of vars?... ok, ok, I know. :-) - -Do Case -Case cRtnType = 'C' - cRtnVal := 'C'+xMacroResult -Case cRtnType = 'N' - If Int(xMacroResult) = xMacroResult - cRtnVal := 'I'+AllTrim(Str(xMacroResult,,0)) - Else - cRtnVal := 'F'+AllTrim(Str(xMacroResult)) - EndIf -Case cRtnType = 'L' - cRtnVal := 'L'+If(xMacroResult,'True','False') -Case cRtnType = 'D' - cRtnVal := 'D'+DtoC(xMacroResult) -OtherWise - cRtnVal := NIL // NOTE: If Delphi doesn't expect a result, returning any result - // will corrupt Delphi's memory. So this is set to NIL. -EndCase - -RETURN cRtnVal - diff --git a/harbour/contrib/delphi/hbdll/start.bat b/harbour/contrib/delphi/hbdll/start.bat deleted file mode 100644 index 4cbf849a77..0000000000 --- a/harbour/contrib/delphi/hbdll/start.bat +++ /dev/null @@ -1,5 +0,0 @@ -rem Makes our PRG to be a DLL, from an Antonio's idea and research -rem -rem $Id$ -rem -Call bld_sdll myprog diff --git a/harbour/contrib/directx/common.mak b/harbour/contrib/directx/common.mak new file mode 100644 index 0000000000..88fe2a0f77 --- /dev/null +++ b/harbour/contrib/directx/common.mak @@ -0,0 +1,17 @@ +# +# $Id$ +# + +LIBNAME = hbwin32ddrw + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\w32_ddrw.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/directx/make_b32.bat b/harbour/contrib/directx/make_b32.bat index c52b697761..37c0b64205 100644 --- a/harbour/contrib/directx/make_b32.bat +++ b/harbour/contrib/directx/make_b32.bat @@ -3,30 +3,58 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MS SDK installed and this envvar to be +rem set, to build this library: +rem set INCLUDE="C:\Program Files\Microsoft SDKs\Windows\v6.0\include" +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\hbwin32ddrw.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\hbwin32ddrw.bak del ..\..\lib\b32\hbwin32ddrw.bak - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\hbwin32ddrw.lib del ..\..\lib\b32\hbwin32ddrw.lib - if exist ..\..\lib\b32\hbwin32ddrw.bak del ..\..\lib\b32\hbwin32ddrw.bak - if exist ..\..\obj\b32\w32_ddrw.obj del ..\..\obj\b32\w32_ddrw.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT diff --git a/harbour/contrib/directx/make_vc.bat b/harbour/contrib/directx/make_vc.bat index 85593855be..d1555db9c5 100644 --- a/harbour/contrib/directx/make_vc.bat +++ b/harbour/contrib/directx/make_vc.bat @@ -3,19 +3,58 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MS SDK installed and this envvar to be +rem set, to build this library: +rem set INCLUDE="C:\Program Files\Microsoft SDKs\Windows\v6.0\include" +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\hbwin32ddrw.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/directx/makefile.bc b/harbour/contrib/directx/makefile.bc deleted file mode 100644 index bba3dfa9c8..0000000000 --- a/harbour/contrib/directx/makefile.bc +++ /dev/null @@ -1,98 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\hbwin32ddrw.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\w32_ddrw.obj \ - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - -# -# TOOLS.LIB dependencies -# - -$(OBJ_DIR)\w32_ddrw.obj : $(TOOLS_DIR)\w32_ddrw.cpp - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/directx/makefile.vc b/harbour/contrib/directx/makefile.vc deleted file mode 100644 index 84ffd1d435..0000000000 --- a/harbour/contrib/directx/makefile.vc +++ /dev/null @@ -1,136 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\hbwin32ddrw.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .cpp .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\w32_ddrw.obj \ - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\w32_ddrw.* del $(OBJ_DIR)\w32_ddrw.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/dot/Makefile b/harbour/contrib/dot/Makefile deleted file mode 100644 index e6554698f2..0000000000 --- a/harbour/contrib/dot/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# $Id$ -# - -ifeq ($(HB_MAIN),) -HB_MAIN = std -endif - -ROOT = ../../ - -PRG_SOURCES=\ - pp.prg \ - -PRG_MAIN=pp.prg - -PRG_HEADERS = \ - rp_dot.src \ - rp_run.src \ - -LIBS=\ - debug \ - vm \ - rtl \ - lang \ - rdd \ - macro \ - pp \ - common \ - -include $(TOP)$(ROOT)config/header.cf -INSTALL_RULE_HEADERS := $(INSTALL_RULE) - -include $(TOP)$(ROOT)config/bin.cf - -install:: - $(INSTALL_RULE_HEADERS) diff --git a/harbour/contrib/dot/bld_b32.bat b/harbour/contrib/dot/bld_b32.bat deleted file mode 100644 index 157941fbc8..0000000000 --- a/harbour/contrib/dot/bld_b32.bat +++ /dev/null @@ -1,29 +0,0 @@ -@echo off -rem -rem $Id$ -rem - -..\..\bin\harbour /l /gc0 /n pp /i..\..\include\ - -echo -O2 -I..\..\include -L..\..\lib > build.tmp -echo -edot.exe >> build.tmp -echo pp.c >> build.tmp -echo debug.lib >> build.tmp -echo vm.lib >> build.tmp -echo rtl.lib >> build.tmp -echo gtwin.lib >> build.tmp -echo lang.lib >> build.tmp -echo rdd.lib >> build.tmp -echo macro.lib >> build.tmp -echo pp.lib >> build.tmp -echo dbfntx.lib >> build.tmp -echo dbfcdx.lib >> build.tmp -echo dbffpt.lib >> build.tmp -echo hbsix.lib >> build.tmp -echo common.lib >> build.tmp -echo codepage.lib >> build.tmp -echo hbpcre.lib >> build.tmp -echo hsx.lib >> build.tmp -bcc32 @build.tmp -del build.tmp - diff --git a/harbour/contrib/dot/pp.prg b/harbour/contrib/dot/pp.prg deleted file mode 100644 index 00e535485a..0000000000 --- a/harbour/contrib/dot/pp.prg +++ /dev/null @@ -1,9356 +0,0 @@ -/* - * xBaseScript Project source code: - * Pre-Processor / Dot prompt environment / Script Interpreter - * - * Copyright 2000-2001 Ron Pinkas - * www - http://www.xBaseScript.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at http://www.gnu.org/). - */ - -#ifdef PP_QUIET - #COMMAND @ Row(), 0 SAY => -#endif - -#DEFINE MAX_CICLES 256 -#DEFINE PP_BUFFER_SIZE 8192 //16384 - -#ifdef __CLIP__ - #ifdef __LINUX__ - #define __PLATFORM__UNIX - #endif -#endif - -#ifdef __PLATFORM__UNIX - #ifndef OS_PATH_DELIMITER - #define OS_PATH_DELIMITER '/' - #endif - #ifndef OS_PATH_LIST_SEPARATOR - #define OS_PATH_LIST_SEPARATOR ':' - #endif - #ifndef OS_PATH_DELIMITER_LIST - #define OS_PATH_DELIMITER_LIST "/" - #endif -#else - #ifndef OS_PATH_DELIMITER - #define OS_PATH_DELIMITER '\' - #endif - #ifndef OS_PATH_LIST_SEPARATOR - #define OS_PATH_LIST_SEPARATOR ';' - #endif - #ifndef OS_PATH_DELIMITER_LIST - #define OS_PATH_DELIMITER_LIST "\/:" - #endif -#endif - -#ifdef __HARBOUR__ - - // Enable extended syntax. - #ifdef __XHARBOUR__ - #define __FOR_EACH__ - #define __WITH_ - #define __STRING_INDEX__ - - EXTERN CreateObject - EXTERN GetActiveObject - #endif - - #ifndef NO_BOOST - #define USE_C_BOOST - #endif - - #INCLUDE "hbextern.ch" - #DEFINE CRLF HB_OsNewLine() - #ifdef FW - #INCLUDE "fwextern.ch" - #else - #ifdef MINIGUI - #define WIN - - EXTERN PLAYBEEP - EXTERN PLAYASTERISK - EXTERN PLAYEXCLAMATION - EXTERN PLAYHAND - EXTERN PLAYQUESTION - EXTERN PLAYOK - EXTERN ACTIVATEFORM - EXTERN GETFONT - EXTERN GETFILE - EXTERN PUTFILE - EXTERN GETMENU - EXTERN GETSUBMENU - EXTERN CCHECKMENUITEM - EXTERN CUNCHECKMENUITEM - EXTERN GETMENUCHECKSTATE - EXTERN CENABLEMENUITEM - EXTERN CDISABLEMENUITEM - EXTERN GETMENUENABLEDSTATE - EXTERN INITTIMER - EXTERN KILLTIMER - EXTERN INITTOOLTIP - EXTERN SETTOOLTIP - EXTERN INITPANEL - EXTERN C_MSGRETRYCANCEL - EXTERN C_MSGOKCANCEL - EXTERN C_MSGYESNO - EXTERN INITPROGRESSBAR - EXTERN INITSLIDER - EXTERN REPAINTSTATUS - EXTERN INITDATEPICK - EXTERN SETDATEPICK - EXTERN GETDATEPICKYEAR - EXTERN GETDATEPICKMONTH - EXTERN GETDATEPICKDAY - EXTERN EXITPROCESS - EXTERN LISTVIEW_GETFIRSTITEM - EXTERN INITGUI - EXTERN INITTOPMOSTFORM - EXTERN TRACKPOPUPMENU - EXTERN INITSTATUS - EXTERN SETSTATUS - EXTERN INITFORM - EXTERN INITMODALWINDOW - EXTERN ACTIVATEFORMGENERIC - EXTERN ACTIVATEFORMNOWAIT - EXTERN CSHOWCONTROL - EXTERN MAXIMIZE - EXTERN MINIMIZE - EXTERN RESTORE - EXTERN CHIDECONTROL - EXTERN INITBUTTON - EXTERN INITIMAGEBUTTON - EXTERN INITLABEL - EXTERN INITCHECKBOX - EXTERN INITGROUPBOX - EXTERN INITRADIOGROUP - EXTERN INITRADIOBUTTON - EXTERN INITCOMBOBOX - EXTERN INITLISTBOX - EXTERN INITSPINNER - EXTERN INITTEXTBOX - EXTERN INITNUMERICTEXTBOX - EXTERN INITPASSWORDTEXTBOX - EXTERN INITEDITBOX - EXTERN INITREADONLYEDITBOX - EXTERN GETACTIVEWINDOW - EXTERN SETACTIVEWINDOW - EXTERN INITLISTVIEW - EXTERN MSGBOX - EXTERN POSTQUITMESSAGE - EXTERN INITLISTVIEWCOLUMNS - EXTERN ADDLISTVIEWITEMS - EXTERN INITTABCONTROL - EXTERN TABCTRL_SETCURSEL - EXTERN TABCTRL_GETCURSEL - EXTERN INITIMAGE - EXTERN HIWORD - EXTERN LOWORD - EXTERN DESTROYWINDOW - EXTERN MSGINFO - EXTERN MSGSTOP - EXTERN MSGEXCLAMATION - EXTERN INITMENU - EXTERN INITCONTEXTMENU - EXTERN ISWINDOWENABLED - EXTERN ENABLEWINDOW - EXTERN DISABLEWINDOW - EXTERN SETFOREGROUNDWINDOW - EXTERN GETFOREGROUNDWINDOW - EXTERN GETNEXTWINDOW - EXTERN GETPREVWINDOW - EXTERN CHECKDLGBUTTON - EXTERN UNCHECKDLGBUTTON - EXTERN COMBOADDSTRING - EXTERN COMBOSETCURSEL - EXTERN LISTBOXADDSTRING - EXTERN LISTBOXSETCURSEL - EXTERN SETDLGITEMTEXT - EXTERN SETWINDOWTEXT - EXTERN CENTER - EXTERN LISTVIEW_SETCURSEL - EXTERN C_SETFOCUS - EXTERN GETDLGITEMTEXT - EXTERN GETWINDOWTEXT - EXTERN ISDLGBUTTONCHECKED - EXTERN COMBOGETCURSEL - EXTERN LISTBOXGETCURSEL - EXTERN COMBOBOXDELETESTRING - EXTERN LISTBOXDELETESTRING - EXTERN LISTVIEWDELETESTRING - EXTERN LISTBOXRESET - EXTERN LISTVIEWRESET - EXTERN COMBOBOXRESET - EXTERN SENDMESSAGE - EXTERN C_GETFOLDER - EXTERN C_BROWSEFORFOLDER - EXTERN C_GETSPECIALFOLDER - #endif - - #ifdef WIN - #COMMAND Alert( ) => MessageBox( 0, CStr( ), "PP for Windows", 0 ) - EXTERN MessageBox - #endif - - #endif - -#else - - #DEFINE __CLIPPER__ - - #translate At( , , ) => IIF( ( M->__AT__ := At( , SubStr( , ) ) ) == 0, 0, + M->__AT__ - 1 ) - - #ifndef CRLF - #DEFINE CRLF Chr(13) + Chr(10) - #endif - - STATIC s_abBlocks := {}, nBlockId := 0 - - EXTERNAL BROWSE - - EXTERNAL ARRAY,ASIZE,ATAIL,AINS,ADEL,AFILL,ASCAN,AEVAL,ACOPY,ACLONE,ADIR, ASORT - - EXTERNAL ERRORLEVEL - - EXTERNAL __QQPUB,__MCLEAR,__MRELEASE,__MXRELEASE,__MSAVE,__MRESTORE ; - - EXTERNAL PROCNAME,PROCLINE,PROCFILE - - EXTERNAL BIN2W,BIN2I,BIN2L,I2BIN,L2BIN - - EXTERNAL OUTSTD,OUTERR,QQOUT,QOUT,DISPOUT,DISPOUTAT,__EJECT, ; - SETPRC,DISPBOX,DISPBEGIN,DISPEND,DISPCOUNT,ISCOLOR, ; - NOSNOW,DBGSHADOW,SAVESCREEN,RESTSCREEN,SETCURSOR,SETBLINK,SETMODE,__ACCEPT, ; - __ACCEPTSTR - - EXTERNAL __COPYFILE - - EXTERNAL DESCEND,DIRECTORY - - EXTERNAL VERSION,GETENV,__RUN - - EXTERNAL ERRORNEW,DOSERROR - - EXTERNAL FERASE,FRENAME,FILE,FREADSTR,CURDIR,DISKSPACE - - EXTERNAL __KEYBOARD,NEXTKEY,LASTKEY,FKLABEL,FKMAX - - EXTERNAL ISPRINTER - - EXTERNAL MOD - - EXTERNAL MEMOREAD,MEMOWRIT,MEMOLINE,MLCOUNT,MLPOS,MEMOTRAN - - EXTERNAL NETNAME - - EXTERNAL __BOX,__BOXD,__BOXS - - EXTERNAL AMPM,DAYS,ELAPTIME,LENNUM,SECS,TSTRING - - EXTERNAL SETCANCEL,__SETCENTURY,DEFPATH,__DEFPATH - - EXTERNAL SETCOLOR,COLORSELECT - - EXTERNAL SOUNDEX - - EXTERNAL ISALPHA,ISDIGIT,ISUPPER,ISLOWER,ALLTRIM,PADR,PAD,PADL,PADC, ; - STUFF,STRZERO - - EXTERNAL TONE - - EXTERNAL TRANSFORM - - EXTERNAL __XHELP - - EXTERNAL ACHOICE - - EXTERNAL __NONOALERT - - EXTERNAL TBROWSEDB,DBEDIT - - EXTERNAL DEVOUTPICT - - EXTERNAL __DIR - - EXTERNAL DBSETRELATION,DBCLEARREL,MEMOEDIT,MLCTOPOS,MPOSTOLC,__DBAPP,__DBCOPY, ; - __DBDELIM,__DBJOIN,__DBLIST,__DBSDF,__DBSORT,__DBTOTAL,__DBUPDATE,__DBARRANGE,__DBFLIST, ; - __DBOPENSDF,__DBTRANS,__DBTRANSREC - - EXTERNAL FIELDBLOCK,FIELDWBLOCK - - EXTERNAL __INPUT - - EXTERNAL MEMVARBLOCK - - EXTERNAL __ATPROMPT,__MENUTO - - EXTERNAL READKEY - - EXTERNAL SETKEY - - EXTERNAL SETTYPEAHEAD - - EXTERNAL TBCOLUMNNEW,TBROWSENEW - - EXTERNAL __TEXTSAVE,__TEXTRESTORE - - EXTERNAL __GET,__GETA - - EXTERNAL __LABELFORM, __REPORTFORM - - EXTERNAL __TYPEFILE - - EXTERNAL __WAIT - - EXTERNAL __XSAVESCREEN,__XRESTSCREEN - - /* - EXTERNAL RDDSYS,AFIELDS,DBEVAL,DBCLEARFILTER,DBCLOSEALL, ; - DBCOMMIT,__DBCONTINUE,DBCREATE,DBDELETE,DBFILTER,DBGOBOTTOM,DBGOTO, ; - DBGOTOP,__DBLOCATE,__DBSETLOCATE,__DBPACK,DBRECALL,DBRLOCK,DBRLOCKLIST,DBRUNLOCK,DBSEEK, ; - DBSELECTAREA,__DBSETFOUND,DBSKIP,DBSETFILTER,DBSTRUCT,DBTABLEEXT,DBUNLOCK,DBUNLOCKALL,DBUSEAREA, ; - __DBZAP,DELETED,EOF,FCOUNT,FIELDGET,FIELDNAME,FIELDPOS,FIELDPUT,FLOCK,FOUND,HEADER,INDEXORD, ; - LASTREC,LOCK,LUPDATE,NETERR,ORDBAGEXT,ORDBAGNAME,ORDCONDSET,ORDCREATE,ORDDESTROY,ORDFOR,ORDKEY, ; - ORDLISTADD,ORDLISTCLEAR,ORDLISTREBUILD,ORDNAME,ORDNUMBER,ORDSETFOCUS,RDDLIST,RDDNAME,RDDREGISTER, ; - RECCOUNT,RECNO,RECSIZE,RLOCK,SELECT,USED,RDDSETDEFAULT,RDDSETDEFAULT,DBSETDRIVER - */ - - EXTERNAL __DBPACK,__DBZAP,DBCLOSEALL,DBGOBOTTOM,DBGOTO,DBGOTOP - - EXTERNAL DBREINDEX,DBCREATEINDEX,DBCLEARINDEX,DBSETINDEX,DBSETORDER - - EXTERNAL __DBCOPYSTRUCT,__DBCOPYXSTRUCT,__DBCREATE,__FLEDIT - - EXTERNAL INDEXEXT,INDEXKEY - -#endif - -STATIC aDefRules := {}, aDefResults := {} -STATIC aTransRules := {}, aTransResults := {} -STATIC aCommRules := {}, aCommResults := {} - -STATIC bDbgMatch := .F., bDbgExp := .F., bDbgPPO := .F., bLoadRules := .T., ; - bCount := .T., bCCH := .F., bCompile := .T., bStrict := .T. - -STATIC nIfDef := 0, abIfDef := {}, nIf := 0, abIf := {} - -STATIC hPP - -STATIC s_asPaths := {} - -STATIC s_bArrayPrefix := .F. - -STATIC s_sFile := "", s_sIncludeFile - -STATIC s_nRow, s_nCol - -STATIC s_nProcId := 0, s_aProcedures := {}, s_xRet, s_nIfLevel := 0, ; - s_aProcStack := {}, s_nProcStack := 0 - -STATIC s_asPrivates := {}, s_asPublics := {}, s_asLocals := {}, ; - s_asStatics := {}, s_aParams := {} - -STATIC s_sModule, s_aInitExit := { {}, {} } - -STATIC s_nCompIf := 0, s_nCompLoop := 0, s_aIfJumps := {}, s_aLoopJumps := {} -STATIC s_acFlowType := {}, s_nFlowId := 0 - -#ifdef PP_RECURSIVE - STATIC s_bRecursive := .F. -#endif - -STATIC s_lRunLoaded := .F., s_lDotLoaded := .F., s_lClsLoaded := .F., s_lFWLoaded := .F., s_lMiniGUILoaded := .F. -STATIC s_aSwitchDefs := {} - -//--------------------------------------------------------------// -#ifdef __HARBOUR__ - PROCEDURE _apMain( sSource, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) -#else - PROCEDURE Main( sSource, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) -#endif - - LOCAL sIncludePath, nNext, sPath, sSwitch := "" - LOCAL nAt, sParams, sPPOExt, aParams := {} - LOCAL sDefine, sCH - - IF p1 != NIL - sSwitch += p1 - ENDIF - IF p2 != NIL - sSwitch += p2 - ENDIF - IF p3 != NIL - sSwitch += p3 - ENDIF - IF p4 != NIL - sSwitch += p4 - ENDIF - IF p5 != NIL - sSwitch += p5 - ENDIF - IF p6 != NIL - sSwitch += p6 - ENDIF - IF p7 != NIL - sSwitch += p7 - ENDIF - IF p8 != NIL - sSwitch += p8 - ENDIF - IF p9 != NIL - sSwitch += p9 - ENDIF - - IF sSource != NIL .AND. ( Upper( sSource ) == "-H" .OR. Upper( sSource ) == "--HELP" ) - sSwitch := " PP filename[.ext] [-CCH] [-D] [-D:E] [-D:M] [-D:P] [-I] [-P] [-R]" + CRLF - sSwitch += " [-FIX] [-U[ch-file]]" + CRLF + CRLF - - sSwitch += [ -CCH = Generate a .cch file (compiled command header).] + CRLF - sSwitch += [ -D = #define .] + CRLF - sSwitch += [ -D:E = Show tracing information into the Expression Scanner.] + CRLF - sSwitch += [ -D:M = Show tracing information into the Match Engine.] + CRLF - sSwitch += [ -D:P = Show tracing information into the Output Generator.] + CRLF - sSwitch += [ -I = #include file search path(s) ('] + OS_PATH_LIST_SEPARATOR + [' seperated).] + CRLF - sSwitch += [ -P = Generate .pp$ pre-processed output file.] + CRLF - sSwitch += [ -R = Run filename as a script.] + CRLF - sSwitch += [ -FIX = Do not clone Clipper PreProcessor bugs.] + CRLF - sSwitch += [ -U = Use command definitions set in (or none).] + CRLF - - ? sSwitch - ? - QUIT - endif - - #ifdef __PLATFORM__UNIX - if right( hb_argv( 0 ), 6 ) == "/pprun" - bCount := .F. - bCompile := .T. - sSwitch := "" - aParams := { p1, p2, p3, p4, p5, p6, p7, p8, p9 } - aSize( aParams, PCount() - 1 ) - endif - #endif - - #ifdef _DEFAULT_INC_DIR - sPath := _DEFAULT_INC_DIR - IF ! ( Right( sPath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sPath += OS_PATH_DELIMITER - ENDIF - aAdd( s_asPaths, sPath ) - #endif - - sIncludePath := GetE( "INCLUDE" ) - - WHILE ( nNext := At( OS_PATH_LIST_SEPARATOR, sIncludePath ) ) > 0 - sPath := Left( sIncludePath, nNext - 1 ) - IF ! ( Right( sPath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sPath += OS_PATH_DELIMITER - ENDIF - aAdd( s_asPaths, sPath ) - sIncludePath := SubStr( sIncludePath, nNext + 1 ) - ENDDO - IF ! ( sIncludePath == '' ) - IF ! ( Right( sIncludePath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sIncludePath += OS_PATH_DELIMITER - ENDIF - aAdd( s_asPaths, sIncludePath ) - ENDIF - -#ifdef __CLIP__ - sIncludePath := StartPath() - nAt := AtR( '/', sIncludePath ) - - IF nAt <= 0 - nAt := AtR( "\", sIncludePath ) - ENDIF - //? nAt,sIncludePath - - IF nAt != 0 - sIncludePath := Left( sIncludePath, nAt - 1 ) - - IF ! ( Right( sIncludePath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sIncludePath += OS_PATH_DELIMITER - ENDIF - - aAdd( s_asPaths, sIncludePath ) - ENDIF - - IF Empty( GetEnv( "CLIPROOT" ) ) - aAdd( s_asPaths, ClipRoot() + OS_PATH_DELIMITER + "include" + OS_PATH_DELIMITER ) - ELSE - aAdd( s_asPaths, GetEnv( "CLIPROOT" ) + OS_PATH_DELIMITER + "include" + OS_PATH_DELIMITER ) - ENDIF -#endif - - IF ! Empty( sSwitch ) - sSwitch := Upper( sSwitch ) - - /* Generate compiled header. */ - IF "-CCH" $ sSwitch - bCCH := .T. - bCompile := .F. - ENDIF - - /* Debug tracing options. */ - IF "-D:E" $ sSwitch - bDbgExp := .T. - sSwitch := StrTran( sSwitch, "-D:E", "" ) - ENDIF - IF "-D:M" $ sSwitch - bDbgMatch := .T. - sSwitch := StrTran( sSwitch, "-D:M", "" ) - ENDIF - IF "-D:P" $ sSwitch - bDbgPPO := .T. - sSwitch := StrTran( sSwitch, "-D:P", "" ) - ENDIF - - /* Process command line defines. */ - WHILE ( nAt := At( "-D", sSwitch ) ) > 0 - nNext := At( "-", SubStr( sSwitch, nAt + 2 ) ) - IF nNext == 0 - nNext := 256 - ENDIF - - sDefine := SubStr( sSwitch, nAt + 2, nNext - 1 ) - sSwitch := Left( sSwitch, nAt - 1 ) + SubStr( sSwitch, nAt + 1 + nNext ) - //CompileDefine( sDefine ) - aAdd( s_aSwitchDefs, sDefine ) - ENDDO - - /* Process command line include paths. */ - IF ( nAt := At( "-I", sSwitch ) ) > 0 - nNext := At( "-", SubStr( sSwitch, nAt + 2 ) ) - IF nNext == 0 - nNext := 256 - ENDIF - sIncludePath := SubStr( sSwitch, nAt + 2, nNext - 1 ) - - WHILE ( nNext := At( OS_PATH_LIST_SEPARATOR, sIncludePath ) ) > 0 - sPath := Left( sIncludePath, nNext - 1 ) - IF ! ( Right( sPath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sPath += OS_PATH_DELIMITER - ENDIF - aAdd( s_asPaths, sPath ) - sIncludePath := SubStr( sIncludePath, nNext + 1 ) - ENDDO - IF ! ( sIncludePath == '' ) - IF ! ( Right( sIncludePath, 1 ) $ OS_PATH_DELIMITER_LIST ) - sIncludePath += OS_PATH_DELIMITER - ENDIF - aAdd( s_asPaths, sIncludePath ) - ENDIF - ENDIF - - /* Generate .pp$ pre-processed output file. */ - IF "-P" $ sSwitch - sPPOExt := ".pp$" - bCompile := .F. - ENDIF - - /* Run file as a script. */ - IF "-R" $ sSwitch - bCompile := .T. - ENDIF - - /* Clone Clipper PreProcessor bugs. */ - IF "-FIX" $ sSwitch - bStrict := .F. - ENDIF - - /* Use alternate command defintions file, or none. */ - WHILE ( nAt := At( "-U", sSwitch ) ) > 0 - nNext := At( "-", SubStr( sSwitch, nAt + 2 ) ) - IF nNext == 0 - nNext := 256 - ENDIF - - sCH := SubStr( sSwitch, nAt + 2, nNext - 1 ) - sSwitch := Left( sSwitch, nAt - 1 ) + SubStr( sSwitch, nAt + 1 + nNext ) - - IF( ! sCH == "" ) - ? [Loading standard definitions from: '] + sCH + "'" - ? - - CompileDefine( "__PP__" ) - #ifdef __HARBOUR__ - CompileDefine( "__HARBOUR__" ) - #endif - - PP_PreProFile( sCH, NIL, .F., .T. ) // Process ONLY #Directives! - - /* Reset.*/ - hPP := NIL - ENDIF - - /* Don't load standard defintions. */ - bLoadRules := .F. - ENDDO - - /* End of command line arguments processing. */ - ENDIF - - IF bLoadRules - InitRules() - InitResults() - - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [#DEFINE Rules size mismatch] ) - ENDIF - - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [#TRANSLATE Rules size mismatch] ) - ENDIF - - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [#DEFINE Rules size mismatch] ) - ENDIF - - CompileDefine( "__PP__" ) - #ifdef __HARBOUR__ - CompileDefine( "__HARBOUR__" ) - #endif - ELSE - IF sCH == NIL - Alert( [Not using standard rules.] ) - ENDIF - ENDIF - - // Command line defines. - #ifdef __XHARBOUR__ - FOR EACH sDefine IN s_aSwitchDefs - CompileDefine( sDefine ) - NEXT - #else - FOR nAt := 1 TO Len( s_aSwitchDefs ) - CompileDefine( s_aSwitchDefs[ nAt ] ) - NEXT - #endif - - IF sSource == NIL - s_nRow := 2 - s_nCol := 0 - - RP_Dot() - ELSE - s_nRow := Row() - s_nCol := Col() - - IF bCompile - // Populate possible Command-line Parameters - IF ( nAt := At( " ", sSource ) ) > 0 - sParams := LTrim( SubStr( sSource, nAt + 1 ) ) - sSource := Left( sSource, nAt - 1 ) - - WHILE ( nAt := At( " ", sParams ) ) > 0 - aAdd( aParams, Left( sParams, nAt - 1 ) ) - sParams := LTrim( SubStr( sParams, nAt + 1 ) ) - ENDDO - IF ! sParams == "" - aAdd( aParams, sParams ) - ENDIF - ENDIF - - PP_Run( sSource, aParams, sPPOExt ) - ELSE - PP_PreProFile( sSource, sPPOExt ) - ENDIF - ENDIF - - DevPos( s_nRow, s_nCol ) - -RETURN - -//------------------------------- *** RP DOT and Interpreter Functions *** -------------------------------// - -FUNCTION PP_ExecMethod( sProcName, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) - - LOCAL i, sProc, nProc, nParams - - sProcName := Upper( sProcName ) - - sProc := s_sModule + sProcName - nProc := aScan( s_aProcedures, {|aProc| aProc[1] == sProc } ) - IF nProc == 0 - sProc := sProcName - nProc := aScan( s_aProcedures, {|aProc| aProc[1] == sProc } ) - ENDIF - - IF nProc > 0 - s_xRet := NIL - - nParams := PCount() - s_aParams := {} -#ifdef __CLIP__ - FOR i := 2 TO nParams - aAdd( s_aParams, Param( i ) ) - NEXT -#else - DO CASE - CASE nParams == 0 - CASE nParams == 1 - aAdd( s_aParams, p1 ) - CASE nParams == 2 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - CASE nParams == 3 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - CASE nParams == 4 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - CASE nParams == 5 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - aAdd( s_aParams, p5 ) - CASE nParams == 6 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - aAdd( s_aParams, p5 ) - aAdd( s_aParams, p6 ) - CASE nParams == 7 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - aAdd( s_aParams, p5 ) - aAdd( s_aParams, p6 ) - aAdd( s_aParams, p7 ) - CASE nParams == 8 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - aAdd( s_aParams, p5 ) - aAdd( s_aParams, p6 ) - aAdd( s_aParams, p7 ) - aAdd( s_aParams, p8 ) - CASE nParams == 9 - aAdd( s_aParams, p1 ) - aAdd( s_aParams, p2 ) - aAdd( s_aParams, p3 ) - aAdd( s_aParams, p4 ) - aAdd( s_aParams, p5 ) - aAdd( s_aParams, p6 ) - aAdd( s_aParams, p7 ) - aAdd( s_aParams, p8 ) - aAdd( s_aParams, p9 ) - ENDCASE -#endif - - PP_ExecProcedure( s_aProcedures[nProc] ) - ELSE - Alert( [Missing Method: ] + sProcName ) - ENDIF - -RETURN s_xRet - -//--------------------------------------------------------------// - -FUNCTION PP_ExecProcedure( aProc, sProcName ) - - LOCAL nBlock, nBlocks := Len( aProc[2] ), xErr - LOCAL nVar, nVars - - IF s_nProcStack > 0 - /* Saving Privates of upper level. */ - nVars := Len( s_asPrivates ) - aAdd( s_aProcStack[s_nProcStack], Array( nVars, 2 ) ) - FOR nVar := 1 TO nVars - s_aProcStack[s_nProcStack][3][nVar][1] := s_asPrivates[nVar] - #ifdef __HARBOUR__ - s_aProcStack[s_nProcStack][3][nVar][2] := __MVGET( s_asPrivates[nVar] ) - #else - s_aProcStack[s_nProcStack][3][nVar][2] := &( s_asPrivates[nVar] ) - #endif - //Alert( [Saved upper Private: ] + s_asPrivates[nVar] + [ in ] + s_aProcStack[s_nProcStack][1] ) - NEXT - aSize( s_asPrivates, 0 ) - - /* Saving and Releasing Locals of upper level. */ - nVars := Len( s_asLocals ) - aAdd( s_aProcStack[s_nProcStack], Array( nVars, 2 ) ) - FOR nVar := 1 TO nVars - s_aProcStack[s_nProcStack][4][nVar][1] := s_asLocals[nVar] - s_aProcStack[s_nProcStack][4][nVar][2] := &( s_asLocals[nVar] ) - __MXRelease( s_asLocals[nVar] ) - //Alert( [Released upper local: ] + s_asLocals[nVar] + [ in ] + s_aProcStack[s_nProcStack][1] ) - NEXT - aSize( s_asLocals, 0 ) - ENDIF - - aAdd( s_aProcStack, { aProc[1], 0 } ) - s_nProcStack++ - - FOR nBlock := 1 TO nBlocks - IF aProc[2][nBlock][2] == NIL - IF aProc[2][nBlock][1] != 0 // Uncondtional Jump. - nBlock := aProc[2][nBlock][1] - ENDIF - ELSE - s_aProcStack[ Len( s_aProcStack ) ][2] := aProc[2][nBlock][3] // Line No. - - BEGIN SEQUENCE - - //TraceLog( "Line: " + Str( aProc[2][nBlock][3], 3 ) ) - - IF aProc[2][nBlock][1] == 0 - //? aProc[2][nBlock][3] - Eval( aProc[2][nBlock][2] ) - ELSE - IF ! Eval( aProc[2][nBlock][2] ) // Jump if FALSE. - nBlock := aProc[2][nBlock][1] - //TraceLog( "Jump: " + Str( aProc[2][nBlock][3], 3 ) ) - ENDIF - ENDIF - - RECOVER USING xErr - IF ValType( xErr ) == 'L' - //TraceLog( "Return" ) - // Return from this procedure requested by PP_SetReturn() - EXIT - ENDIF - END SEQUENCE - ENDIF - NEXT - - /* Releasing Privates created by the Procedure */ - nVars := Len( s_asPrivates ) - FOR nVar := 1 TO nVars - __MXRelease( s_asPrivates[nVar] ) - //Alert( [Released private: ] + s_asPrivates[nVar] + [ in ] + s_aProcStack[s_nProcStack][1] ) - NEXT - aSize( s_asPrivates, 0 ) - - /* Releasing Locals created by the Procedure */ - nVars := Len( s_asLocals ) - FOR nVar := 1 TO nVars - __MXRelease( s_asLocals[nVar] ) - //Alert( [Released local: ] + s_asLocals[nVar] + [ in ] + s_aProcStack[s_nProcStack][1] ) - NEXT - aSize( s_asLocals, 0 ) - - s_nProcStack-- - aSize( s_aProcStack, s_nProcStack ) - - IF s_nProcStack > 0 - /* Restoring Privates of parrent. */ - nVars := Len( s_aProcStack[s_nProcStack][3] ) - FOR nVar := 1 TO nVars - aAdd( s_asPrivates, s_aProcStack[s_nProcStack][3][nVar][1] ) - #ifdef __HARBOUR__ - __QQPub( s_aProcStack[s_nProcStack][3][nVar][1] ) - __MVPUT( s_aProcStack[s_nProcStack][3][nVar][1], s_aProcStack[s_nProcStack][3][nVar][2] ) - #else - __QQPub( s_aProcStack[s_nProcStack][3][nVar][1] ) - &( s_aProcStack[s_nProcStack][3][nVar][1] ) := s_aProcStack[s_nProcStack][3][nVar][2] - #endif - NEXT - - /* Restoring Locals of parrent. */ - nVars := Len( s_aProcStack[s_nProcStack][4] ) - FOR nVar := 1 TO nVars - aAdd( s_asLocals, s_aProcStack[s_nProcStack][4][nVar][1] ) - #ifdef __HARBOUR__ - __QQPub( s_aProcStack[s_nProcStack][4][nVar][1] ) - __MVPUT( s_aProcStack[s_nProcStack][4][nVar][1], s_aProcStack[s_nProcStack][4][nVar][2] ) - #else - __QQPub( s_aProcStack[s_nProcStack][4][nVar][1] ) - &( s_aProcStack[s_nProcStack][4][nVar][1] ) := s_aProcStack[s_nProcStack][4][nVar][2] - #endif - NEXT - - aSize( s_aProcStack[s_nProcStack], 2 ) - ENDIF - -RETURN s_xRet - -//--------------------------------------------------------------// - -PROCEDURE RP_Dot() - - LOCAL GetList := {}, sLine := Space(256) - LOCAL nDefines, nCommands, nTranslates - - LOCAL aCpyDefRules, aCpyDefResults - LOCAL aCpyCommRules, aCpyCommResults - LOCAL aCpyTranRules, aCpyTranResults - - LOCAL aKBCommands := Array( 16 ), nKBCommand := 1, nTemp, bKey5, bKey24 - - #ifdef FW - Alert( [DOT mode (no filename parameter) is Not ready for GUI yet.] + [;;Please try Interpreter mode, using the -R switch...] ) - RETURN - #endif - - bCount := .F. - - IF File( "ro_dot.ch" ) - PP_PreProFile( "rp_dot.ch" ) - ELSE - PP_LoadDot() - ENDIF - - #ifdef WIN - PP_PreProLine( '#COMMAND Alert( ) => MessageBox( 0, CStr( ), "TInterpreter for Windows", 0 )' ) - #endif - - aCpyDefRules := aClone( aDefRules ) - aCpyDefResults := aClone( aDefResults ) - - aCpyCommRules := aClone( aCommRules ) - aCpyCommResults := aClone( aCommResults ) - - aCpyTranRules := aClone( aTransRules ) - aCpyTranResults := aClone( aTransResults ) - - ErrorBlock( {|oErr| RP_Dot_Err( oErr ) } ) - - CLEAR SCREEN - SET SCOREBOARD OFF - - @ 0,0 SAY "PP: " - @ 0,4 SAY Space( 76 ) COLOR "N/R" - @ 1,0 SAY PadR( "RDD: " + Space( 6 ) + " | Area: " + Space( 2 ) + " | Dbf: " + Space( 10 ) + ; - " | Index: " + Space( 8 ) + " | # " + Space( 7 ) + "/" + Space( 7 ), MaxCol() + 1 ) ; - COLOR "N/BG" - - DevPos( 02, 00 ) - - aFill( aKBCommands, sLine ) - - DO WHILE .T. - sLine := aKBCommands[ nKBCommand ] - - @ MaxRow(), 00 SAY '.' - @ MaxRow(), 01 GET sLine PICTURE '@KS79' - SET CURSOR ON - - bKey5 := SetKey( 5, { || IIF( nKBCommand > 1, sLine := aKBCommands[ --nKBCommand ], ) } ) - bKey24 := SetKey( 24, { || IIF( nKBCommand < 16, sLine := aKBCommands[ ++nKBCommand ], ) } ) - - READ - - SetKey( 5, bKey5 ) - SetKey( 24, bKey24 ) - - IF ! sLine == aKBCommands[ nKBCommand ] - IF ( nTemp := aScan( aKBCommands, sLine ) ) == 0 - aKBCommands[ nKBCommand ] := sLine - ENDIF - ENDIF - - IF LastKey() == 27 - aKBCommands[ nKBCommand ] := Space( 256 ) - LOOP - ELSEIF LastKey() == 13 .OR. LastKey() == 24 .OR. LastKey() == 9 - nKBCommand++ - IF nKBCommand > 16 - aDel( aKBCommands, 1 ) - aKBCommands[16] := Space( 256 ) - nKBCommand := 16 - ENDIF - ELSEIF LastKey() == 5 .OR. LastKey() == 271 - nKBCommand-- - ENDIF - - sLine := StrTran( sLine, Chr(9), " " ) - - ExecuteLine( PP_PreProLine( RTrim( sLine ), 1, '' ) ) - - //TraceLog( Len( aDefRules ), Len( aCommRules ), Len( aTransRules ) ) - - IF s_nRow >= MaxRow() - 1 - Scroll( 2, 0, MaxRow() - 1, MaxCol(), 1 ) - s_nRow := MaxRow() - 2 - ENDIF - - IF s_lRunLoaded - aDefRules := aClone( aCpyDefRules ) - aDefResults := aClone( aCpyDefResults ) - - aCommRules := aClone( aCpyCommRules ) - aCommResults := aClone( aCpyCommResults ) - - aTransRules := aClone( aCpyTranRules ) - aTransResults := aClone( aCpyTranResults ) - - s_lRunLoaded := .F. - s_lClsLoaded := .F. - s_lFWLoaded := .F. - ENDIF - - ENDDO - - CLEAR SCREEN - -RETURN - -//--------------------------------------------------------------// - -STATIC PROCEDURE ExecuteLine( sPPed ) - - LOCAL nNext, sBlock, sTemp - LOCAL sTemp2, nLen, sLeft, sSymbol, nNextAssign - - ExtractLeadingWS( @sPPed ) - DropTrailingWS( @sPPed ) - sTemp := sPPed - - @ 0,0 SAY "PP: " - @ 0,4 SAY Pad( sPPed, 76 ) COLOR "N/R" - DevPos( s_nRow, s_nCol ) - - BEGIN SEQUENCE - - WHILE ( nNext := nAtSkipStr( ';', sTemp ) ) > 0 - sBlock := Left( sTemp, nNext - 1 ) - ExtractLeadingWS( @sBlock ) - DropTrailingWS( @sBlock ) - - sTemp2 := sBlock - WHILE ( nNextAssign := At( ":=", sTemp2 ) ) > 0 - sLeft := Left( sTemp2, nNextAssign - 1 ) - sTemp2 := SubStr( sTemp2, nNextAssign + 2 ) - - DropTrailingWS( @sLeft ) - nLen := Len( sLeft ) - WHILE nLen > 0 - IF SubStr( sLeft, nLen, 1 ) $ " (,=><*+-\^&@[" - EXIT - ENDIF - nLen-- - ENDDO - IF nLen == 0 - sSymbol := sLeft - ELSE - sSymbol := SubStr( sLeft, nLen + 1 ) - ENDIF - IF ( Type( sSymbol ) = 'U' ) - PUBLIC &sSymbol - ENDIF - ENDDO - - IF sBlock = "__" - sSymbol := Upper( SubStr( sBlock, 3, 12 ) ) // Len( "SetOtherwise" ) - ELSE - sSymbol := "" - ENDIF - IF nIf == 0 .OR. ; - sSymbol = "SETIF" .OR. sSymbol = "SETELSE" .OR. sSymbol = "SETELSEIF" .OR. sSymbol = "SETEND" .OR. ; - sSymbol = "SETDOCASE" .OR. sSymbol = "SETCASE" .OR. sSymbol = "SETOTHERWISE" .OR. sSymbol = "SETENDCASE" .OR. ; - abIf[ nIf ] - - @ 0,0 SAY "PP: " - @ 0,4 SAY Pad( sBlock, 76 ) COLOR "N/R" - DevPos( s_nRow, s_nCol ) - - sBlock := "{|| " + sBlock + " }" - #ifdef __CLIPPER__ - /* Clipper Macro Compiler can't compile nested blocks! */ - CompileNestedBlocks( sBlock, @sBlock ) - #endif - - Eval( &sBlock ) - - s_nRow := Row() - s_nCol := Col() - - #ifdef __CLIPPER__ - nBlockID := 0 - aSize( s_abBlocks, 0 ) - #endif - ENDIF - - sTemp := RTrim( SubStr( sTemp, nNext + 1 ) ) - ExtractLeadingWS( @sTemp ) - ENDDO - - sBlock := sTemp - DropTrailingWS( @sBlock ) - - IF ! ( sBlock == '' ) - sTemp2 := sBlock - WHILE ( nNextAssign := At( ":=", sTemp2 ) ) > 0 - sLeft := Left( sTemp2, nNextAssign - 1 ) - sTemp2 := SubStr( sTemp2, nNextAssign + 2 ) - - DropTrailingWS( @sLeft ) - nLen := Len( sLeft ) - WHILE nLen > 0 - IF SubStr( sLeft, nLen, 1 ) $ " (,=><*+-\^&@[" - EXIT - ENDIF - nLen-- - ENDDO - IF nLen == 0 - sSymbol := sLeft - ELSE - sSymbol := SubStr( sLeft, nLen + 1 ) - ENDIF - IF ( Type( sSymbol ) = 'U' ) - PUBLIC &sSymbol - ENDIF - ENDDO - - IF sBlock = "__" - sSymbol := Upper( SubStr( sBlock, 3, 12 ) ) // Len( "SetOtherwise" ) - ELSE - sSymbol := "" - ENDIF - IF nIf == 0 .OR. ; - sSymbol = "SETIF" .OR. sSymbol = "SETELSE" .OR. sSymbol = "SETELSEIF" .OR. sSymbol = "SETEND" .OR. ; - sSymbol = "SETDOCASE" .OR. sSymbol = "SETCASE" .OR. sSymbol = "SETOTHERWISE" .OR. sSymbol = "SETENDCASE" .OR. ; - abIf[ nIf ] - - @ 0,0 SAY "PP: " - @ 0,4 SAY Pad( sBlock, 76 ) COLOR "N/R" - DevPos( s_nRow, s_nCol ) - - sBlock := "{|| " + sBlock + " }" - #ifdef __CLIPPER__ - /* Clipper Macro Compiler can't compile nested blocks! */ - CompileNestedBlocks( sBlock, @sBlock ) - //TraceLog( sBlock ) - #endif - - Eval( &sBlock ) - ENDIF - ENDIF - - s_nRow := Row() - s_nCol := Col() - - @ 0,0 SAY "PP: " - @ 0,4 SAY Pad( sPPed, 76 ) COLOR "N/R" - - IF Empty( Alias() ) - @ 1,0 SAY PadR( "RDD: " + Space( 6 ) + " | Area: " + Space( 2 ) + " | Dbf: " + Space( 10 ) + ; - " | Index: " + Space( 8 ) + " | # " + Space( 7 ) + "/" + Space( 7 ), MaxCol() + 1 ) ; - COLOR "N/BG" - ELSE - //@ 1,0 CLEAR TO 1, MaxCol() - @ 1,0 SAY PadR( "RDD: " + RddName() + " | Area: " + Str( Select(), 2 ) + " | Dbf: " + PadR( Alias(), 10 ) + ; - " | Index: " + PadR( OrdName( IndexOrd() ), 8 ) + " | # " + Str( RecNo(), 7 ) + ; - "/" + Str( RecCount(), 7 ), MaxCol() + 1 ); - COLOR "N/BG" - ENDIF - END SEQUENCE - - #ifdef __CLIPPER__ - nBlockID := 0 - aSize( s_abBlocks, 0 ) - #endif - -RETURN - -//--------------------------------------------------------------// - -FUNCTION PP_CompileLine( sPPed, nLine, aProcedures, aInitExit, nProcId ) - - LOCAL nNext, sBlock, sTemp - LOCAL sSymbol - LOCAL nAt, nPos, cChr - LOCAL nJumps, nJump - LOCAL sCounter, sStart, sEnd, sStep - LOCAL Dummy - - ExtractLeadingWS( @sPPed ) - DropTrailingWS( @sPPed ) - - //TraceLog( sPPed, nLine ) - - BEGIN SEQUENCE - - IF sPPed = "_HB_CLASS" - BREAK - ENDIF - - sTemp := sPPed - WHILE ( nNext := nAtSkipStr( ';', sTemp ) ) > 0 - sBlock := Left( sTemp, nNext - 1 ) - - sTemp := RTrim( SubStr( sTemp, nNext + 1 ) ) - ExtractLeadingWS( @sTemp ) - - ExtractLeadingWS( @sBlock ) - DropTrailingWS( @sBlock ) - - IF ! Empty( sBlock ) - IF sBlock = "#line" - LOOP - ENDIF - - #ifdef __CLIPPER__ - /* Clipper Macro Compiler can't compile nested blocks! */ - CompileNestedBlocks( sBlock, @sBlock ) - #endif - - IF ( nProcId == 0 .AND. sBlock = "PP_Statics" ) - Dummy := &( sBlock ) - LOOP - ENDIF - - IF sBlock = "PP_PROC" - sSymbol := Upper( LTrim( SubStr( sBlock, At( ' ', sBlock ) ) ) ) - aSize( aProcedures, ++nProcId ) - - IF sBlock = "PP_PROC_PRG" - sSymbol := s_sModule + sSymbol - ELSEIF sBlock = "PP_PROC_INIT" - aAdd( aInitExit[1], nProcId ) - ELSEIF sBlock = "PP_PROC_EXIT" - aAdd( aInitExit[2], nProcId ) - ENDIF - - //TraceLog( sSymbol , nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ELSE - IF sBlock = "PP__" - IF sBlock = "PP__FOR" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "F" - - sBlock := SubStr( sBlock, 9 ) - sCounter := Left( sBlock, ( nAt := AT( ":=", sBlock ) ) - 1 ) - sBlock := SubStr( sBlock, nAt + 2 ) - sStart := Left( sBlock, ( nAt := At( "~TO~", sBlock ) ) - 1 ) - sBlock := SubStr( sBlock, nAt + 4 ) - sEnd := Left( sBlock, ( nAt := At( "~STEP~", sBlock ) ) - 1 ) - sStep := SubStr( sBlock, nAt + 6 ) - IF sStep == "" - sStep := "1" - ENDIF - - // No procedure declaration. - IF nProcId == 0 - sSymbol := "Implied_Main" - aSize( aProcedures, ++nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ENDIF - - aAdd( aProcedures[ nProcId ][2], { 0, &( "{||" + sCounter + ":=" + sStart + "}" ), nLine } ) // Loop back - - sBlock := sCounter + "<=" + sEnd - - s_nCompLoop++ - aSize( s_aLoopJumps, s_nCompLoop ) - s_aLoopJumps[ s_nCompLoop ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "F", &( "{||" + sCounter + ":=" + sCounter + "+" + sStep + "}" ) } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__NEXT" - - IF s_nCompLoop == 0 .OR. s_aLoopJumps[ s_nCompLoop ][3] != "F" - Alert( [NEXT does not match FOR] ) - ELSE - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - LOOP - - ELSEIF sBlock = "PP__WHILE" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "W" - - sBlock := SubStr( sBlock, 11 ) - s_nCompLoop++ - aSize( s_aLoopJumps, s_nCompLoop ) - s_aLoopJumps[ s_nCompLoop ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "W" } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__LOOP" - - IF s_nCompLoop == 0 - Alert( [LOOP with no loop in sight!] ) - ELSE - IF s_aLoopJumps[ s_nCompLoop ][3] == "F" - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - ENDIF - - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - ENDIF - - LOOP - - ELSEIF sBlock = "PP__EXIT" - - sBlock := "" - IF s_nCompLoop == 0 - Alert( [EXIT with no loop in sight!] ) - ELSE - aAdd( s_aLoopJumps[ s_nCompLoop ][2], Len( aProcedures[ nProcId ][2] ) + 1 ) // Address of line to later place unconditional Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ENDDO" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompLoop == 0 - Alert( [ENDDO does not match WHILE] ) - ELSE - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - LOOP - - ELSEIF sBlock = "PP__DOCASE" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "C" - - sBlock := ""//SubStr( sBlock, 12 ) - s_nCompIf++ - aSize( s_aIfJumps, s_nCompIf ) - s_aIfJumps[ s_nCompIf ] := { 0, {}, "C", .F. } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__CASE" - - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "C" .OR. s_aIfJumps[ s_nCompIf ][4] - sBlock := "" - Alert( [CASE does not match DO CASE] ) - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) // Place holder for unconditional Jump to END. - aAdd( s_aIfJumps[ s_nCompIf ][2], Len( aProcedures[ nProcId ][2] ) ) // Address of line to later place unconditional Jump instruction into. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - ENDIF - - sBlock := SubStr( sBlock, 10 ) - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place conditional Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__OTHERWISE" - - sBlock := "" - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "C" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [OTHERWISE does not match DO CASE] ) - ELSE - s_aIfJumps[ s_nCompIf ][4] := .T. - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Patching the previous conditional Jump Instruction - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - ENDIF - - ELSEIF sBlock = "PP__ENDCASE" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompIf == 0 - Alert( [ENDCASE with no DO CASE in sight!] ) - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - ENDIF - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - LOOP - - ELSEIF sBlock = "PP__IF" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "I" - - sBlock := SubStr( sBlock, 8 ) - s_nCompIf++ - aSize( s_aIfJumps, s_nCompIf ) - s_aIfJumps[ s_nCompIf ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "I", .F. } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__ELSEIF" - - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "I" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [ELSEIF does not match IF] ) - LOOP - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) // Place holder for unconditional Jump to END. - aAdd( s_aIfJumps[ s_nCompIf ][2], Len( aProcedures[ nProcId ][2] ) ) // Address of line to later place unconditional Jump instruction into. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - ENDIF - - sBlock := SubStr( sBlock, 12 ) - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ELSE" - - sBlock := "" - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "I" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [ELSE does not match IF] ) - LOOP - ELSE - s_aIfJumps[ s_nCompIf ][4] := .T. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Patching the prebvious conditional Jump Instruction - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ENDIF" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompIf == 0 - Alert( [ENDIF does not match IF] ) - ELSE - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - LOOP - - ELSEIF sBlock = "PP__END" - - IF s_nCompIf == 0 .AND. s_nCompLoop == 0 - Alert( [END with no Flow-Control structure in sight!] ) - ELSE - IF s_acFlowType[ s_nFlowId ] $ "FW" - IF s_acFlowType[ s_nFlowId ] $ "F" - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - ENDIF - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aLoopJumps, s_nCompLoop ) - ELSE - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - ENDIF - - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - LOOP - - ENDIF - ELSE - nAt := At( '=', sBlock ) - IF nAt > 1 .AND. SubStr( sBlock, nAt - 1, 1 ) != ':' - nAt-- - FOR nPos := 1 TO nAt - cChr := SubStr( sBlock, nPos, 1 ) - IF ! ( IsAlpha( cChr ) .OR. IsDigit( cChr ) .OR. cChr $ "[]:&._ " ) - EXIT - ENDIF - NEXT - IF nPos > nAt - sBlock := Left( sBlock, nAt ) + ":" + SubStr( sBlock, nPos ) - ENDIF - ENDIF - ENDIF - - // No procedure declaration. - IF nProcId == 0 - sSymbol := "Implied_Main" - aSize( aProcedures, ++nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ENDIF - - IF sBlock == "" - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) - ELSE - //? nLine, nProcId, sBlock - //TraceLog( sBlock ) - aAdd( aProcedures[ nProcId ][2], { 0, &( "{||" + sBlock + "}" ), nLine } ) - ENDIF - ENDIF - ENDIF - - ENDDO - - sBlock := sTemp - DropTrailingWS( @sBlock ) - - IF sBlock = "#line" - BREAK - ENDIF - - IF ! ( sBlock == '' ) - #ifdef __CLIPPER__ - /* Clipper Macro Compiler can't compile nested blocks! */ - CompileNestedBlocks( sBlock, @sBlock ) - #endif - - IF ( nProcId == 0 .AND. sBlock = "PP_Statics" ) - Dummy := &( sBlock ) - BREAK - ENDIF - - IF sBlock = "PP_PROC" - sSymbol := Upper( LTrim( SubStr( sBlock, At( ' ', sBlock ) ) ) ) - aSize( aProcedures, ++nProcId ) - - IF sBlock = "PP_PROC_PRG" - sSymbol := s_sModule + sSymbol - ELSEIF sBlock = "PP_PROC_INIT" - aAdd( aInitExit[1], nProcId ) - ELSEIF sBlock = "PP_PROC_EXIT" - aAdd( aInitExit[2], nProcId ) - ENDIF - - //TraceLog( sSymbol , nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ELSE - IF sBlock = "PP__" - IF sBlock = "PP__FOR" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "F" - - sBlock := SubStr( sBlock, 9 ) - sCounter := Left( sBlock, ( nAt := AT( ":=", sBlock ) ) - 1 ) - sBlock := SubStr( sBlock, nAt + 2 ) - sStart := Left( sBlock, ( nAt := At( "~TO~", sBlock ) ) - 1 ) - sBlock := SubStr( sBlock, nAt + 4 ) - sEnd := Left( sBlock, ( nAt := At( "~STEP~", sBlock ) ) - 1 ) - sStep := SubStr( sBlock, nAt + 6 ) - IF sStep == "" - sStep := "1" - ENDIF - - // No procedure declaration. - IF nProcId == 0 - sSymbol := "Implied_Main" - aSize( aProcedures, ++nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ENDIF - - aAdd( aProcedures[ nProcId ][2], { 0, &( "{||" + sCounter + ":=" + sStart + "}" ), nLine } ) // Loop back - - sBlock := sCounter + "<=" + sEnd - - s_nCompLoop++ - aSize( s_aLoopJumps, s_nCompLoop ) - s_aLoopJumps[ s_nCompLoop ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "F", &( "{||" + sCounter + ":=" + sCounter + "+" + sStep + "}" ) } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__NEXT" - - IF s_nCompLoop == 0 .OR. s_aLoopJumps[ s_nCompLoop ][3] != "F" - Alert( [NEXT does not match FOR] ) - ELSE - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - BREAK - - ELSEIF sBlock = "PP__WHILE" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "W" - - sBlock := SubStr( sBlock, 11 ) - s_nCompLoop++ - aSize( s_aLoopJumps, s_nCompLoop ) - s_aLoopJumps[ s_nCompLoop ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "W" } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__LOOP" - - IF s_nCompLoop == 0 - Alert( [LOOP with no loop in sight!] ) - ELSE - IF s_aLoopJumps[ s_nCompLoop ][3] == "F" - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - ENDIF - - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - ENDIF - - BREAK - - ELSEIF sBlock = "PP__EXIT" - - sBlock := "" - IF s_nCompLoop == 0 - Alert( [EXIT with no loop in sight!] ) - ELSE - aAdd( s_aLoopJumps[ s_nCompLoop ][2], Len( aProcedures[ nProcId ][2] ) + 1 ) // Address of line to later place unconditional Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ENDDO" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompLoop == 0 - Alert( [ENDDO does not match WHILE] ) - ELSE - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - BREAK - - ELSEIF sBlock = "PP__DOCASE" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "C" - - sBlock := ""//SubStr( sBlock, 12 ) - s_nCompIf++ - aSize( s_aIfJumps, s_nCompIf ) - s_aIfJumps[ s_nCompIf ] := { 0, {}, "C", .F. } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__CASE" - - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "C" .OR. s_aIfJumps[ s_nCompIf ][4] - sBlock := "" - Alert( [CASE does not match DO CASE] ) - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) // Place holder for unconditional Jump to END. - aAdd( s_aIfJumps[ s_nCompIf ][2], Len( aProcedures[ nProcId ][2] ) ) // Address of line to later place unconditional Jump instruction into. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - ENDIF - - sBlock := SubStr( sBlock, 10 ) - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place conditional Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__OTHERWISE" - - sBlock := "" - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "C" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [OTHERWISE does not match DO CASE] ) - ELSE - s_aIfJumps[ s_nCompIf ][4] := .T. - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Patching the previous conditional Jump Instruction - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - ENDIF - - ELSEIF sBlock = "PP__ENDCASE" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompIf == 0 - Alert( [ENDCASE with no DO CASE in sight!] ) - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - ENDIF - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - BREAK - - ELSEIF sBlock = "PP__IF" - s_nFlowId++ - aSize( s_acFlowType, s_nFlowId ) - s_acFlowType[ s_nFlowId ] := "I" - - sBlock := SubStr( sBlock, 8 ) - s_nCompIf++ - aSize( s_aIfJumps, s_nCompIf ) - s_aIfJumps[ s_nCompIf ] := { Len( aProcedures[ nProcId ][2] ) + 1, {}, "I", .F. } // Address of line to later place conditional Jump instruction into. - - ELSEIF sBlock = "PP__ELSEIF" - - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "I" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [ELSEIF does not match IF] ) - BREAK - ELSE - IF s_aIfJumps[ s_nCompIf ][1] > 0 - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) // Place holder for unconditional Jump to END. - aAdd( s_aIfJumps[ s_nCompIf ][2], Len( aProcedures[ nProcId ][2] ) ) // Address of line to later place unconditional Jump instruction into. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - ENDIF - - sBlock := SubStr( sBlock, 12 ) - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ELSE" - - sBlock := "" - IF s_nCompIf == 0 .OR. s_aIfJumps[ s_nCompIf ][3] != "I" .OR. s_aIfJumps[ s_nCompIf ][4] - Alert( [ELSE does not match IF] ) - BREAK - ELSE - s_aIfJumps[ s_nCompIf ][4] := .T. - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Patching the prebvious conditional Jump Instruction - s_aIfJumps[ s_nCompIf ][1] := Len( aProcedures[ nProcId ][2] ) + 1 // Address of line to later place Jump instruction into. - ENDIF - - ELSEIF sBlock = "PP__ENDIF" - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - IF s_nCompIf == 0 - Alert( [ENDIF does not match IF] ) - ELSE - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - - BREAK - - ELSEIF sBlock = "PP__END" - - IF s_nCompIf == 0 .AND. s_nCompLoop == 0 - Alert( [END with no Flow-Control structure in sight!] ) - ELSE - IF s_acFlowType[ s_nFlowId ] $ "FW" - IF s_acFlowType[ s_nFlowId ] $ "F" - aAdd( aProcedures[ nProcId ][2], { 0, s_aLoopJumps[ s_nCompLoop ][4], nLine } ) // STEP - ENDIF - aAdd( aProcedures[ nProcId ][2], { s_aLoopJumps[ s_nCompLoop ][1] - 1, NIL, nLine } ) // Loop back - - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aLoopJumps[s_nCompLoop][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aLoopJumps[s_nCompLoop][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompLoop-- - //aSize( s_aLoopJumps, s_nCompLoop ) - ELSE - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][1] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the previous conditional Jump Instruction - - nJumps := Len( s_aIfJumps[s_nCompIf][2] ) - FOR nJump := 1 TO nJumps - aProcedures[ nProcId ][2][ s_aIfJumps[s_nCompIf][2][nJump] ][1] := Len( aProcedures[ nProcId ][2] ) // Patching the unconditional Jump Instruction - NEXT - - s_nCompIf-- - //aSize( s_aIfJumps, s_nCompIf ) - ENDIF - ENDIF - - s_nFlowId-- - //aSize( s_acFlowType, s_nFlowId ) - - BREAK - - ENDIF - ELSE - nAt := At( '=', sBlock ) - IF nAt > 1 .AND. SubStr( sBlock, nAt - 1, 1 ) != ':' - nAt-- - FOR nPos := 1 TO nAt - cChr := SubStr( sBlock, nPos, 1 ) - IF ! ( IsAlpha( cChr ) .OR. IsDigit( cChr ) .OR. cChr $ "[]:&._ " ) - EXIT - ENDIF - NEXT - IF nPos > nAt - sBlock := Left( sBlock, nAt ) + ":" + SubStr( sBlock, nPos ) - ENDIF - ENDIF - ENDIF - - // No procedure declaration. - IF nProcId == 0 - sSymbol := "Implied_Main" - aSize( aProcedures, ++nProcId ) - aProcedures[nProcId] := { sSymbol, {} } - ENDIF - - IF sBlock == "" - aAdd( aProcedures[ nProcId ][2], { 0, NIL, nLine } ) - ELSE - //? nLine, nProcId, sBlock - //TraceLog( nLine, nProcId, sBlock ) - aAdd( aProcedures[ nProcId ][2], { 0, &( "{||" + sBlock + "}" ), nLine } ) - ENDIF - ENDIF - ENDIF - - END SEQUENCE - -RETURN aProcedures - -//--------------------------------------------------------------// - -FUNCTION PP_ProcName( nLevel ) - - IF nLevel == NIL - nLevel := 0 - ENDIF - - IF nLevel >= 0 .AND. nLevel < s_nProcStack - RETURN s_aProcStack[ s_nProcStack - nLevel ][1] - ENDIF - -RETURN "" - -//--------------------------------------------------------------// - -FUNCTION PP_ProcLine( nLevel ) - - IF nLevel == NIL - nLevel := 0 - ENDIF - - IF nLevel >= 0 .AND. nLevel < s_nProcStack - RETURN s_aProcStack[ s_nProcStack - nLevel ][2] - ENDIF - -RETURN 0 - -//--------------------------------------------------------------// - -PROCEDURE PP_LocalParams( aVars ) - - LOCAL nVar, nVars := Len( aVars ), xInit, nParams - - FOR nVar := 1 TO nVars - IF ( nParams := Len( s_aParams ) ) > 0 - xInit := s_aParams[1] - aDel( s_aParams, 1 ) - aSize( s_aParams, nParams - 1 ) - ELSE - xInit := NIL - ENDIF - - IF Type( aVars[nVar] ) = 'U' - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := xInit - aAdd( s_asLocals, aVars[nVar] ) - ELSE - Alert( PP_ProcName() + " (" + LTrim( Str( PP_ProcLine() ) ) + ")" + [ Declared Parameter redeclaration: ] + aVars[nVar] ) - ENDIF - NEXT - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_Params( aVars ) - - LOCAL nVar, nVars := Len( aVars ), xInit, nParams - - FOR nVar := 1 TO nVars - IF ( nParams := Len( s_aParams ) ) > 0 - xInit := s_aParams[1] - aDel( s_aParams, 1 ) - aSize( s_aParams, nParams - 1 ) - ELSE - xInit := NIL - ENDIF - - IF Type( aVars[nVar] ) = 'U' - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := xInit - aAdd( s_asPrivates, aVars[nVar] ) - ELSE - Alert( PP_ProcName() + " (" + LTrim( Str( PP_ProcLine() ) ) + ")" + [ Parameter redeclaration: ] + aVars[nVar] ) - ENDIF - NEXT - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_Privates( aVars ) - - LOCAL nVar, nVars := Len( aVars ), nAt, cInit - - FOR nVar := 1 TO nVars - IF ( nAt := At( ":=", aVars[nVar] ) ) > 0 - cInit := LTrim( SubStr( aVars[nVar], nAt + 2 ) ) - aVars[nVar] := RTrim( Left( aVars[nVar], nAt - 1 ) ) - ELSE - cInit := "NIL" - ENDIF - - #ifdef __XHARBOUR__ - IF aScan( s_asPrivates, aVars[nVar], , , .T. ) == 0 - #else - IF aScan( s_asPrivates, {|sPrivate| sPrivate == aVars[nVar] } ) == 0 - #endif - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := &( cInit ) - aAdd( s_asPrivates, aVars[nVar] ) - ELSE - Alert( PP_ProcName() + " (" + LTrim( Str( PP_ProcLine() ) ) + ")" + [ Private redeclaration: ] + aVars[nVar] ) - ENDIF - NEXT - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_Locals( aVars ) - - LOCAL nVar, nVars := Len( aVars ), nAt, cInit - - FOR nVar := 1 TO nVars - IF ( nAt := At( ":=", aVars[nVar] ) ) > 0 - cInit := LTrim( SubStr( aVars[nVar], nAt + 2 ) ) - aVars[nVar] := RTrim( Left( aVars[nVar], nAt - 1 ) ) - ELSE - cInit := "NIL" - ENDIF - - IF Type( aVars[nVar] ) = 'U' - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := &( cInit ) - aAdd( s_asLocals, aVars[nVar] ) - ELSE - Alert( [Local redeclaration: ] + aVars[nVar] ) - ENDIF - NEXT - -RETURN -//--------------------------------------------------------------// - -PROCEDURE PP_Publics( aVars ) - - LOCAL nVar, nVars := Len( aVars ), nAt, cInit - - FOR nVar := 1 TO nVars - IF ( nAt := At( ":=", aVars[nVar] ) ) > 0 - cInit := LTrim( SubStr( aVars[nVar], nAt + 2 ) ) - aVars[nVar] := RTrim( Left( aVars[nVar], nAt - 1 ) ) - ELSE - cInit := ".F." - ENDIF - - #ifdef __XHARBOUR__ - IF aScan( s_asPublics, aVars[nVar] ) == 0 - #else - IF aScan( s_asPublics, {|sPublic| sPublic == aVars[nVar] } ) == 0 - #endif - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := &( cInit ) - aAdd( s_asPublics, aVars[nVar] ) - ELSE - Alert( [Public redeclaration: ] + aVars[nVar] ) - ENDIF - NEXT - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_Statics( aVars ) - - LOCAL nVar, nVars := Len( aVars ), nAt, cInit - - FOR nVar := 1 TO nVars - IF ( nAt := At( ":=", aVars[nVar] ) ) > 0 - cInit := LTrim( SubStr( aVars[nVar], nAt + 2 ) ) - aVars[nVar] := RTrim( Left( aVars[nVar], nAt - 1 ) ) - ELSE - cInit := "NIL" - ENDIF - - IF ( Left( Type( aVars[nVar] ), 1 ) ) = 'U' - __QQPUB( aVars[nVar] ) - &( aVars[nVar] ) := &( cInit ) - aAdd( s_asStatics, aVars[nVar] ) - ELSE - #ifdef __XHARBOUR__ - IF aScan( aVars, aVars[nVar], 1, nVar - 1, .T. ) > 0 - #else - IF aScan( aVars, {|sVar| sVar == aVars[nVar] }, 1, nVar - 1 ) > 0 - #endif - Alert( [Type: ] + Type( aVars[nVar] ) + [ Static redeclaration: '] + aVars[nVar] ) - ENDIF - ENDIF - NEXT - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_Run( cFile, aParams, sPPOExt, bBlanks ) - - LOCAL nBaseProc := s_nProcId, sPresetModule := s_sModule, nProc - - //PP_PreProFile( "rp_run.ch" ) - IF bBlanks == NIL - bBlanks := .T. - ENDIF - - IF ! s_lRunLoaded - s_lRunLoaded := .T. - - InitRunRules() - InitRunResults() - - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [Run #DEFINE Rules size mismatch] ) - ENDIF - - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [Run #TRANSLATE Rules size mismatch] ) - ENDIF - - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [Run #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - - //TraceLog( cFile, s_sModule, s_aProcedures, s_aInitExit, s_nProcId, aParams ) - - IF s_sModule == cFile - TraceLog( s_aProcedures, s_aInitExit, s_nProcId, aParams ) - ELSE - s_nProcId := 0; s_aProcedures := {}; s_aInitExit := { {}, {} } - s_asPrivates := {}; s_asPublics := {}; s_asLocals := {}; s_asStatics := {}; s_aParams := {} - - s_sModule := cFile - bCompile := .T. - PP_PreProFile( cFile, sPPOExt, bBlanks ) - bCompile := .F. - ENDIF - - PP_Exec( s_aProcedures, s_aInitExit, s_nProcId, aParams ) - - #ifdef __CLIPPER__ - Memory(-1) - #else - HB_GCALL() - #endif - - s_sModule := sPresetModule - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE PP_SetReturn( xRet ) - - s_xRet := xRet - - //TraceLog( xRet ) - - BREAK .T. - -RETURN - -//--------------------------------------------------------------// - -PROCEDURE RP_Dot_Err( oErr ) - - LOCAL Counter, xArg, sArgs := ";" - - IF ValType( oErr:Args ) == 'A' .AND. Len( oErr:Args ) > 0 - sArgs := ";Arguments: " - - FOR Counter := 1 TO Len( oErr:Args ) - xArg := oErr:Args[Counter] - - DO CASE - CASE xArg == NIL - sArgs += "NIL; " - - CASE ValType( xArg ) == 'A' - sArgs += "{}; " - - CASE ValType( xArg ) == 'B' - sArgs += "{|| }; " - - CASE ValType( xArg ) == 'C' - sArgs += '"' + xArg + '"; ' - - CASE ValType( xArg ) == 'D' - sArgs += dtoc( xArg ) + "; " - - CASE ValType( xArg ) == 'L' - sArgs += IIF( xArg, ".T.; ", ".F.; " ) - - CASE ValType( xArg ) == 'N' - sArgs += Str( xArg ) + "; " - - CASE ValType( xArg ) == 'O' - sArgs += "{o}" - - OTHERWISE - sArgs += '[' + ValType( xArg ) + "]; " - ENDCASE - NEXT - ENDIF - - TraceLog( [Sorry, could not execute: ] + oErr:Description + sArgs + " " + ProcName(2) + '[' + Str( ProcLine(2) ) + ']') - Alert( [Sorry, could not execute: ] + oErr:Description + sArgs + " " + ProcName(2) + '[' + Str( ProcLine(2) ) + ']') - - BREAK - -//RETURN // Unreacable code - -//--------------------------------------------------------------// - -PROCEDURE RP_PPText_Err( oErr, sLine, nLine ) - - LOCAL Counter, xArg, sArgs := ";" - - IF ValType( oErr:Args ) == 'A' .AND. Len( oErr:Args ) > 0 - sArgs := ";Arguments: " - - FOR Counter := 1 TO Len( oErr:Args ) - xArg := oErr:Args[Counter] - - DO CASE - CASE xArg == NIL - sArgs += "NIL; " - - CASE ValType( xArg ) == 'A' - sArgs += "{}; " - - CASE ValType( xArg ) == 'B' - sArgs += "{|| }; " - - CASE ValType( xArg ) == 'C' - sArgs += '"' + xArg + '"; ' - - CASE ValType( xArg ) == 'D' - sArgs += dtoc( xArg ) + "; " - - CASE ValType( xArg ) == 'L' - sArgs += IIF( xArg, ".T.; ", ".F.; " ) - - CASE ValType( xArg ) == 'N' - sArgs += Str( xArg ) + "; " - - CASE ValType( xArg ) == 'O' - sArgs += "{o}" - - OTHERWISE - sArgs += '[' + ValType( xArg ) + "]; " - ENDCASE - NEXT - ENDIF - - TraceLog( [Line: ] + Str( nLine, 4 ) + [ could not compile: ] + "'" + sLine + "';" + oErr:Description + sArgs + ProcName(2) + '[' + Str( ProcLine(2) ) + ']' ) - Alert( [Line: ] + Str( nLine, 4 ) + [ could not compile: ] + "'" + sLine + "';" + oErr:Description + sArgs + ProcName(2) + '[' + Str( ProcLine(2) ) + ']' ) - - BREAK - -//RETURN // Unreacable code - -//--------------------------------------------------------------// - -PROCEDURE RP_Comp_Err( oErr, sLine, nLine ) - - LOCAL Counter, xArg, sArgs := ";" - - ErrorBlock( {|e| TraceLog( e:Description, e:SubSystem, e:SubCode, e:Args ), __Quit() } ) - - IF ValType( oErr:Args ) == 'A' .AND. Len( oErr:Args ) > 0 - sArgs := ";Arguments: " - - FOR Counter := 1 TO Len( oErr:Args ) - xArg := oErr:Args[Counter] - - DO CASE - CASE xArg == NIL - sArgs += "NIL; " - - CASE ValType( xArg ) == 'A' - sArgs += "{}; " - - CASE ValType( xArg ) == 'B' - sArgs += "{|| }; " - - CASE ValType( xArg ) == 'C' - sArgs += '"' + xArg + '"; ' - - CASE ValType( xArg ) == 'D' - sArgs += dtoc( xArg ) + "; " - - CASE ValType( xArg ) == 'L' - sArgs += IIF( xArg, ".T.; ", ".F.; " ) - - CASE ValType( xArg ) == 'N' - sArgs += Str( xArg ) + "; " - - CASE ValType( xArg ) == 'O' - sArgs += "{o}" - - OTHERWISE - sArgs += '[' + ValType( xArg ) + "]; " - ENDCASE - NEXT - ENDIF - - TraceLog( [Line: ] + Str( nLine, 4 ) + [ could not compile:] + ";'" + sLine + "';" + oErr:Description + sArgs + ProcName(2) + '[' + Str( ProcLine(2) ) + ']') - Alert( [Line: ] + Str( nLine, 4 ) + [ could not compile:] + ";'" + sLine + "';" + oErr:Description + sArgs + ProcName(2) + '[' + Str( ProcLine(2) ) + ']') - - BREAK - -//RETURN // Unreacable code - -//--------------------------------------------------------------// - -FUNCTION RP_Run_Err( oErr, aProcedures, nLine ) - - LOCAL Counter, xArg, sArgs := ";", nProc, sProc - - IF nLine == NIL - nLine := 0 - ENDIF - - IF ValType( oErr:Args ) == 'A' .AND. Len( oErr:Args ) > 0 - sArgs := ";Arguments: " - - FOR Counter := 1 TO Len( oErr:Args ) - xArg := oErr:Args[Counter] - - DO CASE - CASE xArg == NIL - sArgs += "NIL; " - - CASE ValType( xArg ) == 'A' - sArgs += "{}; " - - CASE ValType( xArg ) == 'B' - sArgs += "{|| }; " - - CASE ValType( xArg ) == 'C' - sArgs += '"' + xArg + '"; ' - - CASE ValType( xArg ) == 'D' - sArgs += dtoc( xArg ) + "; " - - CASE ValType( xArg ) == 'L' - sArgs += IIF( xArg, ".T.; ", ".F.; " ) - - CASE ValType( xArg ) == 'N' - sArgs += Str( xArg ) + "; " - - CASE ValType( xArg ) == 'O' - sArgs += "{o}; " - - OTHERWISE - sArgs += '[' + ValType( xArg ) + "]; " - ENDCASE - NEXT - ENDIF - - IF oErr:SubCode == 1001 - IF s_sModule != NIL - sProc := s_sModule + oErr:Operation //ProcName( 2 + 2 ) - nProc := aScan( aProcedures, {|aProc| aProc[1] == sProc } ) - ELSE - nProc := 0 - ENDIF - IF nProc == 0 - sProc := oErr:Operation //ProcName( 2 + 2 ) - nProc := aScan( aProcedures, {|aProc| aProc[1] == sProc } ) - ENDIF - - IF nProc > 0 - s_xRet := NIL - IF ValType( oErr:Args ) == 'A' - s_aParams := oErr:Args - ELSE - s_aParams := {} - ENDIF - - PP_ExecProcedure( aProcedures[nProc] ) - - IF oErr:CanSubstitute - RETURN ( s_xRet ) - ELSEIF oErr:CanDefault - Alert( [Must Default: ] + "'" + oErr:Operation + "' '" + oErr:Description + ; - sArgs + ";" + ; - PP_ProcName() + '(' + LTrim( Str( PP_ProcLine() ) ) + ");" + ; - ProcName(2) + "(" + LTrim( Str( ProcLine(2) ) ) + ")" ) - - RETURN ( .F. ) - ELSE - Alert( [No Recovery for: ] + "'" + oErr:Operation + "' " + oErr:Description + ; - sArgs + ; - PP_ProcName() + '(' + LTrim( Str( PP_ProcLine() ) ) + ");" + ; - ProcName(2) + "(" + LTrim( Str( ProcLine(2) ) ) + ")" ) - - oErr:Cargo := nProc - BREAK oErr - ENDIF - ENDIF - ENDIF - - TraceLog( s_sModule, nLine, "Sorry, R/T Error: [" + oErr:SubSystem + "/" + LTrim( Str( oErr:SubCode ) ) + "] '" + oErr:Operation + "' '" + oErr:Description + "' " + sArgs + " " + PP_ProcName() + '(' + LTrim( Str( PP_ProcLine() ) ) + ") " + ProcName(2) + "(" + LTrim( Str( ProcLine(2) ) ) + ")" ) - //TraceLog( s_sModule, nLine, oErr:Description, oErr:SubSystem, oErr:Operation, sArgs, PP_ProcName() ) - Alert( [Line: ] + Str( nLine ) + [ R/T Error: ] + "[" + oErr:SubSystem + "/" + LTrim( Str( oErr:SubCode ) ) + "] '" + oErr:Operation + "';" + ; - oErr:Description + ; - sArgs + ; - PP_ProcName() + '(' + LTrim( Str( PP_ProcLine() ) ) + ");" + ; - ProcName(2) + "(" + LTrim( Str( ProcLine(2) ) ) + ")" ) - //BREAK oErr - __Quit() - -RETURN NIL // Unreacable code - -//--------------------------------------------------------------// - -FUNCTION __SetIf( bExp ) - - IF nIf > 0 .AND. ! abIf[nIf] - bExp := .F. - ENDIF - - nIf++ - aSize( abIf, nIf ) - abIf[nIf] := bExp - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetElseIf( bExp ) - - IF nIf > 1 .AND. ! abIf[nIf - 1] - RETURN .F. - ENDIF - - abIf[nIf] := ! abIf[nIf] - - IF abIf[nIf] - abIf[nIf] := bExp - ENDIF - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetElse() - - IF nIf > 1 .AND. ! abIf[nIf - 1] - RETURN .F. - ENDIF - - abIf[nIf] := ! abIf[nIf] - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetEnd() - - IF nIf > 0 - nIf-- - ELSE - Alert( [END with no IF in sight!] ) - ENDIF - -RETURN nIf - -//--------------------------------------------------------------// - -FUNCTION __SetDoCase() - - nIf++ - aSize( abIf, nIf ) - abIf[nIf] := .F. - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetCase( bExp ) - - IF nIf > 1 .AND. ! abIf[nIf - 1] - RETURN .F. - ENDIF - - abIf[nIf] := ! abIf[nIf] - - IF abIf[nIf] - abIf[nIf] := bExp - ENDIF - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetOtherwise() - - IF nIf > 1 .AND. ! abIf[nIf - 1] - RETURN .F. - ENDIF - - abIf[nIf] := ! abIf[nIf] - -RETURN abIf[nIf] - -//--------------------------------------------------------------// - -FUNCTION __SetEndCase() - - IF nIf > 0 - nIf-- - ELSE - Alert( [ENDCASE with no DO CASE in sight!] ) - ENDIF - -RETURN nIf - -//--------------------------------------------------------------// - -#ifdef __CLIPPER__ - - //--------------------------------------------------------------// - - STATIC FUNCTION CompileNestedBlocks( sTemp, sMain ) - - LOCAL asBlocks, nBlocks, Counter, aReplace - - asBlocks := asBlocks(sTemp ) - nBlocks := Len( asBlocks ) - - FOR Counter := 1 TO nBlocks - aReplace := CompileNestedBlocks( SubStr( asBlocks[Counter], 2 ), @sMain ) - NEXT - - IF ProcName(1) == ProcName(0) // .AND. nBlocks == 0 - IF aReplace != NIL - sTemp := StrTran( sTemp, aReplace[1], aReplace[2] ) - ELSE - aReplace := Array(2) - ENDIF - - aReplace[1] := '{' + sTemp - aReplace[2] := "PP_Block(" + LTrim( Str( ++nBlockId, 3, 0 ) ) + ')' - aAdd( s_abBlocks, &( aReplace[1]) ) - - sMain := StrTran( sMain, aReplace[1], aReplace[2] ) - - RETURN aReplace - ENDIF - - RETURN NIL - - //--------------------------------------------------------------// - - FUNCTION asBlocks( sBlock, asBlocks ) - - LOCAL nStart := 1, nEnd := Len( sBlock ), nPosition, sNested, nOpen, ; - lBlock := .F., cChar - - IF asBlocks == NIL - asBlocks := {} - ENDIF - - WHILE ( nStart := nAtSkipStr( '{', sBlock, nStart ) ) > 0 - FOR nPosition := nStart + 1 TO nEnd - IF SubStr( sBlock, nPosition, 1 ) != ' ' - EXIT - ENDIF - NEXT - IF SubStr( sBlock, nPosition, 1 ) != '|' - nStart++ - LOOP - ENDIF - - nPosition++ - nOpen := 1 - - DO WHILE nOpen > 0 .AND. nPosition <= nEnd - cChar := SubStr( sBlock, nPosition, 1 ) - - IF cChar == '"' - DO WHILE nPosition <= nEnd - nPosition++ - IF SubStr( sBlock, nPosition, 1 ) == '"' - EXIT - ENDIF - ENDDO - ELSEIF cChar == "'" - DO WHILE nPosition <= nEnd - nPosition++ - IF SubStr( sBlock, nPosition, 1 ) == "'" - EXIT - ENDIF - ENDDO - ELSEIF cChar == '{' - nOpen++ - ELSEIF cChar == '}' - nOpen-- - ENDIF - - nPosition++ - ENDDO - - sNested := SubStr( sBlock, nStart, ( nPosition - nStart ) ) - //TraceLog( asBlocks, sNested ) - - aAdd( asBlocks, sNested ) - asBlocks( SubStr( sBlock, nPosition + 1 ), asBlocks ) - - nStart := nPosition - ENDDO - - RETURN asBlocks - - //--------------------------------------------------------------// - - FUNCTION PP_Block( nId ) - - RETURN s_abBlocks[nId] - - //--------------------------------------------------------------// -#endif - -//------------------------------- *** END - RP DOT Functions *** -------------------------------// - -FUNCTION PP_PreProFile( sSource, sPPOExt, bBlanks, bDirectivesOnly ) - - LOCAL hSource, sBuffer, sLine, nPosition, sExt, cPrev - LOCAL nLen, nMaxPos, cChar := '', nClose, nBase, nNext, nLine := 0 - LOCAL sRight, nPath := 0, nPaths := Len( s_asPaths ), nNewLine - LOCAL sPath := "", cError, sPrevFile := s_sFile - LOCAL sTmp, nLastPosition := 0 - - IF At( '.', sSource ) == 0 - sSource += ".prg" - ENDIF - - s_sFile := sSource - - hSource := FOpen( sSource, 64 ) - IF hSource == -1 - nPath := 1 - WHILE hSource == -1 .AND. nPath <= nPaths - hSource := FOpen( s_asPaths[nPath] + sSource, 64 ) - nPath++ - ENDDO - ENDIF - - IF hSource == -1 - Alert( [ERROR! opening: ]+ "[" + sSource + "]" + [ O/S Error: ] + Str( FError(), 2 ) ) - s_sFile := sPrevFile - RETURN .F. - ENDIF - - IF nPath > 1 - sPath := s_asPaths[ nPath - 1 ] - ENDIF - - IF hPP == NIL - IF bBlanks == NIL - bBlanks := .T. - ENDIF - - IF sPPOExt == NIL - // *** Intentionally invalid handle - saves us from performing an IF on each of the FWrite( hPP, ... ) - hPP := -1 - ELSE - sExt := SubStr( sSource, RAt( '.', sSource ) ) - IF ! ( sExt == '' ) - hPP := FCreate( StrTran( sSource, sExt, sPPOExt ) ) - ELSE - hPP := FCreate( sSource + sPPOExt ) - ENDIF - IF hPP == -1 - Alert( [ERROR! creating '.pp$' file, O/S Error: ] + Str( FError(), 2 ) ) - s_sFile := sPrevFile - RETURN .F. - ENDIF - ENDIF - ELSE - FWrite( hPP, '#line 1 "' + sPath + Upper( sSource ) + '"' + CRLF ) - bBlanks := .F. - ENDIF - - IF bDirectivesOnly == NIL - bDirectivesOnly := .F. - ENDIF - - sBuffer := Space( PP_BUFFER_SIZE ) - sLine := '' - - IF bCompile - ErrorBlock( {|oErr| RP_Comp_Err( oErr, sLine, nLine ) } ) - ENDIF - - BEGIN SEQUENCE - - WHILE ( nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) ) > 2 - nPosition := 1 - nMaxPos := nLen - 1 - - WHILE nPosition < nMaxPos - - cPrev := cChar - cChar := SubStr( sBuffer, nPosition, 1 ) - - DO CASE - CASE ( cChar == '/' .AND. SubStr( sBuffer, nPosition + 1, 1 ) == '*' ) - nPosition++ - - WHILE .T. - nClose := At( "*/", sBuffer, nPosition + 1 ) - - IF nClose == 0 - nNext := nPosition + 2 - WHILE ( nNext := At( Chr(10), sBuffer, nNext ) ) > 0 - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - - nNext++ - ENDDO - - //FSeek( hSource, -1, 1 ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - IF nLen < 2 - Alert( [ERROR! Unterminated '/**/' ] + "[" + Str( ProcLine() ) + "]" ) - ENDIF - nMaxPos := nLen - 1 - TraceLog( "***" ) - nPosition := 0 - LOOP - ELSE - nNext := nPosition + 1 - nClose -= nPosition - - WHILE ( nNext := At( Chr(10), sBuffer, nNext ) ) > 0 .AND. ( nNext - nPosition ) <= nClose + 1 - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - nNext++ - ENDDO - - nPosition += ( nClose + 1 ) - cChar := '' - EXIT - ENDIF - ENDDO - - CASE ( cChar == '/' .AND. SubStr( sBuffer, nPosition + 1, 1 ) == '/' ) - nPosition++ - WHILE .T. - nClose := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nClose == 0 - //FSeek( hSource, -1, 1 ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - IF nLen < 2 - BREAK "//" - ENDIF - nMaxPos := nLen - 1 - TraceLog( "***" ) - nPosition := 0 - LOOP - ELSE - nClose -= nPosition - nLine++ - - IF bCount - @ Row(), 0 SAY nLine - ENDIF - - DropTrailingWS( @sLine, @sRight ) - - IF Right( sLine, 1 ) == ';' - nLen := Len( sLine ) - sLine := DropTrailingWS( Left( sLine, nLen - 1 ), @sRight ) - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - - /* Right after the NL */ - nPosition += ( nClose + 1 ) - - /* Skip leading spaces in continued next line. */ - WHILE SubStr( sBuffer, nPosition, 1 ) $ ' ' + Chr(9) - nPosition++ - ENDDO - nPosition-- - //sLine += sRight - cChar := ' ' - EXIT - ELSE - IF LTrim( sLine ) == '' - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - ELSE - IF bDirectivesOnly == .F. .OR. Left( sLine, 1 ) == '#' - sLine := PP_PreProLine( sLine, nLine, sPath + sSource ) - IF bBlanks .OR. ! ( sLine == '' ) - FWrite( hPP, sLine + CRLF ) - ENDIF - ENDIF - ENDIF - - nPosition += ( nClose ) - sLine := '' - cChar := '' - EXIT - ENDIF - ENDIF - ENDDO - - CASE ( cChar == '&' .AND. SubStr( sBuffer, nPosition + 1, 1 ) == '&' ) - nPosition++ - WHILE .T. - nClose := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nClose == 0 - //FSeek( hSource, -1, 1 ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - IF nLen < 2 - BREAK "&&" - ENDIF - nMaxPos := nLen - 1 - TraceLog( "***" ) - nPosition := 0 - LOOP - ELSE - nClose -= nPosition - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF LTrim( sLine ) == '' - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - ELSE - IF bDirectivesOnly == .F. .OR. Left( sLine, 1 ) == '#' - sLine := PP_PreProLine( sLine, nLine, sPath + sSource ) - IF bBlanks .OR. ! ( sLine == '' ) - FWrite( hPP, sLine + CRLF ) - ENDIF - ENDIF - ENDIF - nPosition += ( nClose ) - sLine := '' - cChar := '' - EXIT - ENDIF - ENDDO - - CASE ( cChar == '*' ) - IF LTrim( sLine ) == '' - WHILE .T. - nClose := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nClose == 0 - //FSeek( hSource, -1, 1 ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - IF nLen < 2 - BREAK "*" - ENDIF - nMaxPos := nLen - 1 - nPosition := 1 - LOOP - ELSE - nClose -= nPosition - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - nPosition += ( nClose ) - sLine := '' - cChar := '' - EXIT - ENDIF - ENDDO - ENDIF - - #ifdef __PLATFORM__UNIX - CASE ( nLine == 0 .AND. nPosition == 1 .AND. cChar == '#' .AND. SubStr( sBuffer, nPosition + 1, 1 ) == '!' ) - WHILE .T. - nClose := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nClose == 0 - //FSeek( hSource, -1, 1 ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - IF nLen < 2 - BREAK "*" - ENDIF - nMaxPos := nLen - 1 - nPosition := 1 - LOOP - ELSE - nClose -= nPosition - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - nPosition += ( nClose ) - sLine := '' - cChar := '' - EXIT - ENDIF - ENDDO - #endif - - CASE ( cChar == '"' ) - WHILE .T. - nClose := At( '"', sBuffer, nPosition + 1 ) - nNewLine := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nNewLine > 0 .AND. ( nClose == 0 .OR. nClose > nNewLine ) - EXIT - ENDIF - - IF nClose == 0 - sTmp := SubStr( sBuffer, nPosition ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - sBuffer := sTmp + sBuffer - nMaxPos := nLen - 1 - nPosition := 1 - LOOP - ELSE - nClose -= nPosition - sLine += SubStr( sBuffer, nPosition, nClose ) - nPosition += ( nClose ) - EXIT - ENDIF - ENDDO - - CASE ( cChar == "'" ) - WHILE .T. - nClose := At( "'", sBuffer, nPosition + 1 ) - nNewLine := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nNewLine > 0 .AND. ( nClose == 0 .OR. nClose > nNewLine ) - EXIT - ENDIF - - IF nClose == 0 - sTmp := SubStr( sBuffer, nPosition ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - sBuffer := sTmp + sBuffer - nMaxPos := nLen - 1 - nPosition := 1 - LOOP - ELSE - nClose -= nPosition - sLine += SubStr( sBuffer, nPosition, nClose ) - nPosition += ( nClose ) - EXIT - ENDIF - ENDDO - - CASE ( cChar == '[' ) - IF LTrim( sLine ) = "#" .OR. ( IsAlpha( cPrev ) .OR. IsDigit( cPrev ) .OR. cPrev $ "])}._" ) - sLine += cChar - nPosition++ - LOOP - ENDIF - - WHILE .T. - nClose := At( ']', sBuffer, nPosition + 1 ) - nNewLine := At( Chr(10), sBuffer, nPosition + 1 ) - - IF nNewLine > 0 .AND. ( nClose == 0 .OR. nClose > nNewLine ) - EXIT - ENDIF - - IF nClose == 0 - sTmp := SubStr( sBuffer, nPosition ) - nLen := FRead( hSource, @sBuffer, PP_BUFFER_SIZE ) - sBuffer := sTmp + sBuffer - nMaxPos := nLen - 1 - nPosition := 1 - LOOP - ELSE - nClose -= nPosition - sLine += SubStr( sBuffer, nPosition, nClose ) - nPosition += ( nClose ) - EXIT - ENDIF - ENDDO - - IF nClose > 0 .AND. nClose < nNewLine - cChar := ']' - ENDIF - - CASE cChar == Chr(9) - sLine += " " - cChar := '' - - CASE cChar == Chr(10) - DropTrailingWS( @sLine, @sRight ) - - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - - IF Right( sLine, 1 ) == ';' - nLen := Len( sLine ) - sLine := DropTrailingWS( Left( sLine, nLen - 1 ), @sRight ) - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - - /* Skip leading spaces in continued next line. */ - nPosition++ - WHILE SubStr( sBuffer, nPosition, 1 ) $ ' ' + Chr(9) - nPosition++ - ENDDO - nPosition-- - //sLine += sRight - cChar := ' ' - ELSE - IF LTrim( sLine ) == '' - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - ELSE - //sLine += sRight - IF bDirectivesOnly == .F. .OR. Left( sLine, 1 ) == '#' - sLine := PP_PreProLine( sLine, nLine, sPath + sSource ) - IF bBlanks .OR. ! ( sLine == '' ) - FWrite( hPP, sLine + CRLF ) - ENDIF - ENDIF - ENDIF - sLine := '' - cChar := '' - ENDIF - - CASE cChar == Chr(13) - nPosition++ - LOOP - - CASE cChar == Chr(26) - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF LTrim( sLine ) == '' - IF bBlanks - FWrite( hPP, CRLF ) - ENDIF - ELSE - IF bDirectivesOnly == .F. .OR. Left( sLine, 1 ) == '#' - sLine := PP_PreProLine( sLine, nLine, sPath + sSource ) - IF bBlanks .OR. ! ( sLine == '' ) - FWrite( hPP, sLine + CRLF ) - ENDIF - ENDIF - ENDIF - sLine := '' - cChar := '' - ENDCASE - - sLine += cChar - nPosition++ - - ENDDO - - FSeek( hSource, -2 + ( nPosition - nMaxPos ), 1 ) - - ENDDO - - RECOVER USING cError - IF ValType( cError ) == 'C' - TraceLog( "No EOL after: ", cError ) - //Alert( [No EOL after: ] + cError ) - ENDIF - nPosition := nMaxPos + 2 - sLine := "" - END SEQUENCE - - //? '"' + SubStr( Left( sBuffer, nLen ), nPosition ) + '"', nLen, nPosition - - //? "Closing: " + sSource - - FClose( hSource ) - - //? sSource, nPosition, nMaxPos, nLen, SubStr( sLine, nPosition, 40 ) - //WAIT - - sLine += SubStr( sBuffer, nPosition, Max( 0, ( nMaxPos + 2 ) - nPosition ) ) - sLine := StrTran( sLine, Chr(09), " " ) - DropTrailingWS( @sLine ) - sLine := StrTran( sLine, Chr(10), '' ) - sLine := StrTran( sLine, Chr(13), '' ) - sLine := StrTran( sLine, Chr(26), '' ) - - /* - ? '=>"' + sLine + '"<=', Asc( Right( sLine, 1 ) ), Asc( Left( sLine, 1 ) ) - FOR Counter := 1 TO Len( RTrim( Ltrim( sLine ) ) ) - ? Asc( SubStr( sLine, Counter, 1 ) ) - NEXT - WAIT - */ - - //? "Finished: " + sSource - - nLine++ - IF bCount - @ Row(), 0 SAY nLine - ENDIF - IF LTrim( sLine ) == '' - IF bBlanks - FWrite( hPP, sLine ) - ENDIF - ELSE - IF bDirectivesOnly == .F. .OR. Left( sLine, 1 ) == '#' - sLine := PP_PreProLine( sLine, nLine, sPath + sSource ) - IF bBlanks .OR. ! ( sLine == '' ) - FWrite( hPP, sLine + CRLF ) - ENDIF - ENDIF - ENDIF - - IF ProcName(1) == "MAIN" - FClose( hPP ) - - IF bCCH - CompileToCCH( sSource ) - ENDIF - ENDIF - - //? "Done: " + sSource - //WAIT - - s_sFile := sPrevFile - -RETURN .T. - -//--------------------------------------------------------------// - -FUNCTION PP_PreProLine( sLine, nLine, sSource ) - - LOCAL nPendingLines := 0, aPendingLines := {} - - LOCAL sDirective, bX, sToken, nRule - LOCAL nNewLineAt, nLines, Counter - LOCAL sLeft, sPassed, asOutLines := {}, sOut := '', cChar - LOCAL nLen, nCycles := 0, aDefined := {}, aTranslated := {}, aCommanded := {} - LOCAL nPosition - //LOCAL nIdAt, sRight - LOCAL sError - LOCAL sBackupLine - LOCAL sSkipped - LOCAL bArrayPrefix - - //TraceLog( sLine ) - - IF Left( LTrim( sLine ), 1 ) != '#' - nPosition := 0 - WHILE ( nNewLineAt := nAtSkipStr( ';', sLine ) ) > 0 - nPendingLines++ - aSize( aPendingLines, nPendingLines ) - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := Left( sLine, nNewLineAt - 1 ) - - //? "Pending #", nPendingLines, Left( sLine, nNewLineAt - 1 ), aPendingLines[nPendingLines] - sLine := LTrim( SubStr( sLine, nNewLineAt + 1 ) ) - ENDDO - - IF nPosition > 0 - IF ! Empty( sLine ) - nPendingLines++ - aSize( aPendingLines, nPendingLines ) - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := sLine - ENDIF - - //? "Pending #", nPendingLines, sLine, aPendingLines[nPendingLines] - sLine := aPendingLines[1] - aDel( aPendingLines, 1 ) - nPendingLines-- - ENDIF - ENDIF - - WHILE .T. - //? "Processing: '" + sLine + "'" - //? nPendingLines, nIfDef, IIF( nIfDef > 0, abIfDef[nIfDef] , ) - //WAIT - - IF nCycles < MAX_CICLES - nCycles++ - ELSE - TraceLog( "Circularity!", sLine ) - Alert( [ERROR! Circularity detected ]+"[" + sSource + "(" + LTrim( Str( nLine ) ) + ")]" ) - ? sLine - BREAK - ENDIF - - IF sLine == NIL - sLine := '' - sLeft := '' - ELSE - sLeft := ExtractLeadingWS( @sLine ) - ENDIF - - IF sLine == '' - IF nPendingLines > 0 - sLine := aPendingLines[1] - aDel( aPendingLines, 1 ) - nPendingLines-- - - LOOP - ENDIF - - EXIT - ENDIF - - IF s_sIncludeFile != NIL - IF ! Empty( sSource ) - aAdd( asOutLines, "#line " + LTrim( Str( nLine ) ) + ' "' + Upper( sSource ) + '"' ) - ENDIF - s_sIncludeFile := NIL - ENDIF - - //? "Processing: '" + sLine +"'" - //WAIT - - IF Left( sLine, 1 ) == '#' - - sLine := LTrim( SubStr( sLine, 2 ) ) - sDirective := RTrim( Upper( _pp_NextToken( @sLine ) ) ) - - IF ( nLen := Len( sDirective ) ) < 4 - Alert( [ERROR! Unknown directive: ] + "'" + sDirective + "' " + sSource ) - sLine := '' - LOOP - ENDIF - - IF sDirective == Left( "IFDEF", nLen ) .AND. nIfDef > 0 .AND. ! abIfDef[ nIfDef ] - - nIfDef++ - aSize( abIfDef, nIfDef ) - abIfDef[ nIfDef ] := .F. - sLine := '' - LOOP - - ELSEIF sDirective == Left( "IFNDEF", nLen ) .AND. nIfDef > 0 .AND. ! abIfDef[ nIfDef ] - - nIfDef++ - aSize( abIfDef, nIfDef ) - abIfDef[ nIfDef ] := .F. - sLine := '' - LOOP - - ELSEIF sDirective == "ELSE" .AND. nIfDef > 1 .AND. ! abIfDef[ nIfDef - 1 ] - - sLine := '' - LOOP - - ELSEIF sDirective == "ELSE" - - abIfDef[ nIfDef ] := ! abIfDef[ nIfDef ] - sLine := '' - LOOP - - ELSEIF sDirective == Left( "ENDIF", nLen ) - - IF nIfDef > 0 - nIfDef-- - ELSE - Alert( [ERROR! #endif with no #ifdef in sight] ) - ENDIF - - sLine := '' - LOOP - - ENDIF - - IF nIfDef > 0 .AND. ! abIfDef[nIfDef] - //? "Ignored: " + sLine - sLine := '' - LOOP - ENDIF - - ExtractLeadingWS( @sLine ) - - IF sDirective == Left( "DEFINE", nLen ) - - CompileDefine( sLine ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( "ERROR", nLen ) - - Alert( "#error " + sLine ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( "UNDEF", nLen ) - - RemoveDefine( sLine ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( "IFDEF", nLen ) - - SetIfDef( sLine, .T. ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( "IFNDEF", nLen ) - - SetIfDef( sLine, .F. ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( "INCLUDE", nLen ) - - ExtractLeadingWS( @sLine ) - DropTrailingWS( @sLine ) - - // Strip the "" - sLine := SubStr( sLine, 2, Len( sLine ) - 2 ) - - IF Upper( sLine ) == "HBCLASS.CH" - IF ! s_lClsLoaded - s_lClsLoaded := .T. - InitClsRules() - InitClsResults() - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [Class #TRANSLATE Rules size mismatch] ) - ENDIF - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - - #ifdef FW - ELSEIF Upper( sLine ) == "FIVEWIN.CH" - IF ! s_lFWLoaded - s_lFWLoaded := .T. - IF ! s_lClsLoaded - s_lClsLoaded := .T. - InitClsRules() - InitClsResults() - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [Class #TRANSLATE Rules size mismatch] ) - ENDIF - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - InitFWRules() - InitFWResults() - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [FW #DEFINE Rules size mismatch] ) - ENDIF - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [FW #TRANSLATE Rules size mismatch] ) - ENDIF - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [FW #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - #endif - - #ifdef MINIGUI - ELSEIF Upper( sLine ) == "MINIGUI.CH" - IF ! s_lMiniGUILoaded - s_lMiniGUILoaded := .T. - IF ! s_lClsLoaded - s_lClsLoaded := .T. - InitClsRules() - InitClsResults() - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [Class #TRANSLATE Rules size mismatch] ) - ENDIF - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [Class #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - InitMiniGUIRules() - InitMiniGUIResults() - IF Len( aDefRules ) != Len( aDefResults ) - Alert( [MiniGUI #DEFINE Rules size mismatch] ) - ENDIF - IF Len( aTransRules ) != Len( aTransResults ) - Alert( [MiniGUI #TRANSLATE Rules size mismatch] ) - ENDIF - IF Len( aCommRules ) != Len( aCommResults ) - Alert( [MiniGUI #DEFINE Rules size mismatch] ) - ENDIF - ENDIF - #endif - - ELSE - PP_PreProFile( sLine ) // Intentionally not using s_sIncludeFile - - /* Recursion safety - don't use the Static might be modified. */ - s_sIncludeFile := sLine - ENDIF - - sLine := '' - LOOP - - ELSE - - IF Left( sDirective, 1 ) == 'X' - bX := .T. - sDirective := SubStr( sDirective, 2 ) - nLen-- - ELSE - bX := .F. - ENDIF - - IF sDirective == Left( 'TRANSLATE', nLen ) - - CompileRule( sLine, aTransRules, aTransResults, bX, .T. ) - sLine := '' - LOOP - - ELSEIF sDirective == Left( 'COMMAND', nLen ) - - CompileRule( sLine, aCommRules, aCommResults, bX, .T. ) - sLine := '' - LOOP - - ELSE - - Alert( [ERROR! Unknown directive: ] + "'" + sDirective + "' " + sSource ) - sLine := '' - LOOP - - ENDIF - - ENDIF - - ENDIF - - #ifdef PP_RECURSIVE - s_bRecursive := .T. - #endif - - BEGIN SEQUENCE - - IF nIfDef > 0 .AND. ! abIfDef[nIfDef] - //? "Ignored: " + sLine - sLine := '' - BREAK - ENDIF - - //TraceLog( sLine ) - - sBackupLine := sLine - sPassed := "" - DO WHILE ( sToken := _pp_NextIdentifier( @sLine, @sSkipped ) ) != NIL - //? "Token = '" + sToken + "'" - //WAIT - - sPassed += sSkipped - - // Save incase MatchRule fails. - #ifdef USE_C_BOOST - bArrayPrefix := _pp_GetArrayPrefix() - #else - bArrayPrefix := s_bArrayPrefix - #endif - - IF ( nRule := MatchRule( sToken, @sLine, aDefRules, aDefResults, .F., .F. ) ) > 0 - //? "DEFINED: " + sLine - //WAIT - - aAdd( aDefined, nRule ) - - nPosition := 0 - WHILE ( nNewLineAt := nAtSkipStr( ';', sLine ) ) > 0 - nPendingLines++ - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := Left( sLine, nNewLineAt - 1 ) - - IF Left( sLine, 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, aPendingLines[ nPosition ] ) - ENDIF - - //? "Pending #", nPendingLines, Left( sLine, nNewLineAt - 1 ), aPendingLines[nPendingLines] - sLine := LTrim( SubStr( sLine, nNewLineAt + 1 ) ) - ENDDO - - IF nPosition == 0 - IF Left( sLine, 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, sLine ) - ENDIF - - sLine := sLeft + sPassed + sLine - ELSE - IF ! Empty( sLine ) - nPendingLines++ - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := sLine - ENDIF - - //? "Pending #", nPendingLines, sLine, aPendingLines[nPendingLines] - sLine := sLeft + sPassed + aPendingLines[1] - aDel( aPendingLines, 1 ) - nPendingLines-- - ENDIF - - // Re-Reprocess the line ... - BREAK - ELSE - // Restore since MatchRule() faild. - #ifdef USE_C_BOOST - _pp_setArrayPrefix( bArrayPrefix ) - #else - s_bArrayPrefix := bArrayPrefix - #endif - ENDIF - - sPassed += sToken - ENDDO - - // Now process Translates... - //? "After Defines:", sLine - - sLine := sBackupLine - - sPassed := "" - DO WHILE ( sToken := _pp_NextToken( @sLine ) ) != NIL - //? "Token = '" + sToken + "'" - //WAIT - - // Save incase MatchRule fails. - #ifdef USE_C_BOOST - bArrayPrefix := _pp_GetArrayPrefix() - #else - bArrayPrefix := s_bArrayPrefix - #endif - - IF ( nRule := MatchRule( sToken, @sLine, aTransRules, aTransResults, .F., .T. ) ) > 0 - //? "TRANSLATED: " + sLine - //WAIT - - IF sPassed == "" .AND. aScan( aTranslated, nRule ) > 0 - BREAK( "Cyclic directive: #translate " + sToken ) - ELSE - aAdd( aTranslated, nRule ) - ENDIF - - nPosition := 0 - WHILE ( nNewLineAt := nAtSkipStr( ';', sLine ) ) > 0 - nPendingLines++ - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := Left( sLine, nNewLineAt - 1 ) - - IF Left( aPendingLines[ nPosition ], 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, aPendingLines[ nPosition ] ) - ENDIF - - //? "Pending #", nPendingLines, Left( sLine, nNewLineAt - 1 ), aPendingLines[nPendingLines] - sLine := SubStr( sLine, nNewLineAt + 1 ) - ENDDO - - IF nPosition == 0 - IF Left( sLine, 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, sLine ) - ENDIF - - sLine := sLeft + sPassed + sLine - ELSE - IF ! Empty( sLine ) - nPendingLines++ - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := sLine - ENDIF - //? "Pending #", nPendingLines, sLine, aPendingLines[nPendingLines] - sLine := sLeft + sPassed + aPendingLines[1] - aDel( aPendingLines, 1 ) - nPendingLines-- - ENDIF - - BREAK - ELSE - // Restore since MatchRule() faild. - #ifdef USE_C_BOOST - _pp_setArrayPrefix( bArrayPrefix ) - #else - s_bArrayPrefix := bArrayPrefix - #endif - ENDIF - - sPassed += sToken - ENDDO - - sLine := sPassed //sBackupLine - - sToken := _pp_NextToken( @sLine ) - - IF sToken != NIL .AND. ( nRule := MatchRule( sToken, @sLine, aCommRules, aCommResults, .T., .T. ) ) > 0 - //? "COMMANDED: " + sLine - //? '"' + sLeft +'"', '"' + sPassed + '"' - //WAIT - - /* - IF aScan( aCommanded, nRule ) > 0 - Alert( [Cyclic directive: #command ] + sToken ) - BREAK - ELSE - aAdd( aCommanded, nRule ) - ENDIF - */ - - nPosition := 0 - WHILE ( nNewLineAt := nAtSkipStr( ';', sLine ) ) > 0 - nPendingLines++ - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := Left( sLine, nNewLineAt - 1 ) - - IF Left( aPendingLines[ nPosition ], 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, aPendingLines[ nPosition ] ) - ENDIF - - //? "Pending #", nPendingLines, Left( sLine, nNewLineAt - 1 ), aPendingLines[nPosition] - sLine := LTrim( SubStr( sLine, nNewLineAt + 1 ) ) - ENDDO - - IF nPosition == 0 - IF Left( sLine, 1 ) == '#' .AND. ! bCompile - aAdd( asOutLines, sLine ) - ENDIF - - sLine := sLeft + sLine - ELSE - IF ! Empty( sLine ) - nPendingLines++ - - IF nPendingLines > Len( aPendingLines ) - aSize( aPendingLines, nPendingLines ) - ENDIF - - nPosition++ - aIns( aPendingLines, nPosition ) - aPendingLines[ nPosition ] := sLine - ENDIF - - //? "Pending #", nPendingLines, sLine, aPendingLines[nPosition] - sLine := sLeft + aPendingLines[1] - aDel( aPendingLines, 1 ) - nPendingLines-- - ENDIF - - BREAK - ENDIF - - aAdd( asOutLines, sLeft + sPassed ) - sLine := "" - - RECOVER USING sError - - IF sError != NIL - Alert( sError ) - BREAK - ENDIF - - LOOP - - END SEQUENCE - - ENDDO - - #ifdef PP_RECURSIVE - s_bRecursive := .F. - #endif - - sOut := "" - nLines := Len( asOutLines ) - - //? nLines - //WAIT - - FOR Counter := 1 TO nLines - //? Counter, asOutLines[Counter] - //WAIT - sOut += asOutLines[Counter] - IF Counter < nLines - sOut += ' ;' - ENDIF - NEXT - - IF ! Empty( sOut ) - //? "Returning: " + sOut - //WAIT - //TraceLog( sOut ) - ENDIF - - IF bCompile - PP_CompileLine( sOut, nLine, s_aProcedures, s_aInitExit, @s_nProcId ) - ENDIF - -RETURN sOut - -//--------------------------------------------------------------// - -STATIC FUNCTION MatchRule( sKey, sLine, aRules, aResults, bStatement, bUpper ) - - LOCAL Counter, nRules, nRule, aMarkers, xMarker - LOCAL aMP, nOptional := 0, sAnchor, cType, aList, nMarkerId, nKeyLen - LOCAL sToken, sWorkLine, sNextAnchor, nMatch, nMatches - LOCAL sPad, asRevert := {}, bNext, sPreMatch, nLen - LOCAL sPrimaryStopper, sPreStoppers, sStopper, sMultiStopper, nStopper, nStoppers - LOCAL nSpaceAt, sStopLine, sNextStopper, nTemp - LOCAL bRepeatableMatched - LOCAL aaRevertMarkers := {} - LOCAL nBackup, nLevel, bTestDependant - - nRules := Len( aRules ) - - IF nRules == 0 .OR. sKey == NIL .OR. sKey == "" - RETURN 0 - ENDIF - - nRule := nRules + 1 - sPad := '' - - DropTrailingWS( @sKey, @sPad ) - IF bUpper - sKey := Upper( sKey ) - ENDIF - - IF bDbgMatch - ? "Matching Key: '" + sKey + "' Line: " + sLine - WAIT - ENDIF - - nKeyLen := Max( Len( sKey ), 4 ) - - WHILE .T. - - nRule-- - - FOR Counter := nRule TO 1 STEP -1 - IF aRules[Counter][3] - IF aRules[ Counter ][1] == sKey - EXIT - ENDIF - ELSE - IF Left( aRules[ Counter ][1], nKeyLen ) == sKey - EXIT - ENDIF - ENDIF - NEXT - - IF Counter == 0 - IF bDbgMatch - ? "No Prospects, returning: " + sLine - WAIT - ENDIF - - RETURN 0 - ELSE - nRule := Counter - ENDIF - - sWorkLine := sLine - - IF bDbgMatch - ? "KEY: " + sKey + " Matching Rule: " + Str( nRule, 3 ) + " with: " + sWorkLine - WAIT - ENDIF - - IF aRules[nRule][2] == NIL - nMatches := 0 - ELSE - nMatches := Len( aRules[nRule][2] ) - ENDIF - - IF nMatches == 0 - IF bStatement .AND. ! Empty( sWorkLine ) - IF bDbgMatch - ? "***1 Unmatched remainder: >", sWorkLine, "<" - ? "Statement failed" - WAIT - ENDIF - - LOOP - ELSEIF bStatement - sWorkLine := "" - ENDIF - - sLine := ( PPOut( aResults[nRule], aMarkers ) + sPad + sWorkLine ) - IF bDbgMatch - ? "TRANSLATED to:", sLine - WAIT - ENDIF - RETURN nRule - ENDIF - - aMarkers := aResults[nRule][3] - IF aMarkers != NIL - aFill( aMarkers, NIL ) - ENDIF - - nMatch := 1 - aMP := aRules[nRule][2][1] - nOptional := 0 - bNext := .F. - - DO WHILE .T. //! ( sWorkLine == '' ) - - aMP := aRules[nRule][2][nMatch] - - nMarkerId := aMP[1] - sAnchor := aMP[3] - cType := aMP[4] - aList := aMP[5] - - /* Might be needed - added 5-27-2001 when debugging oddity in FW CheckBox rule ??? - IF aMP[2] == 0 - nOptional := 0 - aSize( asRevert, 0 ) - ENDIF - */ - - /* "Used" non repeatable! */ - IF nMarkerID > 0 .AND. nMarkerID < 1000 - IF aMarkers != NIL .AND. aMarkers[nMarkerID] != NIL - IF bDbgMatch - ? "Used:", nMatch, nMarkerId, aMarkers[nMarkerId], nOptional, aMP[2] - WAIT - ENDIF - - IF nOptional <> 0 .AND. aMP[2] < 0 - sWorkLine := asRevert[Abs(nOptional)] - aMarkers := aaRevertMarkers[Abs(nOptional)] - - IF bDbgMatch - ? "* Reverted: " + asRevert[Abs(nOptional)] - WAIT - ENDIF - ENDIF - - IF aMP[2] > 0 .AND. nMatch < nMatches - /* Skip all same level optionals to next group. */ - nOptional := Abs( aMP[2] ) - nMatch++ - WHILE nMatch <= nMatches - aMP := aRules[nRule][2][nMatch] - IF ( aMP[2] >= 0 ) .AND. ( aMP[2] <= nOptional ) - EXIT - ENDIF - nMatch++ - ENDDO - IF bDbgMatch - ? "Skipped to", nMatch, "of", nMatches, aMP[2], aMP[3], nOptional - ENDIF - IF nMatch <= nMatches - LOOP - ELSE - EXIT - ENDIF - ELSE - IF nMatch < nMatches - nMatch++ - LOOP - ELSE - EXIT - ENDIF - ENDIF - ENDIF - ELSEIF nMarkerId >= 1000 - nMarkerId -= 1000 - ENDIF - - /* Do we have to look for a stopper? */ - IF cType != ':' .AND. sAnchor == NIL .AND. ValType( aList ) == 'A' - - sPreStoppers := sWorkLine - sPrimaryStopper := _pp_NextToken( @sWorkLine ) - - IF sPrimaryStopper == NIL - - //? "No primary", sPrimaryStopper - sWorkLine := sPreStoppers - - ELSE - sPrimaryStopper := Upper( RTrim( sPrimaryStopper ) ) - - /* Is it a stopper (the anchor of another acceptable match) ? */ - IF bDbgMatch - ? "Stopper?: '" + sPrimaryStopper +"'" - ENDIF - - nStoppers := Len( aList ) - FOR nStopper := 1 TO nStoppers - - sStopLine := sWorkLine - sToken := sPrimaryStopper - sStopper := aList[ nStopper ] - - sMultiStopper := '' - WHILE ( nSpaceAt := At( ' ', sStopper ) ) > 0 - sNextStopper := Left( sStopper, nSpaceAt - 1 ) - - IF aRules[nRule][3] - nLen := 64 - ELSE - nLen := Max( 4, Len( sToken ) ) - ENDIF - - //? "Next Stopper: " + sNextStopper, sToken - IF Left( sNextStopper, nLen ) == sToken - sMultiStopper += sNextStopper - sStopper := SubStr( sStopper, nSpaceAt ) - sMultiStopper += ExtractLeadingWS( @sStopper ) - sToken := _pp_NextToken( @sStopLine ) - sToken := Upper( RTrim( sToken ) ) - ELSE - EXIT - ENDIF - ENDDO - - IF aRules[nRule][3] - nLen := 64 - ELSE - nLen := Max( 4, Len( sToken ) ) - ENDIF - - IF Left( sStopper, nLen ) == sToken - sMultiStopper += sStopper - EXIT - ENDIF - NEXT - - IF nStopper <= nStoppers - - IF bDbgMatch - ? "Found stopper: " + sMultiStopper - ENDIF - - sWorkLine := sStopLine - - /* Current level */ - nOptional := Abs( aMP[2] ) - - /* Commented out 07-21-2001 Seems unneeded. */ - #ifdef WHY_REWIND - /* Rewind to beging of same level and then search for the stopper match */ - WHILE nMatch > 1 - nMatch-- - IF Abs( aRules[nRule][2][nMatch][2] ) < nOPtional - nMatch++ - EXIT - ENDIF - ENDDO - - // Added June-1-2003 (yes I know it's a commented section.) - IF nMatch == 1 .AND. aRules[nRule][2][nMatch][2] == 0 - nMatch++ - ENDIF - #endif - - /* Now search for the stopper. */ - WHILE nMatch < nMatches - nMatch++ - aMP := aRules[nRule][2][nMatch] - - IF aMP[3] == NIL .AND. aMP[4] == ':' - #ifdef __XHARBOUR__ - IF aScan( aMP[5], sMultiStopper, , , .T. ) > 0 - #else - IF aScan( aMP[5], {|sWord| sWord == sMultiStopper } ) > 0 - #endif - EXIT - ENDIF - ELSE - IF aMP[2] >= 0 .AND. aMP[2] <= nOptional .AND. aMP[3] == sMultiStopper - EXIT - ENDIF - ENDIF - ENDDO - - nOptional := 0 - LOOP - - ELSE - - sWorkLine := sPreStoppers - sMultiStopper := NIL - - IF bDbgMatch - ? sToken, "Not a stopper." - ? "Reverted: ", sWorkLine - ENDIF - - ENDIF - - IF bDbgMatch - WAIT - ENDIF - - ENDIF - - ENDIF - - sNextAnchor := NIL - nTemp := 1 - WHILE nMatch + nTemp <= nMatches - IF aRules[Counter][2][nMatch + nTemp][2] <= 0 // Non NEW Optional ONLY! - sNextAnchor := aRules[Counter][2][nMatch + nTemp][3] - EXIT - ENDIF - nTemp++ - ENDDO - - IF bDbgMatch - IF sAnchor == NIL - ? nMatch, 'of', nMatches, "NO Anchore!", nMarkerId, nOptional, aMP[2], sMultiStopper, sNextAnchor - ELSE - ? nMatch, 'of', nMatches, "Searching for Anchore: '" + sAnchor + "'", nMarkerId, nOptional, aMP[2], sMultiStopper, sNextAnchor - ENDIF - WAIT - ENDIF - - sToken := NIL - xMarker := NIL - sPreMatch := sWorkLine - - IF ( sAnchor == NIL .OR. sMultiStopper != NIL .OR. ; - ( ( ( sToken := _pp_NextToken( @sWorkLine ) ) != NIL .AND. ( DropTrailingWS( @sToken, @sPad ), nLen := Max( 4, Len( sToken ) ), Upper( sToken ) == Left( sAnchor, nLen ) ) ) ) ) ; - .AND. ( nMarkerId == 0 .OR. ( sAnchor == NIL .AND. sMultiStopper != NIL ) .OR. ( ( xMarker := NextExp( @sWorkLine, cType, aList, sNextAnchor, aRules[nRule][3] ) ) != NIL ) ) - - IF sMultiStopper != NIL - IF sAnchor == NIL - xMarker := sMultiStopper - ELSE - sToken := sMultiStopper - ENDIF - IF bDbgMatch - ? "Using MultiStopper: " + sMultiStopper - ENDIF - sMultiStopper := NIL - ENDIF - - IF bDbgMatch - ? "sKey =", sKey, "Anchor =", sAnchor, "nMarkerId =", nMarkerId, "sToken =", sToken, "xMarker =", xMarker, "<=" - ENDIF - - IF ValType( xMarker ) == 'C' - DropTrailingWS( @xMarker ) - ENDIF - - IF aMP[2] > 0 .AND. nOptional < 0 - - nOptional := aMP[2] - - /* Save. */ - aSize( asRevert, nOptional ) - asRevert[nOptional] := sPreMatch - aSize( aaRevertMarkers, nOptional ) - aaRevertMarkers[nOptional] := aClone( aMarkers ) - - IF bDbgMatch - ? "*** Saved: " + asRevert[nOptional] - WAIT - ENDIF - - ELSEIF aMP[2] > 0 .AND. nOptional >= 0 .AND. aMP[2] >= nOptional - - nOptional := aMP[2] - - /* Save. */ - aSize( asRevert, nOptional ) - asRevert[nOptional] := sPreMatch - aSize( aaRevertMarkers, nOptional ) - aaRevertMarkers[nOptional] := aClone( aMarkers ) - - IF bDbgMatch - ? "*** Saved: " + asRevert[nOptional] - WAIT - ENDIF - - // Group started with nested optional, this is the 1st element in current level. - ELSEIF aMP[2] < 0 .AND. Len( asRevert ) >= - aMP[2] .AND. asRevert[ - aMP[2] ] == NIL - - nOptional := - aMP[2] - - /* Save. */ - //aSize( asRevert, nOptional ) - asRevert[nOptional] := sPreMatch - //aSize( aaRevertMarkers, nOptional ) - aaRevertMarkers[nOptional] := aClone( aMarkers ) - - IF bDbgMatch - ? "*** Saved: " + asRevert[nOptional] - WAIT - ENDIF - - ENDIF - - IF nMarkerId > 0 - /* Repeatable. */ - IF aMP[1] > 1000 - IF aMarkers[nMarkerId] == NIL - aMarkers[nMarkerId] := {} - ENDIF - aAdd( aMarkers[nMarkerId], xMarker ) - - IF bDbgMatch - ? nMarkerId, "Repetable added: ", xMarker, Len( aMarkers[nMarkerId] ) - ENDIF - ELSE - IF ValType( aMarkers ) != 'A' .OR. nMarkerId > Len( aMarkers ) - TraceLog( "Oops", nRule, sKey, nMarkerId, ValType( aMarkers ), IIF( ValType( aMarkers ) == 'A', Len( aMarkers ) , "No array" ) ) - Alert( [Unexpected case ] + "[" + Str( Procline() ) + "]" ) - ELSE - aMarkers[nMarkerId] := xMarker - ENDIF - ENDIF - ENDIF - - // *** This complete IF section added 2002-May-11, the bug this solved might be fixed otherwise *** - // EOL - Rule will match if rest is OPTIONAL. - IF Empty( sWorkLine ) - IF bDbgMatch - ? "End of Input." - ENDIF - - // Remainder may be optional. - nBackup := nMatch - bTestDependant := .T. - nTemp := Abs( aMP[2] ) - WHILE ++nMatch <= nMatches - nLevel := aRules[nRule][2][nMatch][2] - - // Non Optional. - IF nLevel == 0 - EXIT - ELSEIF nLevel > 0 .AND. nLevel <= nTemp - // Head of New Adjucent or Outer group - Adjust stop condition... - nTemp := nLevel - bTestDependant := .F. - LOOP - ELSEIF nLevel < 0 .AND. ( ( ( - nLevel ) < nTemp ) .OR. ( bTestDependant .AND. ( ( - nLevel ) == nTemp ) ) ) - EXIT - ENDIF - ENDDO - - IF bDbgMatch - ? "Skipped optionals to:", nMatch, "of:", nMatches - WAIT - ENDIF - - IF nMatch > nMatches - sLine := ( PPOut( aResults[nRule], aMarkers ) + sPad + sWorkLine ) - IF bDbgMatch - ? "Skipped optionals and TRANSLATED to:", sLine - WAIT - ENDIF - RETURN nRule - ELSE - // Must consider this match a failure because End of input but NOT end of rule - REVERT if OPTIONAL. - IF aMP[2] <> 0 - nMatch := nBackup - - /* Skip all same level optionals to next group. */ - nTemp := Abs( aMP[2] ) - WHILE nMatch < nMatches - nMatch++ - aMP := aRules[nRule][2][nMatch] - IF ( aMP[2] < 0 ) .AND. ( Abs( aMP[2] ) < nTemp ) - EXIT - ENDIF - IF ( aMP[2] >= 0 ) .AND. ( aMP[2] <= nTemp ) - EXIT - ENDIF - ENDDO - - IF bDbgMatch - ? "Skipped same level to:", nMatch - ENDIF - - // Because will LOOP - //nMatch-- - - /* Revert. */ - IF nOptional <> 0 /*.AND. aMP[2] < 0*/ .AND. asRevert[Abs(nOptional)] != NIL - sWorkLine := asRevert[Abs(nOptional)] - aMarkers := aaRevertMarkers[Abs(nOptional)] - - IF bDbgMatch - ? "* Reverted: " + asRevert[Abs(nOptional)] - WAIT - ENDIF - ELSE - sWorkLine := sPreMatch - IF bDbgMatch - ? "*** Reclaimed token/marker: " + sWorkLine - WAIT - ENDIF - ENDIF - - LOOP - ELSE - IF bDbgMatch - ? "*** Match Failed - Not Revertable and Not End of Rule, but End of Input ***" - WAIT - ENDIF - - bNext := .T. - EXIT - ENDIF - - ENDIF - - ENDIF - - IF aMP[2] <> 0 - IF bDbgMatch - ? "Optional" - ENDIF - - /* We reached the end of current optional group - Rewind, to 1st optional at same level. */ - IF nMatch == nMatches .OR. ( aRules[nRule][2][nMatch + 1][2] >= 0 .AND. aRules[nRule][2][nMatch + 1][2] <= Abs( aMP[2] ) ) .OR. ; - ( aRules[nRule][2][nMatch + 1][2] < 0 .AND. abs( aRules[nRule][2][nMatch + 1][2] ) < Abs( aMP[2] ) ) - - /* Current level */ - nOptional := Abs( aMP[2] ) - - IF Len( asRevert ) >= nOptional - asRevert[ nOptional ] := NIL - ENDIF - - IF nMatch > 1 - // Now rewind. - WHILE nMatch > 1 - nMatch-- - IF Abs( aRules[nRule][2][nMatch][2] ) < nOPtional - nMatch++ - EXIT - ENDIF - ENDDO - ENDIF - // Added June-1-2003 - IF nMatch == 1 .AND. aRules[nRule][2][nMatch][2] == 0 - nMatch++ - ENDIF - - nOptional := 0 - - IF bDbgMatch - ? "Rewinded to:", nMatch - ENDIF - - LOOP - - ENDIF - - ENDIF - - IF bDbgMatch - WAIT - ENDIF - - IF nMatch == nMatches - IF bStatement .AND. ! Empty( sWorkLine ) - bNext := .T. - - IF bDbgMatch - ? "Key: >", sKey, "< ***2 Unmatched remainder: >", sWorkLine, "<" - ? "Statement failed, try next rule...'" - WAIT - ENDIF - - sWorkLine := "" - EXIT - ELSEIF bStatement - sWorkLine := "" - ENDIF - - sLine := ( PPOut( aResults[nRule], aMarkers ) + sPad + sWorkLine ) - IF bDbgMatch - ? "TRANSLATED to:", sLine - WAIT - ENDIF - RETURN nRule - ELSE - IF bDbgMatch - ? "Accepted:", sToken, xMarker - ENDIF - - nMatch++ - LOOP - ENDIF - - ELSE /* Match failed. */ - - IF bDbgMatch - ? "NO MATCH:", nMatch, "of", nMatches, sAnchor, sToken, nMarkerId, xMarker, nOptional, aMP[2] - ENDIF - - // Optional - IF aMP[2] <> 0 - /* Revert. */ - IF nOptional <> 0 .AND. aMP[2] < 0 .AND. asRevert[Abs(nOptional)] != NIL - sWorkLine := asRevert[Abs(nOptional)] - aMarkers := aaRevertMarkers[Abs(nOptional)] - - IF bDbgMatch - ? "* Reverted: " + asRevert[Abs(nOptional)] - WAIT - ENDIF - ELSE - sWorkLine := sPreMatch - IF bDbgMatch - ? "*** Reclaimed token/marker: " + sWorkLine - WAIT - ENDIF - - /* Commented out 07-21-2001 - Seems wrong ! - IF aMP[1] > 1000 .AND. xMarker != NIL - IF bDbgMatch - ? "Removed repeatble: " + aTail( aMarkers[ aMP[1] - 1000 ] ) - WAIT - ENDIF - aSize( aMarkers[ aMP[1] - 1000 ], Len( aMarkers[ aMP[1] - 1000 ] ) - 1 ) - ENDIF - */ - ENDIF - - // TODO: rethink this! Should only match if failure becuase we ran out of input and OPTIONAL. ??? - - /* Optional (last) didn't match - Rule can still match. */ - IF nMatch == nMatches - IF bStatement .AND. ! Empty( sWorkLine ) - /* Top of nested optional. */ - IF aMP[2] > 1 - /* Upper level optional should be accepted - rewind to top of parent group. */ - nOptional-- - WHILE nMatch > 1 - nMatch-- - IF Abs( aRules[nRule][2][nMatch][2] ) < nOPtional - nMatch++ - EXIT - ENDIF - ENDDO - // Added June-1-2003 - IF nMatch == 1 .AND. aRules[nRule][2][nMatch][2] == 0 - nMatch++ - ENDIF - - nOptional := 0 - - IF bDbgMatch - ? "1 - Nested last optional, Rewinded to:", nMatch - ENDIF - - LOOP - ENDIF - - bNext := .T. - - IF bDbgMatch - ? "***3 Unmatched remainder: >", sWorkLine, "<" - ? "Statement failed, try next rule..." - WAIT - ENDIF - - EXIT - ELSEIF bStatement - sWorkLine := "" - ENDIF - - sLine := ( PPOut( aResults[nRule], aMarkers ) + sWorkLine ) - IF bDbgMatch - ? "TRANSLATED to:", sLine - WAIT - ENDIF - RETURN nRule - ELSE - /* Top of Nested optional, maybe last in its parrent group. */ - IF aMP[2] > 1 - /* Skip dependents and nested optionals, if any. */ - nTemp := aMP[2] - nMatch++ - WHILE ( nMatch <= nMatches ) .AND. ( Abs( aRules[nRule][2][nMatch][2] ) >= nTemp ) - nMatch++ - ENDDO - - // End of rule or reached end of parrent group. - IF nMatch > nMatches .OR. aRules[nRule][2][nMatch][2] >= 0 .OR. nTemp + aRules[nRule][2][nMatch][2] > 1 - /* Upper level optional should be accepted - rewind to top of parent group. */ - nOptional-- - WHILE nMatch > 1 - nMatch-- - IF Abs( aRules[nRule][2][nMatch][2] ) < nOPtional - nMatch++ - EXIT - ENDIF - ENDDO - // Added June-1-2003 - IF nMatch == 1 .AND. aRules[nRule][2][nMatch][2] == 0 - nMatch++ - ENDIF - - nOptional := 0 - - IF bDbgMatch - ? "2 - Nested last optional, Rewinded to:", nMatch - ENDIF - - LOOP - ELSEIF aRules[nRule][2][nMatch][2] < 0 - // More optionals of the upper level - try to continue matching. - IF bDbgMatch - ? "Resuming optionals of upper group at match:", nMatch - ENDIF - - LOOP - ELSE - // Will proceed below (skip to next group) ... - ENDIF - - ENDIF - - /* Skip all same level optionals to next group. */ - nOptional := Abs( aMP[2] ) - bRepeatableMatched := aMP[1] > 1000 .AND. aMarkers[ aMP[1] - 1000 ] != NIL //.AND. Len( aMarkers[ aMP[1] - 1000 ] ) > 0 - WHILE nMatch < nMatches - nMatch++ - aMP := aRules[nRule][2][nMatch] - IF ( aMP[2] < 0 ) .AND. ( Abs( aMP[2] ) < nOptional ) - EXIT - ENDIF - IF ( aMP[2] >= 0 ) .AND. ( aMP[2] <= nOptional ) - EXIT - ENDIF - ENDDO - - // We should NOT consider this a failure, continue matching... - IF bRepeatableMatched - IF bDbgMatch - ? "Repeatable previously Matched - Skipped to", nMatch, "of", nMatches, aMP[2], aMP[3], nOptional - ENDIF - - nOptional := aMP[2] - LOOP - ELSE - IF bDbgMatch - ? "Partial not allowed - Skipped to", nMatch, "of", nMatches, aMP[2], aMP[3], nOptional - ENDIF - ENDIF - - IF nMatch == nMatches - - IF ( aMP[2] >= 0 ) .AND. ( aMP[2] <= Abs( nOptional ) ) - /* Ok. */ - ELSEIF ( aMP[2] < 0 ) .AND. ( Abs( aMP[2] ) < Abs( nOptional ) ) // Added 07-21-2001 ??? - /* Ok. */ - ELSE - IF bDbgMatch - ? "Reached End of Rule" - ENDIF - EXIT - ENDIF - ENDIF - - IF bDbgMatch - ? "Skipped to", nMatch, "of", nMatches, aMP[2], aMP[3], nOptional - ENDIF - - nOptional := aMP[2] - LOOP - ENDIF - ELSE - IF bDbgMatch - ? "Match failed, try next rule..." - WAIT - ENDIF - - bNext := .T. - EXIT - ENDIF - ENDIF - - ENDDO - - IF bNext - IF bDbgMatch - ? "NEXT Rule requested." - ENDIF - - LOOP - ELSE - IF bStatement .AND. ! Empty( sWorkLine ) - IF bDbgMatch - ? "***4 Unmatched remainder: >", sWorkLine, "<" - ? "Statement failed, try next rule..." - WAIT - ENDIF - - LOOP - ENDIF - ENDIF - - IF bDbgMatch - ? "EOL." - WAIT - ENDIF - - IF nMatch < nMatches - - IF bDbgMatch - ? nMatch, "of:", nMatches, "Checking if Rule remainder is optional." - ENDIF - - /* Current and remainder of MP NOT optional. */ - IF aMP[2] == 0 - IF bDbgMatch - ? "NON Optional failed, Statement failed, try next rule..." - WAIT - ENDIF - LOOP - ELSE - // Failed match is OPTIONAL. - - // defed out 2001-08-15 appear un-needed beacuse optional would have been ignored in favor of stopper. - #ifdef NOT_NEEDED - - IF nOptional <> 0 .AND. aMP[2] < 0 - sWorkLine := asRevert[Abs(nOptional)] - aMarkers := aaRevertMarkers[Abs(nOptional)] - - IF bDbgMatch - ? "*** Reverted: " + asRevert[nOptional] - ENDIF - ELSE - sWorkLine := sPreMatch - - IF bDbgMatch - ? "*** Reclaimed token/marker: " + sWorkLine - ENDIF - - /* Commented out 07-21-2001 - Seems wrong ! - IF aMP[1] > 1000 .AND. xMarker != NIL - IF bDbgMatch - ? "Removed repeatble: " + aTail( aMarkers[ aMP[1] - 1000 ] ) - WAIT - ENDIF - aSize( aMarkers[ aMP[1] - 1000 ], Len( aMarkers[ aMP[1] - 1000 ] ) - 1 ) - ENDIF - */ - ENDIF - - #endif - - IF bDbgMatch - WAIT - ENDIF - - //nOptional := aMP[2] // Commented 2001-08-15 - WHILE nMatch < nMatches - nMatch++ - aMP := aRules[nRule][2][nMatch] - IF ( aMP[2] == 0 ) - EXIT - ENDIF - - IF bDbgMatch - ? "Skipped:", nMatch, aMP[2], aMP[3] - ENDIF - ENDDO - - IF ( aMP[2] == 0 ) - IF bDbgMatch - ? "Statement failed, try next rule..." - WAIT - ENDIF - LOOP - ENDIF - ENDIF - ENDIF - - sLine := ( PPOut( aResults[nRule], aMarkers ) ) - IF bDbgMatch - ? "TRANSLATED to:", sLine - WAIT - ENDIF - RETURN nRule - - ENDDO - - Alert( [ERROR! Logic failure] ) - -RETURN 0 - -//--------------------------------------------------------------// - -#ifndef USE_C_BOOST - -STATIC FUNCTION _pp_NextToken( sLine, lDontRecord ) - - LOCAL sReturn, Counter, nLen, nClose - LOCAL s1, s2, s3 - LOCAL sDigits - LOCAL sToken - - //TraceLog( sLine, lDontRecord ) - - IF Empty( sLine ) - RETURN NIL - ENDIF - - // *** To be removed after final testing !!! - IF Left( sLine, 1 ) == ' ' - TraceLog( "!!!Left Pad: " + sLine ) - Alert( [!!!Left Pad: ] + sLine ) - sLine := LTrim( sLine ) - ENDIF - - nLen := Len( sLine ) - s1 := Left( sLine, 1 ) - - BEGIN SEQUENCE - - IF nLen >= 2 - - s2 := Left( sLine, 2 ) - - IF s2 $ "++\--\->\:=\==\!=\<>\>=\<=\+=\-=\*=\^=\**\/=\%=" - - sReturn := s2 - - BREAK - - ELSEIF s2 == "[[" - - nClose := AT( ']]', sLine ) - IF nClose == 0 - //Alert( "ERROR! [_pp_NextToken()] Unterminated '[[' at: " + sLine + "[" + Str( ProcLine() ) + "]" ) - sReturn := "[" // Clipper does NOT consider '[[' a single token - ELSE - sReturn := Left( sLine, nClose + 2 ) - ENDIF - - BREAK - - ENDIF - - ENDIF - - IF IsAlpha( s1 ) .OR. s1 == '_' - - sReturn := s1 - FOR Counter := 2 TO nLen - s1 := SubStr( sLine, Counter, 1 ) - IF ! ( IsAlpha( s1 ) .OR. IsDigit( s1 ) .OR. s1 == "_" ) - EXIT - ENDIF - sReturn += s1 - NEXT - - BREAK - - ELSEIF IsDigit( s1 ) - - sReturn := s1 - FOR Counter := 2 TO nLen - s1 := SubStr( sLine, Counter, 1 ) - IF ! ( IsDigit( s1 ) ) - EXIT - ENDIF - sReturn += s1 - NEXT - - // Consume the point (and subsequent digits) only if digits follow... - IF s1 == '.' - sDigits := "" - DO WHILE IsDigit( ( s1 := SubStr( sLine, ++Counter, 1 ) ) ) - sDigits += s1 - ENDDO - - IF ! ( sDigits == "" ) - sReturn += ( '.' + sDigits ) - ENDIF - ENDIF - - // Either way we are done. - BREAK - - ELSEIF s1 == '.' - - sDigits := "" - FOR Counter := 2 TO nLen - s1 := SubStr( sLine, Counter, 1 ) - IF ! ( IsDigit( s1 ) ) - EXIT - ENDIF - - sDigits+= s1 - NEXT - - // Must have accumulated decimal digits. - IF ! ( sDigits == "" ) - sReturn := '.' + sDigits - - BREAK - ENDIF - - IF nLen >= 5 .AND. SubStr( sLine, 5, 1 ) == '.' - - s3 := Upper( SubStr( sLine, 2, 3 ) ) - IF s3 == 'AND' - - sReturn := ".AND." - - BREAK - - ELSEIF s3 == 'NOT' - - sReturn := "!" - /* Skip the unaccounted letters ( .NOT. <-> ! ) */ - sLine := SubStr( sLine, 5 ) - - BREAK - - ENDIF - - ENDIF - - IF nLen >= 4 .AND. SubStr( sLine, 4, 1 ) == '.' .AND. Upper( SubStr( sLine, 2, 2 ) ) == 'OR' - - sReturn := ".OR." - - BREAK - - ENDIF - - IF nLen >= 3 .AND. SubStr( sLine, 3, 1 ) == '.' .AND. Upper( SubStr( sLine, 2, 1 ) ) $ "TF" - - sReturn := Upper( Left( sLine, 3 ) ) - - BREAK - - ENDIF - - sReturn := '.' - - BREAK - - ELSEIF s1 == '"' - - nClose := AT( '"', sLine, 2 ) - IF nClose == 0 - //Alert( 'ERROR! [_pp_NextToken()] Unterminated ["] at: ' + sLine ) - sReturn := '"' - ELSE - sReturn := Left( sLine, nClose ) - ENDIF - - BREAK - - ELSEIF s1 == "'" - - nClose := AT( "'", sLine, 2 ) - IF nClose == 0 - //Alert( "ERROR! [_pp_NextToken()] Unterminated ['] at: " + sLine ) - sReturn := "'" - ELSE - sReturn := SubStr( sLine, 2, nClose - 2 ) - IF ! ( '"' $ sReturn ) - sReturn := '"' + sReturn + '"' - ELSE - sReturn := "'" + sReturn + "'" - ENDIF - ENDIF - - BREAK - - ELSEIF s1 == '[' - - IF s_bArrayPrefix - sReturn := '[' - ELSE - nClose := AT( ']', sLine ) - IF nClose == 0 - //Alert( "ERROR! [_pp_NextToken()] Unterminated '[' at: " + sLine + "[" + Str( ProcLine() ) + "]" ) - sReturn := '[' - ELSE - sReturn := SubStr( sLine, 2, nClose - 2 ) - IF ! ( '"' $ sReturn ) - sReturn := '"' + sReturn + '"' - ELSEIF ! ( "'" $ sReturn ) - sReturn := "'" + sReturn + "'" - ELSE - sReturn := '[' + sReturn + ']' - ENDIF - ENDIF - ENDIF - - BREAK - - ELSEIF s1 == "\" - - sReturn := s2 - - BREAK - - ELSEIF s1 $ "+-*/:=^!&()[]{}@,|<>#%?$" - - sReturn := s1 - - BREAK - - ELSE - - TraceLog( "Unexpected case: " + sLine ) - Alert( [Unexpected case: ] + sLine ) - sReturn := sLine - - ENDIF - - END SEQUENCE - - sLine := SubStr( sLine, Len( sReturn ) + 1 ) - - IF lDontRecord == .F. - IF Left( sReturn, 1 ) == '.' .AND. Len( sReturn ) > 1 .AND. Right( sReturn, 1 ) == '.' - s_bArrayPrefix := .F. - ELSE - s1 := Right( sReturn, 1 ) - - IF Upper( s1 ) == 'R' - sToken := Upper( sReturn ) - IF sToken == "RETU" .OR. sToken == "RETUR" .OR. sToken == "RETURN" - s_bArrayPrefix := .F. - ELSE - s_bArrayPrefix := .T. - ENDIF - ELSE - s_bArrayPrefix := ( IsAlpha( s1 ) .OR. IsDigit( s1 ) .OR. s1 $ "])}._" ) - ENDIF - ENDIF - ENDIF - - sReturn += ExtractLeadingWS( @sLine ) - - #ifdef PP_RECURSIVE - - IF s_bRecursive - s1 := Left( sReturn, 1 ) - IF ( IsAlpha( s1 ) .OR. s1 == '_' ) .AND. MatchRule( sReturn, @sLine, aDefRules, aDefResults, .F., .F. ) > 0 - RETURN _pp_NextToken( @sLine, .T. ) - ENDIF - - IF MatchRule( sReturn, @sLine, aTransRules, aTransResults, .F., .T. ) > 0 - //? '>', sLine, '<' - RETURN _pp_NextToken( @sLine, .T. ) - ENDIF - - //? sReturn, "not defined/translated." - //WAIT - ENDIF - - #endif - - //TraceLog( "TOKEN = >" + sReturn + "<", sLine, s_bArrayPrefix ) - -RETURN sReturn - -#endif - -//--------------------------------------------------------------// - -STATIC FUNCTION NextExp( sLine, cType, aWords, sNextAnchor, bX ) - - LOCAL sExp, sTemp, Counter, sPad, sToken, sList - LOCAL sNextLine, sNextToken, sLastToken, sJustToken, sJustNext, cLastChar - LOCAL s1, s2, s4, s5, sNext1, sNext2, sNext4, sNext5, nLen, nNextLen - LOCAL sWorkLine, sPrimaryStopper, nStoppers, nStopper, sStopLine, sStopper - LOCAL sMultiStopper, nSpaceAt, sNextStopper, cChar - LOCAL aExp - - IF Empty( sLine ) - RETURN NIL - ENDIF - - //TraceLog( "*** Start", cType, sLine, sNextAnchor, bX ) - - DO CASE - CASE cType == '<' - /* No prep needed */ - - CASE cType == 'A' - aExp := {} - - CASE cType == ',' - sList := "" - - CASE cType == ':' - sWorkLine := sLine - sPrimaryStopper := _pp_NextToken( @sWorkLine ) - - IF sPrimaryStopper == NIL - //? "No primary", sPrimaryStopper - RETURN NIL - ELSE - sPrimaryStopper := Upper( RTrim( sPrimaryStopper ) ) - - /* Is it a stopper (the anchor of another acceptable match) ? */ - IF bDbgExp - ? "Stopper?: '" + sPrimaryStopper +"'" - ENDIF - - nStoppers := Len( aWords ) - FOR nStopper := 1 TO nStoppers - - sStopLine := sWorkLine - sToken := sPrimaryStopper - sStopper := aWords[ nStopper ] - - sMultiStopper := "" - WHILE ( nSpaceAt := At( ' ', sStopper ) ) > 0 - sNextStopper := Left( sStopper, nSpaceAt - 1 ) - - IF bX - nLen := 64 - ELSE - nLen := Max( 4, Len( sToken ) ) - ENDIF - - //? "Next Stopper: " + sNextStopper, sToken - IF Left( sNextStopper, nLen ) == sToken - sMultiStopper += sNextStopper - sStopper := SubStr( sStopper, nSpaceAt ) - sMultiStopper += ExtractLeadingWS( @sStopper ) - sToken := _pp_NextToken( @sStopLine ) - sToken := Upper( RTrim( sToken ) ) - ELSE - EXIT - ENDIF - ENDDO - - IF bX - nLen := 64 - ELSE - nLen := Max( 4, Len( sToken ) ) - ENDIF - - IF Left( sStopper, nLen ) == sToken - sMultiStopper += sStopper - EXIT - ENDIF - NEXT - - IF nStopper <= nStoppers - sLine := sStopLine - //TraceLog( sMultiStopper, sStopLine ) - RETURN sMultiStopper - ELSE - sLine := sWorkLine - RETURN NIL - ENDIF - ENDIF - - CASE cType == '*' - sExp := sLine - sLine := "" - //? "EXP <*>: " + sExp - RETURN sExp - - CASE cType == '(' - s1 := Left( sLine, 1 ) - IF ! ( s1 $ "(['" + '"' ) - nSpaceAt := At( ' ', sLine ) - - IF nSpaceAt = 0 - sExp := sLine - sLine := "" - ELSE - sExp := Left( sLine, nSpaceAt - 1 ) - sLine := SubStr( sLine, nSpaceAt ) - sExp += ExtractLeadingWS( @sLine ) - ENDIF - - //? "EXP <(>: " + sExp - RETURN sExp - ENDIF - - CASE cType == '!' - IF IsAlpha( cChar := Left( sLine, 1 ) ) .OR. cChar == '_' - RETURN _pp_NextToken( @sLine ) - ELSE - RETURN NIL - ENDIF - - CASE cType == NIL - RETURN "-" - ENDCASE - - sExp := "" - DO WHILE .T. - sToken := _pp_NextToken( @sLine ) - - IF sToken == NIL - EXIT - ENDIF - - //TraceLog( sToken ) - - sJustToken := RTrim( sToken ) - IF sNextAnchor != NIL .AND. sJustToken == sNextAnchor - // Clipper give preference to ',' in list expression. - IF ! ( sNextAnchor $ ',' .AND. cType $ ",A" ) - //TraceLog( "Anchor: '" + sNextAnchor + "' found!" ) - sLine := sToken + sLine - EXIT - ENDIF - ENDIF - - nLen := Len( sJustToken ) - s1 := Left( sJustToken, 1 ) - s2 := s4 := s5 := "" - IF nLen == 2 - s2 := sJustToken - ELSEIF nLen == 4 - s4 := Upper( sJustToken ) - ELSEIF nLen == 5 - s5 := Upper( sJustToken ) - ENDIF - - IF Empty( sLine ) - sNextToken := "" - sJustNext := "" - sNext1 := "" - ELSE - sNextLine := sLine - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken == NIL - sNextToken := "" - sJustNext := "" - sNext1 := "" - ELSE - sJustNext := RTrim( sNextToken ) - sNext1 := Left( sJustNext, 1 ) - ENDIF - ENDIF - - // ------------------ - // 1st. Level. - // ------------------ - - IF bDbgExp - ? "1st. Level - Token: '" + sToken + "' Next: '" + sNextToken + "'" - WAIT - ENDIF - - //TraceLog( "Token: '" + sToken + "' Len: " + Str( nLen ) + " Next: '" + sNextToken + "'" ) - - IF nLen == 1 - - IF s1 $ "-+!:@|" // *** Very ODD Clipper consider '|' a continuation token !!! - sExp += sToken - LOOP - ELSEIF s1 == "&" - sExp += sToken - IF sNext1 == '(' - LOOP - ELSE - IF IsAlpha( sNext1 ) .OR. sNext1 == '_' - sExp += sNextToken - sLastToken := sJustNext - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken != NIL .AND. Left( sNextToken, 1 ) == '.' - // Get the macro terminator. - sExp += sNextToken - sLastToken := "." - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - IF sNextToken == '.' //(Last Token) No space after Macro terminator, so get the suffix. - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken != NIL - sNext1 := Left( sNextToken, 1 ) - IF IsAlpha( sNext1 ) .OR. IsDigit( sNext1 ) .OR. sNext1 == '_' - // Get the macro sufix. - sExp += sNextToken - sLastToken := RTrim( sNextToken ) - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - ENDIF - ENDIF - ENDIF - ENDIF - ELSE - Alert( [ERROR! Invalid '&' at: ] + sExp + sNextToken ) - EXIT - ENDIF - ENDIF - - sLastToken := RTrim( sLastToken ) - // Continue 2nd level checks below. - ELSEIF s1 == '(' - sExp += sToken - IF Left( sNext1, 1 ) == ')' - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - ELSE - //TraceLog( "Content from: " + sLine ) - sTemp := NextExp( @sLine, ',', NIL, NIL ) // Content - Ignoring sNextAnchor !!! - IF sTemp == NIL - TraceLog( "ERROR!(1) No content at: '" + sLine + "' After: " + sExp, sLine ) - Alert( [ERROR!(1) No content at: ] + "'" + sLine + "'"+[ After: ] + sExp ) - EXIT - ELSE - sExp += sTemp - //TraceLog( "Content: '" + sTemp + "'", sExp, sLine ) - ENDIF - - sToken := _pp_NextToken( @sLine ) // Close - IF sToken == NIL - TraceLog( "ERROR!(2) Unbalanced '(' at: " + sExp, sLine ) - Alert( [ERROR!(2) Unbalanced '(' at: ] + sExp ) - EXIT - ELSEIF Left( sToken, 1 ) == ')' - sExp += sToken - ELSE - sLine := sToken + sLine - TraceLog( "ERROR!(3) Unbalanced '(' Found: '" + sToken + "' at: " + sExp, sLine ) - Alert( [ERROR!(3) Unbalanced '(' Found: ] + "'" + sToken + "'"+[ at: ] + sExp ) - EXIT - ENDIF - ENDIF - - sLastToken := ")" - // Continue 2nd level checks below. - ELSEIF s1 == '{' - sExp += sToken - - #ifdef EXPLICIT_BLOCK - - IF sNext1 == '|' - /* Literal block */ - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken != NIL .AND. Left( sNextToken, 1 ) == '|' - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - ELSE - sTemp := NextExp( @sLine, ',', NIL, NIL ) // Content - Ignoring sNextAnchor !!! - IF sTemp == NIL - TraceLog( "ERROR! Unbalanced '{|...' at: " + sExp ) - Alert( [ERROR! Unbalanced '{|...' at: ] + sExp ) - EXIT - ELSE - sExp += sTemp - ENDIF - - /* sLine was changed by NextExp()! */ - sNextLine := sLine - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken != NIL .AND. Left( sNextToken, 1 ) == '|' - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - ELSE - TraceLog( "ERROR! Unbalanced '{|...|' at: " + sExp, sNextToken, sNextLine ) - Alert( [ERROR! Unbalanced '{|...|' at: ] + sExp ) - EXIT - ENDIF - ENDIF - - sTemp := NextExp( @sLine, ',', NIL, NIL ) // Content - Ignoring sNextAnchor !!! - IF sTemp == NIL - TraceLog( "ERROR! Empty '{||'" ) - Alert( [ERROR! Empty '{||'] ) - EXIT - ELSE - sExp += sTemp - ENDIF - - sToken := _pp_NextToken( @sLine ) // Close - IF sToken == NIL - TraceLog( "ERROR! Unbalanced '{' at: " + sExp ) - Alert( [ERROR! Unbalanced '{' at: ] + sExp ) - EXIT - ELSEIF Left( sToken, 1 ) == '}' - sExp += sToken - ELSE - sLine := sToken + sLine - TraceLog( "ERROR! Unbalanced '{' at: " + sExp ) - Alert( [ERROR! Unbalanced '{' at: ] + sExp ) - EXIT - ENDIF - ELSE - - #endif - - /* Literal array */ - IF sNext1 == '}' - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - ELSE - sTemp := NextExp( @sLine, ',', NIL, NIL ) // Content - Ignoring sNextAnchor !!! - IF sTemp == NIL - TraceLog( "ERROR! Unbalanced '{...'", sLine ) - Alert( [ERROR! Unbalanced '{...'] ) - EXIT - ELSE - sExp += sTemp - ENDIF - - sToken := _pp_NextToken( @sLine ) // Close - IF sToken == NIL - TraceLog( "ERROR! Unbalanced '{' at: " + sExp ) - Alert( [ERROR! Unbalanced '{' at: ] + sExp ) - EXIT - ELSEIF Left( sToken, 1 ) == '}' - sExp += sToken - ELSE - sLine := sToken + sLine - TraceLog( "ERROR! Unbalanced '{' at: " + sExp ) - Alert( [ERROR! Unbalanced '{' at: ] + sExp ) - EXIT - ENDIF - ENDIF - - #ifdef EXPLICIT_BLOCK - ENDIF - #endif - - sLastToken := "}" - // Continue 2nd level checks below. - ELSEIF s1 == "[" - sExp += sToken - sTemp := NextExp( @sLine, ',', NIL, NIL ) // Content - Ignoring sNextAnchor !!! - IF sTemp == NIL - Alert( [ERROR! Unbalanced ] + "'['" + [ at: ] + sExp ) - EXIT - ELSE - sExp += sTemp - ENDIF - - sToken := _pp_NextToken( @sLine ) // Close - IF sToken == NIL - Alert( [ERROR! Unbalanced ] + "'['" + [ at: ] + sExp ) - EXIT - ELSEIF Left( sToken, 1 ) == ']' - sExp += sToken - ELSE - sLine := sToken + sLine - Alert( [ERROR! Unbalanced ] + "'['" + [ at: ] + sExp ) - EXIT - ENDIF - - sLastToken := "]" - // Continue 2nd level checks below. - ELSEIF s1 $ ".*/=^>\:=\==\!=\<>\>=\<=\+=\-=\*=\^=\**\/=\%=" - sLine := sToken + sLine - EXIT - ELSE - sExp += sToken - sLastToken := sJustToken - ENDIF - - ELSEIF nLen == 4 - - IF s4 == '.OR.' - sLine := sToken + sLine - EXIT - ELSE - sExp += sToken - sLastToken := sJustToken - ENDIF - - ELSEIF nLen == 5 - - IF s5 == '.AND.' - sLine := sToken + sLine - EXIT - /* .NOT. is being translated to ! at _pp_NextToken() !!! - ELSEIF s5 == ".NOT." - sExp += sToken - LOOP - */ - ELSE - sExp += sToken - sLastToken := sJustToken - ENDIF - - ELSE - - sExp += sToken - sLastToken := sJustToken - - ENDIF - - // ------------------ - // 2nd. Level. - // ------------------ - - //TraceLog( sExp, sLastToken, sLine, nLen, sToken, sNextToken ) - - IF sLastToken == NIL .OR. Right( sLastToken, 1 ) == ' ' - TraceLog( sExp, sLastToken, sLine, nLen, sToken, sNextToken ) - Alert( "??? " + sExp ) - EXIT - ENDIF - - nLen := Len( sLastToken ) - cLastChar := Right( sLastToken, 1 ) - - IF Empty( sLine ) - EXIT - ELSE - sNextLine := sLine - sNextToken := _pp_NextToken( @sNextLine, .T. ) - IF sNextToken == NIL - sNextToken := "" - ENDIF - ENDIF - - sJustNext := RTrim( sNextToken ) - nNextLen := Len( sJustNext ) - sNext1 := Left( sJustNext, 1 ) - sNext2 := sNext4 := sNext5 := "" - IF nNextLen == 2 - sNext2 := sJustNext - ELSEIF nNextLen == 4 - sNext4 := Upper( sJustNext ) - ELSEIF nNextLen == 5 - sNext5 := sJustNext - ENDIF - - IF bDbgExp - ? "2nd. Level - Token: '" + sToken + "' Next: '" + sNextToken + "'" - WAIT - ENDIF - - IF sNextAnchor != NIL .AND. sJustNext == sNextAnchor - // Clipper give preference to ',' in list expression. - IF ! ( sNextAnchor == ',' .AND. cType $ ",A" ) - EXIT - ENDIF - ENDIF - - //TraceLog( sExp, sToken, sJustToken, nLen, sNextToken, sJustNext, nNextLen, sLastToken, cLastChar, sNextAnchor ) - - IF nNextLen == 1 - - IF sNext1 == '(' .AND. ( IsAlpha( cLastChar ) .OR. IsDigit( cLastChar ) .OR. cLastChar $ "_." ) - LOOP - ELSEIF sNext1 == '[' // No need to check prefix because _pp_NextToken() already has the logic. - LOOP - ELSEIF sNext1 $ "+-*/:=^!>\:=\==\!=\<>\>=\<=\+=\-=\*=\/=\^=\**\%=" - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .T. ) - #else - s_bArrayPrefix := .T. - #endif - LOOP - ENDIF - - ELSEIF nNextLen == 4 - - IF sNext4 == ".OR." - sExp += sNextToken - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - LOOP - ENDIF - - ELSEIF nNextLen == 5 - - IF sNext5 == ".AND." - sExp += sNextToken - sLine := sNextLine - s_bArrayPrefix := .F. - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - LOOP - /* .NOT. is being translated to ! at NextToken() !!! - ELSEIF sNext5 == ".NOT." - sExp += sNextToken - sLine := sNextLine - s_bArrayPrefix := .F. - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif */ - ENDIF - - ENDIF - - // ------------------ - // 3rd. Level. - // ------------------ - - IF sNext1 == ',' - IF cType == "," - sList += ( sExp + sNextToken ) - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - sExp := "" - ELSEIF cType == "A" - aAdd( aExp, sExp ) - sLine := sNextLine - #ifdef USE_C_BOOST - _pp_setArrayPrefix( .F. ) - #else - s_bArrayPrefix := .F. - #endif - sExp := "" - ELSE - //? "DONT CONTINUE: " + sLine - EXIT - ENDIF - ELSE - //? "DONT CONTINUE: " + sLine - EXIT - ENDIF - ENDDO - - IF cType == 'A' - IF sExp == "" - IF Len( aExp ) == 0 - aExp := NIL - ENDIF - ELSE - aAdd( aExp, sExp ) - ENDIF - - IF bDbgExp - IF ! ( ProcName(1) == "NEXTEXP" ) - ? "List Exp: " + '{' - FOR Counter := 1 TO Len( aExp ) - ?? aExp[Counter] - IF Counter < Len( aExp ) - ?? ',' - ENDIF - NEXT - ?? '}' - ENDIF - ENDIF - ELSEIF cType == ',' - IF sExp == "" - IF sList == "" - sExp := NIL - ELSE - sExp := sList - ENDIF - ELSE - sExp := ( sList + sExp ) - ENDIF - - IF bDbgExp - ? "List =", sExp, " Next:", sLine - ENDIF - ELSE - IF sExp == "" - sExp := NIL - ENDIF - IF bDbgExp - ? "Exp =", sExp, " Next:", sLine - ENDIF - ENDIF - - IF bDbgExp - WAIT - ENDIF - - //TraceLog( "*** Finish", cType, aExp, sExp, sLine, sNextAnchor ) - -RETURN IIF( cType == 'A', aExp, sExp ) - -//--------------------------------------------------------------// - -STATIC FUNCTION PPOut( aResults, aMarkers ) - - LOCAL Counter, nResults, sResult := "", nMarker, nMatches, nMatch - LOCAL xValue, nRepeats := 0, nDependee, nGroupStart, sDumb, aBackUp := aClone( aMarkers ) - LOCAL nMarkers, anMarkers, bBuildList - LOCAL nGroupIterator - - IF aResults[1] == NIL - nResults := 0 - ELSE - nResults := Len( aResults[1] ) - ENDIF - - FOR Counter := 1 TO nResults - - IF bDbgPPO - ? sResult - ? Counter, "of:", nResults, nGroupStart, nRepeats - WAIT - ENDIF - - /* Normal mode. */ - IF nRepeats == 0 - - nDependee := aResults[1][Counter][1] - - IF nDependee > 0 - nGroupStart := Counter - - nGroupIterator := Counter - nRepeats := 0 - WHILE nGroupIterator <= nResults .AND. aResults[1][nGroupIterator][1] == nDependee - IF ValType( aResults[1][nGroupIterator][2] ) == 'N' .AND. ValType( aMarkers[ aResults[1][nGroupIterator][2] ] ) == 'A' - nRepeats := Max( nRepeats, Len( aMarkers[ aResults[1][nGroupIterator][2] ] ) ) - ENDIF - nGroupIterator++ - ENDDO - IF nRepeats > 0 - anMarkers := {} - bBuildList := .T. - ENDIF - - IF bDbgPPO - ? Counter, nDependee, aMarkers, ValType( aMarkers ), nRepeats - WAIT - ENDIF - - IF nRepeats > 0 - IF ValType( aResults[1][Counter][2] ) == 'N' - IF bBuildList .AND. aScan( anMarkers, nDependee ) == 0 - aAdd( anMarkers, nDependee ) - ENDIF - - // For group head nDependee and nMaker _must_ be identical. - IF ValType( aMarkers[ nDependee ] ) == 'A' - xValue := aMarkers[ nDependee ][1] - ELSE - xValue := aMarkers[ nDependee ] - ENDIF - ELSE - sResult += aResults[1][Counter][2] - LOOP - ENDIF - ELSE - IF bDbgPPO - ? "Skipping other dependants" - WAIT - ENDIF - - /* Skip all other dependants. */ - Counter++ - WHILE Counter < nResults .AND. aResults[1][Counter][1] == nDependee - Counter++ - ENDDO - Counter-- // LOOP will increased. - LOOP - ENDIF - - ELSE // IF nDependee > 0 - - IF ValType( aResults[1][Counter][2] ) == 'N' - xValue := aMarkers[ aResults[1][Counter][2] ] - ELSE - sResult += aResults[1][Counter][2] - LOOP - ENDIF - - ENDIF // IF nDependee > 0 - - ELSE /* Repeat mode. */ - - /* Still in repeat group? */ - IF aResults[1][Counter][1] == nDependee - - IF ValType( aResults[1][Counter][2] ) == 'N' - //IF aMarkers[ aResults[1][Counter][2] ] != NIL - IF bBuildList .AND. aScan( anMarkers, aResults[1][Counter][2] ) == 0 - aAdd( anMarkers, aResults[1][Counter][2] ) - ENDIF - IF aMarkers[ aResults[1][Counter][2] ] == NIL .OR. Len( aMarkers[ aResults[1][Counter][2] ] ) == 0 - xValue := NIL - ELSEIF ValType( aMarkers[ aResults[1][Counter][2] ] ) == 'A' - xValue := aMarkers[ aResults[1][Counter][2] ][1] - ELSE - xValue := aMarkers[ aResults[1][Counter][2] ] - ENDIF - //aDel( aMarkers[ aResults[1][Counter][2] ], 1 ) - //aSize( aMarkers[ aResults[1][Counter][2] ], nRepeats - 1 ) - //ELSE - // xValue := "" - //ENDIF - ELSE - sResult += aResults[1][Counter][2] - - IF nRepeats > 1 .AND. Counter == nResults - nRepeats-- - Counter := nGroupStart - 1 - - bBuildList := .F. - - nMarkers := Len( anMarkers ) - FOR nMarker := 1 TO nMarkers - // Clipper does not remove optional nested repeatable which only has single value if main repeatable has more values. - IF ValType( aMarkers[ anMarkers[nMarker] ] ) == 'A' .AND. ( Len( aBackup[ anMarkers[1] ] ) = 1 .OR. Len( aMarkers[ anMarkers[nMarker] ] ) > 1 ) - IF bDbgPPO - ? nMarker, "- Removing Repeatable", aMarkers[ anMarkers[nMarker] ][1] - WAIT - ENDIF - aDel( aMarkers[ anMarkers[nMarker] ], 1 ) - aSize( aMarkers[ anMarkers[nMarker] ], nRepeats ) - ELSE - IF bDbgPPO - ? nMarker, Len( aBackup[ anMarkers[1] ] ), Len( aMarkers[ anMarkers[nMarker] ] ),"Removed Repeatable" - WAIT - ENDIF - ENDIF - NEXT - - IF bDbgPPO - ? "END - Looping: ", Counter, nMarker, nGroupStart, nRepeats - WAIT - ENDIF - ENDIF - - IF bDbgPPO - ? "Bottom: ", Counter, nMarker, nGroupStart, nRepeats - WAIT - ENDIF - - LOOP - ENDIF - ELSE - nRepeats-- - bBuildList := .F. - - nMarkers := Len( anMarkers ) - FOR nMarker := 1 TO nMarkers - // Clipper does not remove optional nested repeatable which only has single value if main repeatable has more values. - IF ValType( aMarkers[ anMarkers[nMarker] ] ) == 'A' .AND. Len( aMarkers[ anMarkers[nMarker] ] ) > 1 - IF bDbgPPO - ? nMarker, "+ Removing Repeatable", aMarkers[ anMarkers[nMarker] ][1] - WAIT - ENDIF - aDel( aMarkers[ anMarkers[nMarker] ], 1 ) - aSize( aMarkers[ anMarkers[nMarker] ], nRepeats ) - ELSE - IF bDbgPPO - ? nMarker, "Removed Repeatable skipped" - WAIT - ENDIF - ENDIF - NEXT - - IF nRepeats > 0 - IF bDbgPPO - ? "Looping to: ", nGroupStart, nRepeats - WAIT - ENDIF - - Counter := nGroupStart - 1 // LOOP will increase - LOOP - ELSE - IF bDbgPPO - ? "Repeats Finished: " - WAIT - ENDIF - - // Restore for possible re-use. - aMarkers := aClone( aBackup ) - - /* Recheck this item in "normal" mode. */ - Counter-- - LOOP - ENDIF - ENDIF - - ENDIF - - nMarker := aResults[1][Counter][2] - - IF bDbgPPO - ? "Outputing:", Counter, nMarker, nGroupStart, nRepeats - WAIT - ENDIF - - DO CASE - /* <-x-> Ommit. */ - CASE aResults[2][Counter] == 0 - - /* Regular */ - CASE aResults[2][Counter] == 1 - IF ValType( xValue ) == 'A' - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - sResult += xValue[nMatch] - IF nMatch < nMatches - sResult += ', ' - ENDIF - NEXT - ELSE - IF xValue != NIL - sResult += xValue - ENDIF - ENDIF - - /* # Dumb Stringify */ - CASE aResults[2][Counter] == 2 - IF ValType( xValue ) == 'A' - sDumb := "" - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - sDumb += xValue[nMatch] - IF nMatch < nMatches - sDumb += ", " - ENDIF - NEXT - IF '"' $ sDumb .AND. "'" $ sDumb .AND. ']' $ sDumb .AND. Left( sDumb, 1 ) != '[' - sResult += '[[' + sDumb + ']]' - ELSEIF '"' $ sDumb .AND. "'" $ sDumb - sResult += '[' + sDumb + "]" - ELSEIF '"' $ sDumb - sResult += "'" + sDumb + "'" - ELSE - sResult += '"' + sDumb + '"' - ENDIF - ELSE - IF xValue == NIL - sResult += '""' - ELSE - IF '"' $ xValue .AND. "'" $ xValue .AND. ']' $ xValue .AND. Left( xValue, 1 ) != '[' - sResult += "[[" + xValue + "]]" - ELSEIF '"' $ xValue .AND. "'" $ xValue - sResult += '[' + xValue + "]" - ELSEIF '"' $ xValue - sResult += "'" + xValue + "'" - ELSE - sResult += '"' + xValue + '"' - ENDIF - ENDIF - ENDIF - - /* <"x"> Normal Stringify */ - CASE aResults[2][Counter] == 3 - IF ValType( xValue ) == 'A' - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - IF Left( xValue[nMatch], 1 ) == '&' - IF Right( xValue[nMatch], 1 ) == '.' - sResult += SubStr( xValue[nMatch], 2, Len( xValue[nMatch] ) - 2 ) - ELSE - sResult += SubStr( xValue[nMatch], 2 ) - ENDIF - ELSEIF '"' $ xValue[nMatch] .AND. "'" $ xValue[nMatch] .AND. ']' $ xValue[nMatch] .AND. Left( xValue[nMatch], 1 ) != '[' - sResult += "[[" + RTrim( xValue[nMatch] ) + "]]" - ELSEIF '"' $ xValue[nMatch] .AND. "'" $ xValue[nMatch] - sResult += '[' + RTrim( xValue[nMatch] ) + "]" - ELSEIF '"' $ xValue[nMatch] - sResult += "'" + RTrim( xValue[nMatch] ) + "'" - ELSE - sResult += '"' + RTrim( xValue[nMatch] ) + '"' - ENDIF - - IF nMatch < nMatches - sResult += ', ' - ENDIF - NEXT - ELSE - IF ! ( xValue == NIL ) - IF Left( xValue, 1 ) == '&' - IF Right( xValue, 1 ) == '.' - sResult += SubStr( xValue, 2, Len( xValue ) - 2 ) - ELSE - sResult += SubStr( xValue, 2 ) - ENDIF - ELSEIF '"' $ xValue .AND. "'" $ xValue .AND. ']' $ xValue .AND. Left( xValue, 1 ) != '[' - sResult += "[[" + xValue + "]]" - ELSEIF '"' $ xValue .AND. "'" $ xValue - sResult += '[' + xValue + ']' - ELSEIF '"' $ xValue - sResult += "'" + xValue + "'" - ELSE - sResult += '"' + xValue + '"' - ENDIF - ENDIF - ENDIF - - /* <(x)> Smart Stringify */ - CASE aResults[2][Counter] == 4 - IF ValType( xValue ) == 'A' - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - IF Left( xValue[nMatch], 1 ) $ "('[" + '"' - sResult += xValue[nMatch] - ELSE - IF Left( xValue[nMatch], 1 ) == '&' - IF Right( xValue[nMatch], 1 ) == '.' - sResult += SubStr( xValue[nMatch], 2, Len( xValue[nMatch] ) - 2 ) - ELSE - sResult += SubStr( xValue[nMatch], 2 ) - ENDIF - ELSE - sResult += '"' + RTrim( xValue[nMatch] ) + '"' - ENDIF - ENDIF - - IF nMatch < nMatches - sResult += ', ' - ENDIF - NEXT - ELSE - IF xValue != NIL - IF Left( xValue, 1 ) $ "('[" + '"' - sResult += xValue - ELSE - IF Left( xValue, 1 ) == '&' - IF Right( xValue, 1 ) == '.' - sResult += SubStr( xValue, 2, Len( xValue ) - 2 ) - ELSE - sResult += SubStr( xValue, 2 ) - ENDIF - ELSE - sResult += '"' + RTrim( xValue ) + '"' - ENDIF - ENDIF - ENDIF - ENDIF - - /* <{x}> Blockify */ - CASE aResults[2][Counter] == 5 - IF ValType( xValue ) == 'A' - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - sResult += "{||" + xValue[nMatch] + '}' - IF nMatch < nMatches - sResult += ', ' - ENDIF - NEXT - ELSE - IF xValue != NIL - sResult += "{||" + xValue + '}' - ENDIF - ENDIF - - /* <.x.> Logify */ - CASE aResults[2][Counter] == 6 - IF ValType( xValue ) == 'A' - nMatches := Len( xValue ) - FOR nMatch := 1 TO nMatches - sResult += ".T." - IF nMatch < nMatches - sResult += ', ' - ENDIF - NEXT - ELSE - IF Empty( xValue ) - sResult += ".F." - ELSE - sResult += ".T." - ENDIF - ENDIF - - ENDCASE - - IF nRepeats > 1 .AND. Counter == nResults - nRepeats-- - Counter := nGroupStart - 1 - - bBuildList := .F. - - nMarkers := Len( anMarkers ) - FOR nMarker := 1 TO nMarkers - // Clipper does not remove optional nested repeatable which only has single value if main repeatable has more values. - IF ValType( aMarkers[ anMarkers[nMarker] ] ) == 'A' .AND. ( Len( aBackup[ anMarkers[1] ] ) = 1 .OR. Len( aMarkers[ anMarkers[nMarker] ] ) > 1 ) - aDel( aMarkers[ anMarkers[nMarker] ], 1 ) - aSize( aMarkers[ anMarkers[nMarker] ], nRepeats ) - IF bDbgPPO - ? nMarker, "Removed Repeatable" - WAIT - ENDIF - ELSE - IF bDbgPPO - ? nMarker, Len( aBackup[ anMarkers[1] ] ), Len( aMarkers[ anMarkers[nMarker] ] ),"Removed Repeatable" - WAIT - ENDIF - ENDIF - NEXT - - IF bDbgPPO - ? "END - Looping: ", Counter, nMarker, nGroupStart, nRepeats - WAIT - ENDIF - ENDIF - - IF bDbgPPO - ? "Bottom: ", Counter, nMarker, nGroupStart, nRepeats - WAIT - ENDIF - - NEXT - - IF bDbgPPO - ? "*** OUT: " + sResult - WAIT - ENDIF - - //TraceLog( sResult ) - -RETURN sResult - -//--------------------------------------------------------------// - -STATIC FUNCTION CompileRule( sRule, aRules, aResults, bX, bUpper ) - - LOCAL nNext, sKey, sAnchor, nOptional := 0, cType, nId := 0, aRule, aMatch, aWords - LOCAL nOptionalAt, nMarkerAt, aMarkers := {}, Counter, nType, aResult := {}, sTemp, aModifiers, aValues - LOCAL aRP, nAt, sResult, nCloseAt, sMarker, nCloseOptionalAt, sPad, nResults, nMarker, nMP, nMatches, nOffset - LOCAL nWord, nWords, cChar - LOCAL nLen, s1, s2, s3 - LOCAL sRuleCopy := sRule - LOCAL nLastOptional, nPending - LOCAL sDots - LOCAL nMarkerID - LOCAL nTempMP - LOCAL nTokenLen - - /* - nMarkerID - nOPTIONAL - sAnchor - cTYPE - aLIST - aNext - */ - - //? "=>" + sRule + "<=" - - //TraceLog( sRule ) - - ExtractLeadingWS( @sRule ) - - sKey := _pp_NextToken( @sRule ) - IF Left( sKey, 1 ) == '\' - sKey := SubStr( sKey, 2, 1 ) - ENDIF - - DropTrailingWS( @sKey ) - - IF bUpper - sKey := Upper( sKey ) - ENDIF - - //? "KEY: '" + sKey + "'" - - aRule := { sKey, {}, bX } - - #ifdef __XHARBOUR__ - HB_AtX( "(^|[^\\])= *>", sRule, , @nNext, @nTokenLen ) - #else - nNext := 0 - DO WHILE ( nNext := At( "=>", sRule, nNext + 1 ) ) > 0 - IF ! SubStr( sRule, nNext - 1, 1 ) == '\' - EXIT - ENDIF - ENDDO - - nTokenLen := 2 - #endif - - IF nNext == 0 - Alert( [ERROR! Invalid translation format: ] + sRule ) - RETURN .F. - ELSE - sResult := SubStr( sRule, nNext + nTokenLen ) - ExtractLeadingWS( @sResult ) - sRule := Left( sRule, nNext - 1 ) - ENDIF - - //TraceLog( sRule, sResult ) - - DO WHILE ! ( Left( sRule, 1 ) == '' ) - //? "Scaning: " + sRule - - nLen := Len( sRule ) - - s1 := Left( sRule, 1 ) - IF nLen >= 2 - s2 := Left( sRule, 2 ) - ENDIF - IF nLen >= 3 - s3 := Upper( Left( sRule, 3 ) ) - ENDIF - - BEGIN SEQUENCE - - IF nLen >= 5 - IF s1 == '.' .AND. Upper( SubStr( sRule, 2, 3 ) ) == 'AND' .AND. SubStr( sRule, 5, 1 ) == '.' - sTemp := ".AND." - BREAK - ELSEIF s1 = '.' .AND. Upper( SubStr( sRule, 2, 3 ) ) == 'NOT' .AND. SubStr( sRule, 5, 1 ) == '.' - sTemp := "!" - /* Skip the unaccounted letters ( .NOT. <-> ! ) */ - sRule := SubStr( sRule, 4 ) - BREAK - ENDIF - ENDIF - - IF nLen >= 4 .AND. s1 == '.' .AND. Upper( SubStr( sRule, 2, 2 ) ) == 'OR' .AND. SubStr( sRule, 4, 1 ) == '.' - sTemp := ".OR." - BREAK - ENDIF - - IF nLen >= 3 .AND. s3 $ ".T.\.F." - sTemp := s3 - BREAK - ENDIF - - IF nLen >= 2 - IF s2 $ "++\--\->\:=\==\!=\<>\>=\<=\+=\-=\*=\^=\**\/=\%=" - sTemp := s2 - BREAK - ENDIF - ENDIF - - IF nLen >= 1 - IF s1 == '\' - sTemp := SubStr( sRule, 2, 1 ) - sRule := SubStr( sRule, 2 ) - BREAK - ELSEIF s1 == '_' .OR. IsAlpha( s1 ) - sTemp := Upper( RTrim( _pp_NextToken( sRule ) ) ) // Not by refernce because of SubStr() below!!! - BREAK - ELSEIF s1 == '.' // Might pull decimal numbers... - sTemp := RTrim( _pp_NextToken( sRule ) ) // Not by refernce because of SubStr() below!!! - BREAK - ELSEIF IsDigit( s1 ) - sTemp := RTrim( _pp_NextToken( sRule ) ) // Not by refernce because of SubStr() below!!! - BREAK - ELSEIF s1 == ']' .AND. nOptional == 0 - sTemp := ']' - BREAK - ELSEIF s1 $ "+-*/:=^!&(){}@,|>#%?$" - sTemp := s1 - BREAK - ENDIF - ENDIF - - END SEQUENCE - - //TraceLog( sTemp ) - - IF sTemp != NIL - IF ! ( sAnchor == NIL ) - //TraceLog( "ORPHAN ANCHOR: " + sAnchor ) - - aMatch := { 0, nOptional, sAnchor, NIL, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - /* Next dependant optional will be marked as trailing. */ - IF nOptional > 0 - nOptional := ( -nOptional ) - ENDIF - ENDIF - - sAnchor := sTemp // Next Anchor - sRule := SubStr( sRule, Len( sAnchor ) + 1 ) - ExtractLeadingWS( @sRule ) - - sTemp := NIL // Resetting. - LOOP - ENDIF - - IF s1 == '<' - //nId++ - nId := Len( aMarkers ) + 1 - - /* Skip trailing spaces...*/ - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - DO CASE - CASE SubStr( sRule, 1, 1 ) == '*' - cType := '*' - - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - nNext := At( '*', sRule ) - - IF nNext > 1 - sMarker := RTrim( Left( sRule, nNext - 1 ) ) - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - - sRule := SubStr( sRule, nNext + 1 ) - ExtractLeadingWS( @sRule ) - - IF Left( sRule, 1 ) == '>' - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - ELSE - Alert( [ERROR! Unblanced MP: '<*' : '] + sRule + "'" ) - ENDIF - - aMatch := { nId, nOptional, sAnchor, cType, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - /* Next dependant optional will be marked as trailing. */ - IF nOptional > 0 - nOptional := ( -nOptional ) - ENDIF - - sAnchor := NIL - LOOP - ELSE - Alert( [ERROR! Unblanced MP: '<*' : '] + sRule + "'" ) - RETURN .F. - ENDIF - - CASE SubStr( sRule, 1, 1 ) == '(' - cType := '(' - - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - nNext := At( ')', sRule ) - IF nNext > 1 - sMarker := RTrim( Left( sRule, nNext - 1 ) ) - - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - - sRule := SubStr( sRule, nNext + 1 ) - ExtractLeadingWS( @sRule ) - - IF Left( sRule, 1 ) == '>' - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - ELSE - Alert( [ERROR! Unblanced MP: '<(' : '] + sRule + "'" ) - ENDIF - - aMatch := { nId, nOptional, sAnchor, cType, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - /* Next dependant optional will be marked as trailing. */ - IF nOptional > 0 - nOptional := ( -nOptional ) - ENDIF - - sAnchor := NIL - LOOP - ELSE - Alert( [ERROR! Unblanced MP: '<(' : '] + sRule + "'" ) - RETURN .F. - ENDIF - - CASE SubStr( sRule, 1, 1 ) == '!' - cType := '!' - - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - nNext := At( '!', sRule ) - IF nNext > 1 - sMarker := RTrim( Left( sRule, nNext - 1 ) ) - - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - - sRule := SubStr( sRule, nNext + 1 ) - ExtractLeadingWS( @sRule ) - - IF Left( sRule, 1 ) == '>' - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - ELSE - Alert( [ERROR! Unblanced MP: ' 0 - nOptional := ( -nOptional ) - ENDIF - - sAnchor := NIL - LOOP - ELSE - Alert( [ERROR! Unblanced MP: '', sRule ) - nNext := At( ',', sRule ) - - IF nNext > 1 .AND. nNext < nCloseAt - sDots := LTrim( SubStr( sRule, nNext + 1 ) ) - IF Left( sDots, 1 ) == '.' - sDots := LTrim( SubStr( sDots, 2 ) ) - IF Left( sDots, 1 ) == '.' - sDots := LTrim( SubStr( sDots, 2 ) ) - IF Left( sDots, 1 ) == '.' - sDots := LTrim( SubStr( sDots, 2 ) ) - IF Left( sDots, 1 ) != '>' - nNext := 0 - ENDIF - ELSE - nNext := 0 - ENDIF - ELSE - nNext := 0 - ENDIF - ELSE - nNext := 0 - ENDIF - ENDIF - - IF nNext > 1 .AND. nNext < nCloseAt - //? "Extended: '" + sRule + "'" - cType := 'A' - - sMarker := RTrim( Left( sRule, nNext - 1 ) ) - ExtractLeadingWS( @sMarker ) - - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - - sRule := sDots - - nNext := 0 - nCloseAt := 1 - ELSE - nNext := At( ':', sRule ) - ENDIF - - IF nNext > 0 .AND. nNext < nCloseAt - cType := ':' - - //? "LIST" - sMarker := RTrim( Left( sRule, nNext - 1 ) ) - ExtractLeadingWS( @sMarker ) - - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - - sRule := SubStr( sRule, nNext + 1 ) - ExtractLeadingWS( @sRule ) - - aWords := {} - DO WHILE ! ( Left( sRule, 1 ) == '>' ) - nNext := At( ',', sRule ) - IF nNext > 0 .AND. nNext < At( '>', sRule ) - //? "Added: " + Left( sRule, nNext - 1 ) - aAdd( aWords, Upper( RTrim( Left( sRule, nNext - 1 ) ) ) ) - sRule := SubStr( sRule, nNext + 1 ) - ExtractLeadingWS( @sRule ) - LOOP - ELSE - nCloseAt := At( '>', sRule ) - IF nCloseAt > 0 - //? "Last: " + Left( sRule, nCloseAt - 1 ) - aAdd( aWords, Upper( RTrim( Left( sRule, nCloseAt - 1 ) ) ) ) - EXIT - ELSE - Alert( [ERROR! Unblanced MP: ''<:' at: ] + sRule ) - RETURN .F. - ENDIF - ENDIF - ENDDO - ENDIF - - IF nCloseAt > 0 - IF cType == NIL - cType := '<' - ENDIF - - IF Len( aMarkers ) < nId - sMarker := RTrim( Left( sRule, nCloseAt - 1 ) ) - ExtractLeadingWS( @sMarker ) - - #ifdef __XHARBOUR__ - IF ( nMarkerID := aScan( aMarkers, sMarker, , , .T. ) ) > 0 - #else - IF ( nMarkerID := aScan( aMarkers, {|s| s == sMarker } ) ) > 0 - #endif - nId := nMarkerID - ELSE - aAdd( aMarkers, sMarker ) - ENDIF - ENDIF - - sRule := SubStr( sRule, nCloseAt + 1 ) - ExtractLeadingWS( @sRule ) - - aMatch := { nId, nOptional, sAnchor, cType, aWords } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - aWords := NIL // Reset. - - /* Next dependant optional will be marked as trailing. */ - IF nOptional > 0 - nOptional := ( -nOptional ) - ENDIF - ELSE - Alert( [ERROR! Unbalanced MP: '<' at: ] + sRule ) - RETURN .F. - ENDIF - - sAnchor := NIL - LOOP - - ELSEIF s1 == '[' - - IF ! ( sAnchor == NIL ) - //TraceLog( "ORPHAN ANCHOR: " + sAnchor ) - - aMatch := { 0, nOptional, sAnchor, NIL, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - // No need to negate nOptional, because we start a new optional group below... - ENDIF - - nOptional := Abs( nOptional ) - nOptional++ - //? "Optional:", nOptional - - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - sAnchor := NIL - LOOP - - ELSEIF s1 == ']' - - IF ! ( sAnchor == NIL ) - //TraceLog( "ORPHAN ANCHOR: " + sAnchor ) - - aMatch := { 0, nOptional, sAnchor, NIL, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - // No need to negate nOptional, because we close optional group below... - ENDIF - - IF nOptional > 0 - nOptional-- - nOptional := (-nOptional) - ELSE - nOptional++ - ENDIF - - sRule := SubStr( sRule, 2 ) - ExtractLeadingWS( @sRule ) - - sAnchor := NIL - LOOP - - ELSE - - // Some token sneaked in ... - TraceLog( "UnExpected Case: " + sRule + "[" + Str( ProcLine() ) + "]" ) - Alert( [UnExpected Case: ] + sRule + "[" + Str( ProcLine() ) + "]" ) - - IF ! ( sAnchor == NIL ) - //TraceLog( "ORPHAN ANCHOR: " + sAnchor ) - - aMatch := { 0, nOptional, sAnchor, NIL, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - /* Next dependant optional will be marked as trailing. */ - IF nOptional > 0 - nOptional := ( -nOptional ) - ENDIF - ENDIF - - sAnchor := _pp_NextToken( @sRule ) - ENDIF - ENDDO - - IF sAnchor != NIL - aMatch := { 0, 0, sAnchor, NIL, NIL } - //? aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] - aAdd( aRule[2], aMatch ) - - // No need to negate nOptional, because last token, and nOptional must equal 0 here! - ENDIF - - IF nOptional <> 0 - TraceLog( "ERROR Unclose Optional group, nOptional = " + Str( nOptional, 3 ), aMatch[1], aMatch[2], aMatch[3], aMatch[4], aMatch[5] ) - Alert( [ERROR! Unclosed Optional group, nOptional = ] + Str( nOptional, 3 ) + " [" + Str( ProcLine(0), 4 ) + "]" ) - BREAK - ENDIF - - aAdd( aRules, aRule ) - - /* - nMarkerID - nOPTIONAL - sAnchor - cTYPE - aLIST - */ - - // *** Processing STOP Words below! - - /* - ? '' - FOR Counter := 1 TO nId - ?? aMarkers[Counter] - IF Counter < nId - ?? ' , ' - ENDIF - NEXT - - nMatches := Len( aRule[2] ) - FOR Counter := 1 TO nMatches - ? aRule[2][Counter][1], aRule[2][Counter][2], aRule[2][Counter][3], aRule[2][Counter][4], aRule[2][Counter][5] - NEXT - WAIT - */ - - /* --------------------------------------------------------------- */ - - //? [RP: "] + sResult + '"' - - //TraceLog( sResult ) - - nOptional := 0 - aModifiers := {} - aValues := Array( nId ) - nId := 0 - sPad := '' - - DO WHILE ! ( sResult == '' ) - nOffset := 0 - nOptionalAt := At( '[', sResult ) - WHILE nOPtionalAt > 1 .AND. SubStr( sResult, nOptionalAt - 1, 1 ) == '\' - nOffset := nOptionalAt - nOptionalAt := At( '[', sResult, nOffset + 1 ) - ENDDO - - nOffset := 0 - IF nOptionalAt == 0 - nMarkerAt := At( '<', sResult ) - WHILE nMarkerAt > 0 - IF nMarkerAt > 1 .AND. SubStr( sResult, nMarkerAt - 1, 1 ) == '\' - nOffset := nMarkerAt - nMarkerAt := At( '<', sResult, nOffset + 1 ) - //TraceLog( sResult, nOffset, nMarkerAt ) - ELSEIF nMarkerAt > 0 .AND. SubStr( sResult, nMarkerAt + 1, 1 ) $ ">=" // ignore <= and <> - nOffset := nMarkerAt + 1 - nMarkerAt := At( '<', sResult, nOffset + 1 ) - ELSE - EXIT - ENDIF - ENDDO - ELSE - nMarkerAt := At( '<', sResult ) - WHILE nMarkerAt > 0 - IF nMarkerAt > 1 .AND. nMarkerAt < nOptionalAt .AND. SubStr( sResult, nMarkerAt - 1, 1 ) == '\' - nOffset := nMarkerAt - nMarkerAt := At( '<', sResult, nOffset + 1 ) - //TraceLog( sResult, nOffset, nMarkerAt ) - ELSEIF nMarkerAt > 0 .AND. nMarkerAt < nOptionalAt .AND. SubStr( sResult, nMarkerAt + 1, 1 ) $ ">=" // ignore <= and <> - nOffset := nMarkerAt + 1 - nMarkerAt := At( '<', sResult, nOffset + 1 ) - ELSE - EXIT - ENDIF - ENDDO - - IF nMarkerAt > 0 - IF nMarkerAt > nOptionalAt - nMarkerAt := 0 - ELSE - nOptionalAt := 0 - ENDIF - ENDIF - ENDIF - - nAt := IIF( nOptionalAt == 0, nMarkerAt, nOptionalAt ) - - IF nOptional == 0 - nCloseOptionalAt := 0 - ELSE - nOffset := 0 - IF nAt == 0 - nCloseOptionalAt := At( ']', sResult ) - WHILE nCloseOptionalAt > 1 .AND. SubStr( sResult, nCloseOptionalAt - 1, 1 ) == '\' - nCloseOptionalAt := At( ']', sResult, nCloseOptionalAt + 1 ) - ENDDO - ELSE - nCloseOptionalAt := At( ']', sResult ) - WHILE nCloseOptionalAt > 1 .AND. nCloseOptionalAt <= nAt .AND. SubStr( sResult, nCloseOptionalAt - 1, 1 ) == '\' - nCloseOptionalAt := At( ']', sResult, nCloseOptionalAt + 1 ) - ENDDO - - IF nCloseOptionalAt > 0 - IF nCloseOptionalAt > nAt - nCloseOptionalAt := 0 - ELSE - nAt := 0 - nOptionalAt := 0 - nMarkerAt := 0 - ENDIF - ENDIF - ENDIF - ENDIF - - //? "RP Scan:", nAt, nMarkerAt, nOptionalAt, nCloseOptionalAt, sResult - //WAIT - - IF nCloseOptionalAt > 0 - IF nCloseOptionalAt > 1 - sTemp := Left( sResult, nCloseOptionalAt - 1 ) - aRP := { nOptional, sPad + sTemp } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ENDIF - - nOptional := 0 //-- - sResult := SubStr( sResult, nCloseOptionalAt + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - LOOP - ENDIF - - IF nOptionalAt > 0 - - IF nOptional <> 0 - Alert( [ERROR! Nested repeatable RP.;] + sResult ) - BREAK - ELSE - nOptional := -1 - ENDIF - - /* The text preceding this new repeatable group. */ - IF nOptionalAt > 1 - sTemp := Left( sResult, nOptionalAt - 1 ) - aRP := { 0, sPad + sTemp } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ELSE - aRP := { 0, "" } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ENDIF - - sResult := SubStr( sResult, nOptionalAt + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - LOOP - - ELSEIF nMarkerAt > 0 - - /* Resetting. */ - nType := 0 - - IF nMarkerAt == 1 .OR. ( nMarkerAt == 2 .AND. Left( sResult, 1 ) == '#' ) - /* I consider this a Clipper bug - it produces .ppo without the padding if none suplied, - but treats it as if padding existed! - so at least we will generate the space. */ - - //IF /*Len( aResult ) > 0 .AND. ( ValType( aTail( aResult )[2] ) == 'N' .OR. aTail( aResult )[2] == "" ) .AND.*/ Len( sPad ) > 0 - IF bStrict - aRP := { nOptional, " " } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ELSEIF Len( sPad ) > 0 - aRP := { nOptional, sPad } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ENDIF - ENDIF - - IF nMarkerAt > 1 - sTemp := RTrim( Left( sResult, nMarkerAt - 1 ) ) - IF Right( sTemp, 1 ) == '#' - nType := 2 - IF nMarkerAt > 2 - sTemp := Left( sTemp, Len( sTemp ) - 1 ) - aRP := { nOptional, sPad + DropExtraTrailingWS( sTemp ) } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ENDIF - ELSE - sTemp := Left( sResult, nMarkerAt - 1 ) - aRP := { nOptional, sPad + DropExtraTrailingWS( sTemp ) } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - ENDIF - ENDIF - - sResult := SubStr( sResult, nMarkerAt + 1 ) - ExtractLeadingWS( @sResult ) - - /* <-x-> Ommit */ - IF SubStr( sResult, 1, 1 ) == '-' - - sResult := SubStr( sResult, 2 ) - ExtractLeadingWS( @sResult ) - - nNext := At( ">", sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<-' : '] + sTemp + "'" ) - ELSE - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - IF Right( sTemp, 1 ) == '-' - nType := 0 - sTemp := RTrim( Left( sTemp, Len( sTemp ) - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '<-' : '] + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - ENDIF - - /* # Dumb */ - ELSEIF nType == 2 - - nNext := At( '>', sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '#<' ] ) - ELSE - /*nType := 2*/ - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '#<' : ] + sTemp ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - - /* <"x"> Normal */ - ELSEIF SubStr( sResult, 1, 1 ) == '"' - - sResult := SubStr( sResult, 2 ) - ExtractLeadingWS( @sResult ) - - nNext := At( ">", sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<"' : '] + sTemp + "'" ) - ELSE - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - IF Right( sTemp, 1 ) == '"' - nType := 3 - sTemp := RTrim( Left( sTemp, Len( sTemp ) - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '<"' : '] + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - ENDIF - - /* <(x)> Smart */ - ELSEIF SubStr( sResult, 1, 1 ) == '(' - - sResult := SubStr( sResult, 2 ) - ExtractLeadingWS( @sResult ) - - nNext := At( ">", sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<(' : '] + sTemp + "'" ) - ELSE - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - IF Right( sTemp, 1 ) == ')' - nType := 4 - sTemp := RTrim( Left( sTemp, Len( sTemp ) - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '<(' : '] + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - ENDIF - - /* <{x}> Blockify */ - ELSEIF SubStr( sResult, 1, 1 ) == '{' - - sResult := SubStr( sResult, 2 ) - ExtractLeadingWS( @sResult ) - - nNext := At( ">", sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<{' : '] + sTemp + "'" ) - ELSE - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - IF Right( sTemp, 1 ) == '}' - nType := 5 - sTemp := RTrim( Left( sTemp, Len( sTemp ) - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '<{' : '] + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - ENDIF - - /* <.x.> Logify */ - ELSEIF SubStr( sResult, 1, 1 ) == '.' - - sResult := SubStr( sResult, 2 ) - ExtractLeadingWS( @sResult ) - - nNext := At( ">", sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<.' : '] + sResult + "'" ) - ELSE - sTemp := RTrim( Left( sResult, nNext - 1 ) ) - IF Right( sTemp, 1 ) == '.' - nType := 6 - sTemp := RTrim( Left( sTemp, Len( sTemp ) - 1 ) ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - Alert( [ERROR! Unrecognized RP: '<.' : '] + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - ENDIF - - ELSE - - nNext := At( '>', sResult ) - IF nNext == 0 - Alert( [ERROR! Unbalanced RP: '<' : '] + sResult + "'" ) - ELSE - /* Regular */ - nType := 1 - sTemp := Left( sResult, nNext - 1 ) - - #ifdef __XHARBOUR__ - nId := aScan( aMarkers, sTemp, , , .T. ) - #else - nId := aScan( aMarkers, {|s| s == sTemp } ) - #endif - - sResult := SubStr( sResult, nNext + 1 ) - ExtractLeadingWS( @sResult, @sPad ) - IF nId == 0 - aEval( aMarkers, {|sMarker| TraceLog( sResult, sTemp, sMarker ) } ) - Alert( [ERROR! Unrecognized RP: '<']+" : '" + sTemp + "'" ) - ELSE - aRP := { nOptional, nId } - aAdd( aResult, aRP ) - aAdd( aModifiers, nType ) - ENDIF - ENDIF - - ENDIF - - //? "RP #", nID, "Optional:", nOptional - - IF nOptional < 0 - nOptional := nID - aRP[1] := nOptional - ENDIF - - ELSE - - aRP := { 0, sPad + sResult } - aAdd( aResult, aRP ) - aAdd( aModifiers, -1 ) - sResult := '' - - ENDIF - - ENDDO - - IF nOptional <> 0 - TraceLog( "ERROR! Internal logic failure, nOptional = " + Str( nOptional, 3 ) + " [" + Str( ProcLine(0), 4 ) + "]", aRP[1], aRP[2] ) - Alert( [ERROR! Internal logic failure, nOptional = ] + Str( nOptional, 3 ) + " [" + Str( ProcLine(0), 4 ) + "]" ) - BREAK - ENDIF - - - /* Processing Repeatable Flag of Match Markers. */ - /* Note additional correction done in subsequent processing of STOP Words, below... */ - nResults := Len( aResult ) - FOR Counter := nResults TO 1 STEP -1 - aRP := aResult[Counter] - - /* Correcting the ID of the Marker this result depends upon. */ - IF aRP[1] > 0 - nOptional := aRP[1] - nMarker := aRP[2] - - //? "Repeatable: ", nMarker, "Root: ", nOptional - - IF ValType( nMarker ) == 'N' - nTempMP := 0 - WHILE ( nTempMP := aScan( aRule[2], {|aMP| aMP[1] == nMarker .OR. aMP[1] - 1000 == nMarker }, nTempMP + 1 ) ) > 0 - nMP := nTempMP - WHILE aRule[2][nMP][2] < 0 - IF aRule[2][nMP][1] >= 0 - - /* Mark as Repeatable. */ - IF aRule[2][nMP][1] < 1000 - aRule[2][nMP][1] += ( 1000 ) - //? "Flagged:", nMP, "As:", aRule[2][nMP][1] - ENDIF - ENDIF - - nMP-- - ENDDO - IF aRule[2][nMP][2] == 0 - TraceLog( "Warning - Result #" + Str( Counter ) + " marked REPEATABLE but root #" + Str( nMarker ) + " is not OPTIONAL!", sRuleCopy ) - //aRule[2][nMP][2] := 1 - ELSEIF aRule[2][nMP][1] < 1000 - aRule[2][nMP][1] += ( 1000 ) - //? "Flagged:", nMP, "As:", aRule[2][nMP][1] - ENDIF - ENDDO - //WAIT - ENDIF - ELSEIF aRP[1] < 0 - aRP[1] := nOptional - ENDIF - - IF ValType( aRP[2] ) == 'C' - aRP[2] := StrTran( aRP[2], '\\', '~' ) - aRP[2] := StrTran( aRP[2], '\', '' ) - aRP[2] := StrTran( aRP[2], '~', '\' ) - //? "RP #", Counter, aRP[1], '"' + aRP[2] + '"' - ELSE - //? "RP #", Counter, aRP[1], aRP[2] - ENDIF - NEXT - - //WAIT - - // Processing STOP words for NON Anchored optionals. - nLastOptional := 0 - nPending := 0 - nMatches := Len( aRule[2] ) - - FOR Counter := 1 TO nMatches - aMatch := aRule[2][Counter] - - /* If optional, which is *not* used as a result, Clipper makes it repeatable. */ - IF aMatch[1] < 1000 .AND. aMatch[1] > 0 .AND. aMatch[2] > 0 - IF aScan( aResult, { |aRP| ValType( aRP[2] ) == 'N' .AND. aRP[2] == aMatch[1] } ) == 0 - TraceLog( "Warning - Marker #" + Str( aMatch[1] ) + " not utilized in Result Rule", sRuleCopy ) - aMatch[1] += 1000 - ENDIF - ENDIF - - /* Optional group start (marker), no anchor, and not a restricted pattern - have to build stop words list! */ - IF aMatch[1] > 0 .AND. aMatch[2] > 0 .AND. aMatch[3] == NIL .AND. aMatch[4] != ':' - - aWords := {} - nOptional := aMatch[2] - nLastOptional := nOptional - - /* - nMP := Counter - 1 - WHILE nMP > 0 - aMatch := aRule[2][nMP] - IF aMatch[2] >= 0 .AND. aMatch[2] < nOptional - EXIT - ENDIF - IF aMatch[2] > 0 .AND. aMatch[2] == nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - ENDIF - nMP-- - ENDDO - */ - - nMP := Counter + 1 - WHILE nMP <= nMatches - aMatch := aRule[2][nMP] - IF aMatch[2] >= 0 .AND. aMatch[2] < nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - EXIT - ENDIF - IF aMatch[2] > 0 .AND. aMatch[2] == nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - ENDIF - nMP++ - ENDDO - - IF Len( aWords ) > 0 - aRule[2][Counter][5] := aWords - ENDIF - - ELSEIF aMatch[2] > 0 .AND. aMatch[2] - nLastOptional == 2 // Head of new group missing because nested optional is first element. - nPending := - ( aMatch[2] - 1 ) - - ELSEIF nPending != 0 .AND. aMatch[1] > 0 .AND. aMatch[2] == nPending .AND. aMatch[3] == NIL .AND. aMatch[4] != ':' - nPending := 0 - aWords := {} - nOptional := -aMatch[2] - nLastOptional := nOptional - - nMP := Counter - 1 - WHILE nMP > 0 - aMatch := aRule[2][nMP] - IF aMatch[2] >= 0 .AND. aMatch[2] < nOptional - EXIT - ENDIF - IF aMatch[2] > 0 .AND. aMatch[2] == nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - ENDIF - nMP-- - ENDDO - - nMP := Counter + 1 - WHILE nMP <= nMatches - aMatch := aRule[2][nMP] - IF aMatch[2] >= 0 .AND. aMatch[2] < nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - EXIT - ENDIF - IF aMatch[2] > 0 .AND. aMatch[2] == nOptional - IF aMatch[3] != NIL - aAdd( aWords, Upper( aMatch[3] ) ) - ELSEIF aMatch[4] == ':' - nWords := Len( aMatch[5] ) - FOR nWord := 1 TO nWords - aAdd( aWords, aMatch[5][nWord] ) - NEXT - ENDIF - ENDIF - nMP++ - ENDDO - - IF Len( aWords ) > 0 - aRule[2][Counter][5] := aWords - ENDIF - - ENDIF - - IF aMatch[3] != NIL - aMatch[3] := StrTran( aMatch[3], '\', '' ) - ENDIF - - //? aRule[1], aRule[2][Counter][1], aRule[2][Counter][2], aRule[2][Counter][3], aRule[2][Counter][4], aRule[2][Counter][5] - NEXT - //WAIT - - aAdd( aResults, { aResult, aModifiers, aValues } ) - - //TraceLog( "Finished" ) - -RETURN NIL - -//--------------------------------------------------------------// - -STATIC FUNCTION RemoveDefine( sDefine ) - - LOCAL nId, nLen - - sDefine := AllTrim( sDefine ) - - IF ( nId := aScan( aDefRules, {|aDefine| aDefine[1] == sDefine } ) ) > 0 - aDel( aDefRules, nId ) - aSize( aDefRules, ( nLen := Len( aDefRules ) - 1 ) ) - aDel( aDefResults, nId ) - aSize( aDefResults, nLen ) - ENDIF - -RETURN nId - -//--------------------------------------------------------------// - -STATIC FUNCTION CompileDefine( sRule ) - - LOCAL sKey, sResult, aRule, nCloseAt, nId, sMarker, nCommaAt, aMP - LOCAL sToken, aRPs, sAnchor, aMarkers := {}, aResult, sPad, sText := "" - - ExtractLeadingWS( @sRule ) - - sKey := _pp_NextToken( @sRule ) - - // TraceLog( sKey, sRule ) - // ? "KEY: '" + sKey + "'" - // ? "Rest: '" + sRule + "'" - - DropTrailingWS( @sKey, @sPad ) - - IF ( nId := aScan( aDefRules, {|aDefine| aDefine[1] == sKey } ) ) > 0 - Alert( [Redefinition of ] + "'" + sKey + "'" + [ in file: ] + s_sFile ) - aRule := aDefRules[nId] - //aRule[1] := sKey - aRule[2] := {} - aResult := aDefResults[nId] - aResult[1] := {} // aMPs - aResult[2] := {} // aModifiers - aResult[3] := {} // Markers place holders - ELSE - aRule := { sKey, {}, .T. } - aAdd( aDefRules, aRule ) - aResult := { {}, {}, {} } //1=MPs, 2=Modifiers 3=Marker place holders - aAdd( aDefResults, aResult ) - ENDIF - - IF sPad == "" .AND. Left( sRule, 1 ) == '(' .AND. ( nCloseAt := At( ')', sRule ) ) > 0 - - /*Pseudo Function. */ - sResult := SubStr( sRule, nCloseAt + 1 ) - sRule := SubStr( sRule, 2, nCloseAt - 2 ) - ExtractLeadingWS( @sRule ) - DropTrailingWS( @sRule ) - ExtractLeadingWS( @sResult ) - - /* No paramaets */ - IF sRule == '' - -//? "Added: '" + aRule[1] + "'" -//WAIT - aAdd( aRule[2], { 0, 0 , '(', NIL, NIL } ) - aAdd( aRule[2], { 0, 0 , ')', NIL, NIL } ) - - IF sResult == '' - aResult[1] := NIL - aResult[2] := NIL - aResult[3] := NIL - ELSE - aResult[1] := { { 0, sResult } } - ENDIF - ELSE - -//? "***'" + sRule + "'" -//WAIT - nId := 1 - sAnchor := '(' - - WHILE ( nCommaAt := At( ',', sRule ) ) > 0 - sMarker := Left( sRule, nCommaAt - 1 ) - sRule := SubStr( sRule, nCommaAt + 1 ) - ExtractLeadingWS( @sRule ) - DropTrailingWS( @sMarker ) - -//? nId, "Marker: '" + sMarker + "'" -//WAIT - aAdd( aMarkers, sMarker ) - aMP := { nId, 0, sAnchor, '<', NIL } - aAdd( aRule[2], aMP ) - - sAnchor := ',' - nId++ - ENDDO - - aAdd( aMarkers, sRule ) - aMP := { nId, 0, sAnchor, '<', NIL } - aAdd( aRule[2], aMP ) - - aMP := { 0, 0, ')', NIL, NIL } - aAdd( aRule[2], aMP ) - - /*----------------------------------------- */ - - aRPs := {} - - IF sResult == '' - - aResult[1] := NIL - aResult[2] := NIL - aResult[3] := Array( Len( aMarkers ) ) - - ELSE - - WHILE ( sToken := _pp_NextToken( @sResult ) ) != NIL - DropTrailingWS( @sToken, @sPad ) - -//? "Token: '" + sToken + "'" - #ifdef __XHARBOUR__ - IF ( nId := aScan( aMarkers, sToken, , , .T. ) ) > 0 - #else - IF ( nId := aScan( aMarkers, {|sMarker| sMarker == sToken } ) ) > 0 - #endif - IF ! ( sText == "" ) - aAdd( aRPs, { 0, sText } ) - aAdd( aResult[2], -1 ) - sText := sPad - ENDIF - - aAdd( aRPs, { 0, nId } ) - aAdd( aResult[2], 1 ) - ELSE - sText += sToken + sPad - ENDIF - -//? "ID:", nID -//WAIT - ENDDO - - IF ! ( sText == "" ) - aAdd( aRPs, { 0, sText } ) - aAdd( aResult[2], -1 ) - ENDIF - - aResult[1] := aRPs - aSize( aResult[3], Len( aMarkers ) ) - aFill( aResult[3], NIL ) - - ENDIF - - ENDIF - - ELSE - - /* Plain. */ - - sResult := sRule - - IF sResult == '' - aResult[1] := NIL - aResult[2] := NIL - aResult[3] := NIL - ELSE - aResult[1] := { { 0, sResult } } - aResult[2] := { -1 } - aResult[3] := NIL - ENDIF - - ENDIF - -//? "Defines: ", Len( aDefRules ) -//? "Results: ", Len( aDefResults ) -//WAIT - -RETURN Len( aDefRules ) - -//--------------------------------------------------------------// - -#ifndef USE_C_BOOST - -FUNCTION ExtractLeadingWS( sLine, sWS ) - - LOCAL Counter, cChar, nLen := Len( sLine ) - - //? "Removing Leading: '" + sLine + "'" - - sWS := '' - FOR Counter := 1 TO nLen - cChar := SubStr( sLine, Counter, 1 ) - IF cChar == ' ' //$ ( ' ' + Chr(9) ) // Tabs converted to spaces - sWS += cChar - ELSE - EXIT - ENDIF - NEXT - - IF Counter > 1 - sLine := SubStr( sLine, Counter ) - ENDIF - - //? "Removed: '" + sWs + "' sLine: " + sLine - -RETURN sWS - -#endif - -//--------------------------------------------------------------// - -#ifndef USE_C_BOOST - -FUNCTION DropTrailingWS( sLine, sWS ) - - LOCAL nLenSource, nLen := Len( sLine ), cChar - - nLenSource := nLen - - //? "Before Drop: '" + sLine + "'" - - /* Tabs are converted to spaces at PP_PreProFile() */ - - WHILE nLen > 0 .AND. ( cChar := SubStr( sLine, nLen, 1 ) ) == ' ' //$ ( ' ' + Chr(9) ) // Tabs converted to spaces - nLen-- - ENDDO - - sLine := Left( sLine, nLen ) - sWS := Space( nLenSource - nLen ) - - //? "After Drop: '" + sLine + "'" - -RETURN sLine - -#endif - -//--------------------------------------------------------------// - -#ifndef USE_C_BOOST - -FUNCTION DropExtraTrailingWS( sLine ) - - LOCAL nLen := Len( sLine ) - /* Tabs are converted to spaces at PP_PreProFile() */ - - //? "Before Extra: '" + sLine + "'" - - WHILE nLen > 2 .AND. ( SubStr( sLine, nLen, 1 ) == ' ' /* $ ( ' ' + Chr(9) ) */ ) .AND. ; - ( SubStr( sLine, nLen - 1, 1 ) == ' ' ) //$ ( ' ' + Chr(9) ) ) - nLen-- - ENDDO - - sLine := Left( sLine, nLen ) - -RETURN sLine - -#endif - -//--------------------------------------------------------------// - -STATIC FUNCTION SetIfDef( sDefine, bExist ) - - LOCAL nId - - nIfDef++ - aSize( abIfDef, nIfDef ) - - DropTrailingWS( @sDefine ) - - nId := aScan( aDefRules, {|aDefine| aDefine[1] == sDefine } ) - IF bExist - abIfDef[nIfDef] := ( nId > 0 ) - ELSE - abIfDef[nIfDef] := ( nId == 0 ) - ENDIF - - //? nIfDef, nId, sDefine, abIfDef[nIfDef] - -RETURN nIfDef - -//--------------------------------------------------------------// - -STATIC FUNCTION CompileToCCH( sSource ) - - LOCAL hCCH, Counter, aRules, nRules, nRule, aRule, nMatches, nMatch, aMatch, nWords, nWord, aWords - LOCAL aResults, nResults, nResult, aResult, nRPs, nRP, aRP, nIDs, nID, nModifier - LOCAL sRulesArray, sResultsArray, sExt - - sExt := SubStr( sSource, RAt( '.', sSource ) ) - IF ! ( sExt == '' ) - hCCH := FCreate( StrTran( sSource, sExt, ".cch" ) ) - ELSE - hCCH := FCreate( sSource + ".cch" ) - ENDIF - - FWrite( hCCH, "FUNCTION InitRules()" + CRLF ) - - FOR Counter := 1 TO 3 - IF Counter == 1 - aRules := aDefRules - sRulesArray := "aDefRules" - FWrite( hCCH, CRLF + "/* Defines */" + CRLF + "aDefRules := {}" + CRLF ) - ELSEIF Counter == 2 - aRules := aTransRules - sRulesArray := "aTransRules" - FWrite( hCCH, CRLF + "/* Translates */" + CRLF + "aTransRules := {}" + CRLF ) - ELSE - aRules := aCommRules - sRulesArray := "aCommRules" - FWrite( hCCH, CRLF + "/* Commands */" + CRLF + "aCommRules := {}" + CRLF ) - ENDIF - - nRules := Len( aRules ) - - FOR nRule := 1 TO nRules - aRule := aRules[nRule] - - FWrite( hCCH, "aAdd( " + sRulesArray + ", { '" + aRule[1] + "' " ) - - IF aRule[2] == NIL - nMatches := 0 - ELSE - nMatches := Len( aRule[2] ) - ENDIF - - IF nMatches == 0 - FWrite( hCCH, ", " ) - ELSE - FWrite( hCCH, ", { " ) - FOR nMatch := 1 TO nMatches - aMatch := aRule[2][nMatch] //{ nId, nOptional, sAnchor, cType, aWords } - FWrite( hCCH, "{ " + Str( aMatch[1], 4) + ", " + Str(aMatch[2],3) + ", " + IF( aMatch[3] == NIL, "NIL", "'" + aMatch[3] + "'" ) + ", " + IF( aMatch[4] == NIL, "NIL", "'" + aMatch[4] + "'" ) + ", " ) - IF aMatch[5] == NIL - FWrite( hCCH, "NIL" ) - ELSE - aWords := aMatch[5] - nWords := Len( aWords ) - FWrite( hCCH, "{ " ) - FOR nWord := 1 TO nWords - FWrite( hCCH, "'" + aWords[nWord] + "'" ) - IF nWord < nWords - FWrite( hCCH, ", " ) - ENDIF - NEXT - FWrite( hCCH, " }" ) - ENDIF - FWrite( hCCH, " }" ) - - IF nMatch < nMatches - FWrite( hCCH, ", " ) - ENDIF - NEXT - - FWrite( hCCH, " }" ) - ENDIF - - IF aRule[3] - FWrite( hCCH, " , .T." ) - ELSE - FWrite( hCCH, " , .F." ) - ENDIF - - FWrite( hCCH, " } )" + CRLF ) - NEXT - NEXT - - FWrite( hCCH, CRLF + "RETURN .T." + CRLF ) - - FWrite( hCCH, CRLF + "FUNCTION InitResults()" + CRLF ) - - FOR Counter := 1 TO 3 - - IF Counter == 1 - aResults := aDefResults - sResultsArray := "aDefResults" - FWrite( hCCH, CRLF + "/* Defines Results*/" + CRLF + "aDefResults := {}" + CRLF ) - ELSEIF Counter == 2 - aResults := aTransResults - sResultsArray := "aTransResults" - FWrite( hCCH, CRLF + "/* Translates Results*/" + CRLF + "aTransResults := {}" + CRLF ) - ELSE - aResults := aCommResults - sResultsArray := "aCommResults" - FWrite( hCCH, CRLF + "/* Commands Results*/" + CRLF + "aCommResults := {}" + CRLF ) - ENDIF - - nResults := Len( aResults ) - - FOR nResult := 1 TO nResults - aResult := aResults[nResult] - - FWrite( hCCH, "aAdd( " + sResultsArray + ", { " ) - - IF aResult[1] == NIL - nRPs := 0 - ELSE - nRPs := Len( aResult[1] ) - ENDIF - IF aResult[3] == NIL - nIDs := 0 - ELSE - nIDs := Len( aResult[3] ) - ENDIF - - IF nRPs == 0 - /*FWrite( hCCH, "NIL " )*/ - ELSE - FWrite( hCCH, "{ " ) - FOR nRP := 1 TO nRPs - aRP := aResult[1][nRP] //{ nLevel, xVal } - - FWrite( hCCH, "{ " + Str( aRP[1], 3) + ", " ) - IF ValType( aRP[2] ) == 'C' - FWrite( hCCH, "'" + aRP[2] + "' }" ) - ELSE - FWrite( hCCH, Str( aRP[2], 3 ) + " }" ) - ENDIF - - IF nRP < nRPs - FWrite( hCCH, ", " ) - ENDIF - NEXT - FWrite( hCCH, " }" ) - ENDIF - - IF nRPs == 0 - FWrite( hCCH, ", " ) - ELSE - FWrite( hCCH, ", { " ) - FOR nModifier := 1 TO nRPs - FWrite( hCCH, Str( aResult[2][nModifier], 2 ) ) - IF nModifier < nRPs - FWrite( hCCH, ", " ) - ENDIF - NEXT - FWrite( hCCH, "} " ) - ENDIF - - IF nIDs == 0 - FWrite( hCCH, ", " ) - ELSE - FWrite( hCCH, ", { " ) - FOR nID := 1 TO nIDs - FWrite( hCCH, "NIL" ) - IF nID < nIDs - FWrite( hCCH, ", " ) - ENDIF - NEXT - FWrite( hCCH, " } " ) - ENDIF - FWrite( hCCH, " } )" + CRLF ) - NEXT - - NEXT - - FWrite( hCCH, CRLF + "RETURN .T. " + CRLF ) - - FClose( hCCH ) - -RETURN .T. - -//--------------------------------------------------------------// - -STATIC FUNCTION InitRules() - - /* Defines */ - aDefRules := {} - aAdd( aDefRules, { '_SET_EXACT' , , .T. } ) - aAdd( aDefRules, { '_SET_FIXED' , , .T. } ) - aAdd( aDefRules, { '_SET_DECIMALS' , , .T. } ) - aAdd( aDefRules, { '_SET_DATEFORMAT' , , .T. } ) - aAdd( aDefRules, { '_SET_EPOCH' , , .T. } ) - aAdd( aDefRules, { '_SET_PATH' , , .T. } ) - aAdd( aDefRules, { '_SET_DEFAULT' , , .T. } ) - aAdd( aDefRules, { '_SET_EXCLUSIVE' , , .T. } ) - aAdd( aDefRules, { '_SET_SOFTSEEK' , , .T. } ) - aAdd( aDefRules, { '_SET_UNIQUE' , , .T. } ) - aAdd( aDefRules, { '_SET_DELETED' , , .T. } ) - aAdd( aDefRules, { '_SET_CANCEL' , , .T. } ) - aAdd( aDefRules, { '_SET_DEBUG' , , .T. } ) - aAdd( aDefRules, { '_SET_TYPEAHEAD' , , .T. } ) - aAdd( aDefRules, { '_SET_COLOR' , , .T. } ) - aAdd( aDefRules, { '_SET_CURSOR' , , .T. } ) - aAdd( aDefRules, { '_SET_CONSOLE' , , .T. } ) - aAdd( aDefRules, { '_SET_ALTERNATE' , , .T. } ) - aAdd( aDefRules, { '_SET_ALTFILE' , , .T. } ) - aAdd( aDefRules, { '_SET_DEVICE' , , .T. } ) - aAdd( aDefRules, { '_SET_EXTRA' , , .T. } ) - aAdd( aDefRules, { '_SET_EXTRAFILE' , , .T. } ) - aAdd( aDefRules, { '_SET_PRINTER' , , .T. } ) - aAdd( aDefRules, { '_SET_PRINTFILE' , , .T. } ) - aAdd( aDefRules, { '_SET_MARGIN' , , .T. } ) - aAdd( aDefRules, { '_SET_BELL' , , .T. } ) - aAdd( aDefRules, { '_SET_CONFIRM' , , .T. } ) - aAdd( aDefRules, { '_SET_ESCAPE' , , .T. } ) - aAdd( aDefRules, { '_SET_INSERT' , , .T. } ) - aAdd( aDefRules, { '_SET_EXIT' , , .T. } ) - aAdd( aDefRules, { '_SET_INTENSITY' , , .T. } ) - aAdd( aDefRules, { '_SET_SCOREBOARD' , , .T. } ) - aAdd( aDefRules, { '_SET_DELIMITERS' , , .T. } ) - aAdd( aDefRules, { '_SET_DELIMCHARS' , , .T. } ) - aAdd( aDefRules, { '_SET_WRAP' , , .T. } ) - aAdd( aDefRules, { '_SET_MESSAGE' , , .T. } ) - aAdd( aDefRules, { '_SET_MCENTER' , , .T. } ) - aAdd( aDefRules, { '_SET_SCROLLBREAK' , , .T. } ) - aAdd( aDefRules, { '_SET_COUNT' , , .T. } ) - aAdd( aDefRules, { '_SET_CH' , , .T. } ) - aAdd( aDefRules, { '_DFSET' , { { 1, 0, '(', '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - - /* Translates */ - aTransRules := {} - - /* Commands */ - aCommRules := {} - aAdd( aCommRules, { 'DO' , { { 1, 0, 'WHILE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 0, 0, 'SEQUENCE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'ENDSEQUENCE' , , .F. } ) - aAdd( aCommRules, { 'ENDDO' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'ENDIF' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'ENDCASE' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'ENDFOR' , { { 1, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'NEXT' , { { 1, 0, NIL, '<', NIL }, { 2, 1, 'TO', '<', NIL }, { 3, 1, 'STEP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '.', NIL, NIL }, { 0, 0, 'PRG', NIL, NIL }, { 1002, 1, 'WITH', 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'CALL' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL }, { 1002, 1, 'WITH', 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'STORE' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'TO', '<', NIL }, { 1003, 1, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'ECHO', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'HEADING', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'MENU', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'STATUS', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'STEP', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'SAFETY', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'TALK', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PROCEDURE', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PROCEDURE', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'EXACT', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'EXACT', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'FIXED', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FIXED', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DECIMALS', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DECIMALS', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PATH', NIL, NIL }, { 1, 0, 'TO', '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PATH', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DEFAULT', NIL, NIL }, { 1, 0, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DEFAULT', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'CENTURY', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'CENTURY', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'EPOCH', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 0, 'FORMAT', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'AMERICAN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'ANSI', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'BRITISH', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'FRENCH', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'GERMAN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'ITALIAN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'JAPANESE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DATE', NIL, NIL }, { 0, 1, 'TO', NIL, NIL }, { 0, 0, 'USA', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'ALTERNATE', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ALTERNATE', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ALTERNATE', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ALTERNATE', NIL, NIL }, { 1, 0, 'TO', '(', NIL }, { 2, 1, NIL, ':', { 'ADDITIVE' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'CONSOLE', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'CONSOLE', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MARGIN', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MARGIN', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'PRINTER', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PRINTER', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PRINTER', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'PRINTER', NIL, NIL }, { 1, 0, 'TO', '(', NIL }, { 2, 1, NIL, ':', { 'ADDITIVE' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DEVICE', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 0, 0, 'SCREEN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DEVICE', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 0, 0, 'PRINTER', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'COLOR', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 1, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'COLOR', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'COLOUR', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'CURSOR', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'CURSOR', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '?' , { { 1, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { '?' , { { 1, 1, '?', 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'EJECT' , , .F. } ) - aAdd( aCommRules, { 'TEXT' , , .F. } ) - aAdd( aCommRules, { 'TEXT' , { { 0, 0, 'TO', NIL, NIL }, { 1, 0, 'FILE', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'TEXT' , { { 0, 0, 'TO', NIL, NIL }, { 0, 0, 'PRINTER', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLS' , , .F. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'SCREEN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'CLEAR', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'CLEAR', NIL, NIL }, { 3, 0, 'TO', '<', NIL }, { 4, 0, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, ',', '<', NIL }, { 4, 0, ',', '<', NIL }, { 5, 0, 'BOX', '<', NIL }, { 1006, 1, 'COLOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TO', '<', NIL }, { 4, 0, ',', '<', NIL }, { 0, 1, 'DOUBLE', NIL, NIL }, { 1005, 1, 'COLOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TO', '<', NIL }, { 4, 0, ',', '<', NIL }, { 1005, 1, 'COLOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SAY', '<', NIL }, { 4, 1, 'PICTURE', '<', NIL }, { 1005, 1, 'COLOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SAY', '<', NIL }, { 1004, 1, 'COLOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'BELL', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'BELL', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'CONFIRM', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'CONFIRM', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'ESCAPE', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ESCAPE', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'INTENSITY', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'INTENSITY', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'SCOREBOARD', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'SCOREBOARD', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'DELIMITERS', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DELIMITERS', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DELIMITERS', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DELIMITERS', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 0, 0, 'DEFAULT', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DELIMITERS', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FORMAT', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FORMAT', NIL, NIL }, { 1, 0, 'TO', '<', NIL }, { 2, 0, '.', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FORMAT', NIL, NIL }, { 1, 0, 'TO', ':', { '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FORMAT', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GET', '<', NIL }, { 4, 1, 'PICTURE', '<', NIL }, { 5, 1, 'VALID', '<', NIL }, { 6, 1, 'WHEN', '<', NIL }, { 1007, 1, 'SEND', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SAY', '<', NIL }, { 1004, 1, NIL, 'A', { 'GET' } }, { 5, 0, 'GET', '<', NIL }, { 1006, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GET', '<', NIL }, { 1004, 1, NIL, 'A', { 'RANGE' } }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 1007, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GET', '<', NIL }, { 1004, 1, NIL, 'A', { 'COLOR' } }, { 5, 0, 'COLOR', '<', NIL }, { 1006, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'READ' , { { 0, 0, 'SAVE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'READ' , , .F. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'GETS', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1001, 1, NIL, 'A', { 'COLOUR' } }, { 0, 0, 'COLOUR', NIL, NIL }, { 1002, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'WRAP', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'WRAP', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MESSAGE', NIL, NIL }, { 1, 0, 'TO', '<', NIL }, { 2, 1, NIL, ':', { 'CENTER', 'CENTRE' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MESSAGE', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PROMPT', '<', NIL }, { 4, 1, 'MESSAGE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'MENU' , { { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 0, 0, 'SCREEN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'RESTORE' , { { 0, 0, 'SCREEN', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 0, 0, 'SCREEN', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RESTORE' , { { 0, 0, 'SCREEN', NIL, NIL }, { 1, 0, 'FROM', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'WAIT' , { { 1, 1, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'WAIT' , { { 1, 1, NIL, '<', { 'TO' } }, { 2, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ACCEPT' , { { 1, 1, NIL, '<', { 'TO' } }, { 2, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'INPUT' , { { 1, 1, NIL, '<', { 'TO' } }, { 2, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'KEYBOARD' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'TYPEAHEAD', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'TYPEAHEAD', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'KEY', '<', NIL }, { 2, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'KEY', '<', NIL }, { 2, 0, 'TO', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 3, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'KEY', '<', NIL }, { 2, 0, 'TO', ':', { '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'KEY', '<', NIL }, { 0, 1, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'FUNCTION', '<', NIL }, { 0, 1, 'TO', NIL, NIL }, { 2, 1, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'MEMORY', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 0, 0, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 0, 0, 'ALL', NIL, NIL }, { 1, 0, 'LIKE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 0, 0, 'ALL', NIL, NIL }, { 1, 0, 'EXCEPT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RESTORE' , { { 1, 1, 'FROM', '(', NIL }, { 2, 1, NIL, ':', { 'ADDITIVE' } } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 0, 0, 'ALL', NIL, NIL }, { 1, 0, 'LIKE', '<', NIL }, { 2, 0, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 1, 0, 'TO', '(', NIL }, { 0, 0, 'ALL', NIL, NIL }, { 2, 0, 'LIKE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 0, 0, 'ALL', NIL, NIL }, { 1, 0, 'EXCEPT', '<', NIL }, { 2, 0, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 1, 0, 'TO', '(', NIL }, { 0, 0, 'ALL', NIL, NIL }, { 2, 0, 'EXCEPT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SAVE' , { { 1, 1, 'TO', '(', NIL }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'ERASE' , { { 1, 0, NIL, '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , { { 1, 0, 'FILE', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'RENAME' , { { 1, 0, NIL, '(', NIL }, { 2, 0, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 1, 0, 'FILE', '(', NIL }, { 2, 0, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'DIR' , { { 1, 1, NIL, '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'TYPE' , { { 1, 1, NIL, '(', { 'TO PRINTER', 'TO' } }, { 2, 1, NIL, ':', { 'TO PRINTER' } }, { 1000, 1, 'TO', NIL, NIL }, { 1003, -1, 'FILE', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'TYPE' , { { 1, 0, NIL, '(', NIL }, { 2, 1, NIL, ':', { 'TO PRINTER' } } } , .F. } ) - aAdd( aCommRules, { 'REQUEST' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'CANCEL' , , .F. } ) - aAdd( aCommRules, { 'QUIT' , , .F. } ) - aAdd( aCommRules, { 'RUN' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'RUN' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { '!' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'RUN' , { { 1, 0, '=', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RUN' , { { 1, 0, ':=', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'EXCLUSIVE', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'EXCLUSIVE', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'SOFTSEEK', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'SOFTSEEK', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'UNIQUE', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'UNIQUE', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'DELETED', ':', { 'ON', 'OFF', '&' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'DELETED', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SELECT' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SELECT' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 2, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'USE' , , .F. } ) - aAdd( aCommRules, { 'USE' , { { 1, 0, NIL, '(', NIL }, { 2, 1, 'VIA', '<', NIL }, { 3, 1, 'ALIAS', '<', NIL }, { 4, 1, NIL, ':', { 'NEW' } }, { 5, 1, NIL, ':', { 'EXCLUSIVE' } }, { 6, 1, NIL, ':', { 'SHARED' } }, { 7, 1, NIL, ':', { 'READONLY' } }, { 1008, 1, 'INDEX', '(', NIL }, { 1009, 2, ',', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'APPEND' , { { 0, 0, 'BLANK', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'PACK' , , .F. } ) - aAdd( aCommRules, { 'ZAP' , , .F. } ) - aAdd( aCommRules, { 'UNLOCK' , , .F. } ) - aAdd( aCommRules, { 'UNLOCK' , { { 0, 0, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'COMMIT' , , .F. } ) - aAdd( aCommRules, { 'GOTO' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'GO' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'GOTO' , { { 0, 0, 'TOP', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'GO' , { { 0, 0, 'TOP', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'GOTO' , { { 0, 0, 'BOTTOM', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'GO' , { { 0, 0, 'BOTTOM', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SKIP' , , .F. } ) - aAdd( aCommRules, { 'SKIP' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SKIP' , { { 1, 0, 'ALIAS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SKIP' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'ALIAS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SEEK' , { { 1, 0, NIL, '<', NIL }, { 2, 1, NIL, ':', { 'SOFTSEEK' } } } , .F. } ) - aAdd( aCommRules, { 'FIND' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'FIND' , { { 1, 0, ':=', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'FIND' , { { 1, 0, '=', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'CONTINUE' , , .F. } ) - aAdd( aCommRules, { 'LOCATE' , { { 1, 1, 'FOR', '<', NIL }, { 2, 1, 'WHILE', '<', NIL }, { 3, 1, 'NEXT', '<', NIL }, { 4, 1, 'RECORD', '<', NIL }, { 5, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'RELATION', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'RELATION', NIL, NIL }, { 1, 1, NIL, ':', { 'ADDITIVE' } }, { 2, 1, 'TO', '<', NIL }, { 3, -1, 'INTO', '(', NIL }, { 0, 2, ',', NIL, NIL }, { 1000, 3, 'TO', NIL, NIL }, { 1004, -2, NIL, '<', NIL }, { 1005, -2, 'INTO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FILTER', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FILTER', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FILTER', NIL, NIL }, { 1, 0, 'TO', ':', { '&' } } } , .F. } ) - aAdd( aCommRules, { 'REPLACE' , { { 1, 1, NIL, '<', { 'FOR', 'WHILE', 'NEXT', 'RECORD', 'REST', 'ALL' } }, { 2, -1, 'WITH', '<', NIL }, { 1003, 2, ',', '<', NIL }, { 1004, -2, 'WITH', '<', NIL }, { 5, 1, 'FOR', '<', NIL }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 9, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'REPLACE' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'WITH', '<', NIL }, { 1003, 1, ',', '<', NIL }, { 1004, -1, 'WITH', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , { { 1, 1, 'FOR', '<', NIL }, { 2, 1, 'WHILE', '<', NIL }, { 3, 1, 'NEXT', '<', NIL }, { 4, 1, 'RECORD', '<', NIL }, { 5, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'RECALL' , { { 1, 1, 'FOR', '<', NIL }, { 2, 1, 'WHILE', '<', NIL }, { 3, 1, 'NEXT', '<', NIL }, { 4, 1, 'RECORD', '<', NIL }, { 5, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , , .F. } ) - aAdd( aCommRules, { 'RECALL' , , .F. } ) - aAdd( aCommRules, { 'CREATE' , { { 1, 0, NIL, '(', NIL }, { 2, 1, 'FROM', '(', NIL }, { 3, 1, 'VIA', '<', NIL }, { 4, 1, 'ALIAS', '<', NIL }, { 5, 1, NIL, ':', { 'NEW' } } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 0, 1, 'STRUCTURE', NIL, NIL }, { 0, 1, 'EXTENDED', NIL, NIL }, { 1, 1, 'TO', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 0, 1, 'STRUCTURE', NIL, NIL }, { 1, 1, 'TO', '(', NIL }, { 2, 1, 'FIELDS', 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 1, 1, 'TO', '(', NIL }, { 0, 1, 'DELIMITED', NIL, NIL }, { 2, 2, 'WITH', '*', NIL }, { 3, 1, 'FIELDS', 'A', NIL }, { 4, 1, 'FOR', '<', NIL }, { 5, 1, 'WHILE', '<', NIL }, { 6, 1, 'NEXT', '<', NIL }, { 7, 1, 'RECORD', '<', NIL }, { 8, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 1, 1, 'TO', '(', NIL }, { 0, 1, 'SDF', NIL, NIL }, { 2, 1, 'FIELDS', 'A', NIL }, { 3, 1, 'FOR', '<', NIL }, { 4, 1, 'WHILE', '<', NIL }, { 5, 1, 'NEXT', '<', NIL }, { 6, 1, 'RECORD', '<', NIL }, { 7, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'COPY' , { { 1, 1, 'TO', '(', NIL }, { 2, 1, 'FIELDS', 'A', NIL }, { 3, 1, 'FOR', '<', NIL }, { 4, 1, 'WHILE', '<', NIL }, { 5, 1, 'NEXT', '<', NIL }, { 6, 1, 'RECORD', '<', NIL }, { 7, 1, NIL, ':', { 'REST' } }, { 8, 1, 'VIA', '<', NIL }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'APPEND' , { { 1, 1, 'FROM', '(', NIL }, { 0, 1, 'DELIMITED', NIL, NIL }, { 2, 2, 'WITH', '*', NIL }, { 3, 1, 'FIELDS', 'A', NIL }, { 4, 1, 'FOR', '<', NIL }, { 5, 1, 'WHILE', '<', NIL }, { 6, 1, 'NEXT', '<', NIL }, { 7, 1, 'RECORD', '<', NIL }, { 8, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'APPEND' , { { 1, 1, 'FROM', '(', NIL }, { 0, 1, 'SDF', NIL, NIL }, { 2, 1, 'FIELDS', 'A', NIL }, { 3, 1, 'FOR', '<', NIL }, { 4, 1, 'WHILE', '<', NIL }, { 5, 1, 'NEXT', '<', NIL }, { 6, 1, 'RECORD', '<', NIL }, { 7, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'APPEND' , { { 1, 1, 'FROM', '(', NIL }, { 2, 1, 'FIELDS', 'A', NIL }, { 3, 1, 'FOR', '<', NIL }, { 4, 1, 'WHILE', '<', NIL }, { 5, 1, 'NEXT', '<', NIL }, { 6, 1, 'RECORD', '<', NIL }, { 7, 1, NIL, ':', { 'REST' } }, { 8, 1, 'VIA', '<', NIL }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SORT' , { { 1, 1, 'TO', '(', NIL }, { 2, 1, 'ON', 'A', NIL }, { 3, 1, 'FOR', '<', NIL }, { 4, 1, 'WHILE', '<', NIL }, { 5, 1, 'NEXT', '<', NIL }, { 6, 1, 'RECORD', '<', NIL }, { 7, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'TOTAL' , { { 1, 1, 'TO', '(', NIL }, { 2, 1, 'ON', '<', NIL }, { 3, 1, 'FIELDS', 'A', NIL }, { 4, 1, 'FOR', '<', NIL }, { 5, 1, 'WHILE', '<', NIL }, { 6, 1, 'NEXT', '<', NIL }, { 7, 1, 'RECORD', '<', NIL }, { 8, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'UPDATE' , { { 1, 1, 'FROM', '(', NIL }, { 2, 1, 'ON', '<', NIL }, { 3, 1, 'REPLACE', '<', NIL }, { 4, -1, 'WITH', '<', NIL }, { 1005, 2, ',', '<', NIL }, { 1006, -2, 'WITH', '<', NIL }, { 7, 1, NIL, ':', { 'RANDOM' } } } , .F. } ) - aAdd( aCommRules, { 'JOIN' , { { 1, 1, 'WITH', '(', NIL }, { 2, 1, 'TO', '<', NIL }, { 3, 1, 'FIELDS', 'A', NIL }, { 4, 1, 'FOR', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'COUNT' , { { 1, 1, 'TO', '<', NIL }, { 2, 1, 'FOR', '<', NIL }, { 3, 1, 'WHILE', '<', NIL }, { 4, 1, 'NEXT', '<', NIL }, { 5, 1, 'RECORD', '<', NIL }, { 6, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'SUM' , { { 1, 1, NIL, '<', { 'FOR', 'WHILE', 'NEXT', 'RECORD', 'REST', 'ALL' } }, { 1002, 2, ',', '<', NIL }, { 3, -1, 'TO', '<', NIL }, { 1004, 2, ',', '<', NIL }, { 5, 1, 'FOR', '<', NIL }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 9, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'AVERAGE' , { { 1, 1, NIL, '<', { 'FOR', 'WHILE', 'NEXT', 'RECORD', 'REST', 'ALL' } }, { 1002, 2, ',', '<', NIL }, { 3, -1, 'TO', '<', NIL }, { 1004, 2, ',', '<', NIL }, { 5, 1, 'FOR', '<', NIL }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 9, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'LIST' , { { 1, 1, NIL, 'A', { 'OFF', 'TO PRINTER', 'TO', 'FOR', 'WHILE', 'NEXT', 'RECORD', 'REST', 'ALL' } }, { 2, 1, NIL, ':', { 'OFF' } }, { 3, 1, NIL, ':', { 'TO PRINTER' } }, { 0, 1, 'TO', NIL, NIL }, { 4, -1, 'FILE', '(', NIL }, { 5, 1, 'FOR', '<', NIL }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 9, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'DISPLAY' , { { 1, 1, NIL, 'A', { 'OFF', 'TO PRINTER', 'TO', 'FOR', 'WHILE', 'NEXT', 'RECORD', 'REST', 'ALL' } }, { 2, 1, NIL, ':', { 'OFF' } }, { 3, 1, NIL, ':', { 'TO PRINTER' } }, { 0, 1, 'TO', NIL, NIL }, { 4, -1, 'FILE', '(', NIL }, { 5, 1, 'FOR', '<', NIL }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 9, 1, NIL, ':', { 'REST' } }, { 10, 1, NIL, ':', { 'ALL' } } } , .F. } ) - aAdd( aCommRules, { 'REPORT' , { { 1, 0, 'FORM', '<', NIL }, { 2, 1, 'HEADING', '<', NIL }, { 3, 1, NIL, ':', { 'PLAIN' } }, { 4, 1, NIL, ':', { 'NOEJECT' } }, { 5, 1, NIL, ':', { 'SUMMARY' } }, { 6, 1, NIL, ':', { 'NOCONSOLE' } }, { 7, 1, NIL, ':', { 'TO PRINTER' } }, { 0, 1, 'TO', NIL, NIL }, { 8, -1, 'FILE', '(', NIL }, { 9, 1, 'FOR', '<', NIL }, { 10, 1, 'WHILE', '<', NIL }, { 11, 1, 'NEXT', '<', NIL }, { 12, 1, 'RECORD', '<', NIL }, { 13, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'LABEL' , { { 1, 0, 'FORM', '<', NIL }, { 2, 1, NIL, ':', { 'SAMPLE' } }, { 3, 1, NIL, ':', { 'NOCONSOLE' } }, { 4, 1, NIL, ':', { 'TO PRINTER' } }, { 0, 1, 'TO', NIL, NIL }, { 5, -1, 'FILE', '(', NIL }, { 6, 1, 'FOR', '<', NIL }, { 7, 1, 'WHILE', '<', NIL }, { 8, 1, 'NEXT', '<', NIL }, { 9, 1, 'RECORD', '<', NIL }, { 10, 1, NIL, ':', { 'REST' } }, { 0, 1, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'DATABASES', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'ALTERNATE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'FORMAT', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'INDEXES', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'PROCEDURE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLOSE' , { { 0, 0, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CLEAR' , , .F. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'INDEX' , { { 1, 0, 'ON', '<', NIL }, { 2, 1, 'TAG', '(', NIL }, { 3, 0, 'TO', '(', NIL }, { 4, 1, 'FOR', '<', NIL }, { 1005, 1, NIL, ':', { 'ALL' } }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 1009, 1, NIL, ':', { 'REST' } }, { 10, 1, 'EVAL', '<', NIL }, { 11, 1, 'EVERY', '<', NIL }, { 1012, 1, NIL, ':', { 'UNIQUE' } }, { 13, 1, NIL, ':', { 'ASCENDING' } }, { 1014, 1, NIL, ':', { 'DESCENDING' } } } , .F. } ) - aAdd( aCommRules, { 'INDEX' , { { 1, 0, 'ON', '<', NIL }, { 2, 0, 'TAG', '(', NIL }, { 3, 1, 'TO', '(', NIL }, { 4, 1, 'FOR', '<', NIL }, { 1005, 1, NIL, ':', { 'ALL' } }, { 6, 1, 'WHILE', '<', NIL }, { 7, 1, 'NEXT', '<', NIL }, { 8, 1, 'RECORD', '<', NIL }, { 1009, 1, NIL, ':', { 'REST' } }, { 10, 1, 'EVAL', '<', NIL }, { 11, 1, 'EVERY', '<', NIL }, { 1012, 1, NIL, ':', { 'UNIQUE' } }, { 13, 1, NIL, ':', { 'ASCENDING' } }, { 1014, 1, NIL, ':', { 'DESCENDING' } } } , .F. } ) - aAdd( aCommRules, { 'INDEX' , { { 1, 0, 'ON', '<', NIL }, { 2, 0, 'TO', '(', NIL }, { 3, 1, NIL, ':', { 'UNIQUE' } } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , { { 1, 0, 'TAG', '(', NIL }, { 2, 1, 'IN', '(', NIL }, { 1003, 1, ',', '(', NIL }, { 1004, 2, 'IN', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'REINDEX' , { { 1, 1, 'EVAL', '<', NIL }, { 2, 1, 'EVERY', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'REINDEX' , , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'INDEX', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 1001, 1, NIL, '(', { 'ADDITIVE' } }, { 1002, 2, ',', '(', NIL }, { 3, 1, NIL, ':', { 'ADDITIVE' } } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ORDER', NIL, NIL }, { 1, 0, 'TO', '<', NIL }, { 1002, 1, 'IN', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ORDER', NIL, NIL }, { 0, 0, 'TO', NIL, NIL }, { 1, 0, 'TAG', '(', NIL }, { 1002, 1, 'IN', '(', NIL } } , .F. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'ORDER', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .F. } ) - -RETURN .T. - -//--------------------------------------------------------------// - -STATIC FUNCTION InitResults() - - /* Defines Results*/ - aDefResults := {} - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '10' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '11' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '13' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '14' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '15' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '17' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '18' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '19' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '20' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '21' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '22' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '23' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '24' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '25' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '26' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '27' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '28' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '29' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '30' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '31' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '33' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '34' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '35' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '36' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '37' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '38' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '38' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, 'Set' }, { 0, '(' }, { 0, '_SET_DATEFORMAT' }, { 0, ',' }, { 0, 'if' }, { 0, '(' }, { 0, '__SetCentury' }, { 0, '(' }, { 0, ')' }, { 0, ',' }, { 0, 1 }, { 0, ',' }, { 0, 2 }, { 0, ')' }, { 0, ')' } }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1} , { NIL, NIL } } ) - - /* Translates Results*/ - aTransResults := {} - - /* Commands Results*/ - aCommResults := {} - aAdd( aCommResults, { { { 0, 'while ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'end' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'end' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'end' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'enddo' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'endif' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'endcase' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'next' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'next' } }, { -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'do ' }, { 0, 1 }, { 0, '' }, { 2, ' WITH ' }, { 2, 2 } }, { -1, 1, -1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'call ' }, { 0, 1 }, { 0, '' }, { 2, ' WITH ' }, { 2, 2 } }, { -1, 1, -1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 2 }, { 0, ' := ' }, { 3, ' ' }, { 3, 3 }, { 3, ' := ' }, { 0, ' ' }, { 0, 1 } }, { -1, 1, -1, -1, 1, -1, -1, 1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , } ) - aAdd( aCommResults, { { { 0, '_ProcReq_( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_EXACT, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_EXACT, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_FIXED, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_FIXED, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DECIMALS, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DECIMALS, 0 )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PATH, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PATH, "" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DEFAULT, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DEFAULT, "" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetCentury( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetCentury( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_EPOCH, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DATEFORMAT, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '_DFSET( "mm/dd/yyyy", "mm/dd/yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "yyyy.mm.dd", "yy.mm.dd" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "dd/mm/yyyy", "dd/mm/yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "dd/mm/yyyy", "dd/mm/yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "dd.mm.yyyy", "dd.mm.yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "dd-mm-yyyy", "dd-mm-yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "yyyy/mm/dd", "yy/mm/dd" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_DFSET( "mm-dd-yyyy", "mm-dd-yy" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ALTERNATE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ALTERNATE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ALTFILE, "" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ALTFILE, ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_CONSOLE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_CONSOLE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_MARGIN, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_MARGIN, 0 )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PRINTER, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PRINTER, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PRINTFILE, "" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_PRINTFILE, ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DEVICE, "SCREEN" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DEVICE, "PRINTER" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'SetColor( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SetColor( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SET COLOR TO ' }, { 1, ' ' }, { 1, 1 } }, { -1, -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SetCursor( if(Upper(' }, { 0, 1 }, { 0, ') == "ON", 1, 0) )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SetCursor( if(' }, { 0, 1 }, { 0, ', 1, 0) )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'QOut( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'QQOut( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__Eject()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'text QOut, QQOut' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__TextSave( ' }, { 0, 1 }, { 0, ' ) ; text QOut, __TextRestore' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__TextSave("PRINTER") ; text QOut, __TextRestore' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Scroll() ; SetPos(0,0)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'CLS' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Scroll( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ' ) ; SetPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Scroll( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ; SetPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Scroll( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' ) ; SetPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DispBox( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, '' }, { 6, ', ' }, { 6, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DispBox( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', 2 ' }, { 5, ', ' }, { 5, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DispBox( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', 1 ' }, { 5, ', ' }, { 5, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DevPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ; DevOutPict( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, '' }, { 5, ', ' }, { 5, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DevPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ; DevOut( ' }, { 0, 3 }, { 0, '' }, { 4, ', ' }, { 4, 4 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_BELL, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_BELL, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_CONFIRM, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_CONFIRM, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ESCAPE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_ESCAPE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_INTENSITY, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_INTENSITY, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_SCOREBOARD, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_SCOREBOARD, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELIMITERS, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELIMITERS, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELIMCHARS, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELIMCHARS, "::" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELIMCHARS, "::" )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '_ProcReq_( ' }, { 0, 1 }, { 0, ' + ".FMT" ) ; __SetFormat( {|| ' }, { 0, 1 }, { 0, '()} )' } }, { -1, 4, -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '_ProcReq_( ' }, { 0, 1 }, { 0, ' + "." + ' }, { 0, 2 }, { 0, ' ) ; __SetFormat( {|| ' }, { 0, 1 }, { 0, '()} )' } }, { -1, 4, -1, 4, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'if ( Empty(' }, { 0, 1 }, { 0, ') ) ; SET FORMAT TO ; else ; __SetFormat( &("{||" + ' }, { 0, 1 }, { 0, ' + "()}") ) ; end' } }, { -1, 4, -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetFormat()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'SetPos( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ; AAdd( GetList, _GET_( ' }, { 0, 3 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ):display() ) ' }, { 7, '; ATail(GetList):' }, { 7, 7 } }, { -1, 1, -1, 1, -1, 1, -1, 3, -1, 1, -1, 5, -1, 5, -1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '@ ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' SAY ' }, { 0, 3 }, { 0, '' }, { 4, ' ' }, { 4, 4 }, { 0, ' ; @ Row(), Col()+1 GET ' }, { 0, 5 }, { 0, '' }, { 6, ' ' }, { 6, 6 } }, { -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '@ ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' GET ' }, { 0, 3 }, { 0, '' }, { 4, ' ' }, { 4, 4 }, { 0, ' VALID {|_1| RangeCheck(_1,, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ')} ' }, { 7, ' ' }, { 7, 7 } }, { -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '@ ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' GET ' }, { 0, 3 }, { 0, '' }, { 4, ' ' }, { 4, 4 }, { 0, ' SEND colorDisp(' }, { 0, 5 }, { 0, ') ' }, { 6, ' ' }, { 6, 6 } }, { -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ReadModal(GetList)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'ReadModal(GetList) ; GetList := {}' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'ReadKill(.T.) ; GetList := {}' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '@ ' }, { 1, ' ' }, { 1, 1 }, { 0, ' COLOR ' }, { 2, ' ' }, { 2, 2 } }, { -1, -1, 1, -1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_WRAP, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_WRAP, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_MESSAGE, ' }, { 0, 1 }, { 0, ' ) ; Set( _SET_MCENTER, ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_MESSAGE, 0 ) ; Set( _SET_MCENTER, .f. )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__AtPrompt( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ' , ' }, { 0, 4 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, ' := __MenuTo( {|_1| if(PCount() == 0, ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ' := _1)}, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__XSaveScreen()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__XRestScreen()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, ' := SaveScreen( 0, 0, Maxrow(), Maxcol() )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'RestScreen( 0, 0, Maxrow(), Maxcol(), ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__Wait( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 2 }, { 0, ' := __Wait( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 2 }, { 0, ' := __Accept( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'if ( !Empty(__Accept(' }, { 0, 1 }, { 0, ')) ) ; ' }, { 0, 2 }, { 0, ' := &( __AcceptStr() ) ; end' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__Keyboard( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__Keyboard()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_TYPEAHEAD, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SetKey( ' }, { 0, 1 }, { 0, ', {|p, l, v| ' }, { 0, 2 }, { 0, '(p, l, v)} )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'SET KEY ' }, { 0, 1 }, { 0, ' TO ' }, { 0, 2 } }, { -1, 1, -1, 1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'if ( Empty(' }, { 0, 2 }, { 0, ') ) ; SetKey( ' }, { 0, 1 }, { 0, ', NIL ) ; else ; SetKey( ' }, { 0, 1 }, { 0, ', {|p, l, v| ' }, { 0, 2 }, { 0, '(p, l, v)} ) ; end' } }, { -1, 4, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'SetKey( ' }, { 0, 1 }, { 0, ', NIL )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetFunction( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MClear()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__MXRelease( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__MRelease("*", .t.)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__MRelease( ' }, { 0, 1 }, { 0, ', .t. )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__MRelease( ' }, { 0, 1 }, { 0, ', .f. )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__MRestore( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MSave( ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', .t. )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MSave( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', .t. )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MSave( ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', .f. )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MSave( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', .f. )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__MSave( ' }, { 0, 1 }, { 0, ', "*", .t. )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'FErase( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'FErase( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'FRename( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__CopyFile( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__Dir( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__TypeFile( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ' }, { 1, '; COPY FILE ' }, { 1, 1 }, { 1, ' TO ' }, { 1, 3 } }, { -1, 4, -1, 6, -1, -1, 4, -1, 4} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__TypeFile( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'EXTERNAL ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__Quit()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__Quit()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__Run( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__Run( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'RUN ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '( run := ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '( run := ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_EXCLUSIVE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_EXCLUSIVE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_SOFTSEEK, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_SOFTSEEK, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_UNIQUE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_UNIQUE, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELETED, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'Set( _SET_DELETED, ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'dbSelectArea( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'dbSelectArea( ' }, { 0, 1 }, { 0, '(' }, { 0, 2 }, { 0, ') )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbCloseArea()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbUseArea( ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 3 }, { 0, ', if(' }, { 0, 6 }, { 0, ' .or. ' }, { 0, 5 }, { 0, ', !' }, { 0, 5 }, { 0, ', NIL), ' }, { 0, 7 }, { 0, ' ) ' }, { 8, '; dbSetIndex( ' }, { 8, 8 }, { 8, ' )' }, { 0, '' }, { 9, '; dbSetIndex( ' }, { 9, 9 }, { 9, ' )' } }, { -1, 6, -1, 1, -1, 4, -1, 4, -1, 6, -1, 6, -1, 6, -1, 6, -1, -1, 4, -1, -1, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbAppend()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__dbPack()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__dbZap()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbUnlock()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbUnlockAll()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbCommitAll()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbGoto(' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'dbGoto(' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'dbGoTop()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbGoTop()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbGoBottom()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbGoBottom()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbSkip(1)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbSkip( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, ' -> ( dbSkip(1) )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 2 }, { 0, ' -> ( dbSkip(' }, { 0, 1 }, { 0, ') )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbSeek( ' }, { 0, 1 }, { 0, ', if( ' }, { 0, 2 }, { 0, ', .T., NIL ) )' } }, { -1, 1, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbSeek( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '( find := ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '( find := ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__dbContinue()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__dbLocate( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbClearRel()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'if ( !' }, { 0, 1 }, { 0, ' ) ; dbClearRel() ; end ; dbSetRelation( ' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ' }, { 5, '; dbSetRelation( ' }, { 5, 5 }, { 5, ', ' }, { 5, 4 }, { 5, ', ' }, { 5, 4 }, { 5, ' )' } }, { -1, 6, -1, 4, -1, 5, -1, 3, -1, -1, 4, -1, 5, -1, 3, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbClearFilter(NIL)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbSetFilter( ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ' )' } }, { -1, 5, -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'if ( Empty(' }, { 0, 1 }, { 0, ') ) ; dbClearFilter() ; else ; dbSetFilter( ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ' ) ; end' } }, { -1, 4, -1, 5, -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DBEval( {|| _FIELD->' }, { 0, 1 }, { 0, ' := ' }, { 0, 2 }, { 0, '' }, { 3, ', _FIELD->' }, { 3, 3 }, { 3, ' := ' }, { 3, 4 }, { 0, '}, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_FIELD->' }, { 0, 1 }, { 0, ' := ' }, { 0, 2 }, { 0, '' }, { 3, '; _FIELD->' }, { 3, 3 }, { 3, ' := ' }, { 3, 4 } }, { -1, 1, -1, 1, -1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DBEval( {|| dbDelete()}, ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DBEval( {|| dbRecall()}, ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbDelete()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbRecall()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__dbCreate( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 1, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbCopyXStruct( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__dbCopyStruct( ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' } )' } }, { -1, 4, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbDelim( .T., ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', { ' }, { 0, 3 }, { 0, ' }, ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbSDF( .T., ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbCopy( ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbDelim( .F., ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', { ' }, { 0, 3 }, { 0, ' }, ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbSDF( .F., ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbApp( ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbSort( ' }, { 0, 1 }, { 0, ', { ' }, { 0, 2 }, { 0, ' }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbTotal( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', { ' }, { 0, 3 }, { 0, ' }, ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 4, -1, 5, -1, 4, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbUpdate( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 7 }, { 0, ', {|| _FIELD->' }, { 0, 3 }, { 0, ' := ' }, { 0, 4 }, { 0, '' }, { 5, ', _FIELD->' }, { 5, 5 }, { 5, ' := ' }, { 5, 6 }, { 0, '} )' } }, { -1, 4, -1, 5, -1, 6, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbJoin( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', { ' }, { 0, 3 }, { 0, ' }, ' }, { 0, 4 }, { 0, ' )' } }, { -1, 4, -1, 4, -1, 4, -1, 5, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, ' := 0 ; DBEval( {|| ' }, { 0, 1 }, { 0, ' := ' }, { 0, 1 }, { 0, ' + 1}, ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 3 }, { 0, ' := ' }, { 4, ' ' }, { 4, 4 }, { 4, ' := ' }, { 0, ' 0 ; DBEval( {|| ' }, { 0, 3 }, { 0, ' := ' }, { 0, 3 }, { 0, ' + ' }, { 0, 1 }, { 0, '' }, { 4, ', ' }, { 4, 4 }, { 4, ' := ' }, { 4, 4 }, { 4, ' + ' }, { 4, 2 }, { 0, '}, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'M->__Avg := ' }, { 0, 3 }, { 0, ' := ' }, { 4, ' ' }, { 4, 4 }, { 4, ' := ' }, { 0, ' 0 ; DBEval( {|| M->__Avg := M->__Avg + 1, ' }, { 0, 3 }, { 0, ' := ' }, { 0, 3 }, { 0, ' + ' }, { 0, 1 }, { 0, '' }, { 4, ', ' }, { 4, 4 }, { 4, ' := ' }, { 4, 4 }, { 4, ' + ' }, { 4, 2 }, { 0, ' }, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' ) ; ' }, { 0, 3 }, { 0, ' := ' }, { 0, 3 }, { 0, ' / M->__Avg ' }, { 4, '; ' }, { 4, 4 }, { 4, ' := ' }, { 4, 4 }, { 4, ' / M->__Avg ' } }, { -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__dbList( ' }, { 0, 2 }, { 0, ', { ' }, { 0, 1 }, { 0, ' }, .t., ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { -1, 6, -1, 5, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__DBList( ' }, { 0, 2 }, { 0, ', { ' }, { 0, 1 }, { 0, ' }, ' }, { 0, 10 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { -1, 6, -1, 5, -1, 6, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__ReportForm( ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 4, -1, 6, -1, 4, -1, 6, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '__LabelForm( ' }, { 0, 1 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 2 }, { 0, ' )' } }, { -1, 4, -1, 6, -1, 4, -1, 6, -1, 5, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, '->( dbCloseArea() )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'dbCloseArea()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbCloseAll()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Set(_SET_ALTFILE, "")' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetFormat(NIL)' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'dbClearIndex()' } }, { -1} , } ) - aAdd( aCommResults, { , , } ) - aAdd( aCommResults, { { { 0, 'CLOSE DATABASES ; SELECT 1 ; CLOSE FORMAT' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'CLEAR SCREEN ; CLEAR GETS' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'CLOSE DATABASES ; CLOSE FORMAT ; CLEAR MEMORY ; CLEAR GETS ; SET ALTERNATE OFF ; SET ALTERNATE TO' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'ordCondSet( ' }, { 0, 4 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 5, ' ' }, { 5, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', RECNO(), ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 9, ' ' }, { 9, 9 }, { 0, ', ' }, { 14, ' ' }, { 14, 14 }, { 0, ' ) ; ordCreate(' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 12, ' ' }, { 12, 12 }, { 0, ' )' } }, { -1, 3, -1, 5, -1, -1, 6, -1, 5, -1, 5, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1, -1, 6, -1, 4, -1, 4, -1, 3, -1, 5, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordCondSet( ' }, { 0, 4 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 5, ' ' }, { 5, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', RECNO(), ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 9, ' ' }, { 9, 9 }, { 0, ', ' }, { 14, ' ' }, { 14, 14 }, { 0, ' ) ; ordCreate(' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 12, ' ' }, { 12, 12 }, { 0, ' )' } }, { -1, 3, -1, 5, -1, -1, 6, -1, 5, -1, 5, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1, -1, 6, -1, 4, -1, 4, -1, 3, -1, 5, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'dbCreateIndex( ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 1 }, { 0, ', if( ' }, { 0, 3 }, { 0, ', .t., NIL ) )' } }, { -1, 4, -1, 3, -1, 5, -1, 6, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordDestroy( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ' ) ' }, { 3, '; ordDestroy( ' }, { 3, 3 }, { 3, ', ' }, { 3, 4 }, { 3, ' ) ' } }, { -1, 4, -1, 4, -1, -1, 4, -1, 4, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordCondSet(,,,, ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ',,,,,,,) ; ordListRebuild()' } }, { -1, 5, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordListRebuild()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'if !' }, { 0, 3 }, { 0, ' ; ordListClear() ; end ' }, { 1, '; ordListAdd( ' }, { 1, 1 }, { 1, ' )' }, { 0, '' }, { 2, '; ordListAdd( ' }, { 2, 2 }, { 2, ' )' } }, { -1, 6, -1, -1, 4, -1, -1, -1, 4, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordSetFocus( ' }, { 0, 1 }, { 0, '' }, { 2, ', ' }, { 2, 2 }, { 0, ' )' } }, { -1, 1, -1, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordSetFocus( ' }, { 0, 1 }, { 0, '' }, { 2, ', ' }, { 2, 2 }, { 0, ' )' } }, { -1, 4, -1, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ordSetFocus(0)' } }, { -1} , } ) - -RETURN .T. - -//--------------------------------------------------------------// - -STATIC FUNCTION InitClsRules() - - #ifdef __HARBOUR__ - - /* Defines */ - aAdd( aDefRules, { 'HB_CLASS_CH_' , , .T. } ) - aAdd( aDefRules, { 'HB_SETUP_CH_' , , .T. } ) - aAdd( aDefRules, { 'HB_EXTENSION' , , .T. } ) - aAdd( aDefRules, { 'HB_C52_UNDOC' , , .T. } ) - aAdd( aDefRules, { 'HB_COMPAT_C53' , , .T. } ) - aAdd( aDefRules, { 'HB_COMPAT_XPP' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CH_' , , .T. } ) - aAdd( aDefRules, { 'HB_MSGLISTALL' , , .T. } ) - aAdd( aDefRules, { 'HB_MSGLISTCLASS' , , .T. } ) - aAdd( aDefRules, { 'HB_MSGLISTPURE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_EXPORTED' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_PROTECTED' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_HIDDEN' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_CTOR' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_READONLY' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_SHARED' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_CLASS' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSTP_SUPER' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_METHOD' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_DATA' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_CLASSDATA' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_INLINE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_VIRTUAL' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_SUPER' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_ONERROR' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MSG_CLSMTHD' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_DATA_SYMBOL' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_DATA_VALUE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_DATA_TYPE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_DATA_SCOPE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_DATA_PERSISTENT' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSD_SYMBOL' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSD_VALUE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSD_TYPE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSD_SCOPE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MTHD_SYMBOL' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MTHD_PFUNCTION' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MTHD_SCOPE' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_MTHD_PERSISTENT' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSM_SYMBOL' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSM_PFUNCTION' , , .T. } ) - aAdd( aDefRules, { 'HB_OO_CLSM_SCOPE' , , .T. } ) - aAdd( aDefRules, { '__HB_CLS_PAR' , , .T. } ) - aAdd( aDefRules, { '__HB_CLS_NOINI' , , .T. } ) - aAdd( aDefRules, { 'HB_CLS_FWO' , , .T. } ) - aAdd( aDefRules, { 'HB_CLS_CSY' , , .T. } ) - aAdd( aDefRules, { 'HB_CLS_VO' , , .T. } ) - aAdd( aDefRules, { 'HB_CLS_TOP' , , .T. } ) - aAdd( aDefRules, { 'HB_CLS_NO_OO_ERR' , , .T. } ) - - /* Translates */ - aAdd( aTransRules, { '__ERR' , { { 0, 0, '(', NIL, NIL }, { 1001, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ')' , { { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'HBCLSCHOICE' , { { 1, 0, '(', '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, ',', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'CREATE' , { { 0, 0, 'CLASS', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'DECLMETH' , { { 1, 0, NIL, '<', NIL }, { 2, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, 'CLASS', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, 'CLASS', NIL, NIL }, { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'EXPORTED' , { { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'EXPORT' , { { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'VISIBLE' , { { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'HIDDEN' , { { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'PROTECTED' , { { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'CLASS' , { { 0, 0, 'VAR', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'CLASS' , { { 0, 0, 'METHOD', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { '(' , { { 1, 0, NIL, '!', NIL }, { 0, 0, '{', NIL, NIL }, { 2, 1, NIL, 'A', { '}' } }, { 0, 0, '}', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { '=' , { { 1, 0, NIL, '!', NIL }, { 0, 0, '{', NIL, NIL }, { 2, 1, NIL, 'A', { '}' } }, { 0, 0, '}', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ',' , { { 1, 0, NIL, '!', NIL }, { 0, 0, '{', NIL, NIL }, { 2, 1, NIL, 'A', { '}' } }, { 0, 0, '}', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'END' , { { 0, 0, 'CLASS', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, 'SUPER', NIL, NIL }, { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL }, { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, 'SUPER', NIL, NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL }, { 0, 0, ':', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, 'SUPER', NIL, NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - - /* Commands */ - aAdd( aCommRules, { 'CLASS' , { { 1, 0, NIL, '<', NIL }, { 2, 1, 'METACLASS', '<', NIL }, { 1003, 1, NIL, ':', { 'FROM', 'INHERIT' } }, { 1004, -1, NIL, '<', NIL }, { 1005, 2, ',', '<', NIL }, { 6, 1, NIL, ':', { 'STATIC' } } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'TYPE', '<', NIL }, { 3, 1, 'ASSIGN', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IS', '<', NIL }, { 4, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'VAR' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'IS', '<', NIL }, { 3, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 0, 0, 'DEFERRED', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'EXPORT' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'EXPORT' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'TYPE', '<', NIL }, { 3, 1, 'ASSIGN', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'PROTECT' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'PROTECT' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'TYPE', '<', NIL }, { 3, 1, 'ASSIGN', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'HIDDE' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'HIDDE' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'TYPE', '<', NIL }, { 3, 1, 'ASSIGN', '<', NIL }, { 4, 1, NIL, ':', { 'READONLY', 'RO' } }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'CLASSVAR' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'TYPE', '<', NIL }, { 3, 1, 'ASSIGN', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'SHARED' } } } , .T. } ) - aAdd( aCommRules, { 'CLASSVAR' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'SHARED' } } } , .T. } ) - aAdd( aCommRules, { 'DATA' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'CLASSDATA' , { { 1, 0, NIL, 'A', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, 'INIT', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 7, 1, NIL, ':', { 'READONLY', 'RO' } }, { 8, 1, NIL, ':', { 'SHARED' } } } , .T. } ) - aAdd( aCommRules, { 'CLASSMETHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 4, 1, NIL, ':', { 'PROTECTED' } }, { 5, 1, NIL, ':', { 'HIDDEN' } }, { 6, 1, NIL, ':', { 'SHARED' } } } , .T. } ) - aAdd( aCommRules, { 'CONSTRUCTOR' , { { 1, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 1003, 1, 'AS', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } }, { 0, 1, '_CLASS_DECLARATION_', NIL, NIL }, { 7, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 1004, 1, 'AS', '<', NIL }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } }, { 0, 1, '_CLASS_DECLARATION_', NIL, NIL }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'BLOCK', '<', NIL }, { 1004, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'EXTERN', '<', NIL }, { 1004, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'INLINE', 'A', NIL }, { 1004, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } }, { 8, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'INLINE', 'A', NIL }, { 1005, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 6, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 7, 1, NIL, ':', { 'PROTECTED' } }, { 8, 1, NIL, ':', { 'HIDDEN' } }, { 9, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 0, 0, 'INLINE', NIL, NIL }, { 1003, 1, 'LOCAL', '<', NIL }, { 0, -1, ',', NIL, NIL }, { 4, 0, NIL, 'A', NIL }, { 1005, 1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 0, 0, 'INLINE', NIL, NIL }, { 1004, 1, 'LOCAL', '<', NIL }, { 0, -1, ',', NIL, NIL }, { 5, 0, NIL, 'A', NIL }, { 1006, 1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 0, 0, 'VIRTUAL', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'OPERATOR', '<', NIL }, { 4, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 5, 1, NIL, ':', { 'PROTECTED' } }, { 6, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'OPERATOR', '<', NIL }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'METHOD', '<', NIL }, { 1004, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 5, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 6, 1, NIL, ':', { 'PROTECTED' } }, { 7, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'METHOD', '<', NIL }, { 1005, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 6, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 7, 1, NIL, ':', { 'PROTECTED' } }, { 8, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'METHOD', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1004, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1005, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 6, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 7, 1, NIL, ':', { 'PROTECTED' } }, { 8, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'METHOD', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1005, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1006, 1, NIL, ':', { 'CONSTRUCTOR' } }, { 7, 1, NIL, ':', { 'EXPORTED', 'VISIBLE' } }, { 8, 1, NIL, ':', { 'PROTECTED' } }, { 9, 1, NIL, ':', { 'HIDDEN' } } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IS', '<', NIL }, { 4, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IS', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1004, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 5, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'IS', '<', NIL }, { 5, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'IS', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 5, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 6, 0, 'IN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'IS', '<', NIL }, { 1004, 1, NIL, 'A', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'MESSAGE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DELEGATE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DELEGATE' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } }, { 0, 0, 'SETGET', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } }, { 0, 0, 'SETGET', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'ACCESS' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 3, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'ACCESS' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 4, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'ACCESS' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 0, 0, 'INLINE', NIL, NIL }, { 1003, 1, 'LOCAL', '<', NIL }, { 0, -1, ',', NIL, NIL }, { 4, 0, NIL, 'A', NIL }, { 5, 1, NIL, ':', { 'PERSISTENT', 'PROPERTY' } } } , .T. } ) - aAdd( aCommRules, { 'ACCESS' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL }, { 0, 0, 'DEFERRED', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'ASSIGN' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ASSIGN' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ASSIGN' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL }, { 1003, 1, 'AS', '<', NIL }, { 0, 0, 'INLINE', NIL, NIL }, { 1004, 1, 'LOCAL', '<', NIL }, { 0, -1, ',', NIL, NIL }, { 5, 0, NIL, 'A', NIL } } , .T. } ) - aAdd( aCommRules, { 'ON' , { { 1, 0, 'ERROR', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ERROR' , { { 1, 0, 'HANDLER', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ERROR' , { { 1, 0, 'HANDLER', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1002, 1, NIL, 'A', { ')' } }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'ENDCLASS' , , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'CLASS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'CLASS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '_CLASS_IMPLEMENTATION_', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'CLASS', '<', NIL }, { 0, 0, '_CLASS_IMPLEMENTATION_', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'METHOD' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'DECLCLASS', '<', NIL }, { 0, 0, '_CLASS_IMPLEMENTATION_', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'DECLARED' , { { 1, 0, 'METHOD', '<', NIL }, { 2, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACCESS' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'CLASS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ASSIGN' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'CLASS', '<', NIL } } , .T. } ) - - #endif - -RETURN .T. - -//--------------------------------------------------------------// - -STATIC FUNCTION InitClsResults() - - #ifdef __HARBOUR__ - - /* Defines Results*/ - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '64' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '__CLS_PARAM' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '.F.' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - - /* Translates Results*/ - aAdd( aTransResults, { { { 0, '#error ' }, { 1, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aTransResults, { { { 0, ')' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'iif( ' }, { 0, 1 }, { 0, ', HB_OO_CLSTP_EXPORTED , iif( ' }, { 0, 2 }, { 0, ', HB_OO_CLSTP_PROTECTED, iif( ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_HIDDEN, nScope) ) )' } }, { -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aTransResults, { { { 0, 'CLASS' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 1 }, { 0, '_' }, { 0, 2 } }, { 1, -1, 1} , { NIL, NIL } } ) - aAdd( aTransResults, { , , } ) - aAdd( aTransResults, { { { 0, ':' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'nScope := HB_OO_CLSTP_EXPORTED' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'nScope := HB_OO_CLSTP_EXPORTED' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'nScope := HB_OO_CLSTP_EXPORTED' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'nScope := HB_OO_CLSTP_HIDDEN' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'nScope := HB_OO_CLSTP_PROTECTED' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'CLASSVAR' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'CLASSMETHOD' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, '( ' }, { 0, 1 }, { 0, '():New( ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aTransResults, { { { 0, '= ' }, { 0, 1 }, { 0, '():New( ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aTransResults, { { { 0, ', ' }, { 0, 1 }, { 0, '():New( ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aTransResults, { { { 0, 'ENDCLASS' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, ':' }, { 0, 1 }, { 0, ':' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aTransResults, { { { 0, ':Super:' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, ':Super' } }, { -1} , } ) - - /* Commands Results*/ - aAdd( aCommResults, { { { 0, '_HB_CLASS ' }, { 0, 1 }, { 0, ' ; ' }, { 0, 6 }, { 0, ' function ' }, { 0, 1 }, { 0, '() ; static s_oClass ; local MetaClass,nScope := HB_OO_CLSTP_EXPORTED ; if s_oClass == NIL ; s_oClass := IIF(' }, { 0, 2 }, { 0, ', ' }, { 0, 2 }, { 0, ' ,HBClass():new( ' }, { 0, 1 }, { 0, ' , __HB_CLS_PAR ( ' }, { 4, 4 }, { 0, '' }, { 5, ' ,' }, { 5, 5 }, { 0, ' ) ) ) ; #undef _CLASS_NAME_ ; #define _CLASS_NAME_ ' }, { 0, 1 }, { 0, ' ; #undef _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_DECLARATION_ ; #xtranslate CLSMETH ' }, ; - { 0, 1 }, { 0, ' => @' }, { 0, 1 }, { 0, '_ ; #xtranslate DECLCLASS ' }, { 0, 1 }, { 0, ' => ; ' }, { 5, ' ; #translate Super( ' }, { 5, 5 }, { 5, ' ) : => ::' }, { 5, 5 }, { 5, ': ' }, { 0, '' }, { 4, ' ; #translate Super( ' }, { 4, 4 }, { 4, ' ) : => ::' }, { 4, 4 }, { 4, ': ' }, { 0, '' }, { 4, ' ; #translate Super() : => ::' }, { 4, 4 }, { 4, ': ' }, { 0, '' }, { 4, ' ; #translate Super : => ::' }, { 4, 4 }, { 4, ': ' }, { 0, '' }, { 4, ' ; #translate ::Super : => ::' }, { 4, 4 }, { 4, ': ' }, ; - { 0, '' }, { 4, ' ; REQUEST ' }, { 4, 4 }, { 0, '' }, { 5, ' ,' }, { 5, 5 } }, { -1, 1, -1, 1, -1, 1, -1, 6, -1, 4, -1, 4, -1, 4, -1, -1, 4, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 8 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 8 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 1 }, { 0, ' }, HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY ) ; s_oClass:AddInline( "_" + ' }, { 0, 1 }, { 0, ', {|Self, param| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 1 }, { 0, ' := param }, HB_OO_CLSTP_EXPORTED )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 3 }, { 0, ' }, HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY ) ; s_oClass:AddInline( "_" + ' }, { 0, 1 }, { 0, ', {|Self, param| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 3 }, { 0, ' := param }, HB_OO_CLSTP_EXPORTED )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ' }, HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY ) ; s_oClass:AddInline( "_" + ' }, { 0, 1 }, { 0, ', {|Self, param| Self:' }, { 0, 3 }, { 0, ' := param }, HB_OO_CLSTP_EXPORTED )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 4, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 's_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 2 }, { 0, ' }, HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY ) ; s_oClass:AddInline( "_" + ' }, { 0, 1 }, { 0, ', {|Self, param| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 2 }, { 0, ' := param }, HB_OO_CLSTP_EXPORTED )' } }, { -1, 4, -1, 1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddVirtual( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_EXPORTED + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_EXPORTED + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_PROTECTED + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_PROTECTED + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_HIDDEN + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_HIDDEN + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 5 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiClsData(' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ) + iif( ' }, { 0, 8 }, { 0, ', HB_OO_CLSTP_SHARED, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiClsData(' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ) + iif( ' }, { 0, 8 }, { 0, ', HB_OO_CLSTP_SHARED, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiData( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ), {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI, ' }, { 0, 8 }, { 0, ' )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER {' }, { 2, 'AS ' }, { 2, 2 }, { 0, ' ' }, { 0, 1 }, { 0, '} ; s_oClass:AddMultiClsData(' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 7 }, { 0, ', HB_OO_CLSTP_READONLY, 0 ) + HB_OO_CLSTP_SHARED, {' }, { 0, 1 }, { 0, '}, __HB_CLS_NOINI )' } }, { -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 4, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddClsMthds( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' ) + iif( ' }, { 0, 6 }, { 0, ', HB_OO_CLSTP_SHARED, 0 ) )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, ' CONSTRUCTOR' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 2 }, { 2, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 3, ' AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) + iif( ' }, { 0, 2 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 3 }, { 3, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 4, ' AS ' }, { 4, 4 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) + iif( ' }, { 0, 3 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 4, 4 }, { 4, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', ' }, { 0, 3 }, { 0, ', HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 0, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 4, 4 }, { 4, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, '; s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', @' }, { 0, 3 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 0, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 4, 4 }, { 4, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self | ' }, { 0, 3 }, { 0, ' }, HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 0, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 5, 5 }, { 5, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 3, ' AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, ' | ' }, { 0, 4 }, { 0, ' }, HBCLSCHOICE( ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' ) + iif( ' }, { 0, 5 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ), ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 0, -1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, ' BLOCK {|Self ' }, { 3, ' ,' }, { 3, 3 }, { 0, ' | ' }, { 0, 4 }, { 0, ' } ' }, { 5, 5 } }, { -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, '' }, { 3, ' AS ' }, { 3, 3 }, { 0, ' BLOCK {|Self ' }, { 2, ' ,' }, { 2, 2 }, { 0, '' }, { 4, ' ,' }, { 4, 4 }, { 0, ' | ' }, { 0, 5 }, { 0, ' } ' }, { 6, 6 } }, { -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddVirtual( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) ) ; s_oClass:AddInline( ' }, { 0, 3 }, { 0, ', {|Self [,] | Self:' }, { 0, 1 }, { 0, '( [] ) }, HBCLSCHOICE( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ) )' } }, { -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 2, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) ) ; s_oClass:AddInline( ' }, { 0, 4 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, ' | Self:' }, { 0, 1 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) }, HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) )' } }, ; - { -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 4, 4 }, { 4, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 3 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 3 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 3 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ) + iif( ' }, { 0, 4 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ) )' } }, { -1, 1, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 5, 5 }, { 5, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 3, ' AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 4 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 4 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 4 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' ) + iif( ' }, { 0, 5 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ) )' } }, { -1, 1, -1, 1, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 4, 4 }, { 0, ') ' }, { 5, 5 }, { 5, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 3 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 3 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 3 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' ) + iif( ' }, { 0, 5 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ) )' } }, { -1, 1, -1, 1, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 5, 5 }, { 0, ') ' }, { 2, 2 }, { 0, '' }, { 6, 6 }, { 6, ' AS CLASS _CLASS_NAME_' }, { 0, '' }, { 3, ' AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 4 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 4 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 4 }, { 0, '(), HBCLSCHOICE( ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' ) + iif( ' }, { 0, 6 }, { 0, ', HB_OO_CLSTP_CTOR, 0 ) )' } }, { -1, 1, -1, 1, -1, 0, -1, 0, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 1 }, { 0, '() } )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 1 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) } )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 3 }, { 0, '() } )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 4, ',' }, { 4, 4 }, { 0, '| Self:' }, { 0, 5 }, { 0, ':' }, { 0, 3 }, { 0, '( ' }, { 4, 4 }, { 0, ' ) } )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '| Self:' }, { 0, 5 }, { 0, ':' }, { 0, 4 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) } )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '| Self:' }, { 0, 6 }, { 0, ':' }, { 0, 4 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) } )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'MESSAGE ' }, { 0, 1 }, { 0, '' }, { 2, ' AS ' }, { 2, 2 }, { 0, ' METHOD ' }, { 0, 3 }, { 0, '' }, { 4, 4 } }, { -1, 1, -1, -1, 1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 1 }, { 0, ' } )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 1 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) } )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self| Self:' }, { 0, 3 }, { 0, ':' }, { 0, 1 }, { 0, ' } )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '| Self:' }, { 0, 4 }, { 0, ':' }, { 0, 1 }, { 0, '( ' }, { 2, 2 }, { 0, ' ) } )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; _HB_MEMBER _' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY , ' }, { 0, 3 }, { 0, ' ) ; s_oClass:AddMethod( "_" + ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '() )' } }, { -1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; _HB_MEMBER _' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY, ' }, { 0, 4 }, { 0, ' ) ; s_oClass:AddMethod( "_" + ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '() )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1, 4, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY , ' }, { 0, 3 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY , ' }, { 0, 4 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddInline( ' }, { 0, 1 }, { 0, ', {|Self ' }, { 3, ',' }, { 3, 3 }, { 0, ' | ' }, { 0, 4 }, { 0, ' }, HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_READONLY , ' }, { 0, 5 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; s_oClass:AddVirtual( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1, 4, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER _' }, { 0, 1 }, { 0, '() ' }, { 2, 'AS ' }, { 2, 2 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( "_" + ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ _' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED )' } }, { -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER _' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:AddMethod( "_" + ' }, { 0, 1 }, { 0, ', CLSMETH _CLASS_NAME_ _' }, { 0, 1 }, { 0, '(), HB_OO_CLSTP_EXPORTED )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 4, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER _' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, ') ' }, { 3, 'AS ' }, { 3, 3 }, { 0, '; s_oClass:AddInline( "_" + ' }, { 0, 1 }, { 0, ', {|Self ' }, { 2, ',' }, { 2, 2 }, { 0, '' }, { 4, ' ,' }, { 4, 4 }, { 0, ' | ' }, { 0, 5 }, { 0, ' }, HB_OO_CLSTP_EXPORTED )' } }, { -1, 1, -1, 1, -1, -1, 1, -1, 4, -1, -1, 1, -1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ERROR HANDLER ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(); #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:SetOnError( CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '() )' } }, { -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '_HB_MEMBER ' }, { 0, 1 }, { 0, '(' }, { 2, 2 }, { 0, '); #xcommand METHOD ' }, { 0, 1 }, { 0, ' [([])] ' }, { 0, ' DECLCLASS _CLASS_NAME_' }, { 0, ' _CLASS_IMPLEMENTATION_ => DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 }, { 0, '([]); s_oClass:SetOnError( CLSMETH _CLASS_NAME_ ' }, { 0, 1 }, { 0, '() )' } }, { -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '; s_oClass:Create() ; endif ; return s_oClass:Instance() AS CLASS _CLASS_NAME_ ; #undef _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_IMPLEMENTATION_' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, ' _CLASS_MODE_' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, ' CLASS ' }, { 0, 2 }, { 0, ' _CLASS_MODE_' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'METHOD ' }, { 0, 1 }, { 0, ' CLASS ' }, { 0, 2 }, { 0, ' _CLASS_IMPLEMENTATION_' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DECLARED METHOD _CLASS_NAME_ ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DECLARED METHOD ' }, { 0, 2 }, { 0, ' ' }, { 0, 1 } }, { -1, 1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, '#error Class ' }, { 0, 2 }, { 0, ' not declared for method: ' }, { 0, 1 }, { 0, ' ; function ' }, { 0, 1 }, { 0, ' ; local self := QSelf()' } }, { -1, 3, -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'static function DECLMETH ' }, { 0, 1 }, { 0, ' ' }, { 0, 2 }, { 0, ' ; local Self AS CLASS ' }, { 0, 1 }, { 0, ' := QSelf() AS CLASS ' }, { 0, 1 } }, { -1, 1, -1, 1, -1, 1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'static function ' }, { 0, 2 }, { 0, '_' }, { 0, 1 }, { 0, ' ; local Self AS CLASS ' }, { 0, 2 }, { 0, ' := QSelf() AS CLASS ' }, { 0, 2 } }, { -1, 1, -1, 1, -1, 1, -1, 1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'static function ' }, { 0, 2 }, { 0, '__' }, { 0, 1 }, { 0, ' ; local Self AS CLASS ' }, { 0, 2 }, { 0, ' := QSelf() AS CLASS ' }, { 0, 2 } }, { -1, 1, -1, 1, -1, 1, -1, 1} , { NIL, NIL } } ) - - #endif - -RETURN .T. - -#ifndef __XHARBOUR__ -//--------------------------------------------------------------// -INIT PROCEDURE PPInit - - local FileHandle - - FileHandle := FCreate('Trace.Log') - FClose(FileHandle) - -RETURN - -//--------------------------------------------------------------// -FUNCTION TraceLog(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) - - LOCAL FileHandle, ProcName, Counter := 1, aEntries - - aEntries := {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} - - FileHandle := FOpen( 'Trace.Log', 1 ) - - FSeek(FileHandle, 0, 2) - - FWrite( FileHandle, '[' + ProcName(1) + '] (' + Str( Procline(1), 5 ) + ') Called from: ' + CRLF ) - - DO WHILE ! ( ( ProcName := ProcName( ++Counter ) ) == '' ) - FWrite( FileHandle, space(30) + ProcName + '(' + Str( Procline( Counter), 5 ) + ')' + CRLF ) - ENDDO - - IF ! ( PP_ProcName(0) == "" ) - FWrite( FileHandle, "Interpreter:" + CRLF ) - Counter := -1 - DO WHILE ! ( ( ProcName := PP_ProcName( ++Counter ) ) == "" ) - FWrite( FileHandle, space(30) + ProcName + '(' + Str( PP_Procline( Counter), 5 ) + ')' + CRLF ) - ENDDO - ENDIF - - FOR Counter := 1 to PCount() - FWrite( FileHandle, '>>>' + CStr( aEntries[Counter] ) + '<<<' + CRLF ) - NEXT - - FWrite( FileHandle, CRLF ) - - FClose(FileHandle) - -RETURN .T. - -//--------------------------------------------------------------// -FUNCTION CStr( xExp ) - - LOCAL cType - - IF xExp == NIL - RETURN 'NIL' - ENDIF - - cType := ValType( xExp ) - - DO CASE - CASE cType = 'C' - RETURN xExp - - CASE cType = 'D' - RETURN dToc( xExp ) - - CASE cType = 'L' - RETURN IIF( xExp, '.T.', '.F.' ) - - CASE cType = 'N' - RETURN Str( xExp ) - - CASE cType = 'M' - RETURN xExp - - CASE cType = 'A' - RETURN "{ Array of " + LTrim( Str( Len( xExp ) ) ) + " Items }" - - CASE cType = 'B' - RETURN '{|| Block }' - - CASE cType = 'O' - RETURN "{ " + xExp:ClassName() + " Object }" - - OTHERWISE - RETURN "Type: " + cType - ENDCASE - -RETURN "" - -#endif - -//--------------------------------------------------------------// -FUNCTION PP_QSelf( o ) - - STATIC s_oSelf - LOCAL oPreset := s_oSelf - - IF ValType( o ) == 'O' - s_oSelf := o - RETURN oPreset - ENDIF - -RETURN s_oSelf - -//--------------------------------------------------------------// - -#ifndef USE_C_BOOST - -STATIC FUNCTION _pp_NextIdentifier( sLine, sSkipped ) - - LOCAL nAt, nLen := Len( sLine ), cChar, cLastChar := '0', nStart, sIdentifier, sTmp - - FOR nAt := 1 TO nLen - cChar := SubStr( sLine, nAt, 1 ) - - IF cChar $ ' ,([{|^*/+-=!#<>:&$' - IF nStart != NIL - EXIT - ENDIF - LOOP // No need to record cLastChar - ELSEIF cChar $ ')]}' - IF nStart != NIL - EXIT - ENDIF - ELSEIF cChar $ '"'+"'" - DO WHILE ( nAt < nLen ) .AND. SubStr( sLine, ++nAt, 1 ) != cChar - ENDDO - LOOP // No need to record cLastChar - ELSEIF cChar == '[' - IF ! ( IsAlpha( cLastChar ) .OR. IsDigit( cLastChar ) .OR. cLastChar $ "])}_." ) - DO WHILE ( nAt < nLen ) .AND. SubStr( sLine, ++nAt, 1 ) != ']' - ENDDO - ENDIF - cLastChar := ']' - LOOP // Recorded cLastChar - ELSEIF cChar == '.' - IF cLastChar == '_' .OR. IsAlpha( cLastChar ) - EXIT - ENDIF - - sTmp := Upper( SubStr( sLine, nAt + 1, 4 ) ) - IF sTmp = "T." - nAt += 2 - LOOP - ELSEIF sTmp = "F." - nAt += 2 - LOOP - ELSEIF sTmp = "OR." - nAt += 3 - LOOP - ELSEIF sTmp = "AND." - nAt += 4 - LOOP - ELSEIF sTmp = "NOT." - nAt += 4 - LOOP - ENDIF - ELSEIF nStart == NIL .AND. ( IsAlpha( cChar ) .OR. cChar == '_' ) - nStart := nAt - ENDIF - - cLastChar := cChar - NEXT - - IF nStart != NIL - sIdentifier := SubStr( sLine, nStart, nAt - nStart ) - sSkipped := Left( sLine, nStart - 1 ) - sLine := SubStr( sLine, nAt ) - ENDIF - - //TraceLog( sIdentifier, sLine, sSkipped, cChar, cLastChar, nStart, nAt, nLen ) - -RETURN sIdentifier - -#endif - -//--------------------------------------------------------------// - -FUNCTION nAtSkipStr( sFind, sLine, nStart ) - - LOCAL nAt, nLen := Len( sLine ), cChar, cLastChar := ' ', sTmp, nLenFind := Len( sFind ) - - IF nStart == NIL - nStart := 1 - ENDIF - - FOR nAt := nStart TO nLen - IF SubStr( sLine, nAt, nLenFind ) == sFind - RETURN nAt - ENDIF - - cChar := SubStr( sLine, nAt, 1 ) - - IF cChar $ '"'+"'" - DO WHILE ( nAt < nLen ) .AND. SubStr( sLine, ++nAt, 1 ) != cChar - ENDDO - LOOP // No need to record cLastChar - ELSEIF cChar == '[' - IF ! ( IsAlpha( cLastChar ) .OR. IsDigit( cLastChar ) .OR. cLastChar $ "])}_." ) - DO WHILE ( nAt < nLen ) .AND. SubStr( sLine, ++nAt, 1 ) != ']' - ENDDO - ENDIF - cLastChar := ']' - LOOP // Recorded cLastChar - ENDIF - - cLastChar := cChar - NEXT - -RETURN 0 - -//--------------------------------------------------------------// - -FUNCTION PP_ModuleName( sNewModule ) - - LOCAL sModule := s_sModule - - IF PCount() > 0 - s_sModule := sNewModule - ENDIF - -RETURN sModule - -//--------------------------------------------------------------// - -STATIC FUNCTION InitRunRules() - - /* Defines */ - aAdd( aDefRules, { 'HB_CLS_NO_OO_ERR' , , .T. } ) - - /* Translates */ - aAdd( aTransRules, { 'AS' , { { 1, 0, NIL, ':', { 'ANYTYPE', 'ARRAY', 'CHARACTER', 'CODEBLOCK', 'DATE', 'LOGICAL', 'NUMERIC', 'OBJECT', 'STRING', 'USUAL' } } } , .F. } ) - aAdd( aTransRules, { 'AS' , { { 0, 0, 'ARRAY', NIL, NIL }, { 1, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aTransRules, { 'AS' , { { 1, 0, 'CLASS', '!', NIL } } , .F. } ) - aAdd( aTransRules, { 'AS' , { { 1, 0, 'CLASS', '!', NIL }, { 0, 0, ':=', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'QSELF' , { { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { 'ADDMETHOD' , { { 1, 0, '(', '<', NIL }, { 0, 0, ',', NIL, NIL }, { 2, 0, '@', '!', NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL }, { 3, 0, ',', '<', NIL }, { 4, 0, ',', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aTransRules, { ':' , { { 0, 0, ':', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { '_GET_' , { { 1, 0, '(', '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, ',', NIL, NIL }, { 3, 1, NIL, '<', { ',' } }, { 0, 0, ',', NIL, NIL }, { 4, 1, NIL, '<', { ',' } }, { 0, 0, ',', NIL, NIL }, { 5, 1, NIL, '<', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { '__GET' , { { 1, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL }, { 0, 0, ':', NIL, NIL }, { 0, 0, 'DISPLAY', NIL, NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'PROCNAME' , { { 0, 0, '(', NIL, NIL }, { 1, 1, NIL, '<', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'PROCLINE' , { { 0, 0, '(', NIL, NIL }, { 1, 1, NIL, '<', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - - /* Commands */ - #ifdef WIN - aAdd( aCommRules, { 'ALERT' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - #endif - - aAdd( aCommRules, { '_HB_CLASS' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { '_HB_MEMBER' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'MEMVAR' , { { 1, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'EXTERNAL' , { { 1, 0, NIL, '!', NIL }, { 1002, 1, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DECLARE' , { { 1, 0, NIL, '!', NIL }, { 2, 0, NIL, '<', NIL }, { 3, 0, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, NIL, '!', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, NIL, '!', NIL }, { 2, 0, 'WITH', '<', NIL }, { 1003, 1, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'IF' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ELSEIF' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ELSE' , , .F. } ) - aAdd( aCommRules, { 'ENDIF' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 0, 0, 'CASE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CASE' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'OTHERWISE' , , .F. } ) - aAdd( aCommRules, { 'ENDCASE' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'FOR' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ':=', '<', NIL }, { 3, 0, 'TO', '<', NIL }, { 4, 1, 'STEP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'FOR' , { { 1, 0, NIL, '<', NIL }, { 2, 0, '=', '<', NIL }, { 3, 0, 'TO', '<', NIL }, { 4, 1, 'STEP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'LOOP' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'EXIT' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'NEXT' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, 'WHILE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'WHILE' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ENDDO' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, NIL, '(', NIL }, { 0, 0, '.', NIL, NIL }, { 0, 0, 'PRG', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'INIT' , { { 1, 0, 'PROCEDURE', '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'EXIT' , { { 1, 0, 'PROCEDURE', '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'STATIC' , { { 1, 0, 'PROCEDURE', '!', NIL }, { 2, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'STATIC' , { { 1, 0, 'PROCEDURE', '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'STATIC' , { { 1, 0, 'FUNCTION', '!', NIL }, { 2, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'STATIC' , { { 1, 0, 'FUNCTION', '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'PROCEDURE' , { { 1, 0, NIL, '!', NIL }, { 2, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'PROCEDURE' , { { 1, 0, NIL, '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'FUNCTION' , { { 1, 0, NIL, '!', NIL }, { 2, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'FUNCTION' , { { 1, 0, NIL, '!', NIL }, { 0, 1, '(', NIL, NIL }, { 0, -1, ')', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'RETURN' , { { 1, 1, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'PARAMETERS' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'PRIVATE' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'DECLARE' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'PUBLIC' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'LOCAL' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'STATIC' , { { 1, 0, NIL, 'A', NIL } } , .F. } ) - -RETURN .T. - -//--------------------------------------------------------------// - -STATIC FUNCTION InitRunResults() - - /* Defines Results*/ - aAdd( aDefResults, { { { 0, '1' } }, { -1} , { } } ) - - /* Translates Results*/ - aAdd( aTransResults, { , , { NIL } } ) - aAdd( aTransResults, { , , { NIL } } ) - aAdd( aTransResults, { , , { NIL } } ) - aAdd( aTransResults, { { { 0, ':=' } }, { -1} , { NIL } } ) - aAdd( aTransResults, { { { 0, 'PP_Qself()' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, 'AddInLine( ' }, { 0, 1 }, { 0, ', {|Self,p1,p2,p3,p4,p5,p6,p7,p8,p9| PP_QSelf(Self), PP_ExecMethod( ' }, { 0, 2 }, { 0, ', p1,p2,p3,p4,p5,p6,p7,p8,p9 ) }, ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { -1, 1, -1, 3, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aTransResults, { { { 0, 'Self:' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, '__GET( MEMVARBLOCK(' }, { 0, 2 }, { 0, '), ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aTransResults, { { { 0, '__GET(' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aTransResults, { { { 0, 'PP_ProcName( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aTransResults, { { { 0, 'PP_ProcLine( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - - /* Commands Results*/ - #ifdef WIN - aAdd( aCommResults, { { { 0, 'MessageBox( 0, CStr( ' }, { 0, 1 }, { 0, ' ), "xBaseScript for Windows", 0 )' } }, { -1, 1, -1} , { NIL } } ) - #endif - - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL, NIL } } ) - aAdd( aCommResults, { , , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, '()' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, ' ' }, { 0, 1 }, { 0, '( ' }, { 0, 2 }, { 0, '' }, { 3, ', ' }, { 3, 3 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__IF ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__ELSEIF ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__ELSE' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PP__ENDIF' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__END' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__DOCASE' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PP__CASE ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__OTHERWISE' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PP__ENDCASE' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__FOR ' }, { 0, 1 }, { 0, ':=' }, { 0, 2 }, { 0, '~TO~' }, { 0, 3 }, { 0, '~STEP~' }, { 0, 4 } }, { -1, 1, -1, 1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__FOR ' }, { 0, 1 }, { 0, ':=' }, { 0, 2 }, { 0, '~TO~' }, { 0, 3 }, { 0, '~STEP~' }, { 0, 4 } }, { -1, 1, -1, 1, -1, 1, -1, 1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__LOOP' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__EXIT' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__NEXT' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__WHILE ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__WHILE ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP__ENDDO' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Run( ' }, { 0, 1 }, { 0, ' + ".prg" )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_INIT ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_EXIT ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_PRG ' }, { 0, 1 }, { 0, ' ; PP_LocalParams( { ' }, { 0, 2 }, { 0, ' } )' } }, { -1, 1, -1, 3, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_PRG ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_PRG ' }, { 0, 1 }, { 0, ' ; PP_LocalParams( { ' }, { 0, 2 }, { 0, ' } )' } }, { -1, 1, -1, 3, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC_PRG ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC ' }, { 0, 1 }, { 0, ' ; PP_LocalParams( { ' }, { 0, 2 }, { 0, ' } )' } }, { -1, 1, -1, 3, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC ' }, { 0, 1 }, { 0, ' ; PP_LocalParams( { ' }, { 0, 2 }, { 0, ' } )' } }, { -1, 1, -1, 3, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_PROC ' }, { 0, 1 } }, { -1, 1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_SetReturn( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Params( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Privates( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Privates( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Publics( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Locals( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Statics( { ' }, { 0, 1 }, { 0, ' } )' } }, { -1, 3, -1} , { NIL } } ) - -RETURN .T. - -//--------------------------------------------------------------// -STATIC FUNCTION InitDotRules() - - /* Defines */ - - /* Translates */ - aAdd( aTransRules, { '_GET_' , { { 1, 0, '(', '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, ',', NIL, NIL }, { 3, 1, NIL, '<', { ',' } }, { 0, 0, ',', NIL, NIL }, { 4, 1, NIL, '<', { ',' } }, { 0, 0, ',', NIL, NIL }, { 5, 1, NIL, '<', { ')' } }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { '__GET' , { { 1, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL }, { 0, 0, ':', NIL, NIL }, { 0, 0, 'DISPLAY', NIL, NIL }, { 0, 0, '(', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'AADD' , { { 0, 0, '(', NIL, NIL }, { 0, 0, 'GETLIST', NIL, NIL }, { 0, 0, ',', NIL, NIL }, { 0, 0, '__GET', NIL, NIL }, { 1, 0, '(', 'A', NIL }, { 0, 0, ')', NIL, NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - - /* Commands */ - aAdd( aCommRules, { 'CLS' , , .F. } ) - aAdd( aCommRules, { 'BROWSE' , , .F. } ) - aAdd( aCommRules, { 'EXIT' , , .F. } ) - aAdd( aCommRules, { 'IF' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ELSEIF' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ELSE' , , .F. } ) - aAdd( aCommRules, { 'ENDIF' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 0, 0, 'CASE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CASE' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'OTHERWISE' , , .F. } ) - aAdd( aCommRules, { 'ENDCASE' , { { 1001, 1, NIL, '*', NIL } } , .F. } ) - aAdd( aCommRules, { 'DO' , { { 1, 0, NIL, '<', NIL }, { 0, 0, '.', NIL, NIL }, { 0, 0, 'PRG', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'CD' , { { 1, 0, NIL, '(', NIL } } , .F. } ) - -RETURN .T. - -//--------------------------------------------------------------// -STATIC FUNCTION InitDotResults() - - /* Defines Results*/ - - /* Translates Results*/ - aAdd( aTransResults, { { { 0, '__GET( MEMVARBLOCK(' }, { 0, 2 }, { 0, '), ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aTransResults, { { { 0, '__GET(' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aTransResults, { { { 0, '__oGet := __GET(' }, { 0, 1 }, { 0, ') ; aAdd( GetList, __oGet ) ; __oGet:Display()' } }, { -1, 1, -1} , { NIL } } ) - - /* Commands Results*/ - aAdd( aCommResults, { { { 0, 'Scroll( 2, 0, MaxRow() - 1, MaxCol() ) ; SetPos( 2, 0 )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'Browse( 1, 0, MaxRow() - 1, MaxCol() )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__QUIT()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetIf( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetElseIf( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetElse()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetEnd()' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetEnd()' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetDoCase()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetCase( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, '__SetOtherwise()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, '__SetEndCase()' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'PP_Run( ' }, { 0, 1 }, { 0, ' + ".prg" )' } }, { -1, 2, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DirChange( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 4, -1} , { NIL } } ) - -RETURN .T. - -//--------------------------------------------------------------// -PROCEDURE PP_RunInit( aProcedures, aInitExit, nLine ) - - IF ValType( aProcedures ) != 'A' .OR. ValType( aInitExit ) != 'A' - Alert( [Invalid parameters to: ] + ProcName() + [ must be Arrays!] ) - ELSE - aSize( aProcedures, 0 ) - - aSize( aInitExit, 2 ) - aInitExit[1] := {} - aInitExit[2] := {} - ENDIF - - ErrorBlock( {|oErr| RP_Run_Err( oErr, aProcedures, nLine ) } ) - - InitRules() - InitResults() - - InitRunRules() - InitRunResults() - -RETURN - -//--------------------------------------------------------------// -FUNCTION PP_PreProText( sLines, asLines, bBlanks ) - - LOCAL nOpen, nClose, sTemp := "", nLine, nLines - - //ErrorBlock( {|oErr| RP_PPText_Err( oErr, sLines, 0 ) } ) - - //TraceLog( sLines ) - - IF bBlanks == NIL - bBlanks := .T. - ENDIF - - IF asLines == NIL - asLines := {} - ENDIF - - sLines := StrTran( sLines, Chr(13), " " ) - sLines := StrTran( sLines, Chr(9), " " ) - - WHILE ( nOpen := nAtSkipStr( "/*", sLines ) ) > 0 - sTemp += Left( sLines, nOpen - 1 ) - nClose := nAtSkipStr( "*/", sLines, nOpen + 2 ) - WHILE ( nOpen := nAtSkipStr( Chr(10), sLines, nOpen + 1 ) ) > 0 .AND. nOpen < nClose - sTemp += Chr(10) - ENDDO - sLines := SubStr( sLines, nClose + 2 ) - ENDDO - sLines := ( sTemp + sLines ) - - nOpen := 0 - nClose := 0 - - //ErrorBlock( {|oErr| RP_PPText_Err( oErr, SubStr( sLines, nClose + 1, nOpen - ( nClose + 1 ) ), 0 ) } ) - - WHILE ( nOpen := At( Chr(10), sLines, nOpen + 1 ) ) > 0 .AND. nOpen > nClose - //TraceLog( sLines, Len( sLines ), nOpen, nClose ) - aAdd( asLines, RTrim( LTrim( SubStr( sLines, nClose + 1, nOpen - ( nClose + 1 ) ) ) ) ) - //TraceLog( Len( asLines ), aTail( asLines ) ) - nClose := nOpen - ENDDO - IF Len( sLines ) > nClose - aAdd( asLines, RTrim( LTrim( SubStr( sLines, nClose + 1 ) ) ) ) - //TraceLog( Len( asLines) , aTail( asLines ) ) - ENDIF - - //ErrorBlock( {|oErr| RP_PPText_Err( oErr, asLines[nLine], nLine ) } ) - - nLines := Len( asLines ) - FOR nLine := 1 TO nLines - sTemp := asLines[nLine] - //TraceLog( sTemp ) - - DO WHILE Empty( sTemp ) .OR. Left( sTemp, 1 ) == '*' - //TraceLog( nLine, nLines, sTemp ) - IF bBlanks - asLines[nLine] := NIL - nLine++ - IF nLine > nLines - EXIT - ENDIF - sTemp := asLines[nLine] - ELSE - aDel( asLines, nLine ) - - nLines-- - aSize( asLines, nLines ) - IF nLine > nLines - EXIT - ENDIF - ENDIF - ENDDO - - IF nLine > nLines - EXIT - ENDIF - - //TraceLog( nLine, nLines, sTemp ) - - nOpen := nAtSkipStr( "&&", sTemp ) - IF nOpen > 0 - IF nOpen == 1 - IF bBlanks - asLines[nLine] := NIL - LOOP - ELSE - aDel( asLines, nLine ) - nLine-- - nLines-- - aSize( asLines, nLines ) - LOOP - ENDIF - ENDIF - sTemp := Left( asLines[nLine], nOpen - 1 ) - ELSE - sTemp := asLines[nLine] - ENDIF - - nOpen := nAtSkipStr( "//", sTemp ) - IF nOpen > 0 - IF nOpen == 1 - IF bBlanks - asLines[nLine] := NIL - //TraceLog( "LOOP" ) - LOOP - ELSE - aDel( asLines, nLine ) - nLine-- - nLines-- - aSize( asLines, nLines ) - LOOP - ENDIF - ENDIF - sTemp := Left( sTemp, nOpen - 1 ) - ENDIF - - asLines[nLine] := sTemp - NEXT - - sLines := "" - - IF nLines == 0 - RETURN "" - ENDIF - - //TraceLog( nLines ) - - // Don't process the last line for [;]. - nLines-- - FOR nLine := 1 TO nLines - sTemp := asLines[nLine] - //TraceLog( sTemp ) - IF sTemp == NIL - LOOP - ENDIF - - DO WHILE Right( sTemp, 1 ) == ';' - IF bBlanks - #ifdef __STR_INDEX__ - sTemp[-1] := ' ' - #else - sTemp := Left( sTemp, Len( sTemp ) - 1 ) + ' ' - #endif - asLines[nLine] := NIL - nLine++ - IF asLines[nLine] == NIL - asLines[nLine] := sTemp - ELSE - asLines[nLine] := sTemp + asLines[nLine] - ENDIF - sTemp := asLines[nLine] - ELSE - aDel( asLines, nLine ) - nLines-- - aSize( asLines, nLines ) - // nLine now points to the next line. - sTemp := Left( sTemp, Len( sTemp ) - 1 ) + ' ' + asLines[nLine] - ENDIF - ENDDO - - sTemp := PP_PreProLine( sTemp ) - - sLines += sTemp - sLines += ";" - - IF sTemp == "" - asLines[nLine] := NIL - ELSE - asLines[nLine] := sTemp - ENDIF - //TraceLog( nLine, sTemp ) - NEXT - - sTemp := asLines[nLine] - - IF sTemp != NIL - sTemp := PP_PreProLine( sTemp ) - sLines += sTemp - ENDIF - - IF sTemp == "" - asLines[nLine] := NIL - ELSE - asLines[nLine] := sTemp - ENDIF - - //TraceLog( nLine, sTemp, sLines ) - -RETURN sLines - -//--------------------------------------------------------------// -FUNCTION PP_RunText( sLines, bPP, aParams ) - - LOCAL aProcedures := {}, aInitExit := { {}, {} }, nProcId := 0, ; - nLine, nLines, xRet, asLines := {}, nOpen, nClose, sLine - - IF bPP == NIL - bPP := .T. - ENDIF - - PP_RunInit( aProcedures, aInitExit, @nLine ) - - IF bPP - PP_PreProText( sLines, asLines ) - ELSE - sLines := StrTran( sLines, Chr(13), "" ) - sLines := StrTran( sLines, Chr(9), " " ) - sLines := StrTran( sLines, ';', Chr(10) ) - nOpen := 0 - nClose := 0 - WHILE ( nOpen := nAtSkipStr( Chr(10), sLines, nOpen + 1 ) ) > 0 - aAdd( asLines, SubStr( sLines, nClose + 1, nOpen - ( nClose + 1 ) ) ) - nClose := nOpen - ENDDO - IF Len( sLines ) > nClose - aAdd( asLines, SubStr( sLines, nClose + 1 ) ) - ENDIF - ENDIF - - ErrorBlock( {|oErr| RP_Comp_Err( oErr, asLines[nLine], nLine ) } ) - - nLines := Len( asLines ) - FOR nLine := 1 TO nLines - sLine := asLines[nLine] - IF sLine != NIL - PP_CompileLine( sLine, nLine, aProcedures, aInitExit, @nProcId ) - ENDIF - NEXT - -RETURN PP_Exec( aProcedures, aInitExit, nProcId, aParams ) - -//--------------------------------------------------------------// -FUNCTION PP_RunArray( asLines, aParams ) - - LOCAL aProcedures := {}, aInitExit := { {}, {} }, nProcId := 0, ; - nLine, nLines, nOpen, nClose - - PP_RunInit( aProcedures, aInitExit, @nLine ) - - ErrorBlock( {|oErr| RP_Comp_Err( oErr, asLines[nLine], nLine ) } ) - - nLines := Len( asLines ) - FOR nLine := 1 TO nLines - IF asLines[nLine] != NIL - PP_CompileLine( asLines[nLine], nLine, aProcedures, aInitExit, @nProcId ) - ENDIF - NEXT - -RETURN PP_Exec( aProcedures, aInitExit, nProcId, aParams ) - -//--------------------------------------------------------------// -FUNCTION PP_Exec( aProcedures, aInitExit, nProcId, aParams ) - - LOCAL nProc, nProcs, xRet - - IF ValType( aParams ) == 'A' - s_aParams := aParams - ELSE - s_aParams := {} - ENDIF - - ErrorBlock( {|oErr| RP_Run_Err( oErr, aProcedures, s_aProcStack[ Len( s_aProcStack ) ][2] ) } ) - - InitRules() - InitResults() - - InitRunRules() - InitRunResults() - - nProcs := Len( aInitExit[1] ) - FOR nProc := 1 TO nProcs - PP_ExecProcedure( aProcedures[ aInitExit[1][nProc] ] ) - NEXT - - FOR nProc := 1 TO nProcId - IF aScan( aInitExit[1], nProc ) == 0 .AND. aScan( aInitExit[2], nProc ) == 0 - xRet := PP_ExecProcedure( aProcedures[nProc] ) - EXIT - ENDIF - NEXT - - nProcs := Len( aInitExit[2] ) - FOR nProc := 1 TO nProcs - PP_ExecProcedure( aProcedures[ aInitExit[2][nProc] ] ) - NEXT - - //TraceLog( xRet ) - -RETURN xRet - -//--------------------------------------------------------------// -PROCEDURE PP_ResetRules() - - aDefRules := {}; aDefResults := {} - aTransRules := {}; aTransResults := {} - aCommRules := {}; aCommResults := {} - - s_lRunLoaded := .F. - s_lClsLoaded := .F. - s_lFWLoaded := .F. - -RETURN - -//--------------------------------------------------------------// -PROCEDURE PP_InitStd() - - InitRules() - InitResults() - - s_lRunLoaded := .F. - s_lClsLoaded := .F. - s_lFWLoaded := .F. - -RETURN - -//--------------------------------------------------------------// -PROCEDURE PP_LoadRun() - - IF ! s_lRunLoaded - s_lRunLoaded := .T. - InitRunRules() - InitRunResults() - ENDIF - -RETURN - -//--------------------------------------------------------------// -PROCEDURE PP_LoadDot() - - IF ! s_lDotLoaded - s_lDotLoaded := .T. - InitDotRules() - InitDotResults() - ENDIF - -RETURN - -//--------------------------------------------------------------// -#ifdef __HARBOUR__ - #include "pp_harb.ch" -#endif - -//--------------------------------------------------------------// -/* -Function Alert( cMsg ) - - //? ProcName(1), ProcLine(1), cMsg - TraceLog( cMsg ) - -return NIL -*/ diff --git a/harbour/contrib/dot/pp.txt b/harbour/contrib/dot/pp.txt deleted file mode 100644 index 1d1c28bed7..0000000000 --- a/harbour/contrib/dot/pp.txt +++ /dev/null @@ -1,123 +0,0 @@ -Command line switches and syntax. - - - PP filename[.ext] [-CCH] [-D] [-D:E] [-D:M] [-D:P] [-H] [--help][-I] - [-P] [-R] [-STRICT] [-U[]] - - -CCH = Generate a .cch file (compiled command header). - -D = #define . - -D:E = Show tracing information into the Expression Scanner. - -D:M = Show tracing information into the Match Engine. - -D:P = Show tracing information into the Output Generator. - -H = Syntax and command line switches description. - --help = Syntax and command line switches description. - -I = #include file search path(s) (';' seperated). - -P = Generate .pp$ pre-processed output file. - -R = Run filename as a script. - -STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs). - -U = Use command definitions set in (or none). - -PP has 3 personalities which are tied tightly together. - -1. What is supposed to be 100% Clipper compatible Pre-Processor - (with some extensions). - - Executing PP followed by a source file name and the -P switch, will - create which is the equivalent of the Clipper - file. - - This syntax is: - - PP filename[.ext] -P - - In this mode these are the optional command line switches. - - -CCH = Generate a .cch file (compiled command header). - -D = #define . - -D:E = Show tracing information into the Expression Scanner. - -D:M = Show tracing information into the Match Engine. - -D:P = Show tracing information into the Output Generator. - -I = #include file search path(s) (';' separated). - -STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs). - -U = Use command definitions set in (or none). - -2. DOT prompt, which allows most of the Clipper syntax. Please - report any syntax you expect to work, but is not supported. - - It does support IF [ELSE] [ELSEIF] ENDIF in DOT environment. - - Executing PP with no source filename will start the DOT prompt mode. - - In this mode you can execute a single line at a time by typing the line - and pressing the [Enter] key. - - Additionally you may type: - - DO filename.prg [Enter] - - So that DOT will "run" the specified source file. This interpreter - mode is subject to few limitations: - - a. It does support LOCAL/STATIC/PRIVATE/PUBLIC, but: - - - STATICs are actually implemented as publics. - - - LOCALS have scoping of locals but are implemented as privates - so you can't have a LOCAL and a PRIVATE with the same name. - - b. Non-declared variables are auto-created on assignment in Harbour - but NOT in Clipper (yet). - - c. It does support definition and execution of prg-defined - FUNCTIONs/PROCEDUREs. - - d. It does support ALL control flow structures *except* BEGIN - SEQUENCE [BREAK] [RECOVER] END SEQUENCE. - - e. The executed module is compiled with -n option (for now). - - This will create rp_dot.pp$ compilation trace file. - -3. Finally, PP is a limited Clipper/Harbour/xBase Interpreter. Subject - to those same few limitations it can execute most of Harbour syntax. - Executing PP followed by a source file name and the -R switch will - "RUN" that source (it will also create the rp_run.pp$ compilation - trace file). - - This syntax is: - - PP filename[.ext] -R - - In this mode these are the optional command line switches. - - -CCH = Generate a .cch file (compiled command header). - -D = #define . - -D:E = Show tracing information into the Expression Scanner. - -D:M = Show tracing information into the Match Engine. - -D:P = Show tracing information into the Output Generator. - -I = #include file search path(s) (';' separated). - -P = Generate .pp$ pre-processed output file. - -STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs). - -U = Use command definitions set in (or none). - - a. It does support LOCAL/STATIC/PRIVATE/PUBLIC, but: - - - STATICs are actually implemented as publics. - - - LOCALS have scoping of locals but are implemented as privates - so you can't have a LOCAL and a PRIVATE with the same name. - - b. Non-declared variables are auto-created on assignment in Harbour - but NOT in Clipper (yet). - - c. It does support definition and execution of prg-defined - FUNCTIONs/PROCEDUREs as well as parameter passing and return values. - - d. It does support ALL control flow structures *except* BEGIN - SEQUENCE [BREAK] [RECOVER] END SEQUENCE. - - e. The compiled module is automatically using -n (No implicit startup - procedure) if the script starts with a Procedure/Function definition. - - f. Built-in OLE COM Client gateway is included when PP is compiled with - Harbour and using -dWIN (harbour pp -dWIN -w ... ) diff --git a/harbour/contrib/dot/pp_harb.ch b/harbour/contrib/dot/pp_harb.ch deleted file mode 100644 index 1beb1f52ad..0000000000 --- a/harbour/contrib/dot/pp_harb.ch +++ /dev/null @@ -1,2306 +0,0 @@ -/* - * xBaseScript Project source code: - * Pre-Processor / Dot prompt environment / Script Interpreter - * - * Copyright 2000-2001 Ron Pinkas - * www - http://www.xBaseScript.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at http://www.gnu.org/). - */ - -#ifdef __HARBOUR__ - - #include "hbclass.ch" - - //----------------------------------------------------------------------------// - CLASS TInterpreter - - DATA cText - DATA acPPed - DATA cPPed - DATA aCompiledProcs - DATA aInitExit - DATA nProcs - DATA aScriptHostGlobals INIT {} - - METHOD New() INLINE ( ::nProcs := 0, ::cText := "", ::acPPed := {}, ::aCompiledProcs := {}, ::aInitExit := { {}, {} }, Self ) - - METHOD AddLine( cLine ) INLINE ( ::nProcs := 0, ::acPPed := {}, ::cText += ( cLine + Chr(10) ) ) - METHOD SetScript( cText ) INLINE ( ::nProcs := 0, ::acPPed := {}, ::cText := cText ) - METHOD GetPPO() INLINE ( ::cPPed ) - - METHOD Compile() - METHOD Run() - METHOD RunFile( cFile, aParams, cPPOExt, bBlanks ) INLINE PP_Run( cFile, aParams, cPPOExt, bBlanks ) - - METHOD ClearRules() INLINE PP_ResetRules() - METHOD InitStdRules() INLINE PP_InitStd() - METHOD LoadClass() INLINE PP_LoadClass() - - #ifdef FW - METHOD LoadFiveWin() INLINE PP_LoadFw() - #endif - - #ifdef MINIGUI - METHOD LoadMiniGUI() INLINE PP_LoadMiniGUI() - #endif - - #ifdef WIN - METHOD ScriptSiteAddGlobal( cName, pDisp ) - METHOD ScriptSiteAutomateGlobals() - #endif - - ENDCLASS - - //----------------------------------------------------------------------------// - METHOD Run( p1, p2, p3, p4, p5, p6, p7, p8, p9 ) CLASS TInterpreter - - LOCAL aParams := HB_aParams(), xRet - - IF ::nProcs == 0 - ::Compile() - ENDIF - - IF ::nProcs > 0 - xRet := PP_Exec( ::aCompiledProcs, ::aInitExit, ::nProcs, aParams ) - ENDIF - - RETURN xRet - - //----------------------------------------------------------------------------// - METHOD Compile() CLASS TInterpreter - - LOCAL nLine, nLines, sLine, nProcId := 0 - - IF Len( ::acPPed ) == 0 - PP_InitStd() - PP_LoadRun() - ::cPPed := PP_PreProText( ::cText, ::acPPed ) - ::aCompiledProcs := {} - ::aInitExit := { {}, {} } - ENDIF - - IF Len( ::aCompiledProcs ) == 0 - ErrorBlock( {|oErr| RP_Comp_Err( oErr, ::acPPed[nLine], nLine ) } ) - - PP_ModuleName( "_TINTERPRETER_" ) - - nLines := Len( ::acPPed ) - FOR nLine := 1 TO nLines - sLine := ::acPPed[nLine] - IF sLine != NIL - PP_CompileLine( sLine, nLine, ::aCompiledProcs, ::aInitExit, @nProcId ) - ENDIF - NEXT - ENDIF - - ::nProcs := nProcId - - RETURN nProcId > 0 - - //----------------------------------------------------------------------------// - - #ifdef WIN - - METHOD ScriptSiteAddGlobal( cName, pDisp ) CLASS TInterpreter - - LOCAL oGlobal := TOleAuto():New( pDisp, cName ) - - aAdd( ::aScriptHostGlobals, { cName, pDisp } ) - - __QQPub( cName ) - __MVPUT( cName, oGlobal ) - - RETURN Self - - //----------------------------------------------------------------------------// - - METHOD ScriptSiteAutomateGlobals() CLASS TInterpreter - - LOCAL aGlobals := ::aScriptHostGlobals - LOCAL nGlobals := Len( aGlobals ), nGlobal - LOCAL cName, pDisp - - FOR nGlobal := 1 TO nGlobals - cName := aGlobals[ nGlobal ][1] - pDisp := aGlobals[ nGlobal ][2] - __QQPub( cName ) - __MVPUT( cName, TOleAuto():New( pDisp ) ) - NEXT - - RETURN .T. - - #endif - - //--------------------------------------------------------------// - PROCEDURE PP_LoadClass() - - IF ! s_lClsLoaded - s_lClsLoaded := .T. - InitClsRules() - InitClsResults() - ENDIF - - RETURN - - //--------------------------------------------------------------// - #ifdef FW - PROCEDURE PP_LoadFW() - - IF ! s_lFWLoaded - s_lFWLoaded := .T. - InitFWRules() - InitFWResults() - ENDIF - - RETURN - #endif - - //--------------------------------------------------------------// - #ifdef MINIGUI - PROCEDURE PP_LoadMiniGUI() - - IF ! s_lMiniGUILoaded - s_lMiniGUILoaded := .T. - InitMiniGUIRules() - InitMiniGUIResults() - ENDIF - - RETURN - #endif - - //--------------------------------------------------------------// - FUNCTION PP_CompileText( sLines ) - - RETURN PP_CompileLine( sLines ) - - //----------------------------------------------------------------------------// - #ifdef WIN - - FUNCTION Alert( cMsg, aOptions ) - - RETURN MessageBox( 0, CStr( cMsg ), "XBScript", 0 ) - #endif - - //----------------------------------------------------------------------------// - #ifdef FW - STATIC FUNCTION InitFWRules() - - /* Defines */ - aAdd( aDefRules, { '_FIVEWIN_CH' , , .T. } ) - aAdd( aDefRules, { 'FWCOPYRIGHT' , , .T. } ) - aAdd( aDefRules, { 'FWVERSION' , , .T. } ) - aAdd( aDefRules, { 'FWDESCRIPTION' , , .T. } ) - aAdd( aDefRules, { 'Browse' , , .T. } ) - aAdd( aDefRules, { '_DIALOG_CH' , , .T. } ) - aAdd( aDefRules, { '_FONT_CH' , , .T. } ) - aAdd( aDefRules, { 'LF_HEIGHT' , , .T. } ) - aAdd( aDefRules, { 'LF_WIDTH' , , .T. } ) - aAdd( aDefRules, { 'LF_ESCAPEMENT' , , .T. } ) - aAdd( aDefRules, { 'LF_ORIENTATION' , , .T. } ) - aAdd( aDefRules, { 'LF_WEIGHT' , , .T. } ) - aAdd( aDefRules, { 'LF_ITALIC' , , .T. } ) - aAdd( aDefRules, { 'LF_UNDERLINE' , , .T. } ) - aAdd( aDefRules, { 'LF_STRIKEOUT' , , .T. } ) - aAdd( aDefRules, { 'LF_CHARSET' , , .T. } ) - aAdd( aDefRules, { 'LF_OUTPRECISION' , , .T. } ) - aAdd( aDefRules, { 'LF_CLIPPRECISION' , , .T. } ) - aAdd( aDefRules, { 'LF_QUALITY' , , .T. } ) - aAdd( aDefRules, { 'LF_PITCHANDFAMILY' , , .T. } ) - aAdd( aDefRules, { 'LF_FACENAME' , , .T. } ) - aAdd( aDefRules, { '_INI_CH' , , .T. } ) - aAdd( aDefRules, { '_MENU_CH' , , .T. } ) - aAdd( aDefRules, { '_PRINT_CH' , , .T. } ) - aAdd( aDefRules, { '_COLORS_CH' , , .T. } ) - aAdd( aDefRules, { 'CLR_BLACK' , , .T. } ) - aAdd( aDefRules, { 'CLR_BLUE' , , .T. } ) - aAdd( aDefRules, { 'CLR_GREEN' , , .T. } ) - aAdd( aDefRules, { 'CLR_CYAN' , , .T. } ) - aAdd( aDefRules, { 'CLR_RED' , , .T. } ) - aAdd( aDefRules, { 'CLR_MAGENTA' , , .T. } ) - aAdd( aDefRules, { 'CLR_BROWN' , , .T. } ) - aAdd( aDefRules, { 'CLR_HGRAY' , , .T. } ) - aAdd( aDefRules, { 'CLR_LIGHTGRAY' , , .T. } ) - aAdd( aDefRules, { 'CLR_GRAY' , , .T. } ) - aAdd( aDefRules, { 'CLR_HBLUE' , , .T. } ) - aAdd( aDefRules, { 'CLR_HGREEN' , , .T. } ) - aAdd( aDefRules, { 'CLR_HCYAN' , , .T. } ) - aAdd( aDefRules, { 'CLR_HRED' , , .T. } ) - aAdd( aDefRules, { 'CLR_HMAGENTA' , , .T. } ) - aAdd( aDefRules, { 'CLR_YELLOW' , , .T. } ) - aAdd( aDefRules, { 'CLR_WHITE' , , .T. } ) - aAdd( aDefRules, { '_DLL_CH' , , .T. } ) - aAdd( aDefRules, { '_C_TYPES' , , .T. } ) - aAdd( aDefRules, { 'VOID' , , .T. } ) - aAdd( aDefRules, { 'BYTE' , , .T. } ) - aAdd( aDefRules, { 'CHAR' , , .T. } ) - aAdd( aDefRules, { 'WORD' , , .T. } ) - aAdd( aDefRules, { '_INT' , , .T. } ) - aAdd( aDefRules, { 'BOOL' , , .T. } ) - aAdd( aDefRules, { 'HDC' , , .T. } ) - aAdd( aDefRules, { 'LONG' , , .T. } ) - aAdd( aDefRules, { 'STRING' , , .T. } ) - aAdd( aDefRules, { 'LPSTR' , , .T. } ) - aAdd( aDefRules, { 'PTR' , , .T. } ) - aAdd( aDefRules, { '_DOUBLE' , , .T. } ) - aAdd( aDefRules, { 'DWORD' , , .T. } ) - aAdd( aDefRules, { '_FOLDER_CH' , , .T. } ) - aAdd( aDefRules, { '_OBJECTS_CH' , , .T. } ) - aAdd( aDefRules, { '_ODBC_CH' , , .T. } ) - aAdd( aDefRules, { '_DDE_CH' , , .T. } ) - aAdd( aDefRules, { 'WM_DDE_FIRST' , , .T. } ) - aAdd( aDefRules, { 'WM_DDE_INITIATE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_TERMINATE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_ADVISE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_UNADVISE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_ACK' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_DATA' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_REQUEST' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_POKE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_EXECUTE' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WM_DDE_LAST' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { '_VIDEO_CH' , , .T. } ) - aAdd( aDefRules, { 'VK_LBUTTON' , , .T. } ) - aAdd( aDefRules, { 'VK_RBUTTON' , , .T. } ) - aAdd( aDefRules, { 'VK_CANCEL' , , .T. } ) - aAdd( aDefRules, { 'VK_MBUTTON' , , .T. } ) - aAdd( aDefRules, { 'VK_BACK' , , .T. } ) - aAdd( aDefRules, { 'VK_TAB' , , .T. } ) - aAdd( aDefRules, { 'VK_CLEAR' , , .T. } ) - aAdd( aDefRules, { 'VK_RETURN' , , .T. } ) - aAdd( aDefRules, { 'VK_SHIFT' , , .T. } ) - aAdd( aDefRules, { 'VK_CONTROL' , , .T. } ) - aAdd( aDefRules, { 'VK_MENU' , , .T. } ) - aAdd( aDefRules, { 'VK_PAUSE' , , .T. } ) - aAdd( aDefRules, { 'VK_CAPITAL' , , .T. } ) - aAdd( aDefRules, { 'VK_ESCAPE' , , .T. } ) - aAdd( aDefRules, { 'VK_SPACE' , , .T. } ) - aAdd( aDefRules, { 'VK_PRIOR' , , .T. } ) - aAdd( aDefRules, { 'VK_NEXT' , , .T. } ) - aAdd( aDefRules, { 'VK_END' , , .T. } ) - aAdd( aDefRules, { 'VK_HOME' , , .T. } ) - aAdd( aDefRules, { 'VK_LEFT' , , .T. } ) - aAdd( aDefRules, { 'VK_UP' , , .T. } ) - aAdd( aDefRules, { 'VK_RIGHT' , , .T. } ) - aAdd( aDefRules, { 'VK_DOWN' , , .T. } ) - aAdd( aDefRules, { 'VK_SELECT' , , .T. } ) - aAdd( aDefRules, { 'VK_PRINT' , , .T. } ) - aAdd( aDefRules, { 'VK_EXECUTE' , , .T. } ) - aAdd( aDefRules, { 'VK_SNAPSHOT' , , .T. } ) - aAdd( aDefRules, { 'VK_INSERT' , , .T. } ) - aAdd( aDefRules, { 'VK_DELETE' , , .T. } ) - aAdd( aDefRules, { 'VK_HELP' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD0' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD1' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD2' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD3' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD4' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD5' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD6' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD7' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD8' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMPAD9' , , .T. } ) - aAdd( aDefRules, { 'VK_MULTIPLY' , , .T. } ) - aAdd( aDefRules, { 'VK_ADD' , , .T. } ) - aAdd( aDefRules, { 'VK_SEPARATOR' , , .T. } ) - aAdd( aDefRules, { 'VK_SUBTRACT' , , .T. } ) - aAdd( aDefRules, { 'VK_DECIMAL' , , .T. } ) - aAdd( aDefRules, { 'VK_DIVIDE' , , .T. } ) - aAdd( aDefRules, { 'VK_F1' , , .T. } ) - aAdd( aDefRules, { 'VK_F2' , , .T. } ) - aAdd( aDefRules, { 'VK_F3' , , .T. } ) - aAdd( aDefRules, { 'VK_F4' , , .T. } ) - aAdd( aDefRules, { 'VK_F5' , , .T. } ) - aAdd( aDefRules, { 'VK_F6' , , .T. } ) - aAdd( aDefRules, { 'VK_F7' , , .T. } ) - aAdd( aDefRules, { 'VK_F8' , , .T. } ) - aAdd( aDefRules, { 'VK_F9' , , .T. } ) - aAdd( aDefRules, { 'VK_F10' , , .T. } ) - aAdd( aDefRules, { 'VK_F11' , , .T. } ) - aAdd( aDefRules, { 'VK_F12' , , .T. } ) - aAdd( aDefRules, { 'VK_F13' , , .T. } ) - aAdd( aDefRules, { 'VK_F14' , , .T. } ) - aAdd( aDefRules, { 'VK_F15' , , .T. } ) - aAdd( aDefRules, { 'VK_F16' , , .T. } ) - aAdd( aDefRules, { 'VK_F17' , , .T. } ) - aAdd( aDefRules, { 'VK_F18' , , .T. } ) - aAdd( aDefRules, { 'VK_F19' , , .T. } ) - aAdd( aDefRules, { 'VK_F20' , , .T. } ) - aAdd( aDefRules, { 'VK_F21' , , .T. } ) - aAdd( aDefRules, { 'VK_F22' , , .T. } ) - aAdd( aDefRules, { 'VK_F23' , , .T. } ) - aAdd( aDefRules, { 'VK_F24' , , .T. } ) - aAdd( aDefRules, { 'VK_NUMLOCK' , , .T. } ) - aAdd( aDefRules, { 'VK_SCROLL' , , .T. } ) - aAdd( aDefRules, { 'ACC_NORMAL' , , .T. } ) - aAdd( aDefRules, { 'ACC_SHIFT' , , .T. } ) - aAdd( aDefRules, { 'ACC_CONTROL' , , .T. } ) - aAdd( aDefRules, { 'ACC_ALT' , , .T. } ) - aAdd( aDefRules, { '_TREE_CH' , , .T. } ) - aAdd( aDefRules, { '_WINAPI_CH' , , .T. } ) - aAdd( aDefRules, { 'FM_CLICK' , , .T. } ) - aAdd( aDefRules, { 'FM_SCROLLUP' , , .T. } ) - aAdd( aDefRules, { 'FM_SCROLLDOWN' , , .T. } ) - aAdd( aDefRules, { 'FM_SCROLLPGUP' , , .T. } ) - aAdd( aDefRules, { 'FM_SCROLLPGDN' , , .T. } ) - aAdd( aDefRules, { 'FM_CHANGE' , , .T. } ) - aAdd( aDefRules, { 'FM_COLOR' , , .T. } ) - aAdd( aDefRules, { 'FM_MEASURE' , , .T. } ) - aAdd( aDefRules, { 'FM_DRAW' , , .T. } ) - aAdd( aDefRules, { 'FM_LOSTFOCUS' , , .T. } ) - aAdd( aDefRules, { 'FM_THUMBPOS' , , .T. } ) - aAdd( aDefRules, { 'FM_CLOSEAREA' , , .T. } ) - aAdd( aDefRules, { 'FM_VBXEVENT' , , .T. } ) - aAdd( aDefRules, { 'FM_HELPF1' , , .T. } ) - aAdd( aDefRules, { 'FM_THUMBTRACK' , , .T. } ) - aAdd( aDefRules, { 'FM_DROPOVER' , , .T. } ) - aAdd( aDefRules, { 'FM_CHANGEFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_ASYNCSELECT' , , .T. } ) - aAdd( aDefRules, { 'FM_CLOSEUP' , , .T. } ) - aAdd( aDefRules, { 'WM_TASKBAR' , , .T. } ) - aAdd( aDefRules, { 'IDOK' , , .T. } ) - aAdd( aDefRules, { 'ID_OK' , , .T. } ) - aAdd( aDefRules, { 'IDCANCEL' , , .T. } ) - aAdd( aDefRules, { 'BN_CLICKED' , , .T. } ) - aAdd( aDefRules, { 'CS_VREDRAW' , , .T. } ) - aAdd( aDefRules, { 'CS_HREDRAW' , , .T. } ) - aAdd( aDefRules, { 'CS_GLOBALCLASS' , , .T. } ) - aAdd( aDefRules, { 'CS_OWNDC' , , .T. } ) - aAdd( aDefRules, { 'CS_CLASSDC' , , .T. } ) - aAdd( aDefRules, { 'CS_PARENTDC' , , .T. } ) - aAdd( aDefRules, { 'CS_BYTEALIGNCLIENT' , , .T. } ) - aAdd( aDefRules, { 'CS_BYTEALIGNWINDOW' , , .T. } ) - aAdd( aDefRules, { 'WS_OVERLAPPED' , , .T. } ) - aAdd( aDefRules, { 'WS_POPUP' , , .T. } ) - aAdd( aDefRules, { 'WS_CHILD' , , .T. } ) - aAdd( aDefRules, { 'WS_CLIPSIBLINGS' , , .T. } ) - aAdd( aDefRules, { 'WS_CLIPCHILDREN' , , .T. } ) - aAdd( aDefRules, { 'WS_VISIBLE' , , .T. } ) - aAdd( aDefRules, { 'WS_DISABLED' , , .T. } ) - aAdd( aDefRules, { 'WS_MINIMIZE' , , .T. } ) - aAdd( aDefRules, { 'WS_MAXIMIZE' , , .T. } ) - aAdd( aDefRules, { 'WS_CAPTION' , , .T. } ) - aAdd( aDefRules, { 'WS_BORDER' , , .T. } ) - aAdd( aDefRules, { 'WS_DLGFRAME' , , .T. } ) - aAdd( aDefRules, { 'WS_VSCROLL' , , .T. } ) - aAdd( aDefRules, { 'WS_HSCROLL' , , .T. } ) - aAdd( aDefRules, { 'WS_SYSMENU' , , .T. } ) - aAdd( aDefRules, { 'WS_THICKFRAME' , , .T. } ) - aAdd( aDefRules, { 'WS_MINIMIZEBOX' , , .T. } ) - aAdd( aDefRules, { 'WS_MAXIMIZEBOX' , , .T. } ) - aAdd( aDefRules, { 'WS_GROUP' , , .T. } ) - aAdd( aDefRules, { 'WS_TABSTOP' , , .T. } ) - aAdd( aDefRules, { 'WS_OVERLAPPEDWINDOW' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WS_POPUPWINDOW' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'WS_CHILDWINDOW' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'ES_LEFT' , , .T. } ) - aAdd( aDefRules, { 'ES_RIGHT' , , .T. } ) - aAdd( aDefRules, { 'ES_MULTILINE' , , .T. } ) - aAdd( aDefRules, { 'ES_AUTOHSCROLL' , , .T. } ) - aAdd( aDefRules, { 'ES_READONLY' , , .T. } ) - aAdd( aDefRules, { 'ES_WANTRETURN' , , .T. } ) - aAdd( aDefRules, { 'WM_NULL' , , .T. } ) - aAdd( aDefRules, { 'WM_DESTROY' , , .T. } ) - aAdd( aDefRules, { 'WM_MOVE' , , .T. } ) - aAdd( aDefRules, { 'WM_SIZE' , , .T. } ) - aAdd( aDefRules, { 'WM_SETFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_KILLFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_PAINT' , , .T. } ) - aAdd( aDefRules, { 'WM_CLOSE' , , .T. } ) - aAdd( aDefRules, { 'WM_QUERYENDSESSION' , , .T. } ) - aAdd( aDefRules, { 'WM_QUIT' , , .T. } ) - aAdd( aDefRules, { 'WM_SYSCOLORCHANGE' , , .T. } ) - aAdd( aDefRules, { 'WM_ENDSESSION' , , .T. } ) - aAdd( aDefRules, { 'WM_SYSTEMERROR' , , .T. } ) - aAdd( aDefRules, { 'WM_WININICHANGE' , , .T. } ) - aAdd( aDefRules, { 'WM_DEVMODECHANGE' , , .T. } ) - aAdd( aDefRules, { 'WM_FONTCHANGE' , , .T. } ) - aAdd( aDefRules, { 'WM_TIMECHANGE' , , .T. } ) - aAdd( aDefRules, { 'WM_SPOOLERSTATUS' , , .T. } ) - aAdd( aDefRules, { 'WM_COMPACTING' , , .T. } ) - aAdd( aDefRules, { 'WM_GETDLGCODE' , , .T. } ) - aAdd( aDefRules, { 'WM_CHAR' , , .T. } ) - aAdd( aDefRules, { 'WM_COMMAND' , , .T. } ) - aAdd( aDefRules, { 'WM_MOUSEMOVE' , , .T. } ) - aAdd( aDefRules, { 'WM_LBUTTONDOWN' , , .T. } ) - aAdd( aDefRules, { 'WM_LBUTTONUP' , , .T. } ) - aAdd( aDefRules, { 'WM_RBUTTONDOWN' , , .T. } ) - aAdd( aDefRules, { 'WM_RBUTTONUP' , , .T. } ) - aAdd( aDefRules, { 'WM_KEYDOWN' , , .T. } ) - aAdd( aDefRules, { 'WM_KEYUP' , , .T. } ) - aAdd( aDefRules, { 'WM_INITDIALOG' , , .T. } ) - aAdd( aDefRules, { 'WM_TIMER' , , .T. } ) - aAdd( aDefRules, { 'WM_HSCROLL' , , .T. } ) - aAdd( aDefRules, { 'WM_VSCROLL' , , .T. } ) - aAdd( aDefRules, { 'WM_QUERYNEWPALETTE' , , .T. } ) - aAdd( aDefRules, { 'WM_PALETTEISCHANGING' , , .T. } ) - aAdd( aDefRules, { 'WM_PALETTECHANGED' , , .T. } ) - aAdd( aDefRules, { 'WM_USER' , , .T. } ) - aAdd( aDefRules, { 'DS_SYSMODAL' , , .T. } ) - aAdd( aDefRules, { 'DS_MODALFRAME' , , .T. } ) - aAdd( aDefRules, { 'DLGC_WANTARROWS' , , .T. } ) - aAdd( aDefRules, { 'DLGC_WANTTAB' , , .T. } ) - aAdd( aDefRules, { 'DLGC_WANTALLKEYS' , , .T. } ) - aAdd( aDefRules, { 'DLGC_WANTCHARS' , , .T. } ) - aAdd( aDefRules, { 'LBS_NOTIFY' , , .T. } ) - aAdd( aDefRules, { 'LBS_SORT' , , .T. } ) - aAdd( aDefRules, { 'LBS_OWNERDRAWFIXED' , , .T. } ) - aAdd( aDefRules, { 'LBS_USETABSTOPS' , , .T. } ) - aAdd( aDefRules, { 'LBS_NOINTEGRALHEIGHT' , , .T. } ) - aAdd( aDefRules, { 'LBS_WANTKEYBOARDINPUT' , , .T. } ) - aAdd( aDefRules, { 'LBS_DISABLENOSCROLL' , , .T. } ) - aAdd( aDefRules, { 'LBS_STANDARD' , , .T. } ) - aAdd( aDefRules, { 'CBS_SIMPLE' , , .T. } ) - aAdd( aDefRules, { 'CBS_DROPDOWN' , , .T. } ) - aAdd( aDefRules, { 'CBS_DROPDOWNLIST' , , .T. } ) - aAdd( aDefRules, { 'CBS_OWNERDRAWFIXED' , , .T. } ) - aAdd( aDefRules, { 'CBS_AUTOHSCROLL' , , .T. } ) - aAdd( aDefRules, { 'CBS_OEMCONVERT' , , .T. } ) - aAdd( aDefRules, { 'CBS_SORT' , , .T. } ) - aAdd( aDefRules, { 'CBS_DISABLENOSCROLL' , , .T. } ) - aAdd( aDefRules, { 'SB_LINEUP' , , .T. } ) - aAdd( aDefRules, { 'SB_LINELEFT' , , .T. } ) - aAdd( aDefRules, { 'SB_LINEDOWN' , , .T. } ) - aAdd( aDefRules, { 'SB_LINERIGHT' , , .T. } ) - aAdd( aDefRules, { 'SB_PAGEUP' , , .T. } ) - aAdd( aDefRules, { 'SB_PAGELEFT' , , .T. } ) - aAdd( aDefRules, { 'SB_PAGEDOWN' , , .T. } ) - aAdd( aDefRules, { 'SB_PAGERIGHT' , , .T. } ) - aAdd( aDefRules, { 'SB_THUMBPOSITION' , , .T. } ) - aAdd( aDefRules, { 'SB_THUMBTRACK' , , .T. } ) - aAdd( aDefRules, { 'SB_TOP' , , .T. } ) - aAdd( aDefRules, { 'SB_LEFT' , , .T. } ) - aAdd( aDefRules, { 'SB_BOTTOM' , , .T. } ) - aAdd( aDefRules, { 'SB_RIGHT' , , .T. } ) - aAdd( aDefRules, { 'SB_ENDSCROLL' , , .T. } ) - aAdd( aDefRules, { 'SBS_HORZ' , , .T. } ) - aAdd( aDefRules, { 'SBS_VERT' , , .T. } ) - aAdd( aDefRules, { 'BS_PUSHBUTTON' , , .T. } ) - aAdd( aDefRules, { 'BS_DEFPUSHBUTTON' , , .T. } ) - aAdd( aDefRules, { 'BS_CHECKBOX' , , .T. } ) - aAdd( aDefRules, { 'BS_AUTOCHECKBOX' , , .T. } ) - aAdd( aDefRules, { 'BS_GROUPBOX' , , .T. } ) - aAdd( aDefRules, { 'BS_AUTORADIOBUTTON' , , .T. } ) - aAdd( aDefRules, { 'PS_SOLID' , , .T. } ) - aAdd( aDefRules, { 'PS_DASH' , , .T. } ) - aAdd( aDefRules, { 'PS_DOT' , , .T. } ) - aAdd( aDefRules, { 'PS_DASHDOT' , , .T. } ) - aAdd( aDefRules, { 'PS_DASHDOTDOT' , , .T. } ) - aAdd( aDefRules, { 'PS_NULL' , , .T. } ) - aAdd( aDefRules, { 'PS_INSIDEFRAME' , , .T. } ) - aAdd( aDefRules, { 'SS_BLACKRECT' , , .T. } ) - aAdd( aDefRules, { 'SS_WHITERECT' , , .T. } ) - aAdd( aDefRules, { 'SS_WHITEFRAME' , , .T. } ) - aAdd( aDefRules, { 'SS_LEFT' , , .T. } ) - aAdd( aDefRules, { 'SS_SIMPLE' , , .T. } ) - aAdd( aDefRules, { 'DLGINIT' , , .T. } ) - aAdd( aDefRules, { 'FN_UNZIP' , , .T. } ) - aAdd( aDefRules, { 'Set3dLook' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'CRLF' , , .T. } ) - aAdd( aDefRules, { 'bSETGET' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - - /* Translates */ - aAdd( aTransRules, { 'RGB' , { { 1, 0, '(', '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, ',', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'NOREF' , { { 0, 0, '(', NIL, NIL }, { 0, 1, '@', NIL, NIL }, { 1, 0, NIL, '<', NIL }, { 0, 0, ')', NIL, NIL } } , .F. } ) - aAdd( aTransRules, { 'DLL32' , , .F. } ) - aAdd( aTransRules, { '_PARM_BLOCK_10_' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - - /* Commands */ - aAdd( aCommRules, { 'SET' , { { 1, 0, NIL, ':', { '_3DLOOK', '3DLOOK', 'LOOK3D', 'LOOK 3D', '3D LOOK' } }, { 2, 0, NIL, ':', { 'ON', 'OFF', '&' } } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'RESOURCES', NIL, NIL }, { 1, 0, 'TO', '<', NIL }, { 1002, 1, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'RESOURCES', NIL, NIL }, { 0, 0, 'TO', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'HELPFILE', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'HELP', NIL, NIL }, { 0, 0, 'TOPIC', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 1, 0, NIL, '<', NIL }, { 1002, 1, 'AS', ':', { 'CHARACTER', 'NUMERIC', 'LOGICAL', 'DATE' } }, { 3, 1, NIL, ':', { 'RESOURCE', 'RESNAME', 'NAME' } }, { 4, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'DIALOG', '<', NIL }, { 2, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, 'TITLE', '<', NIL }, { 5, 1, 'FROM', '<', NIL }, { 6, -1, ',', '<', NIL }, { 7, -1, 'TO', '<', NIL }, { 8, -1, ',', '<', NIL }, { 9, 1, 'SIZE', '<', NIL }, { 10, -1, ',', '<', NIL }, { 11, 1, NIL, ':', { 'LIBRARY', 'DLL' } }, { 12, -1, NIL, '<', NIL }, { 13, 1, NIL, ':', { 'VBX' } }, { 14, 1, 'STYLE', '<', NIL }, { 15, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 16, -1, NIL, '<', NIL }, { 17, 2, ',', '<', NIL }, { 18, 1, 'BRUSH', '<', NIL }, { 19, 1, NIL, ':', { 'WINDOW', 'DIALOG', 'OF' } }, { 20, -1, NIL, '<', NIL }, { 21, 1, NIL, ':', { 'PIXEL' } }, { 22, 1, 'ICON', '<', NIL }, { 23, 1, 'FONT', '<', NIL }, { 24, 1, NIL, ':', { 'HELP', 'HELPID' } }, { 25, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'DIALOG', '<', NIL }, { 2, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 1003, 1, NIL, ':', { 'NOWAIT', 'NOMODAL' } }, { 1004, 1, 'WHEN', '<', NIL }, { 1005, 1, 'VALID', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 1000, 2, 'LEFT', NIL, NIL }, { 1006, -1, 'CLICK', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1007, -1, 'INIT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1008, -1, 'MOVE', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1009, -1, 'PAINT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'RIGHT', NIL, NIL }, { 1010, -1, 'CLICK', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'FONT', '<', NIL }, { 2, 1, 'NAME', '<', NIL }, { 3, 1, 'SIZE', '<', NIL }, { 4, -1, ',', '<', NIL }, { 1005, 1, NIL, ':', { 'FROM USER' } }, { 1006, 1, NIL, ':', { 'BOLD' } }, { 1007, 1, NIL, ':', { 'ITALIC' } }, { 1008, 1, NIL, ':', { 'UNDERLINE' } }, { 1009, 1, 'WEIGHT', '<', NIL }, { 1010, 1, 'OF', '<', NIL }, { 1011, 1, 'NESCAPEMENT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEACTIVATE' , { { 1, 0, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'FONT', NIL, NIL }, { 1, 1, 'OF', '<', NIL }, { 2, 1, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'INI' , { { 1, 0, NIL, '<', NIL }, { 2, 1, NIL, ':', { 'FILENAME', 'FILE', 'DISK' } }, { 3, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'GET' , { { 1, 0, NIL, '<', NIL }, { 2, 1, 'SECTION', '<', NIL }, { 3, 1, 'ENTRY', '<', NIL }, { 4, 1, 'DEFAULT', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'INI' } }, { 6, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 1, 1, 'SECTION', '<', NIL }, { 2, 1, 'ENTRY', '<', NIL }, { 3, 1, 'TO', '<', NIL }, { 4, 1, NIL, ':', { 'OF', 'INI' } }, { 5, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ENDINI' , , .T. } ) - aAdd( aCommRules, { 'MENU' , { { 1001, 1, NIL, '<', { 'POPUP' } }, { 2, 1, NIL, ':', { 'POPUP' } } } , .T. } ) - aAdd( aCommRules, { 'MENUITEM' , { { 1001, 1, NIL, '<', { 'MESSAGE', 'CHECK', 'CHECKED', 'MARK', 'ENABLED', 'DISABLED', 'FILE', 'FILENAME', 'DISK', 'RESOURCE', 'RESNAME', 'NAME', 'ACTION', 'BLOCK', 'OF', 'MENU', 'SYSMENU', 'ACCELERATOR', 'HELP', 'HELP ID', 'HELPID', 'WHEN', 'BREAK' } }, { 0, -1, 'PROMPT', NIL, NIL }, { 2, 1, NIL, '<', { 'MESSAGE', 'CHECK', 'CHECKED', 'MARK', 'ENABLED', 'DISABLED', 'FILE', 'FILENAME', 'DISK', 'RESOURCE', 'RESNAME', 'NAME', 'ACTION', 'BLOCK', 'OF', 'MENU', 'SYSMENU', 'ACCELERATOR', 'HELP', 'HELP ID', 'HELPID', 'WHEN', 'BREAK' } }, { 3, 1, 'MESSAGE', '<', NIL }, { 4, 1, NIL, ':', { 'CHECK', 'CHECKED', 'MARK' } }, { 1005, 1, NIL, ':', { 'ENABLED', 'DISABLED' } }, { 6, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'RESOURCE', 'RESNAME', 'NAME' } }, { 9, -1, NIL, '<', NIL }, { 1010, 1, 'ACTION', 'A', NIL }, { 11, 1, 'BLOCK', '<', NIL }, { 12, 1, NIL, ':', { 'OF', 'MENU', 'SYSMENU' } }, { 13, -1, NIL, '<', NIL }, { 14, 1, 'ACCELERATOR', '<', NIL }, { 15, -1, ',', '<', NIL }, { 16, 1, NIL, ':', { 'HELP' } }, { 17, 1, NIL, ':', { 'HELP ID', 'HELPID' } }, { 18, -1, NIL, '<', NIL }, { 1019, 1, 'WHEN', '<', NIL }, { 20, 1, NIL, ':', { 'BREAK' } } } , .T. } ) - aAdd( aCommRules, { 'MRU' , { { 1, 0, NIL, '<', NIL }, { 2, 1, NIL, ':', { 'INI', 'ININAME', 'FILENAME', 'NAME', 'DISK' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, 'SECTION', '<', NIL }, { 5, 1, NIL, ':', { 'SIZE', 'ITEMS' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, 'MESSAGE', '<', NIL }, { 1008, 1, 'ACTION', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SEPARATOR' , { { 1001, 1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ENDMENU' , , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'MENU', '<', NIL }, { 2, 1, NIL, ':', { 'RESOURCE', 'NAME', 'RESNAME' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'POPUP' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'MENUITEM', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'ACTION', 'BLOCK', 'MESSAGE', 'CHECK', 'CHECKED', 'MARK', 'ENABLED', 'DISABLED', 'FILE', 'FILENAME', 'DISK', 'RESOURCE', 'RESNAME', 'NAME', 'ACCELERATOR', 'HELP ID', 'HELPID', 'WHEN' } }, { 0, -1, 'PROMPT', NIL, NIL }, { 2, 1, NIL, '<', { 'ID', 'ACTION', 'BLOCK', 'MESSAGE', 'CHECK', 'CHECKED', 'MARK', 'ENABLED', 'DISABLED', 'FILE', 'FILENAME', 'DISK', 'RESOURCE', 'RESNAME', 'NAME', 'ACCELERATOR', 'HELP ID', 'HELPID', 'WHEN' } }, { 3, 1, 'ID', '<', NIL }, { 4, -1, NIL, ':', { 'OF', 'MENU' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, 'ACTION', '<', NIL }, { 7, 1, 'BLOCK', '<', NIL }, { 8, 1, 'MESSAGE', '<', NIL }, { 9, 1, NIL, ':', { 'CHECK', 'CHECKED', 'MARK' } }, { 1010, 1, NIL, ':', { 'ENABLED', 'DISABLED' } }, { 11, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 12, -1, NIL, '<', NIL }, { 13, 1, NIL, ':', { 'RESOURCE', 'RESNAME', 'NAME' } }, { 14, -1, NIL, '<', NIL }, { 15, 1, 'ACCELERATOR', '<', NIL }, { 16, -1, ',', '<', NIL }, { 17, 1, NIL, ':', { 'HELP ID', 'HELPID' } }, { 18, -1, NIL, '<', NIL }, { 1019, 1, 'WHEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'MENU', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MENU', NIL, NIL }, { 1, 0, 'OF', '<', NIL }, { 2, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, NIL, ':', { 'POPUP', 'MENU' } }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'AT', '<', NIL }, { 4, -1, ',', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 6, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'SYSMENU', NIL, NIL }, { 1001, 1, NIL, '<', { 'OF', 'WINDOW', 'DIALOG' } }, { 2, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 3, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ENDSYSMENU' , , .T. } ) - aAdd( aCommRules, { 'PRINT' , { { 1001, 1, NIL, '<', { 'NAME', 'TITLE', 'DOC', 'FROM USER', 'PREVIEW', 'TO' } }, { 1002, 1, NIL, ':', { 'NAME', 'TITLE', 'DOC' } }, { 1003, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'FROM USER' } }, { 5, 1, NIL, ':', { 'PREVIEW' } }, { 6, 2, NIL, ':', { 'MODAL' } }, { 7, 1, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'PRINTER' , { { 1001, 1, NIL, '<', { 'NAME', 'DOC', 'FROM USER', 'PREVIEW', 'TO' } }, { 1002, 1, NIL, ':', { 'NAME', 'DOC' } }, { 1003, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'FROM USER' } }, { 5, 1, NIL, ':', { 'PREVIEW' } }, { 6, 2, NIL, ':', { 'MODAL' } }, { 7, 1, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'PAGE' , , .T. } ) - aAdd( aCommRules, { 'ENDPAGE' , , .T. } ) - aAdd( aCommRules, { 'ENDPRINT' , , .T. } ) - aAdd( aCommRules, { 'ENDPRINTER' , , .T. } ) - aAdd( aCommRules, { 'DLL' , { { 1001, 1, NIL, ':', { 'STATIC' } }, { 2, 0, 'FUNCTION', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1003, 1, NIL, '<', { ',', ')' } }, { 1004, -1, 'AS', '<', NIL }, { 1005, 1, ',', '<', NIL }, { 1006, -1, 'AS', '<', NIL }, { 0, 0, ')', NIL, NIL }, { 7, 0, 'AS', '<', NIL }, { 1008, 1, NIL, ':', { 'PASCAL' } }, { 1009, 1, 'FROM', '<', NIL }, { 10, 0, 'LIB', '*', NIL } } , .T. } ) - aAdd( aCommRules, { 'DLL32' , { { 1001, 1, NIL, ':', { 'STATIC' } }, { 2, 0, 'FUNCTION', '<', NIL }, { 0, 0, '(', NIL, NIL }, { 1003, 1, NIL, '<', { ',', ')' } }, { 1004, -1, 'AS', '<', NIL }, { 1005, 1, ',', '<', NIL }, { 1006, -1, 'AS', '<', NIL }, { 0, 0, ')', NIL, NIL }, { 7, 0, 'AS', '<', NIL }, { 1008, 1, NIL, ':', { 'PASCAL' } }, { 1009, 1, 'FROM', '<', NIL }, { 10, 0, 'LIB', '*', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'FOLDER', NIL, NIL }, { 1003, 1, NIL, '<', { 'OF', 'WINDOW', 'DIALOG', 'PROMPT', 'PROMPTS', 'ITEMS', 'DIALOG', 'DIALOGS', 'PAGE', 'PAGES', 'PIXEL', 'DESIGN', 'COLOR', 'COLORS', 'OPTION', 'SIZE', 'MESSAGE', 'ADJUST', 'FONT' } }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL }, { 1006, 1, NIL, ':', { 'PROMPT', 'PROMPTS', 'ITEMS' } }, { 1007, -1, NIL, 'A', NIL }, { 8, 1, NIL, ':', { 'DIALOG', 'DIALOGS', 'PAGE', 'PAGES' } }, { 9, -1, NIL, '<', NIL }, { 1010, 2, ',', '<', NIL }, { 11, 1, NIL, ':', { 'PIXEL' } }, { 12, 1, NIL, ':', { 'DESIGN' } }, { 13, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 14, -1, NIL, '<', NIL }, { 15, 2, ',', '<', NIL }, { 16, 1, 'OPTION', '<', NIL }, { 17, 1, 'SIZE', '<', NIL }, { 18, -1, ',', '<', NIL }, { 19, 1, 'MESSAGE', '<', NIL }, { 20, 1, NIL, ':', { 'ADJUST' } }, { 21, 1, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'FOLDER', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'PROMPT', 'PROMPTS', 'ITEMS', 'DIALOG', 'DIALOGS', 'PAGE', 'PAGES', 'COLOR', 'COLORS', 'OPTION', 'ON', 'ADJUST' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 4, -1, NIL, '<', NIL }, { 1005, 1, NIL, ':', { 'PROMPT', 'PROMPTS', 'ITEMS' } }, { 1006, -1, NIL, 'A', NIL }, { 7, 1, NIL, ':', { 'DIALOG', 'DIALOGS', 'PAGE', 'PAGES' } }, { 8, -1, NIL, '<', NIL }, { 1009, 2, ',', '<', NIL }, { 10, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 11, -1, NIL, '<', NIL }, { 12, 2, ',', '<', NIL }, { 13, 1, 'OPTION', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1014, -1, 'CHANGE', '<', NIL }, { 15, 1, NIL, ':', { 'ADJUST' } } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'TABS', NIL, NIL }, { 1003, 1, NIL, '<', { 'OF', 'WINDOW', 'DIALOG', 'PROMPT', 'PROMPTS', 'ITEMS', 'ACTION', 'EXECUTE', 'ON CHANGE', 'PIXEL', 'DESIGN', 'COLOR', 'COLORS', 'OPTION', 'SIZE', 'MESSAGE' } }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL }, { 1006, 1, NIL, ':', { 'PROMPT', 'PROMPTS', 'ITEMS' } }, { 1007, -1, NIL, 'A', NIL }, { 1008, 1, NIL, ':', { 'ACTION', 'EXECUTE', 'ON CHANGE' } }, { 1009, -1, NIL, '<', NIL }, { 10, 1, NIL, ':', { 'PIXEL' } }, { 11, 1, NIL, ':', { 'DESIGN' } }, { 12, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 13, -1, NIL, '<', NIL }, { 14, 2, ',', '<', NIL }, { 15, 1, 'OPTION', '<', NIL }, { 16, 1, 'SIZE', '<', NIL }, { 17, -1, ',', '<', NIL }, { 18, 1, 'MESSAGE', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'TABS', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'PROMPT', 'PROMPTS', 'ITEMS', 'ACTION', 'EXECUTE', 'COLOR', 'COLORS', 'OPTION' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 4, -1, NIL, '<', NIL }, { 1005, 1, NIL, ':', { 'PROMPT', 'PROMPTS', 'ITEMS' } }, { 1006, -1, NIL, 'A', NIL }, { 1007, 1, NIL, ':', { 'ACTION', 'EXECUTE' } }, { 1008, -1, NIL, '<', NIL }, { 9, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 10, -1, NIL, '<', NIL }, { 11, 2, ',', '<', NIL }, { 12, 1, 'OPTION', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 1, 0, 'PAGES', '<', NIL }, { 2, 1, 'ID', '<', NIL }, { 3, 1, 'OF', '<', NIL }, { 1004, 1, 'DIALOGS', 'A', NIL }, { 5, 1, 'OPTION', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1006, -1, 'CHANGE', '<', NIL }, { 7, 1, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'ODBC', '<', NIL }, { 2, 1, 'NAME', '<', NIL }, { 3, 1, 'USER', '<', NIL }, { 4, 1, 'PASSWORD', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ODBC' , { { 1, 0, NIL, '<', NIL }, { 2, 0, NIL, ':', { 'SQL', 'EXECUTE' } }, { 3, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, NIL, ':', { 'DDE', 'LINK' } }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'SERVICE', '<', NIL }, { 4, 1, 'TOPIC', '<', NIL }, { 5, 1, 'ITEM', '<', NIL }, { 1006, 1, 'ACTION', '<', NIL }, { 1007, 1, 'VALID', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, NIL, ':', { 'DDE', 'LINK' } }, { 2, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'VIDEO', NIL, NIL }, { 1001, 1, NIL, '<', { 'FILE', 'FILENAME', 'DISK', 'OF', 'WINDOW', 'DIALOG' } }, { 2, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'VIDEO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'PLAY' , { { 1, 0, 'VIDEO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'VIDEO', NIL, NIL }, { 1003, 1, NIL, '<', { 'SIZE', 'FILE', 'FILENAME', 'DISK', 'OF', 'WINDOW', 'DIALOG', 'NOBORDER' } }, { 4, 1, 'SIZE', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 9, -1, NIL, '<', NIL }, { 10, 1, NIL, ':', { 'NOBORDER' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'VIDEO', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'WHEN', 'VALID', 'FILE', 'FILENAME', 'DISK' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, 'WHEN', '<', NIL }, { 6, 1, 'VALID', '<', NIL }, { 7, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 8, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'TREE' , { { 1001, 1, NIL, '<', { 'BITMAPS' } }, { 2, 1, 'BITMAPS', '<', NIL }, { 3, -1, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'TREEITEM' , { { 1001, 1, NIL, '<', NIL }, { 0, -1, 'PROMPT', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'RESOURCE', '<', NIL }, { 4, 2, ',', '<', NIL }, { 5, 1, 'FILENAME', '<', NIL }, { 6, 2, ',', '<', NIL }, { 7, 1, NIL, ':', { 'OPENED', 'OPEN' } } } , .T. } ) - aAdd( aCommRules, { 'ENDTREE' , , .T. } ) - aAdd( aCommRules, { 'SET' , { { 1, 0, 'MULTIPLE', ':', { 'ON', 'OFF' } } } , .T. } ) - aAdd( aCommRules, { 'DEFAULT' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ':=', '<', NIL }, { 1003, 1, ',', '<', NIL }, { 1004, -1, ':=', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DO' , , .T. } ) - aAdd( aCommRules, { 'UNTIL' , { { 1, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'IDLEACTION', NIL, NIL }, { 1, 0, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DATABASE' , { { 1, 0, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'RELEASE' , { { 1, 0, NIL, '<', NIL }, { 2, 0, NIL, '<', NIL }, { 1003, 1, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'BRUSH', NIL, NIL }, { 1001, 1, NIL, '<', { 'STYLE', 'COLOR', 'FILE', 'FILENAME', 'DISK', 'RESOURCE', 'NAME', 'RESNAME' } }, { 1002, 1, 'STYLE', '<', NIL }, { 3, 1, 'COLOR', '<', NIL }, { 4, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'RESOURCE', 'NAME', 'RESNAME' } }, { 7, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'BRUSH', NIL, NIL }, { 1, 1, 'OF', '<', NIL }, { 2, 1, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'PEN', '<', NIL }, { 2, 1, 'STYLE', '<', NIL }, { 3, 1, 'WIDTH', '<', NIL }, { 4, 1, 'COLOR', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 6, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'PEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'BUTTONBAR', NIL, NIL }, { 1001, 1, NIL, '<', { 'SIZE', 'BUTTONSIZE', 'SIZEBUTTON', '_3D', '3D', '3DLOOK', '_3DLOOK', 'TOP', 'LEFT', 'RIGHT', 'BOTTOM', 'FLOAT', 'OF', 'WINDOW', 'DIALOG', 'CURSOR' } }, { 2, 1, NIL, ':', { 'SIZE', 'BUTTONSIZE', 'SIZEBUTTON' } }, { 3, -1, NIL, '<', NIL }, { 4, -1, ',', '<', NIL }, { 5, 1, NIL, ':', { '_3D', '3D', '3DLOOK', '_3DLOOK' } }, { 1006, 1, NIL, ':', { 'TOP', 'LEFT', 'RIGHT', 'BOTTOM', 'FLOAT' } }, { 7, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 8, -1, NIL, '<', NIL }, { 9, 1, 'CURSOR', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'BUTTONBAR', NIL, NIL }, { 1003, 1, NIL, '<', { 'SIZE', 'BUTTONSIZE', '3D', '3DLOOK', '_3DLOOK', 'TOP', 'LEFT', 'RIGHT', 'BOTTOM', 'FLOAT', 'OF', 'WINDOW', 'DIALOG', 'CURSOR' } }, { 4, 1, 'SIZE', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 1, 'BUTTONSIZE', '<', NIL }, { 7, -1, ',', '<', NIL }, { 8, 1, NIL, ':', { '3D', '3DLOOK', '_3DLOOK' } }, { 1009, 1, NIL, ':', { 'TOP', 'LEFT', 'RIGHT', 'BOTTOM', 'FLOAT' } }, { 10, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 11, -1, NIL, '<', NIL }, { 12, 1, 'CURSOR', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'BUTTON', NIL, NIL }, { 1001, 1, NIL, '<', { 'OF', 'BUTTONBAR', 'NAME', 'RESNAME', 'RESOURCE', 'FILE', 'FILENAME', 'DISK', 'ACTION', 'EXEC', 'GROUP', 'MESSAGE', 'ADJUST', 'WHEN', 'TOOLTIP', 'PRESSED', 'ON', 'AT', 'PROMPT', 'FONT', 'NOBORDER', 'FLAT', 'MENU' } }, { 2, 1, NIL, ':', { 'OF', 'BUTTONBAR' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 5, -1, NIL, '<', NIL }, { 6, 2, ',', '<', NIL }, { 1007, 3, ',', '<', NIL }, { 8, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 1011, 3, ',', '<', NIL }, { 1012, 1, NIL, ':', { 'ACTION', 'EXEC' } }, { 1013, -1, NIL, 'A', NIL }, { 14, 1, NIL, ':', { 'GROUP' } }, { 15, 1, 'MESSAGE', '<', NIL }, { 16, 1, NIL, ':', { 'ADJUST' } }, { 17, 1, 'WHEN', '<', NIL }, { 18, 1, 'TOOLTIP', '<', NIL }, { 19, 1, NIL, ':', { 'PRESSED' } }, { 1000, 1, 'ON', NIL, NIL }, { 1020, -1, 'DROP', '<', NIL }, { 21, 1, 'AT', '<', NIL }, { 22, 1, 'PROMPT', '<', NIL }, { 23, 1, 'FONT', '<', NIL }, { 1024, 1, NIL, ':', { 'NOBORDER', 'FLAT' } }, { 1025, 1, 'MENU', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'BTNBMP', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'BUTTONBAR', 'NAME', 'RESNAME', 'RESOURCE', 'FILE', 'FILENAME', 'DISK', 'ACTION', 'EXEC', 'ON CLICK', 'MESSAGE', 'ADJUST', 'WHEN', 'UPDATE', 'TOOLTIP', 'PROMPT', 'FONT', 'NOBORDER' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'OF', 'BUTTONBAR' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 6, -1, NIL, '<', NIL }, { 7, 2, ',', '<', NIL }, { 1008, 3, ',', '<', NIL }, { 9, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 10, -1, NIL, '<', NIL }, { 11, 2, ',', '<', NIL }, { 1012, 3, ',', '<', NIL }, { 1013, 1, NIL, ':', { 'ACTION', 'EXEC', 'ON CLICK' } }, { 1014, -1, NIL, 'A', NIL }, { 15, 1, 'MESSAGE', '<', NIL }, { 16, 1, NIL, ':', { 'ADJUST' } }, { 17, 1, 'WHEN', '<', NIL }, { 18, 1, NIL, ':', { 'UPDATE' } }, { 19, 1, 'TOOLTIP', '<', NIL }, { 20, 1, 'PROMPT', '<', NIL }, { 21, 1, 'FONT', '<', NIL }, { 1022, 1, NIL, ':', { 'NOBORDER' } } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'BTNBMP', NIL, NIL }, { 1003, 1, NIL, '<', { 'NAME', 'RESNAME', 'RESOURCE', 'FILE', 'FILENAME', 'DISK', 'SIZE', 'ACTION', 'OF', 'WINDOW', 'DIALOG', 'MESSAGE', 'WHEN', 'ADJUST', 'UPDATE', 'PROMPT', 'FONT', 'NOBORDER' } }, { 4, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 5, -1, NIL, '<', NIL }, { 6, 2, ',', '<', NIL }, { 1007, 3, ',', '<', NIL }, { 8, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 1011, 3, ',', '<', NIL }, { 12, 1, 'SIZE', '<', NIL }, { 13, -1, ',', '<', NIL }, { 1014, 1, 'ACTION', 'A', NIL }, { 15, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 16, -1, NIL, '<', NIL }, { 17, 1, 'MESSAGE', '<', NIL }, { 18, 1, 'WHEN', '<', NIL }, { 19, 1, NIL, ':', { 'ADJUST' } }, { 20, 1, NIL, ':', { 'UPDATE' } }, { 21, 1, 'PROMPT', '<', NIL }, { 22, 1, 'FONT', '<', NIL }, { 23, 1, NIL, ':', { 'NOBORDER' } } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'ICON', NIL, NIL }, { 1003, 1, NIL, '<', { 'NAME', 'RESOURCE', 'RESNAME', 'FILE', 'FILENAME', 'DISK', 'BORDER', 'ON', 'OF', 'WINDOW', 'DIALOG', 'UPDATE', 'WHEN', 'COLOR' } }, { 4, 1, NIL, ':', { 'NAME', 'RESOURCE', 'RESNAME' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'BORDER' } }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'CLICK', '<', NIL }, { 10, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 11, -1, NIL, '<', NIL }, { 12, 1, NIL, ':', { 'UPDATE' } }, { 13, 1, 'WHEN', '<', NIL }, { 14, 1, 'COLOR', '<', NIL }, { 15, 2, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 1001, 1, 'ICON', '<', NIL }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'NAME', 'RESOURCE', 'RESNAME' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 6, -1, NIL, '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 7, -1, 'CLICK', '<', NIL }, { 8, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 9, -1, NIL, '<', NIL }, { 10, 1, NIL, ':', { 'UPDATE' } }, { 11, 1, 'WHEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'ICON', '<', NIL }, { 2, 1, NIL, ':', { 'NAME', 'RESOURCE', 'RESNAME' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, 'WHEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'BUTTON', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'PROMPT', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 5, 1, 'SIZE', '<', NIL }, { 6, -1, ',', '<', NIL }, { 7, 1, 'ACTION', '<', NIL }, { 8, 1, NIL, ':', { 'DEFAULT' } }, { 9, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 10, -1, NIL, '<', NIL }, { 11, 1, NIL, ':', { 'HELP', 'HELPID', 'HELP ID' } }, { 12, -1, NIL, '<', NIL }, { 13, 1, 'FONT', '<', NIL }, { 14, 1, NIL, ':', { 'PIXEL' } }, { 15, 1, NIL, ':', { 'DESIGN' } }, { 16, 1, 'MESSAGE', '<', NIL }, { 17, 1, NIL, ':', { 'UPDATE' } }, { 18, 1, 'WHEN', '<', NIL }, { 19, 1, 'VALID', '<', NIL }, { 20, 1, NIL, ':', { 'CANCEL' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'BUTTON', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'ACTION', 'HELP', 'HELPID', 'HELP ID', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'PROMPT', 'CANCEL' } }, { 2, 1, 'ID', '<', NIL }, { 3, 2, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 4, -2, NIL, '<', NIL }, { 1005, 1, 'ACTION', 'A', NIL }, { 6, 1, NIL, ':', { 'HELP', 'HELPID', 'HELP ID' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, 'MESSAGE', '<', NIL }, { 9, 1, NIL, ':', { 'UPDATE' } }, { 10, 1, 'WHEN', '<', NIL }, { 11, 1, 'VALID', '<', NIL }, { 12, 1, 'PROMPT', '<', NIL }, { 13, 1, NIL, ':', { 'CANCEL' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'CHECKBOX', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'ID', '<', NIL }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 7, -1, NIL, '<', NIL }, { 1008, 1, NIL, ':', { 'ON CLICK', 'ON CHANGE' } }, { 1009, -1, NIL, '<', NIL }, { 10, 1, 'VALID', '<', NIL }, { 11, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 12, -1, NIL, '<', NIL }, { 13, 2, ',', '<', NIL }, { 14, 1, 'MESSAGE', '<', NIL }, { 15, 1, NIL, ':', { 'UPDATE' } }, { 16, 1, 'WHEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'CHECKBOX', NIL, NIL }, { 1003, 1, NIL, '<', { 'PROMPT', 'OF', 'WINDOW', 'DIALOG', 'SIZE', 'HELPID', 'HELP ID', 'FONT', 'ON CLICK', 'ON CHANGE', 'VALID', 'COLOR', 'COLORS', 'DESIGN', 'PIXEL', 'MESSAGE', 'UPDATE', 'WHEN' } }, { 0, -1, 'VAR', NIL, NIL }, { 1004, 1, NIL, '<', { 'PROMPT', 'OF', 'WINDOW', 'DIALOG', 'SIZE', 'HELPID', 'HELP ID', 'FONT', 'ON CLICK', 'ON CHANGE', 'VALID', 'COLOR', 'COLORS', 'DESIGN', 'PIXEL', 'MESSAGE', 'UPDATE', 'WHEN' } }, { 5, 1, 'PROMPT', '<', NIL }, { 6, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, 'SIZE', '<', NIL }, { 9, -1, ',', '<', NIL }, { 10, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 11, -1, NIL, '<', NIL }, { 12, 1, 'FONT', '<', NIL }, { 1013, 1, NIL, ':', { 'ON CLICK', 'ON CHANGE' } }, { 1014, -1, NIL, '<', NIL }, { 15, 1, 'VALID', '<', NIL }, { 16, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 17, -1, NIL, '<', NIL }, { 18, 2, ',', '<', NIL }, { 19, 1, NIL, ':', { 'DESIGN' } }, { 20, 1, NIL, ':', { 'PIXEL' } }, { 21, 1, 'MESSAGE', '<', NIL }, { 22, 1, NIL, ':', { 'UPDATE' } }, { 23, 1, 'WHEN', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'COMBOBOX', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'PROMPTS', 'ITEMS' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, 'SIZE', '<', NIL }, { 8, -1, ',', '<', NIL }, { 9, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 10, -1, NIL, '<', NIL }, { 11, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 12, -1, NIL, '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1013, -1, 'CHANGE', '<', NIL }, { 14, 1, 'VALID', '<', NIL }, { 15, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 16, -1, NIL, '<', NIL }, { 17, 2, ',', '<', NIL }, { 18, 1, NIL, ':', { 'PIXEL' } }, { 19, 1, 'FONT', '<', NIL }, { 20, 1, NIL, ':', { 'UPDATE' } }, { 21, 1, 'MESSAGE', '<', NIL }, { 22, 1, 'WHEN', '<', NIL }, { 23, 1, NIL, ':', { 'DESIGN' } }, { 24, 1, 'BITMAPS', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1025, -1, 'DRAWITEM', '<', NIL }, { 26, 1, 'STYLE', '<', NIL }, { 27, 1, 'PICTURE', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'EDIT', NIL, NIL }, { 1028, -1, 'CHANGE', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'COMBOBOX', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, NIL, ':', { 'PROMPTS', 'ITEMS' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, 'ID', '<', NIL }, { 6, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 9, -1, NIL, '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1010, -1, 'CHANGE', '<', NIL }, { 11, 1, 'VALID', '<', NIL }, { 12, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 13, -1, NIL, '<', NIL }, { 14, 2, ',', '<', NIL }, { 15, 1, NIL, ':', { 'UPDATE' } }, { 16, 1, 'MESSAGE', '<', NIL }, { 17, 1, 'WHEN', '<', NIL }, { 18, 1, 'BITMAPS', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1019, -1, 'DRAWITEM', '<', NIL }, { 20, 1, 'STYLE', '<', NIL }, { 21, 1, 'PICTURE', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'EDIT', NIL, NIL }, { 1022, -1, 'CHANGE', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'LISTBOX', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, NIL, ':', { 'PROMPTS', 'ITEMS' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'FILES', 'FILESPEC' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, 'ID', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1008, -1, 'CHANGE', 'A', NIL }, { 0, 1, 'ON', NIL, NIL }, { 0, 2, 'LEFT', NIL, NIL }, { 9, -1, 'DBLCLICK', '<', NIL }, { 10, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 11, -1, NIL, '<', NIL }, { 12, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 13, -1, NIL, '<', NIL }, { 14, 1, 'VALID', '<', NIL }, { 15, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 16, -1, NIL, '<', NIL }, { 17, 2, ',', '<', NIL }, { 18, 1, 'MESSAGE', '<', NIL }, { 19, 1, NIL, ':', { 'UPDATE' } }, { 20, 1, 'WHEN', '<', NIL }, { 21, 1, 'BITMAPS', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1022, -1, 'DRAWITEM', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'LISTBOX', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'PROMPTS', 'ITEMS' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, 'SIZE', '<', NIL }, { 8, -1, ',', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 0, 2, 'LEFT', NIL, NIL }, { 10, -1, 'DBLCLICK', '<', NIL }, { 11, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 12, -1, NIL, '<', NIL }, { 13, 1, 'VALID', '<', NIL }, { 14, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 15, -1, NIL, '<', NIL }, { 16, 2, ',', '<', NIL }, { 17, 1, NIL, ':', { 'PIXEL' } }, { 18, 1, NIL, ':', { 'DESIGN' } }, { 19, 1, 'FONT', '<', NIL }, { 20, 1, 'MESSAGE', '<', NIL }, { 21, 1, NIL, ':', { 'UPDATE' } }, { 22, 1, 'WHEN', '<', NIL }, { 23, 1, 'BITMAPS', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1024, -1, 'DRAWITEM', '<', NIL }, { 25, 1, NIL, ':', { 'MULTI', 'MULTIPLE', 'MULTISEL' } }, { 26, 1, NIL, ':', { 'SORT' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'LISTBOX', NIL, NIL }, { 1001, 1, NIL, '<', { 'FIELDS' } }, { 0, 0, 'FIELDS', NIL, NIL }, { 1002, 1, NIL, 'A', { 'ALIAS', 'ID', 'OF', 'DIALOG', 'FIELDSIZES', 'SIZES', 'COLSIZES', 'HEAD', 'HEADER', 'HEADERS', 'TITLE', 'SELECT', 'ON', 'ON', 'ON', 'ON', 'FONT', 'CURSOR', 'COLOR', 'COLORS', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'ACTION' } }, { 3, 1, 'ALIAS', '<', NIL }, { 4, 1, 'ID', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'DIALOG' } }, { 6, -1, NIL, '<', NIL }, { 1007, 1, NIL, ':', { 'FIELDSIZES', 'SIZES', 'COLSIZES' } }, { 1008, -1, NIL, 'A', NIL }, { 1009, 1, NIL, ':', { 'HEAD', 'HEADER', 'HEADERS', 'TITLE' } }, { 1010, -1, NIL, 'A', NIL }, { 11, 1, 'SELECT', '<', NIL }, { 12, -1, 'FOR', '<', NIL }, { 13, 2, 'TO', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1014, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 1000, 2, 'LEFT', NIL, NIL }, { 1015, -1, 'CLICK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 1000, 2, 'LEFT', NIL, NIL }, { 1016, -1, 'DBLCLICK', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'RIGHT', NIL, NIL }, { 1017, -1, 'CLICK', '<', NIL }, { 18, 1, 'FONT', '<', NIL }, { 19, 1, 'CURSOR', '<', NIL }, { 20, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 21, -1, NIL, '<', NIL }, { 22, 2, ',', '<', NIL }, { 23, 1, 'MESSAGE', '<', NIL }, { 24, 1, NIL, ':', { 'UPDATE' } }, { 25, 1, 'WHEN', '<', NIL }, { 26, 1, 'VALID', '<', NIL }, { 1027, 1, 'ACTION', 'A', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'LISTBOX', NIL, NIL }, { 1003, 1, NIL, '<', { 'FIELDS' } }, { 0, 0, 'FIELDS', NIL, NIL }, { 1004, 1, NIL, 'A', { 'ALIAS', 'FIELDSIZES', 'SIZES', 'COLSIZES', 'HEAD', 'HEADER', 'HEADERS', 'TITLE', 'SIZE', 'OF', 'DIALOG', 'SELECT', 'ON', 'ON', 'ON', 'ON', 'FONT', 'CURSOR', 'COLOR', 'COLORS', 'MESSAGE', 'UPDATE', 'PIXEL', 'WHEN', 'DESIGN', 'VALID', 'ACTION' } }, { 5, 1, 'ALIAS', '<', NIL }, { 1006, 1, NIL, ':', { 'FIELDSIZES', 'SIZES', 'COLSIZES' } }, { 1007, -1, NIL, 'A', NIL }, { 1008, 1, NIL, ':', { 'HEAD', 'HEADER', 'HEADERS', 'TITLE' } }, { 1009, -1, NIL, 'A', NIL }, { 10, 1, 'SIZE', '<', NIL }, { 11, -1, ',', '<', NIL }, { 12, 1, NIL, ':', { 'OF', 'DIALOG' } }, { 13, -1, NIL, '<', NIL }, { 14, 1, 'SELECT', '<', NIL }, { 15, -1, 'FOR', '<', NIL }, { 16, 2, 'TO', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1017, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 0, 2, 'LEFT', NIL, NIL }, { 18, -1, 'CLICK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 1000, 2, 'LEFT', NIL, NIL }, { 1019, -1, 'DBLCLICK', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'RIGHT', NIL, NIL }, { 1020, -1, 'CLICK', '<', NIL }, { 21, 1, 'FONT', '<', NIL }, { 22, 1, 'CURSOR', '<', NIL }, { 23, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 24, -1, NIL, '<', NIL }, { 25, 2, ',', '<', NIL }, { 26, 1, 'MESSAGE', '<', NIL }, { 27, 1, NIL, ':', { 'UPDATE' } }, { 28, 1, NIL, ':', { 'PIXEL' } }, { 29, 1, 'WHEN', '<', NIL }, { 30, 1, NIL, ':', { 'DESIGN' } }, { 31, 1, 'VALID', '<', NIL }, { 1032, 1, 'ACTION', 'A', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'RADIO', NIL, NIL }, { 1003, 1, NIL, '<', { 'PROMPT', 'ITEMS', 'OF', 'WINDOW', 'DIALOG', 'HELPID', 'HELP ID', 'ON CLICK', 'ON CHANGE', 'COLOR', 'MESSAGE', 'UPDATE', 'WHEN', 'SIZE', 'VALID', 'DESIGN', '3D', '_3D', 'PIXEL' } }, { 0, -1, 'VAR', NIL, NIL }, { 1004, 1, NIL, '<', { 'PROMPT', 'ITEMS', 'OF', 'WINDOW', 'DIALOG', 'HELPID', 'HELP ID', 'ON CLICK', 'ON CHANGE', 'COLOR', 'MESSAGE', 'UPDATE', 'WHEN', 'SIZE', 'VALID', 'DESIGN', '3D', '_3D', 'PIXEL' } }, { 5, 1, NIL, ':', { 'PROMPT', 'ITEMS' } }, { 6, -1, NIL, 'A', NIL }, { 7, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 8, -1, NIL, '<', NIL }, { 1009, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 1010, -1, NIL, 'A', NIL }, { 11, 1, NIL, ':', { 'ON CLICK', 'ON CHANGE' } }, { 12, -1, NIL, '<', NIL }, { 13, 1, 'COLOR', '<', NIL }, { 14, 2, ',', '<', NIL }, { 15, 1, 'MESSAGE', '<', NIL }, { 16, 1, NIL, ':', { 'UPDATE' } }, { 17, 1, 'WHEN', '<', NIL }, { 18, 1, 'SIZE', '<', NIL }, { 19, -1, ',', '<', NIL }, { 20, 1, 'VALID', '<', NIL }, { 21, 1, NIL, ':', { 'DESIGN' } }, { 22, 1, NIL, ':', { '3D', '_3D' } }, { 23, 1, NIL, ':', { 'PIXEL' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'RADIO', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'HELPID', 'HELP ID', 'ON CHANGE', 'ON CLICK', 'COLOR', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID' } }, { 0, -1, 'VAR', NIL, NIL }, { 1002, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'HELPID', 'HELP ID', 'ON CHANGE', 'ON CLICK', 'COLOR', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID' } }, { 3, 1, 'ID', 'A', NIL }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL }, { 1006, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 1007, -1, NIL, 'A', NIL }, { 8, 1, NIL, ':', { 'ON CHANGE', 'ON CLICK' } }, { 9, -1, NIL, '<', NIL }, { 10, 1, 'COLOR', '<', NIL }, { 11, 2, ',', '<', NIL }, { 12, 1, 'MESSAGE', '<', NIL }, { 13, 1, NIL, ':', { 'UPDATE' } }, { 14, 1, 'WHEN', '<', NIL }, { 15, 1, 'VALID', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'BITMAP', NIL, NIL }, { 1003, 1, NIL, '<', { 'NAME', 'RESNAME', 'RESOURCE', 'FILENAME', 'FILE', 'DISK', 'NOBORDER', 'NO BORDER', 'SIZE', 'OF', 'WINDOW', 'DIALOG', 'ON CLICK', 'ON LEFT CLICK', 'ON RIGHT CLICK', 'SCROLL', 'ADJUST', 'CURSOR', 'PIXEL', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'DESIGN' } }, { 4, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'FILENAME', 'FILE', 'DISK' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'NOBORDER', 'NO BORDER' } }, { 9, 1, 'SIZE', '<', NIL }, { 10, -1, ',', '<', NIL }, { 11, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 12, -1, NIL, '<', NIL }, { 1013, 1, NIL, ':', { 'ON CLICK', 'ON LEFT CLICK' } }, { 1014, -1, NIL, '<', NIL }, { 1015, 1, NIL, ':', { 'ON RIGHT CLICK' } }, { 1016, -1, NIL, '<', NIL }, { 17, 1, NIL, ':', { 'SCROLL' } }, { 18, 1, NIL, ':', { 'ADJUST' } }, { 19, 1, 'CURSOR', '<', NIL }, { 20, 1, NIL, ':', { 'PIXEL' } }, { 21, 1, 'MESSAGE', '<', NIL }, { 22, 1, NIL, ':', { 'UPDATE' } }, { 23, 1, 'WHEN', '<', NIL }, { 24, 1, 'VALID', '<', NIL }, { 25, 1, NIL, ':', { 'DESIGN' } } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'IMAGE', NIL, NIL }, { 1003, 1, NIL, '<', { 'NAME', 'RESNAME', 'RESOURCE', 'FILENAME', 'FILE', 'DISK', 'NOBORDER', 'NO BORDER', 'SIZE', 'OF', 'WINDOW', 'DIALOG', 'ON CLICK', 'ON LEFT CLICK', 'ON RIGHT CLICK', 'SCROLL', 'ADJUST', 'CURSOR', 'PIXEL', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'DESIGN' } }, { 4, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'FILENAME', 'FILE', 'DISK' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'NOBORDER', 'NO BORDER' } }, { 9, 1, 'SIZE', '<', NIL }, { 10, -1, ',', '<', NIL }, { 11, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 12, -1, NIL, '<', NIL }, { 1013, 1, NIL, ':', { 'ON CLICK', 'ON LEFT CLICK' } }, { 1014, -1, NIL, '<', NIL }, { 1015, 1, NIL, ':', { 'ON RIGHT CLICK' } }, { 1016, -1, NIL, '<', NIL }, { 17, 1, NIL, ':', { 'SCROLL' } }, { 18, 1, NIL, ':', { 'ADJUST' } }, { 19, 1, 'CURSOR', '<', NIL }, { 20, 1, NIL, ':', { 'PIXEL' } }, { 21, 1, 'MESSAGE', '<', NIL }, { 22, 1, NIL, ':', { 'UPDATE' } }, { 23, 1, 'WHEN', '<', NIL }, { 24, 1, 'VALID', '<', NIL }, { 25, 1, NIL, ':', { 'DESIGN' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'BITMAP', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'WINDOW', 'DIALOG', 'NAME', 'RESNAME', 'RESOURCE', 'FILE', 'FILENAME', 'DISK', 'ON CLICK', 'ON LEFT CLICK', 'ON RIGHT CLICK', 'SCROLL', 'ADJUST', 'CURSOR', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'TRANSPAREN' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'NAME', 'RESNAME', 'RESOURCE' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 8, -1, NIL, '<', NIL }, { 1009, 1, NIL, ':', { 'ON CLICK', 'ON LEFT CLICK' } }, { 1010, -1, NIL, '<', NIL }, { 1011, 1, NIL, ':', { 'ON RIGHT CLICK' } }, { 1012, -1, NIL, '<', NIL }, { 13, 1, NIL, ':', { 'SCROLL' } }, { 14, 1, NIL, ':', { 'ADJUST' } }, { 15, 1, 'CURSOR', '<', NIL }, { 16, 1, 'MESSAGE', '<', NIL }, { 17, 1, NIL, ':', { 'UPDATE' } }, { 18, 1, 'WHEN', '<', NIL }, { 19, 1, 'VALID', '<', NIL }, { 20, 1, NIL, ':', { 'TRANSPAREN' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'BITMAP', NIL, NIL }, { 1001, 1, NIL, '<', { 'RESOURCE', 'NAME', 'RESNAME', 'FILE', 'FILENAME', 'DISK', 'OF', 'WINDOW', 'DIALOG' } }, { 2, 1, NIL, ':', { 'RESOURCE', 'NAME', 'RESNAME' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 7, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'SAY', NIL, NIL }, { 1001, 1, NIL, '<', { 'PROMPT', 'VAR', 'PICTURE', 'ID', 'OF', 'WINDOW', 'DIALOG', 'COLOR', 'COLORS', 'UPDATE', 'FONT' } }, { 2, 1, NIL, ':', { 'PROMPT', 'VAR' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, 'PICTURE', '<', NIL }, { 5, 1, 'ID', '<', NIL }, { 6, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 11, 1, NIL, ':', { 'UPDATE' } }, { 12, 1, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'SAY', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 4, -1, NIL, ':', { 'PROMPT', 'VAR' } }, { 5, 0, NIL, '<', NIL }, { 1006, 1, 'PICTURE', '<', NIL }, { 1007, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 1008, -1, NIL, '<', NIL }, { 9, 1, 'FONT', '<', NIL }, { 10, 1, NIL, ':', { 'CENTERED', 'CENTER' } }, { 11, 1, NIL, ':', { 'RIGHT' } }, { 12, 1, NIL, ':', { 'BORDER' } }, { 13, 1, NIL, ':', { 'PIXEL', 'PIXELS' } }, { 14, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 15, -1, NIL, '<', NIL }, { 16, 2, ',', '<', NIL }, { 17, 1, 'SIZE', '<', NIL }, { 18, -1, ',', '<', NIL }, { 19, 1, NIL, ':', { 'DESIGN' } }, { 20, 1, NIL, ':', { 'UPDATE' } }, { 21, 1, NIL, ':', { 'SHADED', 'SHADOW' } }, { 22, 1, NIL, ':', { 'BOX' } }, { 23, 1, NIL, ':', { 'RAISED' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'GET', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, NIL, ':', { 'MULTILINE', 'MEMO', 'TEXT' } }, { 4, 1, 'ID', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 8, -1, NIL, '<', NIL }, { 9, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 10, -1, NIL, '<', NIL }, { 11, 2, ',', '<', NIL }, { 12, 1, 'FONT', '<', NIL }, { 13, 1, 'CURSOR', '<', NIL }, { 14, 1, 'MESSAGE', '<', NIL }, { 15, 1, NIL, ':', { 'UPDATE' } }, { 16, 1, 'WHEN', '<', NIL }, { 17, 1, NIL, ':', { 'READONLY', 'NO MODIFY' } }, { 18, 1, 'VALID', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1019, -1, 'CHANGE', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'GET', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'ID', '<', NIL }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, 'VALID', '<', NIL }, { 9, 1, 'PICTURE', '<', NIL }, { 10, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 11, -1, NIL, '<', NIL }, { 12, 2, ',', '<', NIL }, { 13, 1, 'FONT', '<', NIL }, { 14, 1, 'CURSOR', '<', NIL }, { 15, 1, 'MESSAGE', '<', NIL }, { 16, 1, NIL, ':', { 'UPDATE' } }, { 17, 1, 'WHEN', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1018, -1, 'CHANGE', '<', NIL }, { 19, 1, NIL, ':', { 'READONLY', 'NO MODIFY' } }, { 20, 1, NIL, ':', { 'SPINNER' } }, { 0, 2, 'ON', NIL, NIL }, { 21, -2, 'UP', '<', NIL }, { 0, 2, 'ON', NIL, NIL }, { 22, -2, 'DOWN', '<', NIL }, { 23, 2, 'MIN', '<', NIL }, { 24, 2, 'MAX', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'GET', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 1005, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 1006, -1, NIL, '<', NIL }, { 7, 1, NIL, ':', { 'MULTILINE', 'MEMO', 'TEXT' } }, { 8, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 11, 1, 'SIZE', '<', NIL }, { 12, -1, ',', '<', NIL }, { 13, 1, 'FONT', '<', NIL }, { 14, 1, NIL, ':', { 'HSCROLL' } }, { 15, 1, 'CURSOR', '<', NIL }, { 16, 1, NIL, ':', { 'PIXEL' } }, { 17, 1, 'MESSAGE', '<', NIL }, { 18, 1, NIL, ':', { 'UPDATE' } }, { 19, 1, 'WHEN', '<', NIL }, { 20, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 21, 1, NIL, ':', { 'RIGHT' } }, { 22, 1, NIL, ':', { 'READONLY', 'NO MODIFY' } }, { 23, 1, 'VALID', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1024, -1, 'CHANGE', '<', NIL }, { 25, 1, NIL, ':', { 'DESIGN' } }, { 1026, 1, NIL, ':', { 'NO BORDER', 'NOBORDER' } }, { 1027, 1, NIL, ':', { 'NO VSCROLL' } } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'GET', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 1005, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 1006, -1, NIL, '<', NIL }, { 7, 1, 'PICTURE', '<', NIL }, { 8, 1, 'VALID', '<', NIL }, { 9, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 10, -1, NIL, '<', NIL }, { 11, 2, ',', '<', NIL }, { 12, 1, 'SIZE', '<', NIL }, { 13, -1, ',', '<', NIL }, { 14, 1, 'FONT', '<', NIL }, { 15, 1, NIL, ':', { 'DESIGN' } }, { 16, 1, 'CURSOR', '<', NIL }, { 17, 1, NIL, ':', { 'PIXEL' } }, { 18, 1, 'MESSAGE', '<', NIL }, { 19, 1, NIL, ':', { 'UPDATE' } }, { 20, 1, 'WHEN', '<', NIL }, { 21, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 22, 1, NIL, ':', { 'RIGHT' } }, { 1000, 1, 'ON', NIL, NIL }, { 1023, -1, 'CHANGE', '<', NIL }, { 24, 1, NIL, ':', { 'READONLY', 'NO MODIFY' } }, { 25, 1, NIL, ':', { 'PASSWORD' } }, { 1026, 1, NIL, ':', { 'NO BORDER', 'NOBORDER' } }, { 27, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 28, -1, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'GET', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 1005, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 1006, -1, NIL, '<', NIL }, { 7, 1, 'PICTURE', '<', NIL }, { 8, 1, 'VALID', '<', NIL }, { 9, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 10, -1, NIL, '<', NIL }, { 11, 2, ',', '<', NIL }, { 12, 1, 'SIZE', '<', NIL }, { 13, -1, ',', '<', NIL }, { 14, 1, 'FONT', '<', NIL }, { 15, 1, NIL, ':', { 'DESIGN' } }, { 16, 1, 'CURSOR', '<', NIL }, { 17, 1, NIL, ':', { 'PIXEL' } }, { 18, 1, 'MESSAGE', '<', NIL }, { 19, 1, NIL, ':', { 'UPDATE' } }, { 20, 1, 'WHEN', '<', NIL }, { 21, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 22, 1, NIL, ':', { 'RIGHT' } }, { 1000, 1, 'ON', NIL, NIL }, { 1023, -1, 'CHANGE', '<', NIL }, { 24, 1, NIL, ':', { 'READONLY', 'NO MODIFY' } }, { 25, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 26, -1, NIL, '<', NIL }, { 27, 1, NIL, ':', { 'SPINNER' } }, { 0, 2, 'ON', NIL, NIL }, { 28, -2, 'UP', '<', NIL }, { 0, 2, 'ON', NIL, NIL }, { 29, -2, 'DOWN', '<', NIL }, { 30, 2, 'MIN', '<', NIL }, { 31, 2, 'MAX', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'SCROLLBAR', NIL, NIL }, { 1003, 1, NIL, '<', { 'HORIZONTAL', 'VERTICAL', 'RANGE', 'PAGESTEP', 'SIZE', 'UP', 'ON UP', 'DOWN', 'ON DOWN', 'PAGEUP', 'ON PAGEUP', 'PAGEDOWN', 'ON PAGEDOWN', 'ON THUMBPOS', 'PIXEL', 'COLOR', 'COLORS', 'OF', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID', 'DESIGN' } }, { 4, 1, NIL, ':', { 'HORIZONTAL' } }, { 1005, 1, NIL, ':', { 'VERTICAL' } }, { 6, 1, 'RANGE', '<', NIL }, { 7, -1, ',', '<', NIL }, { 8, 1, 'PAGESTEP', '<', NIL }, { 9, 1, 'SIZE', '<', NIL }, { 10, -1, ',', '<', NIL }, { 1011, 1, NIL, ':', { 'UP', 'ON UP' } }, { 1012, -1, NIL, '<', NIL }, { 1013, 1, NIL, ':', { 'DOWN', 'ON DOWN' } }, { 1014, -1, NIL, '<', NIL }, { 1015, 1, NIL, ':', { 'PAGEUP', 'ON PAGEUP' } }, { 1016, -1, NIL, '<', NIL }, { 1017, 1, NIL, ':', { 'PAGEDOWN', 'ON PAGEDOWN' } }, { 1018, -1, NIL, '<', NIL }, { 1019, 1, NIL, ':', { 'ON THUMBPOS' } }, { 1020, -1, NIL, '<', NIL }, { 1021, 1, NIL, ':', { 'PIXEL' } }, { 22, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 23, -1, NIL, '<', NIL }, { 24, 2, ',', '<', NIL }, { 25, 1, 'OF', '<', NIL }, { 26, 1, 'MESSAGE', '<', NIL }, { 27, 1, NIL, ':', { 'UPDATE' } }, { 28, 1, 'WHEN', '<', NIL }, { 29, 1, 'VALID', '<', NIL }, { 30, 1, NIL, ':', { 'DESIGN' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'SCROLLBAR', NIL, NIL }, { 1001, 1, NIL, '<', { 'HORIZONTAL', 'VERTICAL', 'RANGE', 'PAGESTEP', 'UP', 'ON UP', 'DOWN', 'ON DOWN', 'PAGEUP', 'ON PAGEUP', 'PAGEDOWN', 'ON PAGEDOWN', 'ON THUMBPOS', 'COLOR', 'COLORS', 'OF', 'WINDOW', 'DIALOG', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID' } }, { 2, 1, NIL, ':', { 'HORIZONTAL' } }, { 1003, 1, NIL, ':', { 'VERTICAL' } }, { 4, 1, 'RANGE', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 1, 'PAGESTEP', '<', NIL }, { 1007, 1, NIL, ':', { 'UP', 'ON UP' } }, { 1008, -1, NIL, '<', NIL }, { 1009, 1, NIL, ':', { 'DOWN', 'ON DOWN' } }, { 1010, -1, NIL, '<', NIL }, { 1011, 1, NIL, ':', { 'PAGEUP', 'ON PAGEUP' } }, { 1012, -1, NIL, '<', NIL }, { 1013, 1, NIL, ':', { 'PAGEDOWN', 'ON PAGEDOWN' } }, { 1014, -1, NIL, '<', NIL }, { 1015, 1, NIL, ':', { 'ON THUMBPOS' } }, { 1016, -1, NIL, '<', NIL }, { 17, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 18, -1, NIL, '<', NIL }, { 19, 2, ',', '<', NIL }, { 20, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 21, -1, NIL, '<', NIL }, { 22, 1, 'MESSAGE', '<', NIL }, { 23, 1, NIL, ':', { 'UPDATE' } }, { 24, 1, 'WHEN', '<', NIL }, { 25, 1, 'VALID', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'SCROLLBAR', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'RANGE', 'PAGESTEP', 'UP', 'ON UP', 'ON LEFT', 'DOWN', 'ON DOWN', 'ON RIGHT', 'PAGEUP', 'ON PAGEUP', 'PAGEDOWN', 'ON PAGEDOWN', 'ON THUMBPOS', 'COLOR', 'COLORS', 'OF', 'MESSAGE', 'UPDATE', 'WHEN', 'VALID' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, 'RANGE', '<', NIL }, { 4, -1, ',', '<', NIL }, { 5, 1, 'PAGESTEP', '<', NIL }, { 1006, 1, NIL, ':', { 'UP', 'ON UP', 'ON LEFT' } }, { 1007, -1, NIL, '<', NIL }, { 1008, 1, NIL, ':', { 'DOWN', 'ON DOWN', 'ON RIGHT' } }, { 1009, -1, NIL, '<', NIL }, { 1010, 1, NIL, ':', { 'PAGEUP', 'ON PAGEUP' } }, { 1011, -1, NIL, '<', NIL }, { 1012, 1, NIL, ':', { 'PAGEDOWN', 'ON PAGEDOWN' } }, { 1013, -1, NIL, '<', NIL }, { 1014, 1, NIL, ':', { 'ON THUMBPOS' } }, { 1015, -1, NIL, '<', NIL }, { 16, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 17, -1, NIL, '<', NIL }, { 18, 2, ',', '<', NIL }, { 19, 1, 'OF', '<', NIL }, { 20, 1, 'MESSAGE', '<', NIL }, { 21, 1, NIL, ':', { 'UPDATE' } }, { 22, 1, 'WHEN', '<', NIL }, { 23, 1, 'VALID', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 1003, 1, 'GROUP', '<', NIL }, { 4, 0, 'TO', '<', NIL }, { 5, 0, ',', '<', NIL }, { 6, 1, NIL, ':', { 'LABEL', 'PROMPT' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, 'OF', '<', NIL }, { 9, 1, 'COLOR', '<', NIL }, { 10, 2, ',', '<', NIL }, { 11, 1, NIL, ':', { 'PIXEL' } }, { 1012, 1, NIL, ':', { 'DESIGN' } }, { 1013, 1, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'GROUP', NIL, NIL }, { 1001, 1, NIL, '<', { 'LABEL', 'PROMPT', 'ID', 'OF', 'WINDOW', 'DIALOG', 'COLOR', 'FONT' } }, { 2, 1, NIL, ':', { 'LABEL', 'PROMPT' } }, { 3, -1, NIL, '<', NIL }, { 4, 1, 'ID', '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, 'COLOR', '<', NIL }, { 8, 2, ',', '<', NIL }, { 1009, 1, 'FONT', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'METER', NIL, NIL }, { 1003, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 4, 0, NIL, '<', NIL }, { 5, 1, 'TOTAL', '<', NIL }, { 6, 1, 'SIZE', '<', NIL }, { 7, -1, ',', '<', NIL }, { 8, 1, 'OF', '<', NIL }, { 9, 1, NIL, ':', { 'UPDATE' } }, { 10, 1, NIL, ':', { 'PIXEL' } }, { 11, 1, 'FONT', '<', NIL }, { 12, 1, 'PROMPT', '<', NIL }, { 13, 1, NIL, ':', { 'NOPERCENTAGE' } }, { 14, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 15, -1, NIL, '<', NIL }, { 16, -1, ',', '<', NIL }, { 17, 1, 'BARCOLOR', '<', NIL }, { 18, -1, ',', '<', NIL }, { 19, 1, NIL, ':', { 'DESIGN' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'METER', NIL, NIL }, { 1001, 1, NIL, '<', NIL }, { 0, -1, 'VAR', NIL, NIL }, { 2, 0, NIL, '<', NIL }, { 3, 1, 'TOTAL', '<', NIL }, { 4, 1, 'ID', '<', NIL }, { 5, 1, 'OF', '<', NIL }, { 6, 1, NIL, ':', { 'UPDATE' } }, { 7, 1, 'FONT', '<', NIL }, { 8, 1, 'PROMPT', '<', NIL }, { 9, 1, NIL, ':', { 'NOPERCENTAGE' } }, { 10, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 11, -1, NIL, '<', NIL }, { 12, -1, ',', '<', NIL }, { 13, 1, 'BARCOLOR', '<', NIL }, { 14, -1, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'METAFILE', NIL, NIL }, { 1003, 1, NIL, '<', { 'FILE', 'FILENAME', 'DISK', 'OF', 'WINDOW', 'DIALOG', 'SIZE', 'COLOR', 'COLORS' } }, { 4, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 7, -1, NIL, '<', NIL }, { 8, 1, 'SIZE', '<', NIL }, { 9, -1, ',', '<', NIL }, { 10, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 11, -1, NIL, '<', NIL }, { 12, 2, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'METAFILE', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'FILE', 'FILENAME', 'DISK', 'OF', 'WINDOW', 'DIALOG', 'COLOR', 'COLORS' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 4, -1, NIL, '<', NIL }, { 5, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 6, -1, NIL, '<', NIL }, { 7, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 8, -1, NIL, '<', NIL }, { 9, 2, ',', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'CURSOR', '<', NIL }, { 2, 1, NIL, ':', { 'RESOURCE', 'RESNAME', 'NAME' } }, { 3, -1, NIL, '<', NIL }, { 1004, 1, NIL, ':', { 'ARROW', 'ICON', 'SIZENS', 'SIZEWE', 'SIZENWSE', 'SIZENESW', 'IBEAM', 'CROSS', 'SIZE', 'UPARROW', 'WAIT', 'HAND' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'WINDOW', NIL, NIL }, { 1001, 1, NIL, '<', { 'MDICHILD', 'FROM', 'TITLE', 'BRUSH', 'CURSOR', 'MENU', 'MENUINFO', 'ICON', 'OF', 'VSCROLL', 'VERTICAL SCROLL', 'HSCROLL', 'HORIZONTAL SCROLL', 'COLOR', 'COLORS', 'PIXEL', 'STYLE', 'HELPID', 'HELP ID', 'BORDER', 'NOSYSMENU', 'NO SYSMENU', 'NOCAPTION', 'NO CAPTION', 'NO TITLE', 'NOICONIZE', 'NOMINIMIZE', 'NOZOOM', 'NO ZOOM', 'NOMAXIMIZE', 'NO MAXIMIZE' } }, { 0, 1, 'MDICHILD', NIL, NIL }, { 2, 1, 'FROM', '<', NIL }, { 3, -1, ',', '<', NIL }, { 4, -1, 'TO', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 1, 'TITLE', '<', NIL }, { 7, 1, 'BRUSH', '<', NIL }, { 8, 1, 'CURSOR', '<', NIL }, { 9, 1, 'MENU', '<', NIL }, { 1010, 1, 'MENUINFO', '<', NIL }, { 11, 1, 'ICON', '<', NIL }, { 12, 1, 'OF', '<', NIL }, { 13, 1, NIL, ':', { 'VSCROLL', 'VERTICAL SCROLL' } }, { 14, 1, NIL, ':', { 'HSCROLL', 'HORIZONTAL SCROLL' } }, { 15, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 16, -1, NIL, '<', NIL }, { 17, 2, ',', '<', NIL }, { 18, 1, NIL, ':', { 'PIXEL' } }, { 19, 1, 'STYLE', '<', NIL }, { 20, 1, NIL, ':', { 'HELPID', 'HELP ID' } }, { 21, -1, NIL, '<', NIL }, { 1022, 1, 'BORDER', ':', { 'NONE', 'SINGLE' } }, { 23, 1, NIL, ':', { 'NOSYSMENU', 'NO SYSMENU' } }, { 24, 1, NIL, ':', { 'NOCAPTION', 'NO CAPTION', 'NO TITLE' } }, { 25, 1, NIL, ':', { 'NOICONIZE', 'NOMINIMIZE' } }, { 26, 1, NIL, ':', { 'NOZOOM', 'NO ZOOM', 'NOMAXIMIZE', 'NO MAXIMIZE' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'WINDOW', '<', NIL }, { 2, 1, 'FROM', '<', NIL }, { 3, -1, ',', '<', NIL }, { 4, -1, 'TO', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 1, 'TITLE', '<', NIL }, { 7, 1, 'STYLE', '<', NIL }, { 8, 1, 'MENU', '<', NIL }, { 9, 1, 'BRUSH', '<', NIL }, { 10, 1, 'ICON', '<', NIL }, { 0, 1, 'MDI', NIL, NIL }, { 11, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 12, -1, NIL, '<', NIL }, { 13, 2, ',', '<', NIL }, { 1014, 1, NIL, ':', { 'VSCROLL', 'VERTICAL SCROLL' } }, { 1015, 1, NIL, ':', { 'HSCROLL', 'HORIZONTAL SCROLL' } }, { 16, 1, 'MENUINFO', '<', NIL }, { 1000, 2, 'BORDER', NIL, NIL }, { 1017, -1, NIL, ':', { 'NONE', 'SINGLE' } }, { 18, 1, 'OF', '<', NIL }, { 1019, 1, NIL, ':', { 'PIXEL' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'WINDOW', '<', NIL }, { 2, 1, 'FROM', '<', NIL }, { 3, -1, ',', '<', NIL }, { 4, -1, 'TO', '<', NIL }, { 5, -1, ',', '<', NIL }, { 6, 2, NIL, ':', { 'PIXEL' } }, { 7, 1, 'TITLE', '<', NIL }, { 8, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 11, 1, 'OF', '<', NIL }, { 12, 1, 'BRUSH', '<', NIL }, { 13, 1, 'CURSOR', '<', NIL }, { 14, 1, 'ICON', '<', NIL }, { 15, 1, 'MENU', '<', NIL }, { 16, 1, 'STYLE', '<', NIL }, { 1017, 1, 'BORDER', ':', { 'NONE', 'SINGLE' } }, { 18, 1, NIL, ':', { 'NOSYSMENU', 'NO SYSMENU' } }, { 19, 1, NIL, ':', { 'NOCAPTION', 'NO CAPTION', 'NO TITLE' } }, { 20, 1, NIL, ':', { 'NOICONIZE', 'NOMINIMIZE' } }, { 21, 1, NIL, ':', { 'NOZOOM', 'NO ZOOM', 'NOMAXIMIZE', 'NO MAXIMIZE' } }, { 1022, 1, NIL, ':', { 'VSCROLL', 'VERTICAL SCROLL' } }, { 1023, 1, NIL, ':', { 'HSCROLL', 'HORIZONTAL SCROLL' } } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'WINDOW', '<', NIL }, { 1002, 1, NIL, ':', { 'ICONIZED', 'NORMAL', 'MAXIMIZED' } }, { 0, 1, 'ON', NIL, NIL }, { 1000, 2, 'LEFT', NIL, NIL }, { 1003, -1, 'CLICK', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1004, -1, 'LBUTTONUP', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1000, -1, 'RIGHT', NIL, NIL }, { 1005, -1, 'CLICK', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1006, -1, 'MOVE', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1007, -1, 'RESIZE', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1008, -1, 'PAINT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1009, -1, 'KEYDOWN', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1010, -1, 'INIT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1011, -1, 'UP', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1012, -1, 'DOWN', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1013, -1, 'PAGEUP', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1014, -1, 'PAGEDOWN', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1015, -1, 'LEFT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1016, -1, 'RIGHT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1017, -1, 'PAGELEFT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1018, -1, 'PAGERIGHT', '<', NIL }, { 1000, 1, 'ON', NIL, NIL }, { 1019, -1, 'DROPFILES', '<', NIL }, { 1020, 1, 'VALID', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SET' , { { 0, 0, 'MESSAGE', NIL, NIL }, { 1, 1, 'OF', '<', NIL }, { 2, 1, 'TO', '<', NIL }, { 3, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 4, 1, NIL, ':', { 'CLOCK', 'TIME' } }, { 5, 1, NIL, ':', { 'DATE' } }, { 6, 1, NIL, ':', { 'KEYBOARD' } }, { 7, 1, 'FONT', '<', NIL }, { 8, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 9, -1, NIL, '<', NIL }, { 10, 2, ',', '<', NIL }, { 1011, 1, NIL, ':', { 'NO INSET', 'NOINSET' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, NIL, ':', { 'MESSAGE', 'MESSAGE BAR', 'MSGBAR' } }, { 1002, 1, NIL, '<', { 'OF', 'PROMPT', 'TITLE', 'CENTER', 'CENTERED', 'CLOCK', 'TIME', 'DATE', 'KEYBOARD', 'FONT', 'COLOR', 'COLORS', 'NO INSET', 'NOINSET' } }, { 3, 1, 'OF', '<', NIL }, { 4, 1, NIL, ':', { 'PROMPT', 'TITLE' } }, { 5, -1, NIL, '<', NIL }, { 6, 1, NIL, ':', { 'CENTER', 'CENTERED' } }, { 7, 1, NIL, ':', { 'CLOCK', 'TIME' } }, { 8, 1, NIL, ':', { 'DATE' } }, { 9, 1, NIL, ':', { 'KEYBOARD' } }, { 10, 1, 'FONT', '<', NIL }, { 11, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 12, -1, NIL, '<', NIL }, { 13, 2, ',', '<', NIL }, { 1014, 1, NIL, ':', { 'NO INSET', 'NOINSET' } } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'MSGITEM', NIL, NIL }, { 1001, 1, NIL, '<', { 'OF', 'PROMPT', 'SIZE', 'FONT', 'COLOR', 'COLORS', 'BITMAP', 'BITMAPS', 'ACTION', 'TOOLTIP' } }, { 2, 1, 'OF', '<', NIL }, { 3, 1, 'PROMPT', '<', NIL }, { 4, 1, 'SIZE', '<', NIL }, { 5, 1, 'FONT', '<', NIL }, { 6, 1, NIL, ':', { 'COLOR', 'COLORS' } }, { 7, -1, NIL, '<', NIL }, { 8, 2, ',', '<', NIL }, { 1009, 1, NIL, ':', { 'BITMAP', 'BITMAPS' } }, { 1010, -1, NIL, '<', NIL }, { 1011, 2, ',', '<', NIL }, { 1012, 1, 'ACTION', '<', NIL }, { 1013, 1, 'TOOLTIP', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'CLIPBOARD', '<', NIL }, { 1002, 1, 'FORMAT', ':', { 'TEXT', 'OEMTEXT', 'BITMAP', 'DIF' } }, { 3, 1, 'OF', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'CLIPBOARD', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'TIMER', NIL, NIL }, { 1001, 1, NIL, '<', { 'INTERVAL', 'ACTION', 'OF', 'WINDOW', 'DIALOG' } }, { 2, 1, 'INTERVAL', '<', NIL }, { 1003, 1, 'ACTION', 'A', NIL }, { 4, 1, NIL, ':', { 'OF', 'WINDOW', 'DIALOG' } }, { 5, -1, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'TIMER', '<', NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 0, 0, 'VBX', NIL, NIL }, { 1003, 1, NIL, '<', { 'OF', 'SIZE', 'FILE', 'FILENAME', 'DISK', 'CLASS', 'ON', 'WHEN', 'VALID', 'PIXEL', 'DESIGN' } }, { 4, 1, 'OF', '<', NIL }, { 5, 1, 'SIZE', '<', NIL }, { 6, -1, ',', '<', NIL }, { 7, 1, NIL, ':', { 'FILE', 'FILENAME', 'DISK' } }, { 8, -1, NIL, '<', NIL }, { 9, 1, 'CLASS', '<', NIL }, { 1010, 1, 'ON', '<', NIL }, { 1011, -1, NIL, '<', NIL }, { 1012, 2, 'ON', '<', NIL }, { 1013, -2, NIL, '<', NIL }, { 1014, 1, 'WHEN', '<', NIL }, { 1015, 1, 'VALID', '<', NIL }, { 16, 1, NIL, ':', { 'PIXEL' } }, { 17, 1, NIL, ':', { 'DESIGN' } } } , .T. } ) - aAdd( aCommRules, { 'REDEFINE' , { { 0, 0, 'VBX', NIL, NIL }, { 1001, 1, NIL, '<', { 'ID', 'OF', 'COLOR', 'ON' } }, { 2, 1, 'ID', '<', NIL }, { 3, 1, 'OF', '<', NIL }, { 4, 1, 'COLOR', '<', NIL }, { 5, 2, ',', '<', NIL }, { 1006, 1, 'ON', '<', NIL }, { 1007, -1, NIL, '<', NIL }, { 1008, 2, 'ON', '<', NIL }, { 1009, -2, NIL, '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'OBJECT' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'AS', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'ENDOBJECT' , , .T. } ) - aAdd( aCommRules, { 'CLS' , , .T. } ) - aAdd( aCommRules, { 'CLEAR' , { { 0, 0, 'SCREEN', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { '?' , { { 1001, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { '??' , { { 1001, 1, NIL, 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'READ' , , .T. } ) - aAdd( aCommRules, { 'SAVE' , { { 0, 0, 'SCREEN', NIL, NIL }, { 1, 1, 'TO', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'RESTORE' , { { 0, 0, 'SCREEN', NIL, NIL }, { 1, 1, 'FROM', '<', NIL } } , .T. } ) - aAdd( aCommRules, { 'SAVESCREEN' , { { 1, 0, '(', '*', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { 'RESTSCREEN' , { { 1, 0, '(', '*', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PROMPT', '*', NIL } } , .T. } ) - aAdd( aCommRules, { 'MENU' , { { 1, 0, 'TO', '<', NIL } } , .T. } ) - - RETURN .T. - - //--------------------------------------------------------------// - STATIC FUNCTION InitFWResults() - - /* Defines Results*/ - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '"(c) FiveTech, 1993-2001"' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '"FWH Pre-release - April 2001"' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '"FiveWin for Harbour"' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WBrowse' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '10' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '11' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '13' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '14' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8388608' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32768' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8421376' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8388736' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32896' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12632256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'CLR_HGRAY' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8421504' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16711680' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '65280' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16776960' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '255' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16711935' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '65535' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16777215' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '10' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '11' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '992' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '13' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '17' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '18' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '19' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '20' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '27' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '33' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '34' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '35' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '36' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '37' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '38' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '39' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '40' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '41' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '42' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '43' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '44' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '45' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '46' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '47' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '96' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '97' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '98' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '99' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '100' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '101' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '102' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '103' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '104' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '105' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '106' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '107' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '108' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '109' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '110' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '111' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '112' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '113' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '114' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '115' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '116' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '117' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '118' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '119' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '120' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '121' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '122' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '123' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '124' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '125' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '126' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '127' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '129' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '130' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '131' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '132' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '133' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '134' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '135' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '144' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '145' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1025' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1026' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1027' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1028' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1029' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1030' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1031' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1032' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1033' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1034' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1035' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1036' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1037' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1038' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1039' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1040' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1041' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1042' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, 'WM_USER+1043' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16384' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '32' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '64' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4096' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8192' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2147483648' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1073741824' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '67108864' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '33554432' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '268435456' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '134217728' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '536870912' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16777216' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '12582912' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8388608' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4194304' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2097152' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1048576' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '524288' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '262144' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '131072' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '65536' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '131072' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '65536' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2048' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4096' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '15' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '17' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '18' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '21' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '22' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '23' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '26' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '27' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '29' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '30' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '42' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '65' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '135' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '258' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '273' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '512' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '513' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '514' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '516' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '517' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '257' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '272' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '275' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '276' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '277' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '783' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '784' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '785' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4096' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '10485763' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '16' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '64' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '128' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2048' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '2' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '3' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '4' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '9' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '11' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '240' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '15000' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, 'Chr(13)+Chr(10)' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '{' }, { 0, '|' }, { 0, 'u' }, { 0, '|' }, { 0, 'If' }, { 0, '(' }, { 0, 'PCount' }, { 0, '(' }, { 0, ')' }, { 0, '==' }, { 0, '0' }, { 0, ',' }, { 0, 1 }, { 0, ',' }, { 0, 1 }, { 0, ':=' }, { 0, 'u' }, { 0, ')' }, { 0, '}' } }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1} , { NIL } } ) - - /* Translates Results*/ - aAdd( aTransResults, { { { 0, '( ' }, { 0, 1 }, { 0, ' + ( ' }, { 0, 2 }, { 0, ' * 256 ) + ( ' }, { 0, 3 }, { 0, ' * 65536 ) )' } }, { -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aTransResults, { { { 0, 1 } }, { 1} , { NIL } } ) - aAdd( aTransResults, { { { 0, 'DLL' } }, { -1} , } ) - aAdd( aTransResults, { { { 0, '{ |bp1,bp2,bp3,bp4,bp5,bp6,bp7,bp8,bp9,bp10| ' }, { 0, 1 }, { 0, ' }' } }, { -1, 1, -1} , { NIL } } ) - - /* Commands Results*/ - aAdd( aCommResults, { , , { NIL, NIL } } ) - aAdd( aCommResults, { { { 2, 'SetResources( ' }, { 2, 2 }, { 2, ' ); ' }, { 0, ' SetResources( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'FreeResources()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'SetHelpFile( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'HelpSetTopic( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := LoadValue( ' }, { 0, 4 }, { 0, ', ' }, { 2, 'Upper(' }, { 2, 2 }, { 2, ')' }, { 0, ', ' }, { 0, 1 }, { 0, ' )' } }, { 1, -1, 1, -1, -1, 4, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' = TDialog():New( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Activate( ' }, { 0, 1 }, { 0, ':bLClicked ' }, { 6, ':= {|nRow,nCol,nFlags|' }, { 6, 6 }, { 6, '}' }, { 0, ', ' }, { 0, 1 }, { 0, ':bMoved ' }, { 8, ':= ' }, { 8, 8 }, { 0, ', ' }, { 0, 1 }, { 0, ':bPainted ' }, { 9, ':= {|hDC,cPS|' }, { 9, 9 }, { 9, '}' }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 5, '{|Self|' }, { 5, 5 }, { 5, '}' }, { 0, ', ' }, { 3, '! ' }, { 3, 3 }, { 0, ', ' }, { 7, '{|Self|' }, { 7, 7 }, { 7, '}' }, { 0, ', ' }, { 0, 1 }, { 0, ':bRClicked ' }, { 10, ':= {|nRow,nCol,nFlags|' }, { 10, 10 }, { 10, '}' }, { 0, ', ' }, { 4, '{|Self|' }, { 4, 4 }, { 4, '}' }, { 0, ' )' } }, { 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 5, -1, 1, -1, -1, 1, -1, -1, 6, -1, -1, 1, -1, -1, -1, 6, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TFont():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 5, 5 }, { 0, ', ' }, { 6, 6 }, { 0, ',' }, { 11, 11 }, { 0, ',,' }, { 9, 9 }, { 0, ', ' }, { 7, 7 }, { 0, ', ' }, { 8, 8 }, { 0, ',,,,,, ' }, { 10, 10 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Activate()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':DeActivate()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':SetFont( ' }, { 0, 2 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TIni():New( ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := ' }, { 0, 6 }, { 0, ':Get( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 1 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 5 }, { 0, ':Set( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { , , } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' MenuBegin( ' }, { 0, 2 }, { 0, ' )' } }, { 1, -1, -1, 6, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' MenuAddItem( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 5, 'Upper(' }, { 5, 5 }, { 5, ') == "ENABLED" ' }, { 0, ', ' }, { 10, '{|oMenuItem|' }, { 10, 10 }, { 10, '}' }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 19, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 6, -1, -1, 4, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TMru():New( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 8, '{|cMruItem,oMenuItem|' }, { 8, 8 }, { 8, '}' }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ':=' }, { 0, ' MenuAddItem()' } }, { 1, -1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'MenuEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TMenu():ReDefine( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TMenuItem():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 10, 'Upper(' }, { 10, 10 }, { 10, ') == "ENABLED" ' }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 19, 19 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 6, -1, -1, 4, -1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TMenu():New( .f., ' }, { 0, 2 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':SetMenu( ' }, { 0, 2 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 2 }, { 0, ':Activate( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' :=' }, { 0, ' MenuBegin( .f., .t., ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'MenuEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' PrintBegin( ' }, { 3, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' PrintBegin( ' }, { 3, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PageBegin()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PageEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PrintEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'PrintEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 1, 1 }, { 0, ' function ' }, { 0, 2 }, { 0, '( ' }, { 3, 'NOREF(' }, { 3, 3 }, { 3, ')' }, { 5, ' ,NOREF(' }, { 5, 5 }, { 5, ')' }, { 0, ' ) ; local hDLL := If( ValType( ' }, { 0, 10 }, { 0, ' ) == "N", ' }, { 0, 10 }, { 0, ', LoadLibrary( ' }, { 0, 10 }, { 0, ' ) ) ; local uResult ; local cFarProc ; if Abs( hDLL ) > 32 ; cFarProc = GetProcAddress( hDLL, If( ' }, { 9, ' Empty( ' }, { 9, 9 }, { 9, ' ) == ' }, { 0, ' .t., ' }, { 0, 2 }, { 0, ', ' }, { 0, 9 }, { 0, ' ), ' }, { 8, 8 }, { 0, ', ' }, { 0, 7 }, { 4, ' ,' }, { 4, 4 }, { 6, ' ,' }, { 6, 6 }, { 0, ' ) ; uResult = CallDLL( cFarProc ' }, { 3, ' ,' }, { 3, 3 }, { 5, ' ,' }, { 5, 5 }, { 0, ' ) ; If( ValType( ' }, { 0, 10 }, { 0, ' ) == "N",, FreeLibrary( hDLL ) ) ; else ; MsgAlert( "Error code: " + LTrim( Str( hDLL ) ) + " loading " + ' }, { 0, 10 }, { 0, ' ) ; end ; return uResult' } }, { 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 4, -1, -1, 1, -1, -1, 4, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 0, ' function ' }, { 0, 2 }, { 0, '( ' }, { 3, 'NOREF(' }, { 3, 3 }, { 3, ')' }, { 5, ' ,NOREF(' }, { 5, 5 }, { 5, ')' }, { 0, ' ) ; local hDLL := If( ValType( ' }, { 0, 10 }, { 0, ' ) == "N", ' }, { 0, 10 }, { 0, ', LoadLib32( ' }, { 0, 10 }, { 0, ' ) ) ; local uResult ; local cFarProc ; if Abs( hDLL ) <= 32 ; MsgAlert( "Error code: " + LTrim( Str( hDLL ) ) + " loading " + ' }, { 0, 10 }, { 0, ' ) ; else ; cFarProc = GetProc32( hDLL, If( ' }, { 9, ' Empty( ' }, { 9, 9 }, { 9, ' ) == ' }, { 0, ' .t., ' }, { 0, 2 }, { 0, ', ' }, { 0, 9 }, { 0, ' ), ' }, { 8, 8 }, { 0, ', ' }, { 0, 7 }, { 4, ' ,' }, { 4, 4 }, { 6, ' ,' }, { 6, 6 }, { 0, ' ) ; uResult = CallDLL32( cFarProc ' }, { 3, ' ,' }, { 3, 3 }, { 5, ' ,' }, { 5, 5 }, { 0, ' ) ; If( ValType( ' }, { 0, 10 }, { 0, ' ) == "N",, FreeLib32( hDLL ) ) ; end ; return uResult' } }, { 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 4, -1, 1, -1, -1, 1, -1, -1, 4, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TFolder():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 7, '{' }, { 7, 7 }, { 7, '}' }, { 0, ', {' }, { 0, 9 }, { 10, ' ,' }, { 10, 10 }, { 0, '}, ' }, { 0, 5 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TFolder():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 6, '{' }, { 6, 6 }, { 6, '}' }, { 0, ', { ' }, { 0, 8 }, { 9, ' ,' }, { 9, 9 }, { 0, ' }, ' }, { 0, 4 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 14, '{|nOption,nOldOption| ' }, { 14, 14 }, { 14, '}' }, { 0, ', ' }, { 0, 15 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TTabs():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 7, '{' }, { 7, 7 }, { 7, '}' }, { 0, ', ' }, { 9, '{|nOption|' }, { 9, 9 }, { 9, '}' }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TTabs():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 6, '{' }, { 6, 6 }, { 6, '}' }, { 0, ', ' }, { 8, '{|nOption|' }, { 8, 8 }, { 8, '}' }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TPages():Redefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 4, '{' }, { 4, 4 }, { 4, '}' }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 6, 'bSETGET(' }, { 6, 6 }, { 6, ') ' }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TOdbc():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Execute( ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 2 }, { 0, ' := TDde():New( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 6, 6 }, { 0, ', ' }, { 7, 7 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 2 }, { 0, ':Activate()' } }, { 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 0, ' := TMci():New( "avivideo", ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':lOpen() ; ' }, { 0, 1 }, { 0, ':Play()' } }, { 1, -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':lOpen() ; ' }, { 0, 1 }, { 0, ':Play()' } }, { 1, -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TVideo():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TVideo():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ':=' }, { 0, ' TreeBegin( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' :=' }, { 0, ' _TreeItem( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'TreeEnd()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'SetMultiple( Upper(' }, { 0, 1 }, { 0, ') == "ON" )' } }, { -1, 4, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := If( ' }, { 0, 1 }, { 0, ' == nil, ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ' ) ; ' }, { 3, 3 }, { 3, ' := If( ' }, { 3, 3 }, { 3, ' == nil, ' }, { 3, 4 }, { 3, ', ' }, { 3, 3 }, { 3, ' ); ' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'while .t.' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'if ' }, { 0, 1 }, { 0, '; exit; end; end' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'SetIdleAction( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 5, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TDataBase():New()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 2 }, { 0, ':End() ; ' }, { 0, 2 }, { 0, ' := nil ' }, { 3, ' ; ' }, { 3, 3 }, { 3, ':End() ; ' }, { 3, 3 }, { 3, ' := nil ' } }, { 1, -1, 1, -1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBrush():New( ' }, { 2, ' Upper(' }, { 2, 2 }, { 2, ') ' }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { 1, -1, -1, -1, 4, -1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':SetBrush( ' }, { 0, 2 }, { 0, ' )' } }, { 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TPen():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Activate()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBar():New( ' }, { 0, 8 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 6, 'Upper(' }, { 6, 6 }, { 6, ') ' }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, -1, 4, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TBar():NewAt( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 9, 'Upper(' }, { 9, 9 }, { 9, ') ' }, { 0, ', ' }, { 0, 12 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, -1, 4, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBtnBmp():NewBar( ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 13, '{|This|' }, { 13, 13 }, { 13, '}' }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 20, '{||' }, { 20, 20 }, { 20, '}' }, { 0, ', ' }, { 13, "'" }, { 13, 13 }, { 13, "'" }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 7, 7 }, { 0, ', ' }, { 11, 11 }, { 0, ', ' }, { 24, '!' }, { 24, 24 }, { 0, ', ' }, { 25, 25 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 1, -1, 6, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBtnBmp():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 14, '{|Self|' }, { 14, 14 }, { 14, '}' }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 8, 8 }, { 0, ', ' }, { 12, 12 }, { 0, ', ' }, { 22, '!' }, { 22, 22 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 6, -1, 5, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TBtnBmp():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 14, '{|Self|' }, { 14, 14 }, { 14, '}' }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 7, 7 }, { 0, ', ' }, { 11, 11 }, { 0, ', !' }, { 0, 23 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 5, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TIcon():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 1, -1, 6, -1, 5, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TIcon():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 11 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 6, -1, 1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TIcon():New( ,, ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TButton():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 1, -1, 6, -1, 5, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TButton():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 5, '{||' }, { 5, 5 }, { 5, '}' }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TCheckBox():ReDefine( ' }, { 0, 3 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 9, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TCheckBox():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 4, 'bSETGET(' }, { 4, 4 }, { 4, ')' }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 6, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TComboBox():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 13, '{|Self|' }, { 13, 13 }, { 13, '}' }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 25, '{|nItem|' }, { 25, 25 }, { 25, '}' }, { 0, ', ' }, { 0, 26 }, { 0, ', ' }, { 0, 27 }, { 0, ', ' }, { 28, 28 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 5, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 6, -1, 5, -1, 6, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TComboBox():ReDefine( ' }, { 0, 5 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 4 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 10, '{|Self|' }, { 10, 10 }, { 10, '}' }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 19, '{|nItem|' }, { 19, 19 }, { 19, '}' }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 22, 22 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TListBox():ReDefine( ' }, { 0, 7 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 4 }, { 0, ', ' }, { 8, '{||' }, { 8, 8 }, { 8, '}' }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 22, '{|nItem|' }, { 22, 22 }, { 22, '}' }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 6, -1, 5, -1, -1, 1, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TListBox():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 24, '{|nItem|' }, { 24, 24 }, { 24, '}' }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 0, 26 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 5, -1, 1, -1, 1, -1, 6, -1, 6, -1, 5, -1, 1, -1, 1, -1, 6, -1, 5, -1, 1, -1, -1, 1, -1, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TWBrowse():ReDefine( ' }, { 0, 4 }, { 0, ', ' }, { 2, '{|| { ' }, { 2, 2 }, { 2, ' } }' }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 10, '{' }, { 10, 10 }, { 10, '}' }, { 0, ', ' }, { 8, '{' }, { 8, 8 }, { 8, '}' }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 16, '{|nRow,nCol,nFlags|' }, { 16, 16 }, { 16, '}' }, { 0, ', ' }, { 17, '{|nRow,nCol,nFlags|' }, { 17, 17 }, { 17, '}' }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 0, 26 }, { 0, ', ' }, { 15, '{|nRow,nCol,nFlags|' }, { 15, 15 }, { 15, '}' }, { 0, ', ' }, { 27, '{' }, { 27, 27 }, { 27, '}' }, { 0, ' )' } }, { 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 4, -1, 1, -1, 1, -1, 5, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 5, -1, 5, -1, -1, 1, -1, -1, -1, 5, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TWBrowse():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 4, '{|| {' }, { 4, 4 }, { 4, ' } }' }, { 0, ', ' }, { 9, '{' }, { 9, 9 }, { 9, '}' }, { 0, ', ' }, { 7, '{' }, { 7, 7 }, { 7, '}' }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 17, 17 }, { 0, ', ' }, { 19, '{|nRow,nCol,nFlags|' }, { 19, 19 }, { 19, '}' }, { 0, ', ' }, { 20, '{|nRow,nCol,nFlags|' }, { 20, 20 }, { 20, '}' }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 0, 26 }, { 0, ', ' }, { 0, 27 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 28 }, { 0, ', ' }, { 0, 29 }, { 0, ', ' }, { 0, 30 }, { 0, ', ' }, { 0, 31 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 32, '{' }, { 32, 32 }, { 32, '}' }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 4, -1, 1, -1, 1, -1, 5, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 6, -1, 5, -1, 5, -1, -1, 5, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TRadMenu():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', {' }, { 0, 6 }, { 0, '}, ' }, { 4, 'bSETGET(' }, { 4, 4 }, { 4, ')' }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 10, '{' }, { 10, 10 }, { 10, '}' }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 1, -1, 1, -1, 5, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TRadMenu():Redefine( ' }, { 2, ' bSETGET(' }, { 2, 2 }, { 2, ')' }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 7, '{' }, { 7, 7 }, { 7, '}' }, { 0, ', { ' }, { 0, 3 }, { 0, ' }, ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ' )' } }, { 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TBitmap():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 14, '{ |nRow,nCol,nKeyFlags| ' }, { 14, 14 }, { 14, ' } ' }, { 0, ', ' }, { 16, '{ |nRow,nCol,nKeyFlags| ' }, { 16, 16 }, { 16, ' } ' }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 25 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 6, -1, 5, -1, 6, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TImage():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 14, '{ |nRow,nCol,nKeyFlags| ' }, { 14, 14 }, { 14, ' } ' }, { 0, ', ' }, { 16, '{ |nRow,nCol,nKeyFlags| ' }, { 16, 16 }, { 16, ' } ' }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 25 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 6, -1, 5, -1, 6, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBitmap():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 10, '{ |nRow,nCol,nKeyFlags| ' }, { 10, 10 }, { 10, ' }' }, { 0, ', ' }, { 12, '{ |nRow,nCol,nKeyFlags| ' }, { 12, 12 }, { 12, ' }' }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TBitmap():Define( ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TSay():ReDefine( ' }, { 0, 5 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TSay():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 8, 8 }, { 0, ', ' }, { 6, 6 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TMultiGet():ReDefine( ' }, { 0, 4 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 6 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 19, '{|nKey, nFlags, Self| ' }, { 19, 19 }, { 19, '}' }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 6, -1, 5, -1, -1, 1, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TGet():ReDefine( ' }, { 0, 3 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 18, '{|nKey,nFlags,Self| ' }, { 18, 18 }, { 18, ' }' }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 24 }, { 0, ')' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, -1, 1, -1, -1, 6, -1, 6, -1, 5, -1, 5, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TMultiGet():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 6, 6 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 24, '{|nKey, nFlags, Self| ' }, { 24, 24 }, { 24, '}' }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 26, 26 }, { 0, ', ' }, { 27, 27 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 6, -1, 6, -1, 6, -1, 5, -1, -1, 1, -1, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TGet():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 6, 6 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 23, '{|nKey, nFlags, Self| ' }, { 23, 23 }, { 23, '}' }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 26, 26 }, { 0, ', ' }, { 0, 28 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 6, -1, 6, -1, -1, 1, -1, -1, 6, -1, 6, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TGet():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 6, 6 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 23, '{|nKey, nFlags, Self| ' }, { 23, 23 }, { 23, '}' }, { 0, ', ' }, { 0, 24 }, { 0, ', .f., .f., ' }, { 0, 26 }, { 0, ', ' }, { 0, 27 }, { 0, ', ' }, { 0, 28 }, { 0, ', ' }, { 0, 29 }, { 0, ', ' }, { 0, 30 }, { 0, ', ' }, { 0, 31 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 6, -1, 6, -1, -1, 1, -1, -1, 6, -1, 1, -1, 6, -1, 5, -1, 5, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TScrollBar():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', (.not.' }, { 0, 4 }, { 0, ') ' }, { 5, '.or. ' }, { 5, 5 }, { 0, ', ' }, { 0, 25 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' , ' }, { 12, 12 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 16, 16 }, { 0, ', ' }, { 18, 18 }, { 0, ', ' }, { 20, '{|nPos| ' }, { 20, 20 }, { 20, ' }' }, { 0, ', ' }, { 21, 21 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 26 }, { 0, ', ' }, { 0, 27 }, { 0, ', ' }, { 0, 28 }, { 0, ', ' }, { 0, 29 }, { 0, ', ' }, { 0, 30 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 5, -1, 5, -1, -1, 1, -1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TScrollBar():WinNew( ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', (.not.' }, { 0, 2 }, { 0, ') ' }, { 3, '.or. ' }, { 3, 3 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 8, 8 }, { 0, ', ' }, { 10, 10 }, { 0, ', ' }, { 12, 12 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 16, '{|nPos| ' }, { 16, 16 }, { 16, ' }' }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ', ' }, { 0, 24 }, { 0, ', ' }, { 0, 25 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, -1, 6, -1, 1, -1, 5, -1, 5, -1, 5, -1, 5, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TScrollBar():Redefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 7, 7 }, { 0, ', ' }, { 9, 9 }, { 0, ', ' }, { 11, 11 }, { 0, ', ' }, { 13, 13 }, { 0, ', ' }, { 15, '{|nPos| ' }, { 15, 15 }, { 15, ' }' }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 20 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 0, 22 }, { 0, ', ' }, { 0, 23 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 5, -1, 5, -1, 5, -1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 5, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TGroup():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 12, 12 }, { 0, ', ' }, { 13, 13 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TGroup():ReDefine( ' }, { 0, 4 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 9, 9 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TMeter():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', bSETGET(' }, { 0, 4 }, { 0, '), ' }, { 0, 5 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 19 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TMeter():ReDefine( ' }, { 0, 4 }, { 0, ', bSETGET(' }, { 0, 2 }, { 0, '), ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TMetaFile():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TMetaFile():Redefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TCursor():New( ' }, { 0, 3 }, { 0, ', ' }, { 4, 'Upper(' }, { 4, 4 }, { 4, ') ' }, { 0, ' )' } }, { 1, -1, 1, -1, -1, 4, -1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TMdiChild():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 19 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 21 }, { 0, ', ' }, { 22, 'Upper(' }, { 22, 22 }, { 22, ')' }, { 0, ', !' }, { 0, 23 }, { 0, ', !' }, { 0, 24 }, { 0, ', !' }, { 0, 25 }, { 0, ', !' }, { 0, 26 }, { 0, ', ' }, { 10, 10 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, -1, 4, -1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TMdiFrame():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 15, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 17, 'Upper(' }, { 17, 17 }, { 17, ')' }, { 0, ', ' }, { 0, 18 }, { 0, ', ' }, { 19, 19 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, -1, 4, -1, -1, 1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TWindow():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 15 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 14 }, { 0, ', ' }, { 0, 11 }, { 0, ', ' }, { 22, 22 }, { 0, ', ' }, { 23, 23 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 17, 'Upper(' }, { 17, 17 }, { 17, ')' }, { 0, ', !' }, { 0, 18 }, { 0, ', !' }, { 0, 19 }, { 0, ', !' }, { 0, 20 }, { 0, ', !' }, { 0, 21 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, -1, 4, -1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Activate( ' }, { 2, 'Upper(' }, { 2, 2 }, { 2, ') ' }, { 0, ', ' }, { 0, 1 }, { 0, ':bLClicked ' }, { 3, ':= { |nRow,nCol,nKeyFlags| ' }, { 3, 3 }, { 3, ' } ' }, { 0, ', ' }, { 0, 1 }, { 0, ':bRClicked ' }, { 5, ':= { |nRow,nCol,nKeyFlags| ' }, { 5, 5 }, { 5, ' } ' }, { 0, ', ' }, { 0, 1 }, { 0, ':bMoved ' }, { 6, ':= ' }, { 6, 6 }, { 0, ', ' }, { 0, 1 }, { 0, ':bResized ' }, { 7, ':= ' }, { 7, 7 }, { 0, ', ' }, { 0, 1 }, { 0, ':bPainted ' }, { 8, ':= { | hDC, cPS | ' }, { 8, 8 }, { 8, ' } ' }, { 0, ', ' }, { 0, 1 }, { 0, ':bKeyDown ' }, { 9, ':= { | nKey | ' }, { 9, 9 }, { 9, ' } ' }, { 0, ', ' }, { 0, 1 }, { 0, ':bInit ' }, { 10, ':= { | Self | ' }, { 10, 10 }, { 10, ' } ' }, { 0, ', ' }, { 11, 11 }, { 0, ', ' }, { 12, 12 }, { 0, ', ' }, { 13, 13 }, { 0, ', ' }, { 14, 14 }, { 0, ', ' }, { 15, 15 }, { 0, ', ' }, { 16, 16 }, { 0, ', ' }, { 17, 17 }, { 0, ', ' }, { 18, 18 }, { 0, ', ' }, { 20, 20 }, { 0, ', ' }, { 19, '{|nRow,nCol,aFiles|' }, { 19, 19 }, { 19, '}' }, { 0, ', ' }, { 0, 1 }, { 0, ':bLButtonUp ' }, { 4, ':= ' }, { 4, 4 }, { 0, ' )' } }, { 1, -1, -1, 4, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 5, -1, 1, -1, -1, 5, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 5, -1, 5, -1, 5, -1, 5, -1, 5, -1, 5, -1, 5, -1, 5, -1, 5, -1, -1, 1, -1, -1, 1, -1, -1, 5, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':oMsgBar := TMsgBar():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 11, '!' }, { 11, 11 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 2, 2 }, { 2, ':=' }, { 0, 3 }, { 0, ':oMsgBar := TMsgBar():New( ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 14, '!' }, { 14, 14 }, { 0, ' )' } }, { 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ':=' }, { 0, ' TMsgItem():New( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', .t., ' }, { 12, 12 }, { 0, ', ' }, { 10, 10 }, { 0, ', ' }, { 11, 11 }, { 0, ', ' }, { 13, 13 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 5, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ' := TClipBoard():New( ' }, { 2, ' Upper(' }, { 2, 2 }, { 2, ')' }, { 0, ', ' }, { 0, 3 }, { 0, ' )' } }, { 1, -1, -1, 4, -1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Open()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TTimer():New( ' }, { 0, 2 }, { 0, ', ' }, { 3, '{||' }, { 3, 3 }, { 3, '}' }, { 0, ', ' }, { 0, 5 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 1 }, { 0, ':Activate()' } }, { 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 3, 3 }, { 3, ' := ' }, { 0, ' TVbControl():New( ' }, { 0, 1 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', { ' }, { 10, 10 }, { 10, ', _PARM_BLOCK_10_( ' }, { 10, 11 }, { 10, ' ) ' }, { 12, ' ,' }, { 12, 12 }, { 12, ', _PARM_BLOCK_10_( ' }, { 12, 13 }, { 12, ' ) ' }, { 0, ' }, ' }, { 14, 14 }, { 0, ', ' }, { 15, 15 }, { 0, ', ' }, { 0, 16 }, { 0, ', ' }, { 0, 17 }, { 0, ' )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 4, -1, 1, -1, -1, 4, -1, 1, -1, -1, 5, -1, 5, -1, 6, -1, 6, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 1, 1 }, { 1, ' := ' }, { 0, ' TVbControl():ReDefine( ' }, { 0, 2 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', { ' }, { 6, 6 }, { 6, ', _PARM_BLOCK_10_( ' }, { 6, 7 }, { 6, ' ) ' }, { 8, ' ,' }, { 8, 8 }, { 8, ', _PARM_BLOCK_10_( ' }, { 8, 9 }, { 8, ' ) ' }, { 0, ' } )' } }, { 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 4, -1, 1, -1, -1, 4, -1, 1, -1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Self := SetObject( Self, { || ' }, { 0, 2 }, { 0, '():New() } )' } }, { -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'Self := EndObject()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'InvalidateRect( GetActiveWindow(), 0, .t. )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'InvalidateRect( GetActiveWindow(), 0, .t. )' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'WQout( ' }, { 1, '{ ' }, { 1, 1 }, { 1, ' } ' }, { 0, ' )' } }, { -1, -1, 1, -1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'WQout( ' }, { 1, '{ ' }, { 1, 1 }, { 1, ' } ' }, { 0, ' )' } }, { -1, -1, 1, -1, -1} , { NIL } } ) - aAdd( aCommResults, { , , } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - aAdd( aCommResults, { { { 0, 'MsgAlert( OemToAnsi( "SaveScreen() not available in FiveWin" ) )' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'MsgAlert( OemToAnsi( "RestScreen() not available in FiveWin" ) )' } }, { -1} , { NIL } } ) - aAdd( aCommResults, { , , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { , , { NIL } } ) - - RETURN .T. - #endif - - //--------------------------------------------------------------// - #ifdef MINIGUI - FUNCTION InitMiniGUIRules() - - /* Defines */ - aAdd( aDefRules, { 'EN_SETFOCUS' , , .T. } ) - aAdd( aDefRules, { 'EN_KILLFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_SETFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_KILLFOCUS' , , .T. } ) - aAdd( aDefRules, { 'WM_UNDO' , , .T. } ) - aAdd( aDefRules, { 'EM_SETMODIFY' , , .T. } ) - aAdd( aDefRules, { 'WM_PASTE' , , .T. } ) - aAdd( aDefRules, { 'WM_CHAR' , , .T. } ) - aAdd( aDefRules, { 'EM_GETLINE' , , .T. } ) - aAdd( aDefRules, { 'EM_SETSEL' , , .T. } ) - aAdd( aDefRules, { 'WM_CLEAR' , , .T. } ) - aAdd( aDefRules, { 'EM_GETSEL' , , .T. } ) - aAdd( aDefRules, { 'EM_UNDO' , , .T. } ) - aAdd( aDefRules, { 'EN_CHANGE' , , .T. } ) - aAdd( aDefRules, { 'EN_UPDATE' , , .T. } ) - aAdd( aDefRules, { 'WM_ACTIVATE' , , .T. } ) - aAdd( aDefRules, { 'WM_SIZING' , , .T. } ) - aAdd( aDefRules, { 'MK_LBUTTON' , , .T. } ) - aAdd( aDefRules, { 'WM_MOUSEMOVE' , , .T. } ) - aAdd( aDefRules, { 'WM_CONTEXTMENU' , , .T. } ) - aAdd( aDefRules, { 'WM_TIMER' , , .T. } ) - aAdd( aDefRules, { 'WM_SIZE' , , .T. } ) - aAdd( aDefRules, { 'TBM_SETPOS' , , .T. } ) - aAdd( aDefRules, { 'TBM_GETPOS' , , .T. } ) - aAdd( aDefRules, { 'PBM_SETPOS' , , .T. } ) - aAdd( aDefRules, { 'WM_SYSCOMMAND' , , .T. } ) - aAdd( aDefRules, { 'SC_CLOSE' , , .T. } ) - aAdd( aDefRules, { 'WM_KEYDOWN' , , .T. } ) - aAdd( aDefRules, { 'WM_CLOSE' , , .T. } ) - aAdd( aDefRules, { 'WM_COMMAND' , , .T. } ) - aAdd( aDefRules, { 'WM_DESTROY' , , .T. } ) - aAdd( aDefRules, { 'WM_LBUTTONDOWN' , , .T. } ) - aAdd( aDefRules, { 'WM_NOTIFY' , , .T. } ) - aAdd( aDefRules, { 'WM_CREATE' , , .T. } ) - aAdd( aDefRules, { 'WM_QUIT' , , .T. } ) - aAdd( aDefRules, { 'BIF_RETURNONLYFSDIRS' , , .T. } ) - aAdd( aDefRules, { 'BIF_DONTGOBELOWDOMAIN' , , .T. } ) - aAdd( aDefRules, { 'BIF_STATUSTEXT' , , .T. } ) - aAdd( aDefRules, { 'BIF_RETURNFSANCESTORS' , , .T. } ) - aAdd( aDefRules, { 'BIF_EDITBOX' , , .T. } ) - aAdd( aDefRules, { 'BIF_VALIDATE' , , .T. } ) - aAdd( aDefRules, { 'BIF_NEWDIALOGSTYLE' , , .T. } ) - aAdd( aDefRules, { 'BIF_USENEWUI' , { { 1, 0, '(', '<', NIL }, { 0, 0, ')', NIL, NIL } } , .T. } ) - aAdd( aDefRules, { 'BIF_BROWSEINCLUDEURLS' , , .T. } ) - aAdd( aDefRules, { 'BIF_BROWSEFORCOMPUTER' , , .T. } ) - aAdd( aDefRules, { 'BIF_BROWSEFORPRINTER' , , .T. } ) - aAdd( aDefRules, { 'BIF_BROWSEINCLUDEFILES' , , .T. } ) - aAdd( aDefRules, { 'BIF_SHAREABLE' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_DESKTOP' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_INTERNET' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROGRAMS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_CONTROLS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PRINTERS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PERSONAL' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_FAVORITES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_STARTUP' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_RECENT' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_SENDTO' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_BITBUCKET' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_STARTMENU' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_DESKTOPDIRECTORY' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_DRIVES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_NETWORK' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_NETHOOD' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_FONTS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_TEMPLATES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_STARTMENU' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_PROGRAMS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_STARTUP' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_DESKTOPDIRECTORY' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_APPDATA' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PRINTHOOD' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_LOCAL_APPDATA' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_ALTSTARTUP' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_ALTSTARTUP' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_FAVORITES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_INTERNET_CACHE' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COOKIES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_HISTORY' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_APPDATA' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_WINDOWS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_SYSTEM' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROGRAM_FILES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_MYPICTURES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROFILE' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_SYSTEMX86' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROGRAM_FILESX86' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROGRAM_FILES_COMMON' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_PROGRAM_FILES_COMMONX86' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_TEMPLATES' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_DOCUMENTS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_COMMON_ADMINTOOLS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_ADMINTOOLS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_CONNECTIONS' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_FLAG_CREATE' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_FLAG_DONT_VERIFY' , , .T. } ) - aAdd( aDefRules, { 'CSIDL_FLAG_MASK' , , .T. } ) - - /* Translates */ - - /* Commands */ - aAdd( aCommRules, { 'ENABLE' , { { 1, 0, 'MENUITEM', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DISABLE' , { { 1, 0, 'MENUITEM', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'CHECK' , { { 1, 0, 'MENUITEM', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'UNCHECK' , { { 1, 0, 'MENUITEM', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'MAIN', NIL, NIL }, { 0, 0, 'MENU', NIL, NIL }, { 1, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'MAINMENU', NIL, NIL }, { 1, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'CONTEXT', NIL, NIL }, { 0, 0, 'MENU', NIL, NIL }, { 1, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 0, 0, 'CONTEXTMENU', NIL, NIL }, { 1, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 0, 0, 'DEFINE', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'POPUP' , { { 1, 0, NIL, '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'END' , { { 0, 0, 'POPUP', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'ITEM' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'ACTION', '<', NIL }, { 3, 1, 'NAME', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SEPARATOR' , , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'TIMER', '<', NIL }, { 2, 0, 'OF', '<', NIL }, { 3, 0, 'INTERVAL', '<', NIL }, { 4, 0, 'ACTION', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PANEL', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'WIDTH', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'HEIGHT', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SLIDER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'WIDTH', '<', NIL }, { 9, 0, 'HEIGHT', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PROGRESSBAR', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PROGRESSBAR', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'PROGRESSBAR', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'HEIGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'WINDOW', '<', NIL }, { 2, 0, 'AT', '<', NIL }, { 3, 0, ',', '<', NIL }, { 4, 0, 'WIDTH', '<', NIL }, { 5, 0, 'HEIGHT', '<', NIL }, { 6, 1, 'TITLE', '<', NIL }, { 7, 1, NIL, ':', { 'NOMINIMIZE' } }, { 8, 1, NIL, ':', { 'NOMAXIMIZE' } }, { 9, 1, NIL, ':', { 'NOSIZE' } }, { 10, 1, NIL, ':', { 'NOSYSMENU' } }, { 11, 1, NIL, ':', { 'NOCAPTION' } }, { 12, 1, NIL, ':', { 'STATUSBAR' } }, { 13, 1, NIL, '<', { 'ON', 'ON', 'ON', 'ON', 'ON', 'ON' } }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'INIT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 15, -1, 'RELEASE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 16, -1, 'MOUSECLICK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 17, -1, 'MOUSEDRAG', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 18, -1, 'MOUSEMOVE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 19, -1, 'SIZE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'WINDOW', '<', NIL }, { 2, 0, 'AT', '<', NIL }, { 3, 0, ',', '<', NIL }, { 4, 0, 'WIDTH', '<', NIL }, { 5, 0, 'HEIGHT', '<', NIL }, { 6, 1, 'TITLE', '<', NIL }, { 0, 0, 'TOPMOST', NIL, NIL }, { 7, 1, NIL, ':', { 'NOMINIMIZE' } }, { 8, 1, NIL, ':', { 'NOMAXIMIZE' } }, { 9, 1, NIL, ':', { 'NOSIZE' } }, { 10, 1, NIL, ':', { 'NOSYSMENU' } }, { 11, 1, NIL, ':', { 'NOCAPTION' } }, { 12, 1, NIL, ':', { 'STATUSBAR' } }, { 13, 1, NIL, '<', { 'ON', 'ON', 'ON', 'ON', 'ON', 'ON' } }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'INIT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 15, -1, 'RELEASE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 16, -1, 'MOUSECLICK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 17, -1, 'MOUSEDRAG', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 18, -1, 'MOUSEMOVE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 19, -1, 'SIZE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DEFINE' , { { 1, 0, 'WINDOW', '<', NIL }, { 2, 0, 'OF', '<', NIL }, { 3, 0, 'AT', '<', NIL }, { 4, 0, ',', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 1, 'TITLE', '<', NIL }, { 0, 0, 'MODAL', NIL, NIL }, { 8, 1, NIL, ':', { 'NOSIZE' } }, { 9, 1, NIL, ':', { 'NOSYSMENU' } }, { 10, 1, NIL, ':', { 'NOCAPTION' } }, { 11, 1, NIL, ':', { 'STATUSBAR' } }, { 12, 1, NIL, '<', { 'ON', 'ON', 'ON', 'ON', 'ON', 'ON' } }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'INIT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'RELEASE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 15, -1, 'MOUSECLICK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 16, -1, 'MOUSEDRAG', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 17, -1, 'MOUSEMOVE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 18, -1, 'SIZE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'BUTTON', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'ACTION', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'BUTTON', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'ACTION', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'HEIGHT', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'BUTTON', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'ACTION', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'BUTTON', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'ACTION', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'HEIGHT', '<', NIL }, { 9, 0, 'FONT', '<', NIL }, { 10, 0, 'SIZE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'BUTTON', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'BITMAP', '<', NIL }, { 6, 0, 'ACTION', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'HEIGHT', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'IMAGE', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'FILENAME', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'IMAGE', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'FILENAME', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'HEIGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'CHECKBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'CHECKBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'CHECKBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'CHECKBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'RADIOGROUP', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'OPTIONS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'RADIOGROUP', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'OPTIONS', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'RADIOGROUP', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'OPTIONS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'RADIOGROUP', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'OPTIONS', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LABEL', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LABEL', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LABEL', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'HEIGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LABEL', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'HEIGHT', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'FONT', '<', NIL }, { 6, 0, 'SIZE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'VALUE', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'ROWS', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'COMBOBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'FONT', '<', NIL }, { 6, 0, 'SIZE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'DATEPICKER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'ROWS', '<', NIL }, { 8, 0, 'VALUE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'ROWS', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'ROWS', '<', NIL }, { 8, 0, 'VALUE', '<', NIL }, { 9, 0, 'FONT', '<', NIL }, { 10, 0, 'SIZE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'ROWS', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'LISTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'WIDTH', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'WIDTH', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'SPINNER', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'RANGE', '<', NIL }, { 6, 0, ',', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'WIDTH', '<', NIL }, { 9, 0, 'FONT', '<', NIL }, { 10, 0, 'SIZE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 1, 'TOOLTIP', '<', NIL }, { 6, 1, 'MAXLENGHT', '<', NIL }, { 7, 1, NIL, ':', { 'UPPERCASE' } }, { 8, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 8, 1, NIL, ':', { 'UPPERCASE' } }, { 9, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 8, 1, NIL, ':', { 'UPPERCASE' } }, { 9, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 9, 1, NIL, ':', { 'UPPERCASE' } }, { 10, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'FONT', '<', NIL }, { 6, 0, 'SIZE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 9, 1, NIL, ':', { 'UPPERCASE' } }, { 10, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 10, 1, NIL, ':', { 'UPPERCASE' } }, { 11, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 10, 1, NIL, ':', { 'UPPERCASE' } }, { 11, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 10, 1, 'MAXLENGHT', '<', NIL }, { 11, 1, NIL, ':', { 'UPPERCASE' } }, { 12, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 15, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 1, 'WIDTH', '<', NIL }, { 6, 1, 'VALUE', '<', NIL }, { 7, 1, 'FONT', '<', NIL }, { 8, 1, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 10, 0, 'INPUTMASK', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 5, 1, 'TOOLTIP', '<', NIL }, { 6, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 7, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 8, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 8, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 8, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 5, 0, 'FONT', '<', NIL }, { 6, 0, 'SIZE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 0, 0, 'NUMERIC', NIL, NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 10, 1, 'MAXLENGHT', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 5, 1, 'TOOLTIP', '<', NIL }, { 6, 1, 'MAXLENGHT', '<', NIL }, { 7, 1, NIL, ':', { 'UPPERCASE' } }, { 8, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 9, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 8, 1, NIL, ':', { 'UPPERCASE' } }, { 9, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 6, 1, 'TOOLTIP', '<', NIL }, { 7, 1, 'MAXLENGHT', '<', NIL }, { 8, 1, NIL, ':', { 'UPPERCASE' } }, { 9, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 10, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 9, 1, NIL, ':', { 'UPPERCASE' } }, { 10, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 5, 0, 'FONT', '<', NIL }, { 6, 0, 'SIZE', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL }, { 9, 1, NIL, ':', { 'UPPERCASE' } }, { 10, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 11, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 10, 1, NIL, ':', { 'UPPERCASE' } }, { 11, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 6, 0, 'FONT', '<', NIL }, { 7, 0, 'SIZE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL }, { 10, 1, NIL, ':', { 'UPPERCASE' } }, { 11, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 12, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TEXTBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'VALUE', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 0, 0, 'PASSWORD', NIL, NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 10, 1, 'MAXLENGHT', '<', NIL }, { 11, 1, NIL, ':', { 'UPPERCASE' } }, { 12, 1, NIL, ':', { 'LOWERCASE' } }, { 0, 1, 'ON', NIL, NIL }, { 13, -1, 'GOTFOCUS', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 14, -1, 'CHANGE', '<', NIL }, { 0, 1, 'ON', NIL, NIL }, { 15, -1, 'LOSTFOCUS', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 10, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL }, { 11, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 0, 0, 'READONLY', NIL, NIL }, { 7, 1, 'TOOLTIP', '<', NIL }, { 8, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 0, 0, 'READONLY', NIL, NIL }, { 8, 1, 'TOOLTIP', '<', NIL }, { 9, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 0, 0, 'READONLY', NIL, NIL }, { 7, 0, 'FONT', '<', NIL }, { 8, 0, 'SIZE', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL }, { 10, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'EDITBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'VALUE', '<', NIL }, { 0, 0, 'READONLY', NIL, NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL }, { 11, 1, 'MAXLENGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GROUPBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'HEIGHT', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GROUPBOX', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'CAPTION', '<', NIL }, { 6, 0, 'WIDTH', '<', NIL }, { 7, 0, 'HEIGHT', '<', NIL }, { 8, 0, 'FONT', '<', NIL }, { 9, 0, 'SIZE', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 0, 'ROWS', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 0, 'ROWS', '<', NIL }, { 10, 0, 'VALUE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 0, 'ROWS', '<', NIL }, { 10, 0, 'FONT', '<', NIL }, { 11, 0, 'SIZE', '<', NIL }, { 12, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 0, 'FONT', '<', NIL }, { 10, 0, 'SIZE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'GRID', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'HEADERS', '<', NIL }, { 8, 0, 'WIDTHS', '<', NIL }, { 9, 0, 'ROWS', '<', NIL }, { 10, 0, 'VALUE', '<', NIL }, { 11, 0, 'FONT', '<', NIL }, { 12, 0, 'SIZE', '<', NIL }, { 13, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TAB', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'CAPTIONS', '<', NIL }, { 8, 0, 'MAP', '<', NIL }, { 9, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TAB', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'CAPTIONS', '<', NIL }, { 8, 0, 'MAP', '<', NIL }, { 9, 0, 'VALUE', '<', NIL }, { 10, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TAB', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'CAPTIONS', '<', NIL }, { 8, 0, 'MAP', '<', NIL }, { 9, 0, 'FONT', '<', NIL }, { 10, 0, 'SIZE', '<', NIL }, { 11, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { '@' , { { 1, 0, NIL, '<', NIL }, { 2, 0, ',', '<', NIL }, { 3, 0, 'TAB', '<', NIL }, { 4, 0, 'OF', '<', NIL }, { 5, 0, 'WIDTH', '<', NIL }, { 6, 0, 'HEIGHT', '<', NIL }, { 7, 0, 'CAPTIONS', '<', NIL }, { 8, 0, 'MAP', '<', NIL }, { 9, 0, 'VALUE', '<', NIL }, { 10, 0, 'FONT', '<', NIL }, { 11, 0, 'SIZE', '<', NIL }, { 12, 1, 'TOOLTIP', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SETFOCUS' , { { 1, 0, NIL, '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ADD' , { { 1, 0, 'ITEM', '<', NIL }, { 2, 0, 'TO', '<', NIL }, { 3, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , { { 1, 0, 'ITEM', '<', NIL }, { 2, 0, 'FROM', '<', NIL }, { 3, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DELETE' , { { 0, 0, 'ITEM', NIL, NIL }, { 0, 0, 'ALL', NIL, NIL }, { 1, 0, 'FROM', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'PREVIEW' , { { 1, 0, 'REPORT', '<', NIL }, { 2, 1, 'FOR', '<', NIL }, { 3, 1, NIL, ':', { 'PLAIN' } }, { 4, 1, 'HEADING', '<', NIL }, { 5, 1, NIL, ':', { 'SUMMARY' } } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RELEASE' , { { 0, 0, 'WINDOW', NIL, NIL }, { 0, 0, 'ALL', NIL, NIL } } , .F. } ) - aAdd( aCommRules, { 'ENABLE' , { { 1, 0, 'CONTROL', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SHOW' , { { 1, 0, 'CONTROL', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'HIDE' , { { 1, 0, 'CONTROL', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'DISABLE' , { { 1, 0, 'CONTROL', '<', NIL }, { 2, 0, 'OF', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'ACTIVATE' , { { 1, 0, 'WINDOW', 'A', NIL } } , .F. } ) - aAdd( aCommRules, { 'CENTER' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'MAXIMIZE' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'MINIMIZE' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'RESTORE' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'SHOW' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - aAdd( aCommRules, { 'HIDE' , { { 1, 0, 'WINDOW', '<', NIL } } , .F. } ) - - RETURN .T. - - //--------------------------------------------------------------// - - FUNCTION InitMiniGUIResults() - - /* Defines Results*/ - aAdd( aDefResults, { { { 0, '256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '512' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '7' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '8' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '772' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '185' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '770' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '258' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '196' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '177' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '771' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '176' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '199' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '768' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '6' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '532' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '512' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '123' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '275' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '5' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1029' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1026' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '274' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '61536' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '256' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0010' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0111' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0002' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0201' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '78' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '1' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '18' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0001' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0002' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0004' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0008' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0010' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0020' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0040' } }, { -1} , } ) - aAdd( aDefResults, { , , } ) - aAdd( aDefResults, { { { 0, '0x0080' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x1000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x2000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x4000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x8000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0001' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0002' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0003' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0004' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0005' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0006' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0007' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0008' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0009' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x000a' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x000b' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0010' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0011' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0012' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0013' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0014' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0015' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0016' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0X0017' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0018' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0019' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001a' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001b' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001c' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001d' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001e' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x001f' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0020' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0021' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0022' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0023' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0024' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0025' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0026' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0027' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0028' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0029' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002a' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002b' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002c' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002d' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002e' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x002f' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0030' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x0031' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x8000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0x4000' } }, { -1} , } ) - aAdd( aDefResults, { { { 0, '0xFF00' } }, { -1} , } ) - - /* Translates Results*/ - - /* Commands Results*/ - aAdd( aCommResults, { { { 0, 'EnableMenuItem ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DisableMenuItem ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'CheckMenuItem ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'UnCheckMenuItem ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineMainMenu ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineMainMenu ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineContextMenu ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineContextMenu ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'EndMenu ()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'DefinePopup ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'EndPopup ()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'DefineItem ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' , ' }, { 0, 3 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSeparator ()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'DefineTimer ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' , ' }, { 0, 3 }, { 0, ' , ' }, { 0, 4 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePanel ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 35 , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 35 , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', 35 , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 8 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 8 }, { 0, ', 35 , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ' ,' }, { 0, 7 }, { 0, ' , ' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSlider ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 10 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineProgressBar ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 25, ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineProgressBar ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', 25, ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineProgressBar ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ',' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineWindow ( ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ',' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ',' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ' , ' }, { 0, 17 }, { 0, ', ' }, { 0, 19 }, { 0, ' , ' }, { 0, 16 }, { 0, ' , ' }, { 0, 18 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTopmostWindow ( ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ' ,' }, { 0, 12 }, { 0, ', ' }, { 0, 13 }, { 0, ' ,' }, { 0, 14 }, { 0, ', ' }, { 0, 15 }, { 0, ' , ' }, { 0, 17 }, { 0, ' , ' }, { 0, 19 }, { 0, ' , ' }, { 0, 16 }, { 0, ' , ' }, { 0, 18 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineModalWindow ( ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 3 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 2 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' ,' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ',' }, { 0, 13 }, { 0, ', ' }, { 0, 14 }, { 0, ' , ' }, { 0, 16 }, { 0, ' , ' }, { 0, 18 }, { 0, ' , ' }, { 0, 15 }, { 0, ' , ' }, { 0, 17 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineButton ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,100,28,"",0 ,' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineButton ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,' }, { 0, 7 }, { 0, ',' }, { 0, 8 }, { 0, ',"",0 ,' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineButton ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,100,28,' }, { 0, 7 }, { 0, ',' }, { 0, 8 }, { 0, ' ,' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineButton ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,' }, { 0, 7 }, { 0, ',' }, { 0, 8 }, { 0, ',' }, { 0, 9 }, { 0, ',' }, { 0, 10 }, { 0, ' ,' }, { 0, 11 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineImageButton ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', "", ' }, { 0, 6 }, { 0, ' ,' }, { 0, 7 }, { 0, ',' }, { 0, 8 }, { 0, ',' }, { 0, 5 }, { 0, ' ,' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineImage ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,0 ,0 )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineImage ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCheckBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ',"", 0 , ' }, { 0, 7 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCheckBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', .f., "", 0 , ' }, { 0, 6 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCheckBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 3 }, { 0, ' , ' }, { 0, 9 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCheckBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', .f. ,' }, { 0, 6 }, { 0, ' ,' }, { 0, 3 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineradioGroup ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineradioGroup ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', 0 , ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineradioGroup ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineradioGroup ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', 0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineLabel ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', 0, 28, "", 0 )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineLabel ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', 28, "", 0 )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineLabel ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', "", 0 )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineLabel ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,"",0 , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ', 0 ,"",0 , ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, {} , 0 ,"",0 , ' }, { 0, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' ,"",0 , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ', 0 ,"",0 , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', {} , 0 ,"",0 , ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ', 0 , ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, {} , 0 , ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ', 0 , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineCombo ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', {} , 0 , ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 25 , Date() , "", 0, ' }, { 0, 5 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', 25 ,Date() ,"",0 , ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 25 ,' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 6 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', 25 ,' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 25 ,Date() ,' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', 25 ,Date() ,' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, 25 ,' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineDatePick ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', 25 ,' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' ,"",0 , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', 0 ,"",0 , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', {}, 0 ,"",0 , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', 0 , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineListBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', {}, 0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' ,"",0 ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 7 }, { 0, ' ,"",0 ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,"",0 ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 7 }, { 0, ' ,"",0 ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' ,' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 5 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ',' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineSpinner ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ',' }, { 0, 5 }, { 0, ' ,' }, { 0, 6 }, { 0, ', ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" ,"",0 , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 14 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 13 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 14 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 13 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 15 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 14 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineMaskedTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 10 }, { 0, ' , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" ,"",0 , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineNumericTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" ,"",0 , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" ,"",0 , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' ,"",0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, "" , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', 120, ' }, { 0, 5 }, { 0, ' , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 14 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 13 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', "" , ' }, { 0, 6 }, { 0, ' , ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 14 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 13 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefinePasswordTextBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 5 }, { 0, ' , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' , ' }, { 0, 15 }, { 0, ' , ' }, { 0, 13 }, { 0, ' , ' }, { 0, 14 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 6, -1, 6, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ',"", "", 0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', "", 0 , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', "" ,' }, { 0, 7 }, { 0, ',' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ,' }, { 0, 8 }, { 0, ',' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineReadOnlyEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', "","",0 , ' }, { 0, 7 }, { 0, ' , ' }, { 0, 8 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineReadOnlyEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ',"",0 , ' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineReadOnlyEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', "" ,' }, { 0, 7 }, { 0, ' ,' }, { 0, 8 }, { 0, ' , ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineReadOnlyEditBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ' ,' }, { 0, 8 }, { 0, ' ,' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGroupBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ',"",0 )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGroupBox ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , 0 ,"",0, ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', {} , 0 ,"",0, ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ',"",0 , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , 0 ,' }, { 0, 10 }, { 0, ',' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', {} , 0 ,' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineGrid ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ',' }, { 0, 11 }, { 0, ', ' }, { 0, 12 }, { 0, ' , ' }, { 0, 13 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTab ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', 1 ,"",0 , ' }, { 0, 9 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTab ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' ,"",0 , ' }, { 0, 10 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTab ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', 1 , ' }, { 0, 9 }, { 0, ', ' }, { 0, 10 }, { 0, ' , ' }, { 0, 11 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DefineTab ( ' }, { 0, 3 }, { 0, ', ' }, { 0, 4 }, { 0, ', ' }, { 0, 2 }, { 0, ', ' }, { 0, 1 }, { 0, ', ' }, { 0, 5 }, { 0, ', ' }, { 0, 6 }, { 0, ', ' }, { 0, 7 }, { 0, ', ' }, { 0, 8 }, { 0, ', ' }, { 0, 9 }, { 0, ' , ' }, { 0, 10 }, { 0, ', ' }, { 0, 11 }, { 0, ' , ' }, { 0, 12 }, { 0, ' )' } }, { -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'SetFocus(' }, { 0, 1 }, { 0, ',' }, { 0, 2 }, { 0, ')' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'AddItem(' }, { 0, 2 }, { 0, ',' }, { 0, 3 }, { 0, ',' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DeleteItem(' }, { 0, 2 }, { 0, ',' }, { 0, 3 }, { 0, ',' }, { 0, 1 }, { 0, ')' } }, { -1, 1, -1, 1, -1, 1, -1} , { NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DeleteAllItems(' }, { 0, 1 }, { 0, ',' }, { 0, 2 }, { 0, ')' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'PreviewReport ( ' }, { 0, 1 }, { 0, ', ' }, { 0, 3 }, { 0, ' , ' }, { 0, 5 }, { 0, ' , ' }, { 0, 2 }, { 0, ', ' }, { 0, 4 }, { 0, ' )' } }, { -1, 1, -1, 6, -1, 6, -1, 3, -1, 1, -1} , { NIL, NIL, NIL, NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ReleaseWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'ReleaseAllWindows()' } }, { -1} , } ) - aAdd( aCommResults, { { { 0, 'EnableControl ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ShowControl ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'HideControl ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'DisableControl ( ' }, { 0, 1 }, { 0, ' , ' }, { 0, 2 }, { 0, ' )' } }, { -1, 1, -1, 1, -1} , { NIL, NIL } } ) - aAdd( aCommResults, { { { 0, 'ActivateWindowx ( {' }, { 0, 1 }, { 0, '} )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'CenterWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'MaximizeWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'MinimizeWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'RestoreWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'ShowWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - aAdd( aCommResults, { { { 0, 'HideWindow ( ' }, { 0, 1 }, { 0, ' )' } }, { -1, 1, -1} , { NIL } } ) - - RETURN .T. - - #include "MiniGui.prg" - - #endif - - //--------------------------------------------------------------// - #ifdef USE_C_BOOST - - #ifdef __XHARBOUR__ - #pragma BEGINDUMP - #define __XHARBOUR__ - #pragma ENDDUMP - #endif - - #pragma BEGINDUMP - - #include - - #include "hbapi.h" - #include "hbstack.h" - #include "hbapierr.h" - #include "hbapiitm.h" - #include "hbvm.h" - - #ifdef __XHARBOUR__ - #include "hbfast.h" - #endif - - static BOOL s_bArrayPrefix = FALSE; - - //----------------------------------------------------------------------------// - HB_FUNC( _PP_SETARRAYPREFIX ) - { - PHB_ITEM pbArrayPrefix = hb_param( 1, HB_IT_LOGICAL ); - - if( pbArrayPrefix != NULL ) - { - s_bArrayPrefix = hb_itemGetL( pbArrayPrefix ); - } - } - - //----------------------------------------------------------------------------// - HB_FUNC( _PP_GETARRAYPREFIX ) - { - hb_retl( s_bArrayPrefix ); - } - - //----------------------------------------------------------------------------// - HB_FUNC( _PP_NEXTTOKEN ) - { - PHB_ITEM pLine = hb_param( 1, HB_IT_STRING ); - PHB_ITEM pDontRecord = hb_param( 2, HB_IT_LOGICAL ); - char *sLine, *pTmp; - char sReturn[2048]; - char s2[3]; - BOOL lDontRecord; - size_t Counter, nLen; - - #ifdef DEBUG_TOKEN - char sProc[64]; - USHORT uiLine; - #endif - - sLine = hb_itemGetCPtr( pLine ); - nLen = hb_itemGetCLen( pLine ); - - if( nLen == 0 ) - { - hb_ret(); - return; - } - - #ifdef DEBUG_TOKEN - hb_procinfo( 1, (char *) &sProc, &uiLine ); - printf( "%s[%i] Processing: '%s'\n", (char *) sProc, uiLine, sLine ); - #endif - - if( pDontRecord == NULL ) - { - lDontRecord = FALSE; - } - else - { - lDontRecord = hb_itemGetL( pDontRecord ); - } - - // *** To be removed after final testing !!! - while( sLine[0] == ' ' ) - { - sLine++; nLen--; - } - - sReturn[0] = '\0'; - s2[2] = '\0'; - - if( nLen >= 2 ) - { - s2[0] = sLine[0]; - s2[1] = sLine[1]; - - if( strstr( "++\\--\\->\\:=\\==\\!=\\<>\\>=\\<=\\+=\\-=\\*=\\^=\\**\\/=\\%=", (char*) s2 ) ) - { - sReturn[0] = s2[0]; - sReturn[1] = s2[1]; - sReturn[2] = '\0'; - - goto Done; - } - else if( s2[0] == '[' && s2[1] == '[' ) - { - pTmp = strstr( sLine + 2, "]]" ); - if( pTmp == NULL ) - { - sReturn[0] = '['; // Clipper does NOT consider '[[' a single token - sReturn[1] = '\0'; - } - else - { - strncpy( sReturn, sLine, ( pTmp - sLine ) + 2 ); - sReturn[( pTmp - sLine ) + 2] = '\0'; - } - - goto Done; - } - } - - if( isalpha( sLine[0] ) || sLine[0] == '_' ) - { - sReturn[0] = sLine[0]; - Counter = 1; - - // Why did I have the '\\' is NOT clear - document if and when reinstating!!! - while( isalnum( sLine[Counter] ) || sLine[Counter] == '_' ) //|| sLine[Counter] == '\\' ) - { - sReturn[Counter] = sLine[Counter]; - Counter++; - } - - sReturn[Counter] = '\0'; - goto Done; - } - else if( isdigit( sLine[0] ) ) - { - sReturn[0] = sLine[0]; - Counter = 1; - while( isdigit( sLine[Counter] ) || sLine[Counter] == '\\' ) - { - sReturn[Counter] = sLine[Counter]; - Counter++; - } - - // Consume the point (and subsequent digits) only if digits follow... - if( sLine[Counter] == '.' && isdigit( sLine[Counter + 1] ) ) - { - sReturn[Counter] = '.'; - Counter++; - sReturn[Counter] = sLine[Counter]; - Counter++; - while( isdigit( sLine[Counter] ) || sLine[Counter] == '\\' ) - { - sReturn[Counter] = sLine[Counter]; - Counter++; - } - } - - // Either way we are done. - sReturn[Counter] = '\0'; - goto Done; - } - else if( sLine[0] == '.' && isdigit( sLine[1] ) ) - { - sReturn[0] = '.'; - sReturn[1] = sLine[1]; - Counter = 2; - while( isdigit( sLine[Counter] ) ) - { - sReturn[Counter] = sLine[Counter]; - Counter++; - } - - sReturn[Counter] = '\0'; - goto Done; - } - else if( sLine[0] == '.' ) - { - if( nLen >= 5 && sLine[4] == '.' ) - { - if( toupper( sLine[1] ) == 'A' && toupper( sLine[2] ) == 'N' && toupper( sLine[3] ) == 'D' ) - { - sReturn[0] = '.'; - sReturn[1] = 'A'; - sReturn[2] = 'N'; - sReturn[3] = 'D'; - sReturn[4] = '.'; - sReturn[5] = '\0'; - - goto Done; - } - else if( toupper( sLine[1] ) == 'N' && toupper( sLine[2] ) == 'O' && toupper( sLine[3] ) == 'T' ) - { - sReturn[0] = '!'; - sReturn[1] = '\0'; - - /* Skip the unaccounted letters ( .NOT. <-> ! ) */ - sLine += 4; - - goto Done; - } - } - - if( nLen >= 4 && sLine[3] == '.' && toupper( sLine[1] ) == 'O' && toupper( sLine[2] ) == 'R' ) - { - sReturn[0] = '.'; - sReturn[1] = 'O'; - sReturn[2] = 'R'; - sReturn[3] = '.'; - sReturn[4] = '\0'; - - goto Done; - } - - if( nLen >= 3 && sLine[2] == '.' ) - { - if( toupper( sLine[1] ) == 'T' ) - { - sReturn[0] = '.'; - sReturn[1] = 'T'; - sReturn[2] = '.'; - sReturn[3] = '\0'; - - goto Done; - } - else if( toupper( sLine[1] ) == 'F' ) - { - sReturn[0] = '.'; - sReturn[1] = 'F'; - sReturn[2] = '.'; - sReturn[3] = '\0'; - - goto Done; - } - } - - sReturn[0] = '.'; - sReturn[1] = '\0'; - - goto Done; - } - else if( sLine[0] == '"' ) - { - pTmp = strchr( sLine + 1, '"' ); - if( pTmp == NULL ) - { - sReturn[0] = '"'; - sReturn[1] = '\0'; - } - else - { - strncpy( sReturn, sLine, ( pTmp - sLine ) + 1 ); - sReturn[( pTmp - sLine ) + 1] = '\0'; - } - - goto Done; - } - else if( sLine[0] == '\'' ) - { - pTmp = strchr( sLine + 1, '\'' ); - if( pTmp == NULL ) - { - sReturn[0] = '\''; - sReturn[1] = '\0'; - } - else - { - strncpy( sReturn, sLine, ( pTmp - sLine ) + 1 ); - sReturn[( pTmp - sLine ) + 1] = '\0'; - - if( strchr( sReturn, '"' ) == NULL ) - { - sReturn[0] = '"'; - sReturn[( pTmp - sLine )] = '"'; - } - } - - goto Done; - } - else if( sLine[0] == '[' ) - { - if( s_bArrayPrefix ) - { - sReturn[0] = '['; - sReturn[1] = '\0'; - } - else - { - pTmp = strchr( sLine + 1, ']' ); - if( pTmp == NULL ) - { - sReturn[0] = '['; - sReturn[1] = '\0'; - } - else - { - strncpy( sReturn, sLine, ( pTmp - sLine ) + 1 ); - sReturn[( pTmp - sLine ) + 1] = '\0'; - - if( strchr( sReturn, '"' ) == NULL ) - { - sReturn[0] = '"'; - sReturn[( pTmp - sLine )] = '"'; - } - else if( strchr( sReturn, '\'' ) == NULL ) - { - sReturn[0] = '\''; - sReturn[( pTmp - sLine )] = '\''; - } - } - } - - goto Done; - } - else if( sLine[0] == '\\' ) - { - sReturn[0] = '\\'; - sReturn[1] = sLine[1]; - sReturn[2] = '\0'; - - goto Done; - } - else if ( strchr( "+-*/:=^!&()[]{}@,|<>#%?$~", sLine[0] ) ) - { - sReturn[0] = sLine[0]; - sReturn[1] = '\0'; - - goto Done; - } - else - { - // Todo Generic Error. - //printf( "\nUnexpected case: %s\n", sLine ); - //getchar(); - sReturn[0] = sLine[0]; - sReturn[1] = '\0'; - } - - Done: - - sLine += ( nLen = strlen( sReturn ) ); - - if( ! lDontRecord ) - { - if( sReturn[0] == '.' && nLen > 1 && sReturn[nLen - 1] == '.' ) - { - s_bArrayPrefix = FALSE; - } - else - { - s_bArrayPrefix = ( isalnum( sReturn[0] ) || strchr( "])}._", sReturn[0] ) ); - - if( nLen < 7 && toupper( sReturn[0] ) == 'R' && toupper( sReturn[1] ) == 'E' && - toupper( sReturn[2] ) == 'T' && toupper( sReturn[3] ) == 'U' ) - { - if( sReturn[4] == '\0' ) - { - s_bArrayPrefix = FALSE; - } - else if( toupper( sReturn[4] ) == 'R' ) - { - if( sReturn[5] == '\0' ) - { - s_bArrayPrefix = FALSE; - } - else if( toupper( sReturn[5] ) == 'N' && sReturn[6] == '\0' ) - { - s_bArrayPrefix = FALSE; - } - } - } - } - } - - while( sLine[0] == ' ' ) - { - sReturn[nLen] = sLine[0]; - sLine++; nLen++; - } - sReturn[nLen] = '\0'; - - if( ISBYREF( 1 ) ) - { - if( sLine[0] == '\0' ) - { - hb_itemPutC( pLine, NULL ); - } - else - { - hb_itemPutCPtr( pLine, hb_strdup( sLine ), strlen( sLine ) ); - } - //printf( "\nToken: '%s' value: '%s'\n", sReturn, pLine->item.asString.value ); - } - else - { - //printf( "\nToken: '%s' ***value: '%s'\n", sReturn, pLine->item.asString.value ); - } - - #ifdef DEBUG_TOKEN - printf( "Token: '%s'\n", sReturn ); - #endif - - hb_retclen( sReturn, nLen ); - } - - //----------------------------------------------------------------------------// - HB_FUNC( _PP_NEXTIDENTIFIER ) - { - PHB_ITEM pLine = hb_param( 1, HB_IT_STRING ); - PHB_ITEM pSkipped = hb_param( 2, HB_IT_ANY ); - char *sLine; - char cChar, cLastChar = ' '; - size_t nAt, nLen; - int nStart = -1; - - sLine = hb_itemGetCPtr( pLine ); - nLen = hb_itemGetCLen( pLine ); - - if( nLen == 0 ) - { - hb_ret(); - } - - for( nAt = 0; nAt < nLen; nAt++ ) - { - cChar = sLine[nAt]; - - if( strchr( " ,([{|^*/+-=!#<>:&$", cChar ) ) - { - if( nStart >= 0 ) - { - break; - } - continue; // No need to record cLastChar - } - else if( strchr( ")]}", cChar ) ) - { - if( nStart >= 0 ) - { - break; - } - } - else if( strchr( "\"'", cChar ) ) - { - while( ( nAt < nLen ) && ( sLine[++nAt] != cChar ) ); - - continue; // No need to record cLastChar - } - else if( cChar == '[' ) - { - if( ! ( isalnum( cLastChar ) || strchr( "])}_.", cLastChar ) ) ) - { - while( nAt < nLen && sLine[++nAt] != ']' ); - } - cLastChar = ']'; - - continue; // Recorded cLastChar - } - else if( cChar == '.' ) - { - if( nStart >= 0 ) - { - break; - } - else if( toupper( sLine[nAt + 1] ) == 'T' && sLine[nAt + 2] == '.' ) - { - nAt += 2; - continue; - } - else if( toupper( sLine[nAt + 1] ) == 'F' && sLine[nAt + 2] == '.' ) - { - nAt += 2; - continue; - } - else if( toupper( sLine[nAt + 1] ) == 'O' && toupper( sLine[nAt + 2] ) == 'R' && sLine[nAt + 3] == '.' ) - { - nAt += 3; - continue; - } - else if( toupper( sLine[nAt + 1] ) == 'A' && toupper( sLine[nAt + 2] ) == 'N' && toupper( sLine[nAt + 3] ) == 'D' && sLine[nAt + 4] == '.' ) - { - nAt += 4; - continue; - } - else if( toupper( sLine[nAt + 1] ) == 'N' && toupper( sLine[nAt + 2] ) == 'O' && toupper( sLine[nAt + 3] ) == 'T' && sLine[nAt + 4] == '.' ) - { - nAt += 4; - continue; - } - } - else if( nStart == -1 && ( isalpha( cChar ) || cChar == '_' ) ) - { - nStart = nAt; - } - - cLastChar = cChar; - } - - if( ISBYREF( 2 ) ) - { - if( nStart <= 0 ) - { - hb_itemPutC( pSkipped, NULL ); - //printf( "\nNot Skipped: \n" ); - } - else - { - hb_itemPutCL( pSkipped, sLine, nStart ); - //printf( "\nSkipped: '%s'\n", pSkipped->item.asString.value ); - } - } - - if( nStart >= 0 ) - { - char *sIdentifier = (char *) hb_xgrab( ( nAt - nStart ) + 1 ); - - strncpy( sIdentifier, sLine + nStart, ( nAt - nStart ) ); - sIdentifier[nAt - nStart] = '\0'; - - //printf( "\nLine: '%s' nStart: %i nAt: %i sIdentifier: '%s'\n", sLine, nStart, nAt, sIdentifier ); - - if( ISBYREF( 1 ) ) - { - hb_itemPutCPtr( pLine, hb_strdup( sLine + nAt ), strlen( sLine + nAt ) ); - } - - //printf( "\nIdentifier: '%s'\n", sIdentifier ); - - #ifdef __XHARBOUR__ - hb_retcAdopt( sIdentifier ); - #else - hb_retc( sIdentifier ); - hb_xfree( sIdentifier ); - #endif - } - else - { - hb_ret(); - } - } - - //----------------------------------------------------------------------------// - HB_FUNC( EXTRACTLEADINGWS ) - { - PHB_ITEM pLine = hb_param( 1, HB_IT_STRING ); - size_t iLen, i = 0; - char *pTmp; - - if( pLine == NULL ) - { - hb_retclen( "", 0 ); - return; - } - - pTmp = hb_itemGetCPtr( pLine ); - iLen = hb_itemGetCLen( pLine ); - - while( pTmp[i] == ' ' ) - { - i++; - } - - if( i > 0 ) - { - if( HB_IS_BYREF( hb_stackItemFromBase( 1 ) ) ) - { - hb_itemPutCPtr( pLine, hb_strdup( pTmp + i ), iLen - i ); - } - } - - pTmp = ( char * ) hb_xgrab( i + 1 ); - memset( pTmp, ' ', i ); - - if( HB_IS_BYREF( hb_stackItemFromBase( 2 ) ) ) - { - PHB_ITEM pWS = hb_itemUnRef( hb_stackItemFromBase( 2 ) ); - hb_itemPutCL( pWS, pTmp, i ); - } - - #ifdef __XHARBOUR__ - hb_retclenAdopt( pTmp, i ); - #else - hb_retclen_buffer( pTmp, i ); - #endif - } - - //----------------------------------------------------------------------------// - HB_FUNC( DROPTRAILINGWS ) - { - PHB_ITEM pLine = hb_param( 1, HB_IT_STRING ); - char *pString; - size_t iLen, i; - - if( pLine == NULL ) - { - hb_retclen( "", 0 ); - return; - } - - pString = hb_itemGetC( pLine ); - iLen = hb_itemGetCLen( pLine ); - - i = iLen - 1; - - while( pString[i] == ' ' ) - { - i--; - } - - if( ++i < iLen ) - { - pString[i] = '\0'; - } - - if( HB_IS_BYREF( hb_stackItemFromBase( 1 ) ) ) - { - hb_itemPutCL( pLine, pString, i ); - } - - if( HB_IS_BYREF( hb_stackItemFromBase( 2 ) ) ) - { - PHB_ITEM pWS = hb_itemUnRef( hb_stackItemFromBase( 2 ) ); - char *pTmp = ( char * ) hb_xgrab( iLen - i + 1 ); - - memset( pTmp, ' ', iLen - i ); - hb_itemPutCPtr( pWS, pTmp, iLen - i ); - } - - #ifdef __XHARBOUR__ - hb_retclenAdopt( pString, i ); - #else - hb_retclen_buffer( pString, i ); - #endif - } - - //----------------------------------------------------------------------------// - HB_FUNC( DROPEXTRATRAILINGWS ) - { - PHB_ITEM pLine = hb_param( 1, HB_IT_STRING ); - char *pString; - size_t iLen, i; - - if( pLine == NULL ) - { - hb_retclen( "", 0 ); - return; - } - - pString = hb_itemGetC( pLine ); - iLen = hb_itemGetCLen( pLine ); - - i = iLen - 1; - - while( i > 1 && pString[i] == ' ' && pString[i - 1] == ' ' ) - { - i--; - } - - if( ++i < iLen ) - { - pString[i] = '\0'; - } - - if( HB_IS_BYREF( hb_stackItemFromBase( 1 ) ) ) - { - hb_itemPutCL( pLine, pString, i ); - } - - #ifdef __XHARBOUR__ - hb_retclenAdopt( pString, i ); - #else - hb_retclen_buffer( pString, i ); - #endif - } - - #pragma ENDDUMP - - #endif - //---------------------------------------------------------------------------// - -#endif -//--------------------------------------------------------------// - diff --git a/harbour/contrib/dot/prgscrpt.prg b/harbour/contrib/dot/prgscrpt.prg deleted file mode 100644 index 9e41519e33..0000000000 --- a/harbour/contrib/dot/prgscrpt.prg +++ /dev/null @@ -1,63 +0,0 @@ -Procedure Main( sMsg ) - - LOCAL sText, sPPed, asPPed, oInterpreter := TInterpreter():New() - - oInterpreter:AddLine( "/* Sample Script for embedded PP " ) - oInterpreter:AddLine( "/* Sample Script for embedded PP " ) - oInterpreter:AddLine( " have fun... */" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( "Procedure Test( cMacroVar, xValue )" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( " Local cVar := 'Hi There'" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( " &cMacroVar := xValue" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( " ? cVar, &cMacroVar, ;" ) - oInterpreter:AddLine( " xValue" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( " WHILE Inkey() == 0 // WAIT" ) - oInterpreter:AddLine( " ENDDO" ) - oInterpreter:AddLine( "" ) - oInterpreter:AddLine( "RETURN LastKey()" ) - - Alert( oInterpreter:Run( "Param1", "Param2" ) ) // Will automatically perform a ::Compile() first. - - sText := "/* Sample Script for embedded PP " + Chr(10) - sText += " have fun... */ " + Chr(10) - sText += " " + Chr(10) - sText += "Procedure Test( cMacroVar, xValue ) " + Chr(10) - sText += " " + Chr(10) - sText += " Local cVar := 'Hi There' " + Chr(10) - sText += " " + Chr(10) - sText += " &cMacroVar := xValue " + Chr(10) - sText += " " + Chr(10) - sText += " ? cVar, &cMacroVar, ; " + Chr(10) - sText += " xValue " + Chr(10) - sText += " " + Chr(10) - sText += " WHILE Inkey() == 0 // WAIT " + Chr(10) - sText += " ENDDO " + Chr(10) - sText += " " + Chr(10) - sText += "RETURN LastKey() " - - Alert( PP_RunText( sText, .T., { "Private_1", 1000 } ) ) - - //OR ... - - sPPed := PP_PreProText( sText ) - Alert( PP_RunText( sPPed, .F., { "Private_2", 2000 } ) ) - - //OR ... - asPPed := {} - PP_PreProText( sText, asPPed ) - Alert( PP_RunArray( asPPed, { "Private_3", 3000 } ) ) - - // Now let's have some real fun... - IF sMsg == "Recursively running self" - Alert( "Let's STOP this madness..." ) - RETURN - ELSE - //PP_Run( "prgscrpt.prg", { "Recursively running self" } ) - oInterpreter:RunFile( "prgscrpt.prg", { "Recursively running self" }, ".pp", .F. ) // Output PreProcessed extension .pp wirhout blanks. - ENDIF - -return diff --git a/harbour/contrib/dot/rp_dot.ch b/harbour/contrib/dot/rp_dot.ch deleted file mode 100644 index daaa57be6e..0000000000 --- a/harbour/contrib/dot/rp_dot.ch +++ /dev/null @@ -1,27 +0,0 @@ -#command CLS ; - => Scroll( 2, 0, MaxRow() - 1, MaxCol() ) ; - ; SetPos( 2, 0 ) - -#COMMAND BROWSE => Browse( 1, 0, MaxRow() - 1, MaxCol() ) -#COMMAND EXIT => __QUIT() - -#TRANSLATE _GET_( , , [], [], [] ) => __GET( MEMVARBLOCK(), , , , ) -#ifndef __HARBOUR__ - #TRANSLATE __GET( ):Display() => __GET() - #TRANSLATE aAdd( GetList, __GET() ) => __oGet := __GET() ; aAdd( GetList, __oGet ) ; __oGet:Display() -#endif - -#COMMAND IF => __SetIf( ) -#COMMAND ELSEIF => __SetElseIf( ) -#COMMAND ELSE => __SetElse() -#COMMAND ENDIF [<*x*>] => __SetEnd() -#COMMAND END [<*x*>] => __SetEnd() - -#COMMAND DO CASE => __SetDoCase() -#COMMAND CASE => __SetCase( ) -#COMMAND OTHERWISE => __SetOtherwise() -#COMMAND ENDCASE [<*x*>] => __SetEndCase() - -#COMMAND DO .prg => PP_Run( # + ".prg" ) - -#command CD <(dir)> => DirChange( <(dir)> ) diff --git a/harbour/contrib/dot/rp_run.ch b/harbour/contrib/dot/rp_run.ch deleted file mode 100644 index cffe74c837..0000000000 --- a/harbour/contrib/dot/rp_run.ch +++ /dev/null @@ -1,105 +0,0 @@ -/* - * xBaseScript Project source code: - * Pre-Processor / Dot prompt environment / Script Interpreter - * - * Copyright 2000-2001 Ron Pinkas - * www - http://www.xBaseScript.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at http://www.gnu.org/). - */ - -#ifdef __HARBOUR__ - #ifdef WIN - #COMMAND Alert( ) => MessageBox( 0, xToStr( ), "xBaseScript for Windows", 0 ) - #endif -#else - //#define __CLIPPER__ -#endif - -#TRANSLATE AS => -#TRANSLATE AS ARRAY OF => -#TRANSLATE AS CLASS => -#TRANSLATE AS CLASS := => := -#COMMAND _HB_CLASS <*x*> => -#COMMAND _HB_MEMBER <*x*> => - -#XTRANSLATE QSelf() => PP_Qself() -#XTRANSLATE AddMethod( , @(), , ) => AddInLine( , {|Self,p1,p2,p3,p4,p5,p6,p7,p8,p9| PP_QSelf(Self), PP_ExecMethod( <"FunName">, p1,p2,p3,p4,p5,p6,p7,p8,p9 ) }, , ) -#TRANSLATE :: => Self: - -#COMMAND MEMVAR <*x*> => - -//#COMMAND BROWSE => Browse( 1, 0, MaxRow() - 1, MaxCol() ) - -#TRANSLATE _GET_( , , [], [], [] ) => __GET( MEMVARBLOCK(), , , , ) -#TRANSLATE __GET( ):Display() => __GET() - -//#COMMAND EXTERNAL [, ] => PP_ProcessFile( ) [; PP_ProcessFile( ) ] -#COMMAND EXTERNAL [, ] => - -#COMMAND DECLARE <*x*> => - -// Must precede rule for DO CASE. -#COMMAND DO => () -#COMMAND DO WITH [, ] => ( [, ] ) - -#COMMAND IF => PP__IF -#COMMAND ELSEIF => PP__ELSEIF -#COMMAND ELSE => PP__ELSE -#COMMAND ENDIF [<*x*>] => PP__ENDIF -#COMMAND END [<*x*>] => PP__END - -#COMMAND DO CASE => PP__DOCASE -#COMMAND CASE => PP__CASE -#COMMAND OTHERWISE => PP__OTHERWISE -#COMMAND ENDCASE [<*x*>] => PP__ENDCASE - -#COMMAND FOR := TO [STEP ] => PP__FOR :=~TO~~STEP~ -#COMMAND FOR = TO [STEP ] => PP__FOR :=~TO~~STEP~ -#COMMAND LOOP [<*x*>] => PP__LOOP -#COMMAND EXIT [<*x*>] => PP__EXIT -#COMMAND NEXT [<*x*>] => PP__NEXT - -#COMMAND DO WHILE => PP__WHILE -#COMMAND WHILE => PP__WHILE -#COMMAND ENDDO [<*x*>] => PP__ENDDO - -#COMMAND DO <(file)>.prg => PP_Run( # + ".prg" ) - -#COMMAND INIT PROCEDURE [()] => PP_PROC_INIT -#COMMAND EXIT PROCEDURE [()] => PP_PROC_EXIT - -#COMMAND STATIC PROCEDURE ( ) => PP_PROC_PRG ; PP_LocalParams( { <"par"> } ) -#COMMAND STATIC PROCEDURE [()] => PP_PROC_PRG -#COMMAND STATIC FUNCTION ( ) => PP_PROC_PRG ; PP_LocalParams( { <"par"> } ) -#COMMAND STATIC FUNCTION [()] => PP_PROC_PRG - -#COMMAND PROCEDURE ( ) => PP_PROC ; PP_LocalParams( { <"par"> } ) -#COMMAND PROCEDURE [()] => PP_PROC -#COMMAND FUNCTION ( ) => PP_PROC ; PP_LocalParams( { <"par"> } ) -#COMMAND FUNCTION [()] => PP_PROC - -#COMMAND RETURN [] => PP_SetReturn( ) - -#COMMAND PARAMETERS => PP_Params( { <"par"> } ) -#COMMAND PRIVATE => PP_Privates( { <"var"> } ) -#COMMAND DECLARE => PP_Privates( { <"var"> } ) -#COMMAND PUBLIC => PP_Publics( { <"var"> } ) -#COMMAND LOCAL => PP_Locals( { <"var"> } ) -#COMMAND STATIC => PP_Statics( { <"var"> } ) - -#TRANSLATE ProcName( [] ) => PP_ProcName( ) -#TRANSLATE ProcLine( [] ) => PP_ProcLine( ) diff --git a/harbour/contrib/dot/test.prg b/harbour/contrib/dot/test.prg deleted file mode 100644 index 2a15031fac..0000000000 --- a/harbour/contrib/dot/test.prg +++ /dev/null @@ -1,69 +0,0 @@ -PROCEDURE Main - - LOCAL cLocal - PRIVATE cName - - CLEAR SCREEN - - Alert( "Testinf PP as Interpreter... " ) - - USE test - IF ! File( "test" + IndexExt() ) - INDEX on FIELD->First TO First - ELSE - SET INDEX TO First - ENDIF - - GO TOP - - cName := FIELD->First + FIELD->Last - - IF cName == FIELD->First + FIELD->Last - ? "Ok" - ELSE - ? "Err" - ENDIF - - DO CASE - CASE cName == First // Not exact! - ? "Err" - - CASE cName = First // But still equal - ? "Ok" - - OTHERWISE - ? "Err" - ENDCASE - - REPLACE First WITH "From PP" - - ? FIELD->First - - cLocal := "in main" - ? Test() - ? cLocal - ? cName - - ? cFromTest - ? TestPrv - -RETURN - -FUNCTION Test - - PRIVATE TestPrv - PUBLIC cFromTest - - ? cName - ? cLocal - - M->TestPrv := "Private of Test" - Test2() - -RETURN ProcName() - -PROCEDURE Test2 - - ? ProcName(), ProcLine(), M->testPrv - -RETURN diff --git a/harbour/contrib/gd/common.mak b/harbour/contrib/gd/common.mak new file mode 100644 index 0000000000..8fe8cbb8f1 --- /dev/null +++ b/harbour/contrib/gd/common.mak @@ -0,0 +1,22 @@ +# +# $Id$ +# + +LIBNAME = hbgd + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\gdwrp.obj \ + $(OBJ_DIR)\gd.obj \ + $(OBJ_DIR)\gdimage.obj \ + $(OBJ_DIR)\gdchart.obj \ + $(OBJ_DIR)\gdbar.obj \ + $(OBJ_DIR)\gdbarcod.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/gd/make_b32.bat b/harbour/contrib/gd/make_b32.bat index 4ba2e1c6da..0eaeee64d1 100644 --- a/harbour/contrib/gd/make_b32.bat +++ b/harbour/contrib/gd/make_b32.bat @@ -1,60 +1,60 @@ @echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need GD lib sources from www.libgd.org and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\gd-2.0.35 +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD -if not exist bgd.dll goto NODLL - - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - - impdef -a ..\..\lib\b32\libbgd.def bgd.dll > make_b32.log - if errorlevel 1 goto BUILD_ERR - - implib -a ..\..\lib\b32\libbgd.lib ..\..\lib\b32\libbgd.def > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\libbgd.lib ..\..\lib > nul - copy ..\..\lib\b32\hbgd.lib ..\..\lib > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\hbgd.lib del ..\..\lib\b32\hbgd.lib - if exist ..\..\lib\b32\hbgd.bak del ..\..\lib\b32\hbgd.bak - - if exist ..\..\obj\b32\gdwrp.obj del ..\..\obj\b32\gdwrp.obj - - if exist ..\..\obj\b32\gd.c del ..\..\obj\b32\gd.c - if exist ..\..\obj\b32\gdimage.c del ..\..\obj\b32\gdimage.c - if exist ..\..\obj\b32\gdchart.c del ..\..\obj\b32\gdchart.c - if exist ..\..\obj\b32\gdbar.c del ..\..\obj\b32\gdbar.c - if exist ..\..\obj\b32\gdbarcod.c del ..\..\obj\b32\gdbarcod.c - - if exist ..\..\obj\b32\gd.obj del ..\..\obj\b32\gd.obj - if exist ..\..\obj\b32\gdimage.obj del ..\..\obj\b32\gdimage.obj - if exist ..\..\obj\b32\gdchart.obj del ..\..\obj\b32\gdchart.obj - if exist ..\..\obj\b32\gdbar.obj del ..\..\obj\b32\gdbar.obj - if exist ..\..\obj\b32\gdbarcod.obj del ..\..\obj\b32\gdbarcod.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT +:INSTALL -:NODLL + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. -echo. -echo.Missing bgd.dll, please download it from: -echo.http://www.libgd.org/Downloads (Windows.DLL) -echo. -echo.Make aborted. -echo. + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/gd/make_vc.bat b/harbour/contrib/gd/make_vc.bat new file mode 100644 index 0000000000..f9612777f0 --- /dev/null +++ b/harbour/contrib/gd/make_vc.bat @@ -0,0 +1,60 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need GD lib sources from www.libgd.org and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\gd-2.0.35 +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/gd/makefile.bc b/harbour/contrib/gd/makefile.bc deleted file mode 100644 index 6ba6b704f8..0000000000 --- a/harbour/contrib/gd/makefile.bc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of mysql.lib - Harbour API to mySQL - -INCLUDE_DIR = include;..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\hbgd.lib : \ - $(OBJ_DIR)\gdwrp.obj \ - $(OBJ_DIR)\gd.obj \ - $(OBJ_DIR)\gdimage.obj \ - $(OBJ_DIR)\gdchart.obj \ - $(OBJ_DIR)\gdbar.obj \ - $(OBJ_DIR)\gdbarcod.obj - -$(OBJ_DIR)\gd.c : gd.prg -$(OBJ_DIR)\gd.obj : $(OBJ_DIR)\gd.c - -$(OBJ_DIR)\gdimage.c : gdimage.prg -$(OBJ_DIR)\gdimage.obj : $(OBJ_DIR)\gdimage.c - -$(OBJ_DIR)\gdchart.c : gdchart.prg -$(OBJ_DIR)\gdchart.obj : $(OBJ_DIR)\gdchart.c - -$(OBJ_DIR)\gdbar.c : gdbar.prg -$(OBJ_DIR)\gdbar.obj : $(OBJ_DIR)\gdbar.c - -$(OBJ_DIR)\gdbarcod.c : gdbarcod.prg -$(OBJ_DIR)\gdbarcod.obj : $(OBJ_DIR)\gdbarcod.c - -$(OBJ_DIR)\gdwrp.obj : gdwrp.c - -.c.obj: - bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $< - tlib $(LIB_DIR)\hbgd.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/hb_struc/hbstruc.ch b/harbour/contrib/hb_struc/hbstruc.ch deleted file mode 100644 index 8854e31848..0000000000 --- a/harbour/contrib/hb_struc/hbstruc.ch +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HB_STRUCTURE - - #define HB_STRUCTURE - - #COMMAND STRUCTURE [, ] => ; - STATIC __ := {|| IF( __ == NIL, , ) , HB_Structure( <"StruName">, { <"Var1"> [, <"VarN">] } )} ;; - DECLARE [ ] ;; - #TRANSLATE AS NEW => AS STRUCTURE := ( Eval( __ ), HB_Structure( <"StruName"> ) ) - -#endif diff --git a/harbour/contrib/hb_struc/hbstruc.prg b/harbour/contrib/hb_struc/hbstruc.prg deleted file mode 100644 index aefcd13c33..0000000000 --- a/harbour/contrib/hb_struc/hbstruc.prg +++ /dev/null @@ -1,117 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * Base Class for internal handling of class creation - * - * Copyright 2000 Ron Pinkas - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#include "hbstruc.ch" - -//----------------------------------------------------------------------------// - -Function HB_Structure( cStructureName AS Char, aMembers AS Array OF Char ) - - STRUCTURE HB_Structure cName AS Char, hId As Num - - DECLARE __ClsNew( ClassName AS Char, N As Num ) AS Num - DECLARE __ClsAddMsg( H AS Num, Data AS Char, ID As Num, Type As Num ) AS Num - DECLARE __ClsInst( H AS Num ) AS Structure HB_Structure - - LOCAL hStructure AS Num, nCounter AS Num, nMembers AS Num - - STATIC asStructures AS Array OF Structure HB_Structure := {} - - STATIC sStructure AS Stru HB_Structure - - LOCAL hSelf As Num - - cStructureName := Upper( cStructureName ) - - hStructure := aScan( asStructures, { |aStructure| aStructure:cName == cStructureName } ) - - IF aMembers == NIL - IF hStructure == 0 - //hb_Structure( cStructureName, {} ) - RETURN NIL //hb_Structure( cStructureName ) - ELSE - RETURN __ClsInst( asStructures[ hStructure ]:hId ) - ENDIF - ELSE - IF hStructure > 0 - // Duplicate declaration - RETURN NIL - ENDIF - ENDIF - - nMembers := Len( aMembers ) - - hStructure := __ClsNew( cStructureName, nMembers ) - - FOR nCounter := 1 TO nMembers - __clsAddMsg( hStructure, aMembers[nCounter], nCounter, 1 ) - __clsAddMsg( hStructure, '_' + aMembers[nCounter], nCounter, 1 ) - NEXT - - IF sStructure == NIL - hSelf := __ClsNew( "HB_Structure", 2 ) - - __clsAddMsg( hSelf, "cName", 1, 1 ) - __clsAddMsg( hSelf, "_cName", 1, 1 ) - __clsAddMsg( hSelf, "hID", 2, 1 ) - __clsAddMsg( hSelf, "_hID", 2, 1 ) - - sStructure := __ClsInst( hSelf ) - ENDIF - - sStructure:cName := cStructureName - sStructure:hId := hStructure - - aAdd( asStructures, sStructure ) - -RETURN NIL //__clsInst( hStructure ) - diff --git a/harbour/contrib/hb_struc/teststru.prg b/harbour/contrib/hb_struc/teststru.prg deleted file mode 100644 index 74a94bcfa3..0000000000 --- a/harbour/contrib/hb_struc/teststru.prg +++ /dev/null @@ -1,29 +0,0 @@ -REQUEST HBSTRUC -#INCLUDE "HBSTRUC.CH" - -STRUCTURE MyStruct Var1 As Char, Var2 As Num, sNext AS Stru MyStruct - -STRUCTURE OtherStruct sNested As Stru MyStruct, sNext AS Structure OtherStruct - -PROCEDURE MAIN() - - LOCAL sTest AS New MyStruct, sTest2 As New OtherStruct - - sTest:Var1 := 'Working' // No problem here. (Var1 of myStruct is Char) - - ? sTest:Var1 // No Problem here. - - sTest:Var1 := 8 // Warning Here as Expected. -> Var1 of MyStruct is Char not Num - - sTest2:sNested:Var1 := 8 // Warning Here Expected -> Var1 of MyStruct is Char not Num - - sTest2:sNested:sNext := 8 // Warning Here Expected -> sNext of MyStruct is MyStruct not Num - - - /* Run TIME ERROR Here */ - sTest2:sNested:sNested := 8 // Warning Here Expected -> MyStruct has no sNested Var - - /* Run TIME ERROR Here */ - sTest:NoSuchVar := "Error" // Warning here as expected. -> MyStruct has no NoSuchVar Var. - -RETURN diff --git a/harbour/contrib/htmllib/Makefile.bc b/harbour/contrib/htmllib/Makefile.bc deleted file mode 100644 index 19cb42d731..0000000000 --- a/harbour/contrib/htmllib/Makefile.bc +++ /dev/null @@ -1,203 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -!if $d(B16) - -CC = bcc -AS = tasm - -# Borland C/C++ (DOS 16 bits) -CFLAGS = -mh $(CFLAGS) - -BIN_DIR = bin\b16 -OBJ_DIR = obj\b16 -LIB_DIR = lib\b16 - -!else - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!endif - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include;include -TOOLS_DIR = -TOOLS1_DIR = examples -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -w2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\html.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# -TOOLS_LIB_OBJS = \ -$(OBJ_DIR)\ohtm.obj \ -$(OBJ_DIR)\htmbrows.obj \ -$(OBJ_DIR)\oedit.obj \ -$(OBJ_DIR)\ofile.obj \ -$(OBJ_DIR)\jlist.obj \ -$(OBJ_DIR)\oini.obj \ -$(OBJ_DIR)\jwindow.obj \ -$(OBJ_DIR)\ocgi.obj \ -$(OBJ_DIR)\oframe.obj \ -$(OBJ_DIR)\counter.obj \ -$(OBJ_DIR)\errorsys.obj \ -$(OBJ_DIR)\htmutil.obj - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - - -$(OBJ_DIR)\ohtm.c : ohtm.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\ohtm.obj : $(OBJ_DIR)\ohtm.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\htmbrows.c : htmbrows.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\htmbrows.obj : $(OBJ_DIR)\htmbrows.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\oedit.c : oedit.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\oedit.obj : $(OBJ_DIR)\oedit.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ofile.c : ofile.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\ofile.obj : $(OBJ_DIR)\ofile.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\jlist.c : jlist.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\jlist.obj : $(OBJ_DIR)\jlist.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\oini.c : oini.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\oini.obj : $(OBJ_DIR)\oini.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\jwindow.c : jwindow.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\jwindow.obj : $(OBJ_DIR)\jwindow.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ocgi.c : ocgi.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\ocgi.obj : $(OBJ_DIR)\ocgi.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\oframe.c : oframe.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\oframe.obj : $(OBJ_DIR)\oframe.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\counter.c : counter.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\counter.obj : $(OBJ_DIR)\counter.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\errorsys.c : errorsys.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\errorsys.obj : $(OBJ_DIR)\errorsys.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\htmutil.c : htmutil.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\htmutil.obj : $(OBJ_DIR)\htmutil.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - diff --git a/harbour/contrib/htmllib/common.mak b/harbour/contrib/htmllib/common.mak new file mode 100644 index 0000000000..6edf3f1382 --- /dev/null +++ b/harbour/contrib/htmllib/common.mak @@ -0,0 +1,28 @@ +# +# $Id$ +# + +LIBNAME = html + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\ohtm.obj \ + $(OBJ_DIR)\htmbrows.obj \ + $(OBJ_DIR)\oedit.obj \ + $(OBJ_DIR)\ofile.obj \ + $(OBJ_DIR)\jlist.obj \ + $(OBJ_DIR)\oini.obj \ + $(OBJ_DIR)\jwindow.obj \ + $(OBJ_DIR)\ocgi.obj \ + $(OBJ_DIR)\oframe.obj \ + $(OBJ_DIR)\counter.obj \ + $(OBJ_DIR)\errorsys.obj \ + $(OBJ_DIR)\htmutil.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/htmllib/make_b32.bat b/harbour/contrib/htmllib/make_b32.bat index d8347107c1..e2eeba3252 100644 --- a/harbour/contrib/htmllib/make_b32.bat +++ b/harbour/contrib/htmllib/make_b32.bat @@ -3,42 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN -if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\html.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\html.lib del ..\..\lib\b32\html.lib - if exist ..\..\lib\b32\html.bak del ..\..\lib\b32\html.bak - if exist ..\..\obj\b32\ohtm.obj del ..\..\obj\b32\ads1.obj - if exist ..\..\obj\b32\htmbrows.obj del ..\..\obj\b32\adsfunc.obj - if exist ..\..\obj\b32\oedit.obj del ..\..\obj\b32\adsmgmnt.obj - if exist ..\..\obj\b32\ofile.obj del ..\..\obj\b32\ofile.obj - if exist ..\..\obj\b32\jlist.obj del ..\..\obj\b32\jlist.obj - if exist ..\..\obj\b32\oini.obj del ..\..\obj\b32\oini.obj - if exist ..\..\obj\b32\jwindow.obj del ..\..\obj\b32\jwindow.obj - if exist ..\..\obj\b32\ocgi.obj del ..\..\obj\b32\ocgi.obj - if exist ..\..\obj\b32\oframe.obj del ..\..\obj\b32\oframe.obj - if exist ..\..\obj\b32\counter.obj del ..\..\obj\b32\counter.obj - if exist ..\..\obj\b32\errorsys.obj del ..\..\obj\b32\errorsys.obj - if exist ..\..\obj\b32\htmutil.obj del ..\..\obj\b32\htmutil.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/htmllib/make_vc.bat b/harbour/contrib/htmllib/make_vc.bat index ebef201ce9..bf8f375a9a 100644 --- a/harbour/contrib/htmllib/make_vc.bat +++ b/harbour/contrib/htmllib/make_vc.bat @@ -3,41 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN -if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\html.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR - - notepad make_vc.log - :CLEAN - if exist ..\..\lib\vc\html.lib del ..\..\lib\vc\html.lib - if exist ..\..\lib\vc\html.bak del ..\..\lib\vc\html.bak - if exist ..\..\obj\vc\ohtm.obj del ..\..\obj\vc\ads1.obj - if exist ..\..\obj\vc\htmbrows.obj del ..\..\obj\vc\adsfunc.obj - if exist ..\..\obj\vc\oedit.obj del ..\..\obj\vc\adsmgmnt.obj - if exist ..\..\obj\vc\ofile.obj del ..\..\obj\vc\ofile.obj - if exist ..\..\obj\vc\jlist.obj del ..\..\obj\vc\jlist.obj - if exist ..\..\obj\vc\oini.obj del ..\..\obj\vc\oini.obj - if exist ..\..\obj\vc\jwindow.obj del ..\..\obj\vc\jwindow.obj - if exist ..\..\obj\vc\ocgi.obj del ..\..\obj\vc\ocgi.obj - if exist ..\..\obj\vc\oframe.obj del ..\..\obj\vc\oframe.obj - if exist ..\..\obj\vc\counter.obj del ..\..\obj\vc\counter.obj - if exist ..\..\obj\vc\errorsys.obj del ..\..\obj\vc\errorsys.obj - if exist ..\..\obj\vc\htmutil.obj del ..\..\obj\vc\htmutil.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/htmllib/makefile.vc b/harbour/contrib/htmllib/makefile.vc deleted file mode 100644 index 0888a8f4f8..0000000000 --- a/harbour/contrib/htmllib/makefile.vc +++ /dev/null @@ -1,114 +0,0 @@ -# -# $Id$ -# - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin\vc - -# -# C compiler definition and C flags. These should never have to change. -# - -CC = cl -CFLAGS = -W3 -nologo -I$(INCLUDE_DIR) -CLIBFLAGS = $(CFLAGS) -c -CLIBFLAGSDEBUG = $(CLIBFLAGS) -Zi -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -w2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\html.lib -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# -TOOLS_LIB_OBJS = \ -$(OBJ_DIR)\ohtm.obj \ -$(OBJ_DIR)\htmbrows.obj \ -$(OBJ_DIR)\oedit.obj \ -$(OBJ_DIR)\ofile.obj \ -$(OBJ_DIR)\jlist.obj \ -$(OBJ_DIR)\oini.obj \ -$(OBJ_DIR)\jwindow.obj \ -$(OBJ_DIR)\ocgi.obj \ -$(OBJ_DIR)\oframe.obj \ -$(OBJ_DIR)\counter.obj \ -$(OBJ_DIR)\errorsys.obj \ -$(OBJ_DIR)\htmutil.obj - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /OUT:$(TOOLS_LIB) $(TOOLS_LIB_OBJS) - -$(OBJ_DIR)\ohtm.obj : ohtm.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\htmbrows.obj : htmbrows.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\oedit.obj : oedit.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\ofile.obj : ofile.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\jlist.obj : jlist.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\oini.obj : oini.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\jwindow.obj : jwindow.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\ocgi.obj : ocgi.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\oframe.obj : oframe.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\counter.obj : counter.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\errorsys.obj : errorsys.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - -$(OBJ_DIR)\htmutil.obj : htmutil.prg - $(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c - $(CC) $(CLIBFLAGS) -Fo$@ $*.c - diff --git a/harbour/contrib/libct/make_b32.bat b/harbour/contrib/libct/make_b32.bat index 8f275c4c26..e2eeba3252 100644 --- a/harbour/contrib/libct/make_b32.bat +++ b/harbour/contrib/libct/make_b32.bat @@ -3,8 +3,23 @@ rem rem $Id$ rem -if "%CC_NAME%" == "" set CC_NAME=b32 +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN @@ -14,13 +29,15 @@ if "%1" == "INSTALL" goto INSTALL :BUILD - %HB_MAKE_PROGRAM% -f ..\maketpl.%CC_NAME% %1 %2 %3 > make_%CC_NAME%.log - if errorlevel 1 notepad make_%CC_NAME%.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% CLEAN > make_%CC_NAME%.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT :INSTALL @@ -31,7 +48,7 @@ if "%1" == "INSTALL" goto INSTALL if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% INSTALL > nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT diff --git a/harbour/contrib/libct/make_vc.bat b/harbour/contrib/libct/make_vc.bat index ca708873a7..bf8f375a9a 100644 --- a/harbour/contrib/libct/make_vc.bat +++ b/harbour/contrib/libct/make_vc.bat @@ -3,8 +3,23 @@ rem rem $Id$ rem -if "%CC_NAME%" == "" set CC_NAME=vc +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN @@ -14,13 +29,15 @@ if "%1" == "INSTALL" goto INSTALL :BUILD - %HB_MAKE_PROGRAM% -f ..\maketpl.%CC_NAME% %1 %2 %3 > make_%CC_NAME%.log - if errorlevel 1 notepad make_%CC_NAME%.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% CLEAN > make_%CC_NAME%.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT :INSTALL @@ -31,7 +48,7 @@ if "%1" == "INSTALL" goto INSTALL if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% INSTALL > nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT diff --git a/harbour/contrib/libgt/common.mak b/harbour/contrib/libgt/common.mak new file mode 100644 index 0000000000..942203e921 --- /dev/null +++ b/harbour/contrib/libgt/common.mak @@ -0,0 +1,33 @@ +# +# $Id$ +# + +LIBNAME = gt + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\asciisum.obj \ + $(OBJ_DIR)\ascpos.obj \ + $(OBJ_DIR)\atdiff.obj \ + $(OBJ_DIR)\chareven.obj \ + $(OBJ_DIR)\charmix.obj \ + $(OBJ_DIR)\charodd.obj \ + $(OBJ_DIR)\chrcount.obj \ + $(OBJ_DIR)\chrfirst.obj \ + $(OBJ_DIR)\chrtotal.obj \ + $(OBJ_DIR)\strasint.obj \ + $(OBJ_DIR)\strcount.obj \ + $(OBJ_DIR)\strcspn.obj \ + $(OBJ_DIR)\strdiff.obj \ + $(OBJ_DIR)\strexpan.obj \ + $(OBJ_DIR)\strleft.obj \ + $(OBJ_DIR)\strpbrk.obj \ + $(OBJ_DIR)\strright.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/libgt/make_b32.bat b/harbour/contrib/libgt/make_b32.bat index 8afe4d05a5..e2eeba3252 100644 --- a/harbour/contrib/libgt/make_b32.bat +++ b/harbour/contrib/libgt/make_b32.bat @@ -1,29 +1,54 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\gt.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/libgt/make_vc.bat b/harbour/contrib/libgt/make_vc.bat index 4f0b3aecbc..bf8f375a9a 100644 --- a/harbour/contrib/libgt/make_vc.bat +++ b/harbour/contrib/libgt/make_vc.bat @@ -1,21 +1,54 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\gt.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/libgt/makefile.bc b/harbour/contrib/libgt/makefile.bc deleted file mode 100644 index e0c9a51b12..0000000000 --- a/harbour/contrib/libgt/makefile.bc +++ /dev/null @@ -1,195 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -!if $d(B16) - -CC = bcc -AS = tasm - -# Borland C/C++ (DOS 16 bits) -CFLAGS = -mh $(CFLAGS) - -BIN_DIR = bin\b16 -OBJ_DIR = obj\b16 -LIB_DIR = lib\b16 - -!else - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!endif - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\gt.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\asciisum.obj \ - $(OBJ_DIR)\ascpos.obj \ - $(OBJ_DIR)\atdiff.obj \ - $(OBJ_DIR)\chareven.obj \ - $(OBJ_DIR)\charmix.obj \ - $(OBJ_DIR)\charodd.obj \ - $(OBJ_DIR)\chrcount.obj \ - $(OBJ_DIR)\chrfirst.obj \ - $(OBJ_DIR)\chrtotal.obj \ - $(OBJ_DIR)\strasint.obj \ - $(OBJ_DIR)\strcount.obj \ - $(OBJ_DIR)\strcspn.obj \ - $(OBJ_DIR)\strdiff.obj \ - $(OBJ_DIR)\strexpan.obj \ - $(OBJ_DIR)\strleft.obj \ - $(OBJ_DIR)\strpbrk.obj \ - $(OBJ_DIR)\strright.obj \ - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - -# -# TOOLS.LIB dependencies -# - -$(OBJ_DIR)\asciisum.obj : $(TOOLS_DIR)\asciisum.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ascpos.obj : $(TOOLS_DIR)\ascpos.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\atdiff.obj : $(TOOLS_DIR)\atdiff.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\chareven.obj : $(TOOLS_DIR)\chareven.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\charmix.obj : $(TOOLS_DIR)\charmix.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\charodd.obj : $(TOOLS_DIR)\charodd.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\chrcount.obj : $(TOOLS_DIR)\chrcount.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\chrfirst.obj : $(TOOLS_DIR)\chrfirst.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\chrtotal.obj : $(TOOLS_DIR)\chrtotal.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strasint.obj : $(TOOLS_DIR)\strasint.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strcount.obj : $(TOOLS_DIR)\strcount.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strcspn.obj : $(TOOLS_DIR)\strcspn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strdiff.obj : $(TOOLS_DIR)\strdiff.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strexpan.obj : $(TOOLS_DIR)\strexpan.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strleft.obj : $(TOOLS_DIR)\strleft.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strpbrk.obj : $(TOOLS_DIR)\strpbrk.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strright.obj : $(TOOLS_DIR)\strright.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - diff --git a/harbour/contrib/libgt/makefile.vc b/harbour/contrib/libgt/makefile.vc deleted file mode 100644 index c1f1635e14..0000000000 --- a/harbour/contrib/libgt/makefile.vc +++ /dev/null @@ -1,170 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\gt.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\asciisum.obj \ - $(OBJ_DIR)\ascpos.obj \ - $(OBJ_DIR)\atdiff.obj \ - $(OBJ_DIR)\chareven.obj \ - $(OBJ_DIR)\charmix.obj \ - $(OBJ_DIR)\charodd.obj \ - $(OBJ_DIR)\chrcount.obj \ - $(OBJ_DIR)\chrfirst.obj \ - $(OBJ_DIR)\chrtotal.obj \ - $(OBJ_DIR)\strasint.obj \ - $(OBJ_DIR)\strcount.obj \ - $(OBJ_DIR)\strcspn.obj \ - $(OBJ_DIR)\strdiff.obj \ - $(OBJ_DIR)\strexpan.obj \ - $(OBJ_DIR)\strleft.obj \ - $(OBJ_DIR)\strpbrk.obj \ - $(OBJ_DIR)\strright.obj - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -@if exist $(OBJ_DIR)\asciisum.obj del $(OBJ_DIR)\asciisum.obj - -@if exist $(OBJ_DIR)\ascpos.obj del $(OBJ_DIR)\ascpos.obj - -@if exist $(OBJ_DIR)\atdiff.obj del $(OBJ_DIR)\atdiff.obj - -@if exist $(OBJ_DIR)\chareven.obj del $(OBJ_DIR)\chareven.obj - -@if exist $(OBJ_DIR)\charmix.obj del $(OBJ_DIR)\charmix.obj - -@if exist $(OBJ_DIR)\charodd.obj del $(OBJ_DIR)\charodd.obj - -@if exist $(OBJ_DIR)\chrcount.obj del $(OBJ_DIR)\chrcount.obj - -@if exist $(OBJ_DIR)\chrfirst.obj del $(OBJ_DIR)\chrfirst.obj - -@if exist $(OBJ_DIR)\chrtotal.obj del $(OBJ_DIR)\chrtotal.obj - -@if exist $(OBJ_DIR)\strasint.obj del $(OBJ_DIR)\strasint.obj - -@if exist $(OBJ_DIR)\strcount.obj del $(OBJ_DIR)\strcount.obj - -@if exist $(OBJ_DIR)\strcspn.obj del $(OBJ_DIR)\strcspn.obj - -@if exist $(OBJ_DIR)\strdiff.obj del $(OBJ_DIR)\strdiff.obj - -@if exist $(OBJ_DIR)\strexpan.obj del $(OBJ_DIR)\strexpan.obj - -@if exist $(OBJ_DIR)\strleft.obj del $(OBJ_DIR)\strleft.obj - -@if exist $(OBJ_DIR)\strpbrk.obj del $(OBJ_DIR)\strpbrk.obj - -@if exist $(OBJ_DIR)\strright.obj del $(OBJ_DIR)\strright.obj - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) - diff --git a/harbour/contrib/libmisc/common.mak b/harbour/contrib/libmisc/common.mak new file mode 100644 index 0000000000..6c0fda9eb6 --- /dev/null +++ b/harbour/contrib/libmisc/common.mak @@ -0,0 +1,29 @@ +# +# $Id$ +# + +LIBNAME = libmisc + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\dates2.obj \ + $(OBJ_DIR)\dbftools.obj \ + $(OBJ_DIR)\hb_f.obj \ + $(OBJ_DIR)\mathx.obj \ + $(OBJ_DIR)\strfmt.obj \ + $(OBJ_DIR)\stringsx.obj \ + \ + $(OBJ_DIR)\fileread.obj \ + $(OBJ_DIR)\nconvert.obj \ + $(OBJ_DIR)\numtxten.obj \ + $(OBJ_DIR)\numtxthu.obj \ + $(OBJ_DIR)\stringp.obj \ + $(OBJ_DIR)\twirler.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/libmisc/make_b32.bat b/harbour/contrib/libmisc/make_b32.bat index d4e3da2382..e2eeba3252 100644 --- a/harbour/contrib/libmisc/make_b32.bat +++ b/harbour/contrib/libmisc/make_b32.bat @@ -1,29 +1,54 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\libmisc.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/libmisc/make_vc.bat b/harbour/contrib/libmisc/make_vc.bat index 85171879d4..bf8f375a9a 100644 --- a/harbour/contrib/libmisc/make_vc.bat +++ b/harbour/contrib/libmisc/make_vc.bat @@ -1,21 +1,54 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\libmisc.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/libmisc/makefile.bc b/harbour/contrib/libmisc/makefile.bc deleted file mode 100644 index 0eadfd2c46..0000000000 --- a/harbour/contrib/libmisc/makefile.bc +++ /dev/null @@ -1,188 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -!if $d(B16) - -CC = bcc -AS = tasm - -# Borland C/C++ (DOS 16 bits) -CFLAGS = -mh $(CFLAGS) - -BIN_DIR = bin\b16 -OBJ_DIR = obj\b16 -LIB_DIR = lib\b16 - -!else - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!endif - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\libmisc.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\dates2.obj \ - $(OBJ_DIR)\dbftools.obj \ - $(OBJ_DIR)\hb_f.obj \ - $(OBJ_DIR)\mathx.obj \ - $(OBJ_DIR)\strfmt.obj \ - $(OBJ_DIR)\stringsx.obj \ - \ - $(OBJ_DIR)\fileread.obj \ - $(OBJ_DIR)\nconvert.obj \ - $(OBJ_DIR)\numtxten.obj \ - $(OBJ_DIR)\numtxthu.obj \ - $(OBJ_DIR)\stringp.obj \ - $(OBJ_DIR)\twirler.obj - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - -# -# TOOLS.LIB dependencies -# - -$(OBJ_DIR)\dates2.obj : $(TOOLS_DIR)\dates2.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dbftools.obj : $(TOOLS_DIR)\dbftools.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\fileread.c : $(TOOLS_DIR)\fileread.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\fileread.obj : $(OBJ_DIR)\fileread.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hb_f.obj : $(TOOLS_DIR)\hb_f.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\mathx.obj : $(TOOLS_DIR)\mathx.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\nconvert.c : $(TOOLS_DIR)\nconvert.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\nconvert.obj : $(OBJ_DIR)\nconvert.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\numtxten.c : $(TOOLS_DIR)\numtxten.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\numtxten.obj : $(OBJ_DIR)\numtxten.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\numtxthu.c : $(TOOLS_DIR)\numtxthu.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\numtxthu.obj : $(OBJ_DIR)\numtxthu.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\strfmt.obj : $(TOOLS_DIR)\strfmt.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\stringp.c : $(TOOLS_DIR)\stringp.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\stringp.obj : $(OBJ_DIR)\stringp.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\stringsx.obj : $(TOOLS_DIR)\stringsx.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\twirler.c : $(TOOLS_DIR)\twirler.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\twirler.obj : $(OBJ_DIR)\twirler.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/libmisc/makefile.vc b/harbour/contrib/libmisc/makefile.vc deleted file mode 100644 index e0bfc995f7..0000000000 --- a/harbour/contrib/libmisc/makefile.vc +++ /dev/null @@ -1,159 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin\vc - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\libmisc.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) \ - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\dates2.obj \ - $(OBJ_DIR)\dbftools.obj \ - $(OBJ_DIR)\hb_f.obj \ - $(OBJ_DIR)\mathx.obj \ - $(OBJ_DIR)\strfmt.obj \ - $(OBJ_DIR)\stringsx.obj \ - \ - $(OBJ_DIR)\fileread.obj \ - $(OBJ_DIR)\nconvert.obj \ - $(OBJ_DIR)\numtxten.obj \ - $(OBJ_DIR)\numtxthu.obj \ - $(OBJ_DIR)\stringp.obj \ - $(OBJ_DIR)\twirler.obj - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\dates2.obj del $(OBJ_DIR)\dates2.obj - -@if exist $(OBJ_DIR)\dbftools.obj del $(OBJ_DIR)\dbftools.obj - -@if exist $(OBJ_DIR)\hb_f.obj del $(OBJ_DIR)\hb_f.obj - -@if exist $(OBJ_DIR)\mathx.obj del $(OBJ_DIR)\mathx.obj - -@if exist $(OBJ_DIR)\strfmt.obj del $(OBJ_DIR)\strfmt.obj - -@if exist $(OBJ_DIR)\stringsx.obj del $(OBJ_DIR)\stringsx.obj - -@if exist $(OBJ_DIR)\fileread.* del $(OBJ_DIR)\fileread.* - -@if exist $(OBJ_DIR)\nconvert.* del $(OBJ_DIR)\nconvert.* - -@if exist $(OBJ_DIR)\numtxten.* del $(OBJ_DIR)\numtxten.* - -@if exist $(OBJ_DIR)\numtxthu.* del $(OBJ_DIR)\numtxthu.* - -@if exist $(OBJ_DIR)\stringp.* del $(OBJ_DIR)\stringp.* - -@if exist $(OBJ_DIR)\twirler.* del $(OBJ_DIR)\twirler.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/libnf/common.mak b/harbour/contrib/libnf/common.mak new file mode 100644 index 0000000000..35675380e9 --- /dev/null +++ b/harbour/contrib/libnf/common.mak @@ -0,0 +1,150 @@ +# +# $Id$ +# + +LIBNAME = nf + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\caplock.obj \ + $(OBJ_DIR)\color2n.obj \ + $(OBJ_DIR)\descend.obj \ + $(OBJ_DIR)\numlock.obj \ + $(OBJ_DIR)\proper.obj \ + $(OBJ_DIR)\shift.obj \ + $(OBJ_DIR)\mouse.obj \ + $(OBJ_DIR)\getvid.obj \ + $(OBJ_DIR)\setkeys.obj \ + $(OBJ_DIR)\setlastk.obj \ + $(OBJ_DIR)\ftisprn.obj \ + $(OBJ_DIR)\ftidle.obj \ + $(OBJ_DIR)\iamidle.obj \ + $(OBJ_DIR)\chdir.obj \ + $(OBJ_DIR)\rmdir.obj \ + $(OBJ_DIR)\alt.obj \ + $(OBJ_DIR)\ctrl.obj \ + $(OBJ_DIR)\getenvrn.obj \ + $(OBJ_DIR)\n2color.obj \ + $(OBJ_DIR)\origin.obj \ + $(OBJ_DIR)\prtscr.obj \ + $(OBJ_DIR)\stod.obj \ + $(OBJ_DIR)\kspeed.obj \ + $(OBJ_DIR)\mkdir.obj \ + $(OBJ_DIR)\getver.obj \ + $(OBJ_DIR)\ftattr.obj \ + $(OBJ_DIR)\dispc.obj \ + $(OBJ_DIR)\fttext.obj \ + $(OBJ_DIR)\ftshadow.obj \ + $(OBJ_DIR)\putkey.obj \ + \ + $(OBJ_DIR)\aading.obj \ + $(OBJ_DIR)\aavg.obj \ + $(OBJ_DIR)\acctadj.obj \ + $(OBJ_DIR)\acctmnth.obj \ + $(OBJ_DIR)\acctqtr.obj \ + $(OBJ_DIR)\acctweek.obj \ + $(OBJ_DIR)\acctyear.obj \ + $(OBJ_DIR)\adessort.obj \ + $(OBJ_DIR)\aemaxlen.obj \ + $(OBJ_DIR)\aeminlen.obj \ + $(OBJ_DIR)\amedian.obj \ + $(OBJ_DIR)\anomatch.obj \ + $(OBJ_DIR)\any2any.obj \ + $(OBJ_DIR)\aredit.obj \ + $(OBJ_DIR)\asum.obj \ + $(OBJ_DIR)\at2.obj \ + $(OBJ_DIR)\bitclr.obj \ + $(OBJ_DIR)\bitset.obj \ + $(OBJ_DIR)\blink.obj \ + $(OBJ_DIR)\byt2bit.obj \ + $(OBJ_DIR)\byt2hex.obj \ + $(OBJ_DIR)\byteand.obj \ + $(OBJ_DIR)\byteneg.obj \ + $(OBJ_DIR)\bytenot.obj \ + $(OBJ_DIR)\byteor.obj \ + $(OBJ_DIR)\bytexor.obj \ + $(OBJ_DIR)\calendar.obj \ + $(OBJ_DIR)\clrsel.obj \ + $(OBJ_DIR)\cntryset.obj \ + $(OBJ_DIR)\d2e.obj \ + $(OBJ_DIR)\datecnfg.obj \ + $(OBJ_DIR)\dayofyr.obj \ + $(OBJ_DIR)\daytobow.obj \ + $(OBJ_DIR)\dectobin.obj \ + $(OBJ_DIR)\diskfunc.obj \ + $(OBJ_DIR)\dispmsg.obj \ + $(OBJ_DIR)\dosver.obj \ + $(OBJ_DIR)\e2d.obj \ + $(OBJ_DIR)\easter.obj \ + $(OBJ_DIR)\elapmil.obj \ + $(OBJ_DIR)\elapsed.obj \ + $(OBJ_DIR)\eltime.obj \ + $(OBJ_DIR)\findith.obj \ + $(OBJ_DIR)\firstday.obj \ + $(OBJ_DIR)\gcd.obj \ + $(OBJ_DIR)\hex2dec.obj \ + $(OBJ_DIR)\invclr.obj \ + $(OBJ_DIR)\isbit.obj \ + $(OBJ_DIR)\isbiton.obj \ + $(OBJ_DIR)\isshare.obj \ + $(OBJ_DIR)\lastday.obj \ + $(OBJ_DIR)\linked.obj \ + $(OBJ_DIR)\madd.obj \ + $(OBJ_DIR)\menu1.obj \ + $(OBJ_DIR)\menuto.obj \ + $(OBJ_DIR)\metaph.obj \ + $(OBJ_DIR)\miltime.obj \ + $(OBJ_DIR)\min2dhm.obj \ + $(OBJ_DIR)\month.obj \ + $(OBJ_DIR)\mouse1.obj \ + $(OBJ_DIR)\netpv.obj \ + $(OBJ_DIR)\nooccur.obj \ + $(OBJ_DIR)\ntow.obj \ + $(OBJ_DIR)\nwlstat.obj \ + $(OBJ_DIR)\page.obj \ + $(OBJ_DIR)\pchr.obj \ + $(OBJ_DIR)\pegs.obj \ + $(OBJ_DIR)\pending.obj \ + $(OBJ_DIR)\pickday.obj \ + $(OBJ_DIR)\popadder.obj \ + $(OBJ_DIR)\prtesc.obj \ + $(OBJ_DIR)\pvid.obj \ + $(OBJ_DIR)\qtr.obj \ + $(OBJ_DIR)\rand1.obj \ + $(OBJ_DIR)\restsets.obj \ + $(OBJ_DIR)\ftround.obj \ + $(OBJ_DIR)\savearr.obj \ + $(OBJ_DIR)\savesets.obj \ + $(OBJ_DIR)\scregion.obj \ + $(OBJ_DIR)\sinkey.obj \ + $(OBJ_DIR)\sleep.obj \ + $(OBJ_DIR)\sqzn.obj \ + $(OBJ_DIR)\tbwhile.obj \ + $(OBJ_DIR)\tempfile.obj \ + $(OBJ_DIR)\vertmenu.obj \ + $(OBJ_DIR)\vidmode.obj \ + $(OBJ_DIR)\wda.obj \ + $(OBJ_DIR)\week.obj \ + $(OBJ_DIR)\workdays.obj \ + $(OBJ_DIR)\woy.obj \ + $(OBJ_DIR)\xbox.obj \ + $(OBJ_DIR)\year.obj + +# $(OBJ_DIR)\sysmem.obj \ +# $(OBJ_DIR)\dfile.obj \ +# $(OBJ_DIR)\vidcur.obj \ +# $(OBJ_DIR)\scancode.obj \ +# $(OBJ_DIR)\setdate.obj \ +# $(OBJ_DIR)\settime.obj \ +# $(OBJ_DIR)\nwsem.obj \ +# $(OBJ_DIR)\nwuid.obj \ + +# $(OBJ_DIR)\floptst.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/libnf/make_b32.bat b/harbour/contrib/libnf/make_b32.bat index 56d4560cfa..e2eeba3252 100644 --- a/harbour/contrib/libnf/make_b32.bat +++ b/harbour/contrib/libnf/make_b32.bat @@ -3,27 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\nf.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/libnf/make_vc.bat b/harbour/contrib/libnf/make_vc.bat index df531ce8b1..bf8f375a9a 100644 --- a/harbour/contrib/libnf/make_vc.bat +++ b/harbour/contrib/libnf/make_vc.bat @@ -1,21 +1,54 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\nf.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/libnf/makefile.bc b/harbour/contrib/libnf/makefile.bc deleted file mode 100644 index 09fbaa8421..0000000000 --- a/harbour/contrib/libnf/makefile.bc +++ /dev/null @@ -1,970 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Nanfor Library for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# HB_GT_LIB - To override the default GT driver -# (search for HB_GT_LIBS for a list of values) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -!if $d(B16) - -CC = bcc -AS = tasm /ml - -# Borland C/C++ (DOS 16 bits) -CFLAGS = -mh $(CFLAGS) - -BIN_DIR = ..\..\bin\b16 -OBJ_DIR = ..\..\obj\b16 -LIB_DIR = ..\..\lib\b16 - -!else - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!endif - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -!if $d(B16) -HARBOUR_EXE = ..\..\bin\b16\harbour.exe -!else -HARBOUR_EXE = ..\..\bin\b32\harbour.exe -!endif - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -DHB_LANG_DEFAULT=$(HB_LANG_DEFAULT) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) -# -# Macros to access our library names -# - - -NANFOR_LIB = $(LIB_DIR)\nf.lib -NANFOR_LIB_OBJ = \ - $(OBJ_DIR)\aading.obj \ - $(OBJ_DIR)\aavg.obj \ - $(OBJ_DIR)\acctadj.obj \ - $(OBJ_DIR)\acctmnth.obj \ - $(OBJ_DIR)\acctqtr.obj \ - $(OBJ_DIR)\acctweek.obj \ - $(OBJ_DIR)\acctyear.obj \ - $(OBJ_DIR)\adessort.obj \ - $(OBJ_DIR)\aemaxlen.obj \ - $(OBJ_DIR)\aeminlen.obj \ - $(OBJ_DIR)\amedian.obj \ - $(OBJ_DIR)\anomatch.obj \ - $(OBJ_DIR)\any2any.obj \ - $(OBJ_DIR)\aredit.obj \ - $(OBJ_DIR)\asum.obj \ - $(OBJ_DIR)\at2.obj \ - $(OBJ_DIR)\bitclr.obj \ - $(OBJ_DIR)\bitset.obj \ - $(OBJ_DIR)\blink.obj \ - $(OBJ_DIR)\byt2bit.obj \ - $(OBJ_DIR)\byt2hex.obj \ - $(OBJ_DIR)\byteand.obj \ - $(OBJ_DIR)\byteneg.obj \ - $(OBJ_DIR)\bytenot.obj \ - $(OBJ_DIR)\byteor.obj \ - $(OBJ_DIR)\bytexor.obj \ - $(OBJ_DIR)\calendar.obj \ - $(OBJ_DIR)\clrsel.obj \ - $(OBJ_DIR)\cntryset.obj \ - $(OBJ_DIR)\d2e.obj \ - $(OBJ_DIR)\datecnfg.obj \ - $(OBJ_DIR)\dayofyr.obj \ - $(OBJ_DIR)\daytobow.obj \ - $(OBJ_DIR)\dectobin.obj \ - $(OBJ_DIR)\dfile.obj \ - $(OBJ_DIR)\diskfunc.obj \ - $(OBJ_DIR)\dispmsg.obj \ - $(OBJ_DIR)\dosver.obj \ - $(OBJ_DIR)\e2d.obj \ - $(OBJ_DIR)\easter.obj \ - $(OBJ_DIR)\elapmil.obj \ - $(OBJ_DIR)\elapsed.obj \ - $(OBJ_DIR)\eltime.obj \ - $(OBJ_DIR)\findith.obj \ - $(OBJ_DIR)\firstday.obj \ - $(OBJ_DIR)\gcd.obj \ - $(OBJ_DIR)\hex2dec.obj \ - $(OBJ_DIR)\invclr.obj \ - $(OBJ_DIR)\isbit.obj \ - $(OBJ_DIR)\isbiton.obj \ - $(OBJ_DIR)\isshare.obj \ - $(OBJ_DIR)\lastday.obj \ - $(OBJ_DIR)\linked.obj \ - $(OBJ_DIR)\madd.obj \ - $(OBJ_DIR)\menu1.obj \ - $(OBJ_DIR)\menuto.obj \ - $(OBJ_DIR)\metaph.obj \ - $(OBJ_DIR)\miltime.obj \ - $(OBJ_DIR)\min2dhm.obj \ - $(OBJ_DIR)\month.obj \ - $(OBJ_DIR)\mouse1.obj \ - $(OBJ_DIR)\netpv.obj \ - $(OBJ_DIR)\nooccur.obj \ - $(OBJ_DIR)\ntow.obj \ - $(OBJ_DIR)\nwlstat.obj \ - $(OBJ_DIR)\pchr.obj \ - $(OBJ_DIR)\pegs.obj \ - $(OBJ_DIR)\pending.obj \ - $(OBJ_DIR)\pickday.obj \ - $(OBJ_DIR)\popadder.obj \ - $(OBJ_DIR)\prtesc.obj \ - $(OBJ_DIR)\pvid.obj \ - $(OBJ_DIR)\qtr.obj \ - $(OBJ_DIR)\rand1.obj \ - $(OBJ_DIR)\restsets.obj \ - $(OBJ_DIR)\ftround.obj \ - $(OBJ_DIR)\savearr.obj \ - $(OBJ_DIR)\savesets.obj \ - $(OBJ_DIR)\scregion.obj \ - $(OBJ_DIR)\sinkey.obj \ - $(OBJ_DIR)\sleep.obj \ - $(OBJ_DIR)\sqzn.obj \ - $(OBJ_DIR)\tbwhile.obj \ - $(OBJ_DIR)\vertmenu.obj \ - $(OBJ_DIR)\wda.obj \ - $(OBJ_DIR)\week.obj \ - $(OBJ_DIR)\workdays.obj \ - $(OBJ_DIR)\woy.obj \ - $(OBJ_DIR)\xbox.obj \ - $(OBJ_DIR)\year.obj \ - $(OBJ_DIR)\vidmode.obj \ - $(OBJ_DIR)\page.obj \ - $(OBJ_DIR)\tempfile.obj \ - \ - $(OBJ_DIR)\caplock.obj \ - $(OBJ_DIR)\color2n.obj \ - $(OBJ_DIR)\descend.obj \ - $(OBJ_DIR)\numlock.obj \ - $(OBJ_DIR)\proper.obj \ - $(OBJ_DIR)\shift.obj \ - $(OBJ_DIR)\mouse.obj \ - $(OBJ_DIR)\getvid.obj \ - $(OBJ_DIR)\chdir.obj \ - $(OBJ_DIR)\rmdir.obj \ - $(OBJ_DIR)\alt.obj \ - $(OBJ_DIR)\ctrl.obj \ - $(OBJ_DIR)\getenvrn.obj \ - $(OBJ_DIR)\n2color.obj \ - $(OBJ_DIR)\origin.obj \ - $(OBJ_DIR)\prtscr.obj \ - $(OBJ_DIR)\stod.obj \ - $(OBJ_DIR)\kspeed.obj \ - $(OBJ_DIR)\mkdir.obj \ - $(OBJ_DIR)\getver.obj \ - $(OBJ_DIR)\ftattr.obj \ - $(OBJ_DIR)\dispc.obj \ - $(OBJ_DIR)\setkeys.obj \ - $(OBJ_DIR)\setlastk.obj \ - $(OBJ_DIR)\iamidle.obj \ - $(OBJ_DIR)\ftidle.obj \ - $(OBJ_DIR)\ftisprn.obj \ - $(OBJ_DIR)\fttext.obj \ - $(OBJ_DIR)\ftshadow.obj \ - $(OBJ_DIR)\putkey.obj - - -# $(OBJ_DIR)\sysmem.obj \ -# $(OBJ_DIR)\vidcur.obj \ -# $(OBJ_DIR)\scancode.obj \ -# $(OBJ_DIR)\setdate.obj \ -# $(OBJ_DIR)\settime.obj \ -# $(OBJ_DIR)\nwsem.obj \ -# $(OBJ_DIR)\nwuid.obj \ - -# $(OBJ_DIR)\floptst.obj \ - - -all: \ - $(NANFOR_LIB) - -$(NANFOR_LIB) : $(NANFOR_LIB_OBJ) - -$(OBJ_DIR)\isbiton.c : isbiton.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\isbiton.obj : $(OBJ_DIR)\isbiton.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\mouse1.c : mouse1.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\acctadj.c : acctadj.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\aeminlen.c : aeminlen.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\lastday.c : lastday.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\restsets.c : restsets.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\acctyear.c : acctyear.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\datecnfg.c : datecnfg.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\adessort.c : adessort.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\anomatch.c : anomatch.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\any2any.c : any2any.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\asum.c : asum.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\bitclr.c : bitclr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\bitset.c : bitset.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\tbwhile.c : tbwhile.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\blink.c : blink.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\byt2bit.c : byt2bit.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\byt2hex.c : byt2hex.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\byteand.c : byteand.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\byteneg.c : byteneg.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\byteor.c : byteor.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\daytobow.c : daytobow.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\clrsel.c : clrsel.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\cntryset.c : cntryset.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\elapsed.c : elapsed.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\woy.c : woy.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\dectobin.c : dectobin.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\hex2dec.c : hex2dec.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\e2d.c : e2d.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\vidcur.c : vidcur.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\elapmil.c : elapmil.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\dosver.c : dosver.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\findith.c : findith.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\firstday.c : firstday.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\gcd.c : gcd.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\min2dhm.c : min2dhm.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\invclr.c : invclr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\isbit.c : isbit.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\isshare.c : isshare.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\popadder.c : popadder.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\menuto.c : menuto.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\month.c : month.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\metaph.c : metaph.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\miltime.c : miltime.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\netpv.c : netpv.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\nooccur.c : nooccur.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\nwuid.c : nwuid.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\sysmem.c : sysmem.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\pickday.c : pickday.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\prtesc.c : prtesc.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\week.c : week.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\rand1.c : rand1.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\scancode.c : scancode.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\wda.c : wda.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\setdate.c : setdate.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\sqzn.c : sqzn.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\menu1.c : menu1.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\vertmenu.c : vertmenu.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\aavg.c : aavg.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\acctweek.c : acctweek.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\bytenot.c : bytenot.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\pchr.c : pchr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\d2e.c : d2e.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\xbox.c : xbox.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\acctqtr.c : acctqtr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\savesets.c : savesets.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\dayofyr.c : dayofyr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\dispmsg.c : dispmsg.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\page.c : page.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\pending.c : pending.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\amedian.c : amedian.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\calendar.c : calendar.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\year.c : year.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\easter.c : easter.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\ftround.c : ftround.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\aemaxlen.c : aemaxlen.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\aading.c : aading.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\qtr.c : qtr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\madd.c : madd.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\scregion.c : scregion.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\linked.c : linked.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\sleep.c : sleep.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\ntow.c : ntow.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\aredit.c : aredit.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\at2.c : at2.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\nwlstat.c : nwlstat.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\tempfile.c : tempfile.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\settime.c : settime.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\sinkey.c : sinkey.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\vidmode.c : vidmode.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\eltime.c : eltime.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\nwsem.c : nwsem.prg - # $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\diskfunc.c : diskfunc.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\pvid.c : pvid.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\bytexor.c : bytexor.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\dfile.c : dfile.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\acctmnth.c : acctmnth.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\pegs.c : pegs.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\workdays.c : workdays.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -$(OBJ_DIR)\savearr.c : savearr.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ -#$(OBJ_DIR)\floptst.c : floptst.prg -# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - - - -$(OBJ_DIR)\mouse1.obj : $(OBJ_DIR)\mouse1.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\acctadj.obj : $(OBJ_DIR)\acctadj.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\aeminlen.obj : $(OBJ_DIR)\aeminlen.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\lastday.obj : $(OBJ_DIR)\lastday.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\restsets.obj : $(OBJ_DIR)\restsets.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\acctyear.obj : $(OBJ_DIR)\acctyear.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\datecnfg.obj : $(OBJ_DIR)\datecnfg.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\adessort.obj : $(OBJ_DIR)\adessort.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\anomatch.obj : $(OBJ_DIR)\anomatch.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\any2any.obj : $(OBJ_DIR)\any2any.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\asum.obj : $(OBJ_DIR)\asum.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\bitclr.obj : $(OBJ_DIR)\bitclr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\bitset.obj : $(OBJ_DIR)\bitset.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\tbwhile.obj : $(OBJ_DIR)\tbwhile.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\blink.obj : $(OBJ_DIR)\blink.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\byt2bit.obj : $(OBJ_DIR)\byt2bit.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\byt2hex.obj : $(OBJ_DIR)\byt2hex.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\byteand.obj : $(OBJ_DIR)\byteand.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\byteneg.obj : $(OBJ_DIR)\byteneg.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\byteor.obj : $(OBJ_DIR)\byteor.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\daytobow.obj : $(OBJ_DIR)\daytobow.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\clrsel.obj : $(OBJ_DIR)\clrsel.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - - -$(OBJ_DIR)\cntryset.obj : $(OBJ_DIR)\cntryset.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\elapsed.obj : $(OBJ_DIR)\elapsed.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\woy.obj : $(OBJ_DIR)\woy.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dectobin.obj : $(OBJ_DIR)\dectobin.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hex2dec.obj : $(OBJ_DIR)\hex2dec.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\e2d.obj : $(OBJ_DIR)\e2d.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\vidcur.obj : $(OBJ_DIR)\vidcur.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\elapmil.obj : $(OBJ_DIR)\elapmil.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dosver.obj : $(OBJ_DIR)\dosver.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\findith.obj : $(OBJ_DIR)\findith.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\firstday.obj : $(OBJ_DIR)\firstday.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\gcd.obj : $(OBJ_DIR)\gcd.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\min2dhm.obj : $(OBJ_DIR)\min2dhm.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\invclr.obj : $(OBJ_DIR)\invclr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\isbit.obj : $(OBJ_DIR)\isbit.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\isshare.obj : $(OBJ_DIR)\isshare.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\popadder.obj : $(OBJ_DIR)\popadder.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\menuto.obj : $(OBJ_DIR)\menuto.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\month.obj : $(OBJ_DIR)\month.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\metaph.obj : $(OBJ_DIR)\metaph.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\miltime.obj : $(OBJ_DIR)\miltime.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\netpv.obj : $(OBJ_DIR)\netpv.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\nooccur.obj : $(OBJ_DIR)\nooccur.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\nwuid.obj : $(OBJ_DIR)\nwuid.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\sysmem.obj : $(OBJ_DIR)\sysmem.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\pickday.obj : $(OBJ_DIR)\pickday.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\prtesc.obj : $(OBJ_DIR)\prtesc.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\week.obj : $(OBJ_DIR)\week.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\rand1.obj : $(OBJ_DIR)\rand1.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\scancode.obj : $(OBJ_DIR)\scancode.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\wda.obj : $(OBJ_DIR)\wda.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\setdate.obj : $(OBJ_DIR)\setdate.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\sqzn.obj : $(OBJ_DIR)\sqzn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\menu1.obj : $(OBJ_DIR)\menu1.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\vertmenu.obj : $(OBJ_DIR)\vertmenu.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\aavg.obj : $(OBJ_DIR)\aavg.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\acctweek.obj : $(OBJ_DIR)\acctweek.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\bytenot.obj : $(OBJ_DIR)\bytenot.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\pchr.obj : $(OBJ_DIR)\pchr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\d2e.obj : $(OBJ_DIR)\d2e.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xbox.obj : $(OBJ_DIR)\xbox.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\acctqtr.obj : $(OBJ_DIR)\acctqtr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\savesets.obj : $(OBJ_DIR)\savesets.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dayofyr.obj : $(OBJ_DIR)\dayofyr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dispmsg.obj : $(OBJ_DIR)\dispmsg.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\page.obj : $(OBJ_DIR)\page.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\pending.obj : $(OBJ_DIR)\pending.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\amedian.obj : $(OBJ_DIR)\amedian.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\calendar.obj : $(OBJ_DIR)\calendar.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\year.obj : $(OBJ_DIR)\year.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\easter.obj : $(OBJ_DIR)\easter.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ftround.obj : $(OBJ_DIR)\ftround.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\aemaxlen.obj : $(OBJ_DIR)\aemaxlen.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\aading.obj : $(OBJ_DIR)\aading.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\qtr.obj : $(OBJ_DIR)\qtr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\madd.obj : $(OBJ_DIR)\madd.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\scregion.obj : $(OBJ_DIR)\scregion.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\linked.obj : $(OBJ_DIR)\linked.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\sleep.obj : $(OBJ_DIR)\sleep.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ntow.obj : $(OBJ_DIR)\ntow.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\aredit.obj : $(OBJ_DIR)\aredit.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\at2.obj : $(OBJ_DIR)\at2.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\nwlstat.obj : $(OBJ_DIR)\nwlstat.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\tempfile.obj : $(OBJ_DIR)\tempfile.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\settime.obj : $(OBJ_DIR)\settime.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\sinkey.obj : $(OBJ_DIR)\sinkey.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\vidmode.obj : $(OBJ_DIR)\vidmode.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\eltime.obj : $(OBJ_DIR)\eltime.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\nwsem.obj : $(OBJ_DIR)\nwsem.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\diskfunc.obj : $(OBJ_DIR)\diskfunc.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\pvid.obj : $(OBJ_DIR)\pvid.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\bytexor.obj : $(OBJ_DIR)\bytexor.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dfile.obj : $(OBJ_DIR)\dfile.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\acctmnth.obj : $(OBJ_DIR)\acctmnth.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\pegs.obj : $(OBJ_DIR)\pegs.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\workdays.obj : $(OBJ_DIR)\workdays.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\savearr.obj : $(OBJ_DIR)\savearr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -#$(OBJ_DIR)\floptst.obj : $(OBJ_DIR)\floptst.c -# $(CC) $(CLIBFLAGS) -o$@ $** -# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\caplock.obj : caplock.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\shift.obj : shift.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\color2n.obj : color2n.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\descend.obj : descend.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, -$(OBJ_DIR)\numlock.obj : numlock.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, -$(OBJ_DIR)\proper.obj : proper.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\mouse.obj : mouse.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\getvid.obj : getvid.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\chdir.obj : chdir.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\rmdir.obj : rmdir.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\alt.obj : alt.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ctrl.obj : ctrl.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\getenvrn.obj : getenvrn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\n2color.obj : n2color.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\origin.obj : origin.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\prtscr.obj : prtscr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\stod.obj : stod.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\kspeed.obj : kspeed.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\mkdir.obj : mkdir.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\getver.obj : getver.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\setkeys.obj : setkeys.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\setlastk.obj : setlastk.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ftisprn.obj : ftisprn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ftidle.obj : ftidle.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\iamidle.obj : iamidle.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dispc.obj : dispc.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ftattr.obj : ftattr.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\fttext.obj : fttext.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\ftshadow.obj : ftshadow.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\putkey.obj : putkey.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/libnf/makefile.vc b/harbour/contrib/libnf/makefile.vc deleted file mode 100644 index b096b55608..0000000000 --- a/harbour/contrib/libnf/makefile.vc +++ /dev/null @@ -1,391 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\nf.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\caplock.obj \ - $(OBJ_DIR)\color2n.obj \ - $(OBJ_DIR)\descend.obj \ - $(OBJ_DIR)\numlock.obj \ - $(OBJ_DIR)\proper.obj \ - $(OBJ_DIR)\shift.obj \ - $(OBJ_DIR)\mouse.obj \ - $(OBJ_DIR)\getvid.obj \ - $(OBJ_DIR)\setkeys.obj \ - $(OBJ_DIR)\setlastk.obj \ - $(OBJ_DIR)\ftisprn.obj \ - $(OBJ_DIR)\ftidle.obj \ - $(OBJ_DIR)\iamidle.obj \ - $(OBJ_DIR)\chdir.obj \ - $(OBJ_DIR)\rmdir.obj \ - $(OBJ_DIR)\alt.obj \ - $(OBJ_DIR)\ctrl.obj \ - $(OBJ_DIR)\getenvrn.obj \ - $(OBJ_DIR)\n2color.obj \ - $(OBJ_DIR)\origin.obj \ - $(OBJ_DIR)\prtscr.obj \ - $(OBJ_DIR)\stod.obj \ - $(OBJ_DIR)\kspeed.obj \ - $(OBJ_DIR)\mkdir.obj \ - $(OBJ_DIR)\getver.obj \ - $(OBJ_DIR)\ftattr.obj \ - $(OBJ_DIR)\dispc.obj \ - $(OBJ_DIR)\fttext.obj \ - $(OBJ_DIR)\ftshadow.obj \ - $(OBJ_DIR)\putkey.obj \ - \ - $(OBJ_DIR)\aading.obj \ - $(OBJ_DIR)\aavg.obj \ - $(OBJ_DIR)\acctadj.obj \ - $(OBJ_DIR)\acctmnth.obj \ - $(OBJ_DIR)\acctqtr.obj \ - $(OBJ_DIR)\acctweek.obj \ - $(OBJ_DIR)\acctyear.obj \ - $(OBJ_DIR)\adessort.obj \ - $(OBJ_DIR)\aemaxlen.obj \ - $(OBJ_DIR)\aeminlen.obj \ - $(OBJ_DIR)\amedian.obj \ - $(OBJ_DIR)\anomatch.obj \ - $(OBJ_DIR)\any2any.obj \ - $(OBJ_DIR)\aredit.obj \ - $(OBJ_DIR)\asum.obj \ - $(OBJ_DIR)\at2.obj \ - $(OBJ_DIR)\bitclr.obj \ - $(OBJ_DIR)\bitset.obj \ - $(OBJ_DIR)\blink.obj \ - $(OBJ_DIR)\byt2bit.obj \ - $(OBJ_DIR)\byt2hex.obj \ - $(OBJ_DIR)\byteand.obj \ - $(OBJ_DIR)\byteneg.obj \ - $(OBJ_DIR)\bytenot.obj \ - $(OBJ_DIR)\byteor.obj \ - $(OBJ_DIR)\bytexor.obj \ - $(OBJ_DIR)\calendar.obj \ - $(OBJ_DIR)\clrsel.obj \ - $(OBJ_DIR)\cntryset.obj \ - $(OBJ_DIR)\d2e.obj \ - $(OBJ_DIR)\datecnfg.obj \ - $(OBJ_DIR)\dayofyr.obj \ - $(OBJ_DIR)\daytobow.obj \ - $(OBJ_DIR)\dectobin.obj \ - $(OBJ_DIR)\diskfunc.obj \ - $(OBJ_DIR)\dispmsg.obj \ - $(OBJ_DIR)\dosver.obj \ - $(OBJ_DIR)\e2d.obj \ - $(OBJ_DIR)\easter.obj \ - $(OBJ_DIR)\elapmil.obj \ - $(OBJ_DIR)\elapsed.obj \ - $(OBJ_DIR)\eltime.obj \ - $(OBJ_DIR)\findith.obj \ - $(OBJ_DIR)\firstday.obj \ - $(OBJ_DIR)\gcd.obj \ - $(OBJ_DIR)\hex2dec.obj \ - $(OBJ_DIR)\invclr.obj \ - $(OBJ_DIR)\isbit.obj \ - $(OBJ_DIR)\isbiton.obj \ - $(OBJ_DIR)\isshare.obj \ - $(OBJ_DIR)\lastday.obj \ - $(OBJ_DIR)\linked.obj \ - $(OBJ_DIR)\madd.obj \ - $(OBJ_DIR)\menu1.obj \ - $(OBJ_DIR)\menuto.obj \ - $(OBJ_DIR)\metaph.obj \ - $(OBJ_DIR)\miltime.obj \ - $(OBJ_DIR)\min2dhm.obj \ - $(OBJ_DIR)\month.obj \ - $(OBJ_DIR)\mouse1.obj \ - $(OBJ_DIR)\netpv.obj \ - $(OBJ_DIR)\nooccur.obj \ - $(OBJ_DIR)\ntow.obj \ - $(OBJ_DIR)\nwlstat.obj \ - $(OBJ_DIR)\page.obj \ - $(OBJ_DIR)\pchr.obj \ - $(OBJ_DIR)\pegs.obj \ - $(OBJ_DIR)\pending.obj \ - $(OBJ_DIR)\pickday.obj \ - $(OBJ_DIR)\popadder.obj \ - $(OBJ_DIR)\prtesc.obj \ - $(OBJ_DIR)\pvid.obj \ - $(OBJ_DIR)\qtr.obj \ - $(OBJ_DIR)\rand1.obj \ - $(OBJ_DIR)\restsets.obj \ - $(OBJ_DIR)\ftround.obj \ - $(OBJ_DIR)\savearr.obj \ - $(OBJ_DIR)\savesets.obj \ - $(OBJ_DIR)\scregion.obj \ - $(OBJ_DIR)\sinkey.obj \ - $(OBJ_DIR)\sleep.obj \ - $(OBJ_DIR)\sqzn.obj \ - $(OBJ_DIR)\tbwhile.obj \ - $(OBJ_DIR)\tempfile.obj \ - $(OBJ_DIR)\vertmenu.obj \ - $(OBJ_DIR)\vidmode.obj \ - $(OBJ_DIR)\wda.obj \ - $(OBJ_DIR)\week.obj \ - $(OBJ_DIR)\workdays.obj \ - $(OBJ_DIR)\woy.obj \ - $(OBJ_DIR)\xbox.obj \ - $(OBJ_DIR)\year.obj - - -# $(OBJ_DIR)\sysmem.obj \ -# $(OBJ_DIR)\dfile.obj \ -# $(OBJ_DIR)\vidcur.obj \ -# $(OBJ_DIR)\scancode.obj \ -# $(OBJ_DIR)\setdate.obj \ -# $(OBJ_DIR)\settime.obj \ -# $(OBJ_DIR)\nwsem.obj \ -# $(OBJ_DIR)\nwuid.obj \ - -# $(OBJ_DIR)\floptst.obj - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\caplock.obj del $(OBJ_DIR)\caplock.obj - -@if exist $(OBJ_DIR)\color2n.obj del $(OBJ_DIR)\color2n.obj - -@if exist $(OBJ_DIR)\descend.obj del $(OBJ_DIR)\descend.obj - -@if exist $(OBJ_DIR)\numlock.obj del $(OBJ_DIR)\numlock.obj - -@if exist $(OBJ_DIR)\proper.obj del $(OBJ_DIR)\proper.obj - -@if exist $(OBJ_DIR)\shift.obj del $(OBJ_DIR)\shift.obj - -@if exist $(OBJ_DIR)\mouse.obj del $(OBJ_DIR)\mouse.obj - -@if exist $(OBJ_DIR)\getvid.obj del $(OBJ_DIR)\getvid.obj - -@if exist $(OBJ_DIR)\setkeys.obj del $(OBJ_DIR)\setkeys.obj - -@if exist $(OBJ_DIR)\setlastk.obj del $(OBJ_DIR)\setlastk.obj - -@if exist $(OBJ_DIR)\ftisprn.obj del $(OBJ_DIR)\ftisprn.obj - -@if exist $(OBJ_DIR)\ftidle.obj del $(OBJ_DIR)\ftidle.obj - -@if exist $(OBJ_DIR)\iamidle.obj del $(OBJ_DIR)\iamidle.obj - -@if exist $(OBJ_DIR)\chdir.obj del $(OBJ_DIR)\chdir.obj - -@if exist $(OBJ_DIR)\rmdir.obj del $(OBJ_DIR)\rmdir.obj - -@if exist $(OBJ_DIR)\alt.obj del $(OBJ_DIR)\alt.obj - -@if exist $(OBJ_DIR)\ctrl.obj del $(OBJ_DIR)\ctrl.obj - -@if exist $(OBJ_DIR)\getenvrn.obj del $(OBJ_DIR)\getenvrn.obj - -@if exist $(OBJ_DIR)\n2color.obj del $(OBJ_DIR)\n2color.obj - -@if exist $(OBJ_DIR)\origin.obj del $(OBJ_DIR)\origin.obj - -@if exist $(OBJ_DIR)\prtscr.obj del $(OBJ_DIR)\prtscr.obj - -@if exist $(OBJ_DIR)\stod.obj del $(OBJ_DIR)\stod.obj - -@if exist $(OBJ_DIR)\kspeed.obj del $(OBJ_DIR)\kspeed.obj - -@if exist $(OBJ_DIR)\mkdir.obj del $(OBJ_DIR)\mkdir.obj - -@if exist $(OBJ_DIR)\getver.obj del $(OBJ_DIR)\getver.obj - -@if exist $(OBJ_DIR)\ftattr.obj del $(OBJ_DIR)\ftattr.obj - -@if exist $(OBJ_DIR)\dispc.obj del $(OBJ_DIR)\dispc.obj - -@if exist $(OBJ_DIR)\fttext.obj del $(OBJ_DIR)\fttext.obj - -@if exist $(OBJ_DIR)\ftshadow.obj del $(OBJ_DIR)\ftshadow.obj - -@if exist $(OBJ_DIR)\putkey.obj del $(OBJ_DIR)\putkey.obj - -@if exist $(OBJ_DIR)\aading.* del $(OBJ_DIR)\aading.* - -@if exist $(OBJ_DIR)\aavg.* del $(OBJ_DIR)\aavg.* - -@if exist $(OBJ_DIR)\acctadj.* del $(OBJ_DIR)\acctadj.* - -@if exist $(OBJ_DIR)\acctmnth.* del $(OBJ_DIR)\acctmnth.* - -@if exist $(OBJ_DIR)\acctqtr.* del $(OBJ_DIR)\acctqtr.* - -@if exist $(OBJ_DIR)\acctweek.* del $(OBJ_DIR)\acctweek.* - -@if exist $(OBJ_DIR)\acctyear.* del $(OBJ_DIR)\acctyear.* - -@if exist $(OBJ_DIR)\adessort.* del $(OBJ_DIR)\adessort.* - -@if exist $(OBJ_DIR)\aemaxlen.* del $(OBJ_DIR)\aemaxlen.* - -@if exist $(OBJ_DIR)\aeminlen.* del $(OBJ_DIR)\aeminlen.* - -@if exist $(OBJ_DIR)\amedian.* del $(OBJ_DIR)\amedian.* - -@if exist $(OBJ_DIR)\anomatch.* del $(OBJ_DIR)\anomatch.* - -@if exist $(OBJ_DIR)\any2any.* del $(OBJ_DIR)\any2any.* - -@if exist $(OBJ_DIR)\aredit.* del $(OBJ_DIR)\aredit.* - -@if exist $(OBJ_DIR)\asum.* del $(OBJ_DIR)\asum.* - -@if exist $(OBJ_DIR)\at2.* del $(OBJ_DIR)\at2.* - -@if exist $(OBJ_DIR)\bitclr.* del $(OBJ_DIR)\bitclr.* - -@if exist $(OBJ_DIR)\bitset.* del $(OBJ_DIR)\bitset.* - -@if exist $(OBJ_DIR)\blink.* del $(OBJ_DIR)\blink.* - -@if exist $(OBJ_DIR)\byt2bit.* del $(OBJ_DIR)\byt2bit.* - -@if exist $(OBJ_DIR)\byt2hex.* del $(OBJ_DIR)\byt2hex.* - -@if exist $(OBJ_DIR)\byteand.* del $(OBJ_DIR)\byteand.* - -@if exist $(OBJ_DIR)\byteneg.* del $(OBJ_DIR)\byteneg.* - -@if exist $(OBJ_DIR)\bytenot.* del $(OBJ_DIR)\bytenot.* - -@if exist $(OBJ_DIR)\byteor.* del $(OBJ_DIR)\byteor.* - -@if exist $(OBJ_DIR)\bytexor.* del $(OBJ_DIR)\bytexor.* - -@if exist $(OBJ_DIR)\calendar.* del $(OBJ_DIR)\calendar.* - -@if exist $(OBJ_DIR)\clrsel.* del $(OBJ_DIR)\clrsel.* - -@if exist $(OBJ_DIR)\cntryset.* del $(OBJ_DIR)\cntryset.* - -@if exist $(OBJ_DIR)\d2e.* del $(OBJ_DIR)\d2e.* - -@if exist $(OBJ_DIR)\datecnfg.* del $(OBJ_DIR)\datecnfg.* - -@if exist $(OBJ_DIR)\dayofyr.* del $(OBJ_DIR)\dayofyr.* - -@if exist $(OBJ_DIR)\daytobow.* del $(OBJ_DIR)\daytobow.* - -@if exist $(OBJ_DIR)\dectobin.* del $(OBJ_DIR)\dectobin.* - -@if exist $(OBJ_DIR)\diskfunc.* del $(OBJ_DIR)\diskfunc.* - -@if exist $(OBJ_DIR)\dispmsg.* del $(OBJ_DIR)\dispmsg.* - -@if exist $(OBJ_DIR)\dosver.* del $(OBJ_DIR)\dosver.* - -@if exist $(OBJ_DIR)\e2d.* del $(OBJ_DIR)\e2d.* - -@if exist $(OBJ_DIR)\easter.* del $(OBJ_DIR)\easter.* - -@if exist $(OBJ_DIR)\elapmil.* del $(OBJ_DIR)\elapmil.* - -@if exist $(OBJ_DIR)\elapsed.* del $(OBJ_DIR)\elapsed.* - -@if exist $(OBJ_DIR)\eltime.* del $(OBJ_DIR)\eltime.* - -@if exist $(OBJ_DIR)\findith.* del $(OBJ_DIR)\findith.* - -@if exist $(OBJ_DIR)\firstday.* del $(OBJ_DIR)\firstday.* - -@if exist $(OBJ_DIR)\gcd.* del $(OBJ_DIR)\gcd.* - -@if exist $(OBJ_DIR)\hex2dec.* del $(OBJ_DIR)\hex2dec.* - -@if exist $(OBJ_DIR)\invclr.* del $(OBJ_DIR)\invclr.* - -@if exist $(OBJ_DIR)\isbit.* del $(OBJ_DIR)\isbit.* - -@if exist $(OBJ_DIR)\isbiton.* del $(OBJ_DIR)\isbiton.* - -@if exist $(OBJ_DIR)\isshare.* del $(OBJ_DIR)\isshare.* - -@if exist $(OBJ_DIR)\lastday.* del $(OBJ_DIR)\lastday.* - -@if exist $(OBJ_DIR)\linked.* del $(OBJ_DIR)\linked.* - -@if exist $(OBJ_DIR)\madd.* del $(OBJ_DIR)\madd.* - -@if exist $(OBJ_DIR)\menu1.* del $(OBJ_DIR)\menu1.* - -@if exist $(OBJ_DIR)\menuto.* del $(OBJ_DIR)\menuto.* - -@if exist $(OBJ_DIR)\metaph.* del $(OBJ_DIR)\metaph.* - -@if exist $(OBJ_DIR)\miltime.* del $(OBJ_DIR)\miltime.* - -@if exist $(OBJ_DIR)\min2dhm.* del $(OBJ_DIR)\min2dhm.* - -@if exist $(OBJ_DIR)\month.* del $(OBJ_DIR)\month.* - -@if exist $(OBJ_DIR)\mouse1.* del $(OBJ_DIR)\mouse1.* - -@if exist $(OBJ_DIR)\netpv.* del $(OBJ_DIR)\netpv.* - -@if exist $(OBJ_DIR)\nooccur.* del $(OBJ_DIR)\nooccur.* - -@if exist $(OBJ_DIR)\ntow.* del $(OBJ_DIR)\ntow.* - -@if exist $(OBJ_DIR)\nwlstat.* del $(OBJ_DIR)\nwlstat.* - -@if exist $(OBJ_DIR)\page.* del $(OBJ_DIR)\page.* - -@if exist $(OBJ_DIR)\pchr.* del $(OBJ_DIR)\pchr.* - -@if exist $(OBJ_DIR)\pegs.* del $(OBJ_DIR)\pegs.* - -@if exist $(OBJ_DIR)\pending.* del $(OBJ_DIR)\pending.* - -@if exist $(OBJ_DIR)\pickday.* del $(OBJ_DIR)\pickday.* - -@if exist $(OBJ_DIR)\popadder.* del $(OBJ_DIR)\popadder.* - -@if exist $(OBJ_DIR)\prtesc.* del $(OBJ_DIR)\prtesc.* - -@if exist $(OBJ_DIR)\pvid.* del $(OBJ_DIR)\pvid.* - -@if exist $(OBJ_DIR)\qtr.* del $(OBJ_DIR)\qtr.* - -@if exist $(OBJ_DIR)\rand1.* del $(OBJ_DIR)\rand1.* - -@if exist $(OBJ_DIR)\restsets.* del $(OBJ_DIR)\restsets.* - -@if exist $(OBJ_DIR)\ftround.* del $(OBJ_DIR)\ftround.* - -@if exist $(OBJ_DIR)\savearr.* del $(OBJ_DIR)\savearr.* - -@if exist $(OBJ_DIR)\savesets.* del $(OBJ_DIR)\savesets.* - -@if exist $(OBJ_DIR)\scregion.* del $(OBJ_DIR)\scregion.* - -@if exist $(OBJ_DIR)\sinkey.* del $(OBJ_DIR)\sinkey.* - -@if exist $(OBJ_DIR)\sleep.* del $(OBJ_DIR)\sleep.* - -@if exist $(OBJ_DIR)\sqzn.* del $(OBJ_DIR)\sqzn.* - -@if exist $(OBJ_DIR)\tbwhile.* del $(OBJ_DIR)\tbwhile.* - -@if exist $(OBJ_DIR)\tempfile.* del $(OBJ_DIR)\tempfile.* - -@if exist $(OBJ_DIR)\vertmenu.* del $(OBJ_DIR)\vertmenu.* - -@if exist $(OBJ_DIR)\vidmode.* del $(OBJ_DIR)\vidmode.* - -@if exist $(OBJ_DIR)\wda.* del $(OBJ_DIR)\wda.* - -@if exist $(OBJ_DIR)\week.* del $(OBJ_DIR)\week.* - -@if exist $(OBJ_DIR)\workdays.* del $(OBJ_DIR)\workdays.* - -@if exist $(OBJ_DIR)\woy.* del $(OBJ_DIR)\woy.* - -@if exist $(OBJ_DIR)\xbox.* del $(OBJ_DIR)\xbox.* - -@if exist $(OBJ_DIR)\year.* del $(OBJ_DIR)\year.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/maketpl.mak b/harbour/contrib/mtpl.mak similarity index 88% rename from harbour/contrib/maketpl.mak rename to harbour/contrib/mtpl.mak index c57cc1c78d..04fd9049e9 100644 --- a/harbour/contrib/maketpl.mak +++ b/harbour/contrib/mtpl.mak @@ -29,15 +29,15 @@ OBJEXT = .obj LIBEXT = .lib !endif -.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .asm +.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .cpp .asm #********************************************************** # Directory macros. These should never have to change. #********************************************************** -OBJ_DIR = ..\..\obj\$(CC_NAME) -LIB_DIR = ..\..\lib\$(CC_NAME) -BIN_DIR = ..\..\bin\$(CC_NAME) +OBJ_DIR = ..\..\obj\$(HB_CC_NAME) +LIB_DIR = ..\..\lib\$(HB_CC_NAME) +BIN_DIR = ..\..\bin\$(HB_CC_NAME) INCLUDE_DIR = ..\..\include diff --git a/harbour/contrib/maketpl.b32 b/harbour/contrib/mtpl_b32.mak similarity index 89% rename from harbour/contrib/maketpl.b32 rename to harbour/contrib/mtpl_b32.mak index e8c8864033..77aa6f5fe9 100644 --- a/harbour/contrib/maketpl.b32 +++ b/harbour/contrib/mtpl_b32.mak @@ -24,7 +24,7 @@ #********************************************************** -!include ..\maketpl.mak +!include ..\mtpl.mak #********************************************************** # C compiler definition and C flags. These should never have to change. @@ -63,6 +63,10 @@ $(OBJ_DIR);\ {$(ALL_LIB_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT): $(CC) $(CLIBFLAGS) -o$@ $< #********************************************************** +# General *.cpp --> *.obj COMPILE rule for STATIC Libraries +{$(ALL_LIB_SRC_DIRS)}.cpp{$(OBJ_DIR)}$(OBJEXT): + $(CC) $(CLIBFLAGS) -o$@ $< +#********************************************************** # General *.prg --> *.obj COMPILE rule for STATIC Libraries {$(ALL_LIB_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT): $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $** @@ -123,5 +127,6 @@ install: doInstall INSTALL: doInstall doInstall: - copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul - copy *.ch $(HB_INC_INSTALL) > nul + if exist $(LIB_DIR)\$(LIBNAME)$(LIBEXT) copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul + if exist *.api copy *.api $(HB_INC_INSTALL) > nul + if exist *.ch copy *.ch $(HB_INC_INSTALL) > nul diff --git a/harbour/contrib/maketpl.vc b/harbour/contrib/mtpl_vc.mak similarity index 89% rename from harbour/contrib/maketpl.vc rename to harbour/contrib/mtpl_vc.mak index 5a577c549f..f79330c383 100644 --- a/harbour/contrib/maketpl.vc +++ b/harbour/contrib/mtpl_vc.mak @@ -25,7 +25,7 @@ HB_VISUALC_VER = 60 #********************************************************** -!include ..\maketpl.mak +!include ..\mtpl.mak #********************************************************** # C compiler definition and C flags. These should never have to change. @@ -52,6 +52,10 @@ LDFLAGS = $(LDFLAGS) {.}.c{$(OBJ_DIR)}$(OBJEXT):: $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< #********************************************************** +# General *.cpp --> *.obj COMPILE rule for STATIC Libraries +{.}.cpp{$(OBJ_DIR)}$(OBJEXT):: + $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< +#********************************************************** # General *.prg --> *.obj COMPILE rule for STATIC Libraries {.}.prg{$(OBJ_DIR)}$(OBJEXT): $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< @@ -110,5 +114,6 @@ install: doInstall INSTALL: doInstall doInstall: - copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul - copy *.ch $(HB_INC_INSTALL) > nul + if exist $(LIB_DIR)\$(LIBNAME)$(LIBEXT) copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul + if exist *.api copy *.api $(HB_INC_INSTALL) > nul + if exist *.ch copy *.ch $(HB_INC_INSTALL) > nul diff --git a/harbour/contrib/mysql/common.mak b/harbour/contrib/mysql/common.mak new file mode 100644 index 0000000000..948ae59ee3 --- /dev/null +++ b/harbour/contrib/mysql/common.mak @@ -0,0 +1,19 @@ +# +# $Id$ +# + +LIBNAME = mysql + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\tmysql.obj \ + $(OBJ_DIR)\tsqlbrw.obj \ + $(OBJ_DIR)\mysql.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/mysql/make_b32.bat b/harbour/contrib/mysql/make_b32.bat index ded1739d9c..f036d54270 100644 --- a/harbour/contrib/mysql/make_b32.bat +++ b/harbour/contrib/mysql/make_b32.bat @@ -1,33 +1,62 @@ @echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MySQL sources and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\mysql-5.0.45\include +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +set C_USR=%C_USR% -DHB_OS_WIN_32_USED + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\mysql.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\mysql.lib del ..\..\lib\b32\mysql.lib - if exist ..\..\lib\b32\mysql.bak del ..\..\lib\b32\mysql.bak - if exist ..\..\obj\b32\mysql.obj del ..\..\obj\b32\mysql.obj - if exist ..\..\obj\b32\tsqlbrw.c del ..\..\obj\b32\tsqlbrw.c - if exist ..\..\obj\b32\tmysql.c del ..\..\obj\b32\tmysql.c - if exist ..\..\obj\b32\tsqlbrw.obj del ..\..\obj\b32\tsqlbrw.obj - if exist ..\..\obj\b32\tmysql.obj del ..\..\obj\b32\tmysql.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/mysql/make_vc.bat b/harbour/contrib/mysql/make_vc.bat new file mode 100644 index 0000000000..15e763a89b --- /dev/null +++ b/harbour/contrib/mysql/make_vc.bat @@ -0,0 +1,62 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MySQL sources and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\mysql-5.0.45\include +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +set C_USR=%C_USR% -DHB_OS_WIN_32_USED + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/mysql/makefile.bc b/harbour/contrib/mysql/makefile.bc deleted file mode 100644 index 26db7cd253..0000000000 --- a/harbour/contrib/mysql/makefile.bc +++ /dev/null @@ -1,31 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of mysql.lib - Harbour API to mySQL - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\mysql.lib : \ - $(OBJ_DIR)\tmysql.obj \ - $(OBJ_DIR)\tsqlbrw.obj \ - $(OBJ_DIR)\mysql.obj - -$(OBJ_DIR)\tmysql.c : tmysql.prg -$(OBJ_DIR)\tmysql.obj : $(OBJ_DIR)\tmysql.c -$(OBJ_DIR)\tsqlbrw.c : tsqlbrw.prg -$(OBJ_DIR)\tsqlbrw.obj : $(OBJ_DIR)\tsqlbrw.c -$(OBJ_DIR)\mysql.obj : mysql.c - -.c.obj: - bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $< - tlib $(LIB_DIR)\mysql.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/odbc/bld_b32.bat b/harbour/contrib/odbc/bld_b32.bat deleted file mode 100644 index 771a936edb..0000000000 --- a/harbour/contrib/odbc/bld_b32.bat +++ /dev/null @@ -1,9 +0,0 @@ -@echo off -rem -rem $Id$ -rem - -..\..\bin\harbour %1 /n /i..\include %2 -bcc32 -e%1.exe -O2 -d -I..\..\include -L..\..\lib\b32 %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib hbodbc.lib odbc32.lib - -rem del %1.c diff --git a/harbour/contrib/odbc/bldodbc.bat b/harbour/contrib/odbc/bldodbc.bat deleted file mode 100644 index 9440866234..0000000000 --- a/harbour/contrib/odbc/bldodbc.bat +++ /dev/null @@ -1,3 +0,0 @@ -@echo off -make -fhbodbc.b32 -implib ..\..\lib\b32\odbc32.lib odbc32.def diff --git a/harbour/contrib/odbc/common.mak b/harbour/contrib/odbc/common.mak new file mode 100644 index 0000000000..b0dd33b903 --- /dev/null +++ b/harbour/contrib/odbc/common.mak @@ -0,0 +1,18 @@ +# +# $Id$ +# + +LIBNAME = hbodbc + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\odbc$(OBJEXT) \ + $(OBJ_DIR)\todbc$(OBJEXT) \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/odbc/hbodbc.b32 b/harbour/contrib/odbc/hbodbc.b32 deleted file mode 100644 index 3e96860802..0000000000 --- a/harbour/contrib/odbc/hbodbc.b32 +++ /dev/null @@ -1,20 +0,0 @@ -# makefile for Borland C/C++ 32 bits -# ODBC Harbour Library and Import Library makefile - -.path.c = . -.path.h = .\;..\..\include;..\..\source\pp -.path.lib = ..\..\lib\b32 -.path.obj = ..\..\obj - -lib\b32\hbodbc.lib : odbc.obj todbc.obj -odbc.obj : odbc.c -todbc.obj : todbc.c -todbc.c : todbc.prg - -.c.obj : - bcc32 -c -O2 -I.\;..\..\include;..\..\source\pp -o$@ $< - tlib ..\..\lib\b32\hbodbc.lib -+$@,, - implib ..\..\lib\b32\odbc32.lib odbc32.def - -.prg.c : - ..\..\bin\harbour $< /n /p /i..\..\include diff --git a/harbour/contrib/odbc/make_b32.bat b/harbour/contrib/odbc/make_b32.bat new file mode 100644 index 0000000000..afeb7476f8 --- /dev/null +++ b/harbour/contrib/odbc/make_b32.bat @@ -0,0 +1,58 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + implib ..\..\lib\%HB_CC_NAME%\odbc32.lib odbc32.def + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + copy ..\..\lib\%HB_CC_NAME%\odbc32.lib ..\..\lib\ + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/odbc/test/bld_b32.bat b/harbour/contrib/odbc/test/bld_b32.bat new file mode 100644 index 0000000000..f1ae0c1385 --- /dev/null +++ b/harbour/contrib/odbc/test/bld_b32.bat @@ -0,0 +1,9 @@ +@echo off +rem +rem $Id$ +rem + +..\..\..\bin\harbour %1 /n /i..\..\include /i..\ %2 +bcc32 -e%1.exe -O2 -d -I..\..\..\include -L..\..\..\lib\b32 %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib hbsix.lib hbodbc.lib odbc32.lib + +rem del %1.c diff --git a/harbour/contrib/odbc/browodbc.prg b/harbour/contrib/odbc/test/browodbc.prg similarity index 100% rename from harbour/contrib/odbc/browodbc.prg rename to harbour/contrib/odbc/test/browodbc.prg diff --git a/harbour/contrib/odbc/harbour.mdb b/harbour/contrib/odbc/test/harbour.mdb similarity index 100% rename from harbour/contrib/odbc/harbour.mdb rename to harbour/contrib/odbc/test/harbour.mdb diff --git a/harbour/contrib/odbc/odbccall.prg b/harbour/contrib/odbc/test/odbccall.prg similarity index 100% rename from harbour/contrib/odbc/odbccall.prg rename to harbour/contrib/odbc/test/odbccall.prg diff --git a/harbour/contrib/odbc/odbcdemo.prg b/harbour/contrib/odbc/test/odbcdemo.prg similarity index 100% rename from harbour/contrib/odbc/odbcdemo.prg rename to harbour/contrib/odbc/test/odbcdemo.prg diff --git a/harbour/contrib/odbc/testodbc.prg b/harbour/contrib/odbc/test/testodbc.prg similarity index 100% rename from harbour/contrib/odbc/testodbc.prg rename to harbour/contrib/odbc/test/testodbc.prg diff --git a/harbour/contrib/ole/Makefile b/harbour/contrib/ole/Makefile deleted file mode 100644 index f1baf72a28..0000000000 --- a/harbour/contrib/ole/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# -# $Id$ -# - -ROOT = ../../ - -C_SOURCES=\ - ole2.c \ - -PRG_SOURCES=\ - oleauto.prg \ - -LIBNAME=hbole - -include $(TOP)$(ROOT)config/lib.cf diff --git a/harbour/contrib/ole/bldtest.bat b/harbour/contrib/ole/bldtest.bat deleted file mode 100644 index a502ef6d06..0000000000 --- a/harbour/contrib/ole/bldtest.bat +++ /dev/null @@ -1,9 +0,0 @@ -@set HB_BIN_INSTALL=..\..\bin -@set HB_LIB_INSTALL=..\..\lib\ -@set HB_INC_INSTALL=..\..\include\ - - %HB_BIN_INSTALL%\harbour %1.prg -n -i%HB_INC_INSTALL% %2 - bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib hbsix.lib common.lib codepage.lib hbole.lib - del %1.c - del %1.obj - del %1.tds diff --git a/harbour/contrib/ole/build32.bat b/harbour/contrib/ole/build32.bat deleted file mode 100644 index b523b0b1b3..0000000000 --- a/harbour/contrib/ole/build32.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off - -SET HB_INCLUDE=..\..\include - -bcc32 -c -I.;%HB_INCLUDE% ole2.c -if errorlevel 1 goto end - -harbour oleauto /n /i%HB_INCLUDE% -if errorlevel 1 goto end - -bcc32 -M -c -O2 -I%HB_INCLUDE% -tW oleauto.c -if errorlevel 1 goto end - -if exist hbole.lib del hbole.lib -tlib hbole +ole2 +oleauto -if errorlevel 1 goto end - -copy hbole.lib ..\..\lib\*.* > nul - -:END -del oleauto.c -del ole2.obj -del oleauto.obj -del hbole.lib diff --git a/harbour/contrib/ole/hbtest.prg b/harbour/contrib/ole/hbtest.prg deleted file mode 100644 index 537e092663..0000000000 --- a/harbour/contrib/ole/hbtest.prg +++ /dev/null @@ -1,171 +0,0 @@ -* -* HBTEST.PRG -* -* Este ejemplo es para probar con Harbour en modo consola, sin FiveWin -* para Harbour. -* -* This example is done for testing with Harbour in console mode, without -* FiveWin for Harbour. -* - - -#define CRLF Chr( 13 ) + Chr( 10 ) - - -PROCEDURE MAIN() - - LOCAL nOption - - CLS - SetColor("W+/R") - @ 6, 25 TO 16, 55 DOUBLE - @ 8, 28 SAY "Test hbole.lib with ..." - - While .t. - @ 10, 32 PROMPT "Excel" - @ 11, 32 PROMPT "Word" - @ 12, 32 PROMPT "Internet Explorer" - @ 13, 32 PROMPT "Outlook" - @ 14, 32 PROMPT "Quit" - - MENU TO nOption - - IF nOption == 0 - nOption := 5 - ELSEIF nOption == 1 - EXCEL97() - ELSEIF nOption == 2 - WORD97() - ELSEIF nOption == 3 - IEXPLORER() - ELSEIF nOption == 4 - OUTLOOK() - ELSEIF nOption == 5 - EXIT - ENDIF - End - - SetColor("W/N") - CLS - -RETURN - -//-------------------------------------------------------------------- - -STATIC PROCEDURE EXCEL97() - - LOCAL oExcel, oHoja - - oExcel := TOleAuto():New( "Excel.Application" ) - - oExcel:WorkBooks:Add() - - oHoja := oExcel:ActiveSheet() - - oHoja:Cells:Font:Name := "Arial" - oHoja:Cells:Font:Size := 12 - - oHoja:Cells( 3, 1 ):Value := "Text:" - oHoja:Cells( 3, 2 ):Value := "This is sample text" - oHoja:Cells( 4, 1 ):Value := "Numeric:" - oHoja:Cells( 4, 2 ):NumberFormat := "#.##0,00" - oHoja:Cells( 4, 2 ):Value := 1234.50 - oHoja:Cells( 5, 1 ):Value := "Logical:" - oHoja:Cells( 5, 2 ):Value := .T. - oHoja:Cells( 6, 1 ):Value := "Date:" - oHoja:Cells( 6, 2 ):Value := DATE() - - oHoja:Columns( 1 ):Font:Bold := .T. - oHoja:Columns( 2 ):HorizontalAlignment := -4152 // xlRight - - oHoja:Columns( 1 ):AutoFit() - oHoja:Columns( 2 ):AutoFit() - - oHoja:Cells( 1, 1 ):Value := "OLE in Harbour" - oHoja:Cells( 1, 1 ):Font:Size := 16 - oHoja:Range( "A1:B1" ):HorizontalAlignment := 7 - - oHoja:Cells( 1, 1 ):Select() - oExcel:Visible := .T. - - oHoja:End() - oExcel:End() - -RETURN - -//-------------------------------------------------------------------- - -STATIC PROCEDURE WORD97() - - LOCAL oWord, oTexto - - oWord:=TOleAuto():New( "Word.Application" ) - - oWord:Documents:Add() - - oTexto := oWord:Selection() - - oTexto:Text := "Harbour hbOLE.lib"+CRLF+"Word Sample"+CRLF - oTexto:Font:Name := "Arial" - oTexto:Font:Size := 48 - oTexto:Font:Bold := .T. - - oWord:Visible := .T. - oWord:WindowState := 1 // Maximize - - oTexto:End() - oWord:End() - -RETURN - -//-------------------------------------------------------------------- - -STATIC PROCEDURE IEXPLORER() - - LOCAL oIE - - oIE:=TOleAuto():New( "InternetExplorer.Application" ) - - oIE:Visible := .T. - - oIE:Navigate( "http://www.harbour-project.org" ) - - oIE:End() - -RETURN - -//-------------------------------------------------------------------- - -STATIC PROCEDURE OUTLOOK() - - LOCAL oOL, oLista, oMail, i - - oOL := TOleAuto():New( "Outlook.Application.9" ) - - IF Ole2TxtError() != "S_OK" - - Alert("Outlook is not available", "Error") - - ELSE - - oMail := oOL:CreateItem( 0 ) // olMailItem - - FOR i := 1 TO 10 - oMail:Recipients:Add( "Contact" + LTRIM( STR( i, 2 ) ) + ; - "" ) - NEXT - - oLista := oOL:CreateItem( 7 ) // olDistributionListItem - oLista:DLName := "Test with distribution list" - oLista:Display( .F. ) - oLista:AddMembers( oMail:Recipients ) - oLista:Save() - oLista:Close( 0 ) - - oMail:End() - oLista:End() - oOL:End() - - ENDIF - -RETURN diff --git a/harbour/contrib/ole/ole2.c b/harbour/contrib/ole/ole2.c deleted file mode 100644 index c835a31a7a..0000000000 --- a/harbour/contrib/ole/ole2.c +++ /dev/null @@ -1,714 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * OLE library - * - * Copyright 2000,2003 José F. Giménez (JFG) - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -/************************************************************************* -* * -* CreateOleObject( cOleName | cCLSID [, cIID ] ) -> hOleObject * -* * -* OleInvoke( hOleObject, cMethodName, uParam1, ..., uParamN ) * -* -> uResult * -* * -* OleSetProperty( hOleObject, cPropertyName, uParam1, ..., uParamN ) * -* -> lOk * -* * -* OleGetProperty( hOleObject, cPropertyName, uParam1, ..., uParamN ) * -* -> uResult * -* * -* OleIsObject() -> lIsObject * -* * -* OleError() -> nError * -* * -* Ole2TxtError() -> cError * -* * -* OleUninitialize() -> Nil * -* * -\************************************************************************/ - -#define HB_OS_WIN_32_USED - -#include -#include - -#include "hbvm.h" -#include "hbapiitm.h" -#include "hbapicls.h" -#include "hbdate.h" - -static far VARIANTARG RetVal; -static EXCEPINFO excep; -static HRESULT nOleError = 0; -static int lInitialized = 0; - -static double DateToDbl( LPSTR cDate ) -{ - double nDate; - - nDate = hb_dateEncStr( cDate ) - 0x0024d9abL; - - return ( nDate ); -} - -static LPSTR DblToDate( double nDate ) -{ - static char *cDate = "00000000"; - - hb_dateDecStr( cDate, nDate + 0x0024d9abL ); - - return ( cDate ); -} - -static LPSTR AnsiToWide( LPSTR cAnsi ) -{ - unsigned short wLen; - LPSTR cString; - - wLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, cAnsi, -1, 0, 0 ); - cString = ( char * ) hb_xgrab( wLen * 2 ); - MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, cAnsi, -1, - ( LPWSTR ) cString, wLen ); - return ( cString ); -} - -static LPSTR WideToAnsi( LPSTR cWide ) -{ - unsigned short wLen; - LPSTR cString; - - wLen = WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1, - NULL, 0, NULL, NULL ); - cString = hb_xgrab( (!wLen) ? 2 : wLen ); - WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1, - cString, wLen, NULL, NULL ); - return ( cString ); -} - -static void GetParams(DISPPARAMS * dParams) -{ - VARIANTARG * pArgs = NULL; - PHB_ITEM uParam; - int n, nArgs, nArg; - LPSTR cString; - - nArgs = hb_pcount() - 2; - - if( nArgs > 0 ) - { - pArgs = ( VARIANTARG * ) hb_xgrab( sizeof( VARIANTARG ) * nArgs ); - - for( n = 0; n < nArgs; n++ ) - { - // Los parametros en VARIANTARG[] hay que ponerlos en orden inverso - nArg = nArgs + 2 - n; - - VariantInit( &( pArgs[ n ] ) ); - - uParam = hb_param( nArg, 0xFFFF ); - - switch( hb_itemType( uParam ) ) - { - case '\0': -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_EMPTY; -#else - pArgs[ n ].n1.n2.vt = VT_EMPTY; -#endif - break; - - case HB_IT_STRING: - case HB_IT_MEMO: -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_BSTR; -#else - pArgs[ n ].n1.n2.vt = VT_BSTR; -#endif - cString = AnsiToWide( hb_parc( nArg ) ); -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].bstrVal = SysAllocString( (LPVOID) cString ); -#else - pArgs[ n ].n1.n2.n3.bstrVal = SysAllocString( (LPVOID) cString ); -#endif - hb_xfree( cString ); - break; - - case HB_IT_LOGICAL: -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_BOOL; - pArgs[ n ].boolVal = hb_parl( nArg ); -#else - pArgs[ n ].n1.n2.vt = VT_BOOL; - pArgs[ n ].n1.n2.n3.boolVal = hb_parl( nArg ); -#endif - break; - - case HB_IT_INTEGER: - case HB_IT_LONG: - case HB_IT_NUMERIC: -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_I4; - pArgs[ n ].lVal = hb_parnl( nArg ); -#else - pArgs[ n ].n1.n2.vt = VT_I4; - pArgs[ n ].n1.n2.n3.lVal = hb_parnl( nArg ); -#endif - break; - - case HB_IT_DOUBLE: -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_R8; - pArgs[ n ].dblVal = hb_parnd( nArg ); -#else - pArgs[ n ].n1.n2.vt = VT_R8; - pArgs[ n ].n1.n2.n3.dblVal = hb_parnd( nArg ); -#endif - break; - case HB_IT_DATE: -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_DATE; - pArgs[ n ].dblVal = DateToDbl( hb_pards( nArg ) ); -#else - pArgs[ n ].n1.n2.vt = VT_DATE; - pArgs[ n ].n1.n2.n3.dblVal = DateToDbl( hb_pards( nArg ) ); -#endif - break; - - case HB_IT_OBJECT: - { - PHB_DYNS pData; -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_EMPTY; -#else - pArgs[ n ].n1.n2.vt = VT_EMPTY; -#endif - if ( hb_stricmp( hb_objGetClsName( uParam ), "TOleAuto" ) == 0 ) - { - pData = hb_dynsymFindName( "hObj" ); - if( pData ) - { - hb_vmPushSymbol( hb_dynsymSymbol( pData ) ); - hb_vmPush( uParam ); - hb_vmDo( 0 ); -#if !defined(__BORLANDC__) && !defined(__XCC__) - pArgs[ n ].vt = VT_DISPATCH; - pArgs[ n ].pdispVal = ( IDispatch * ) hb_parnl( -1 ); -#else - pArgs[ n ].n1.n2.vt = VT_DISPATCH; - pArgs[ n ].n1.n2.n3.pdispVal = ( IDispatch * ) hb_parnl( -1 ); -#endif - } - } - } - break; - } - } - } - - dParams->rgvarg = pArgs; - dParams->cArgs = nArgs; - dParams->rgdispidNamedArgs = 0; - dParams->cNamedArgs = 0; - -} - -static void FreeParams(DISPPARAMS * dParams) -{ - int n; - - if( dParams->cArgs > 0 ) - { - for( n = 0; n < ( int ) dParams->cArgs; n++ ) - VariantClear( &(dParams->rgvarg[ n ]) ); - - hb_xfree( ( LPVOID ) dParams->rgvarg ); - } -} - -static void RetValue( void ) -{ - LPSTR cString; - -#if !defined(__BORLANDC__) && !defined(__XCC__) - switch( RetVal.vt ) - { - case VT_BSTR: - cString = WideToAnsi( ( LPSTR ) RetVal.bstrVal ); - hb_retc( cString ); - hb_xfree( cString ); - break; - - case VT_BOOL: - hb_retl( RetVal.boolVal ); - break; - - case VT_DISPATCH: - hb_retnl( ( LONG ) RetVal.pdispVal ); - break; - - case VT_I4: - hb_retnl( ( LONG ) RetVal.iVal ); - break; - - case VT_R8: - hb_retnd( RetVal.dblVal ); - break; - - case VT_DATE: - hb_retds( DblToDate( RetVal.dblVal ) ); - break; - - case VT_EMPTY: - hb_ret(); - break; - - default: - if ( nOleError == S_OK ) - nOleError = (HRESULT) -1; - hb_ret(); - break; - } - - if( RetVal.vt != VT_DISPATCH ) - VariantClear( &RetVal ); -#else - switch( RetVal.n1.n2.vt ) - { - case VT_BSTR: - cString = WideToAnsi( ( LPSTR ) RetVal.n1.n2.n3.bstrVal ); - hb_retc( cString ); - hb_xfree( cString ); - break; - - case VT_BOOL: - hb_retl( RetVal.n1.n2.n3.boolVal ); - break; - - case VT_DISPATCH: - hb_retnl( ( LONG ) RetVal.n1.n2.n3.pdispVal ); - break; - - case VT_I4: - hb_retnl( ( LONG ) RetVal.n1.n2.n3.iVal ); - break; - - case VT_R8: - hb_retnd( RetVal.n1.n2.n3.dblVal ); - break; - - case VT_DATE: - hb_retds( DblToDate( RetVal.n1.n2.n3.dblVal ) ); - break; - - case VT_EMPTY: - hb_ret(); - break; - - default: - if ( nOleError == S_OK ) - nOleError = (HRESULT) -1; - hb_ret(); - break; - } - - if( RetVal.n1.n2.vt != VT_DISPATCH ) - VariantClear( &RetVal ); -#endif - -} - - -HB_FUNC( CREATEOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] ) -{ - LPSTR cCLSID; - GUID ClassID, iid; - LPIID riid = (LPIID) &IID_IDispatch; - void *pDisp = NULL; /* IDispatch */ - /* void * - * used intentionally to inform compiler that there is no - * strict-aliasing - */ - - nOleError = S_OK; - - if ( !lInitialized ) - nOleError = OleInitialize( NULL ); - lInitialized = 1; - - if ( (nOleError == S_OK) || (nOleError == (HRESULT) S_FALSE) ) - { - - cCLSID = AnsiToWide( hb_parc( 1 ) ); - if ( hb_parc( 1 )[ 0 ] == '{' ) - nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, (LPCLSID) &ClassID ); - else - nOleError = CLSIDFromProgID( ( LPCOLESTR ) cCLSID, (LPCLSID) &ClassID ); - hb_xfree( cCLSID ); - - if ( hb_pcount() == 2 ) - { - if ( hb_parc( 2 )[ 0 ] == '{' ) - { - cCLSID = AnsiToWide( hb_parc( 2 ) ); - nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, &iid ); - hb_xfree( cCLSID ); - } - else - memcpy( ( LPVOID ) &iid, hb_parc( 2 ), sizeof( iid ) ); - - riid = &iid; - } - - if ( nOleError == S_OK ) - nOleError = CoCreateInstance( &ClassID, NULL, CLSCTX_SERVER, - (REFIID) riid, &pDisp ); - } - - hb_retnl( ( LONG ) pDisp ); - -} - -HB_FUNC( OLESHOWEXCEPTION ) -{ - if ( (LONG) nOleError == DISP_E_EXCEPTION ) - { - LPSTR source, description; - - source = WideToAnsi( (LPVOID) excep.bstrSource ); - description = WideToAnsi( (LPVOID) excep.bstrDescription ); - MessageBox( NULL, description, source, MB_ICONHAND ); - hb_xfree( source ); - hb_xfree( description ); - } -} - -HB_FUNC( OLEINVOKE ) // (hOleObject, szMethodName, uParams...) -{ - IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 ); - LPSTR cMember; - DISPID lDispID; - DISPPARAMS dParams; - UINT uArgErr; - - VariantInit( &RetVal ); - memset( (LPBYTE) &excep, 0, sizeof( excep ) ); - - cMember = AnsiToWide( hb_parc( 2 ) ); - nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL, - ( LPVOID ) &cMember, 1, - LOCALE_USER_DEFAULT, &lDispID ); - hb_xfree( cMember ); - - if ( nOleError == S_OK ) - { - GetParams( &dParams ); - nOleError = pDisp->lpVtbl->Invoke( pDisp, - lDispID, - &IID_NULL, - LOCALE_USER_DEFAULT, - DISPATCH_METHOD, - &dParams, - &RetVal, - &excep, - &uArgErr ) ; - FreeParams( &dParams ); - } - - RetValue(); -} - -HB_FUNC( OLESETPROPERTY ) // (hOleObject, cPropName, uValue, uParams...) -{ - IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 ); - LPSTR cMember; - DISPID lDispID, lPropPut = DISPID_PROPERTYPUT; - DISPPARAMS dParams; - UINT uArgErr; - - VariantInit( &RetVal ); - memset( (LPBYTE) &excep, 0, sizeof( excep ) ); - - cMember = AnsiToWide( hb_parc( 2 ) ); - nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL, - ( LPVOID ) &cMember, 1, - LOCALE_USER_DEFAULT, &lDispID ); - hb_xfree( cMember ); - - if ( nOleError == S_OK ) - { - GetParams( &dParams ); - dParams.rgdispidNamedArgs = &lPropPut; - dParams.cNamedArgs = 1; - - nOleError = pDisp->lpVtbl->Invoke( pDisp, - lDispID, - &IID_NULL, - LOCALE_USER_DEFAULT, - DISPATCH_PROPERTYPUT, - &dParams, - NULL, // No return value - &excep, - &uArgErr ); - - FreeParams( &dParams ); - } - - hb_ret(); -} - -HB_FUNC( OLEGETPROPERTY ) // (hOleObject, cPropName, uParams...) -{ - IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 ); - LPSTR cMember; - DISPID lDispID; - DISPPARAMS dParams; - UINT uArgErr; - - VariantInit( &RetVal ); - memset( (LPBYTE) &excep, 0, sizeof( excep ) ); - - cMember = AnsiToWide( hb_parc( 2 ) ); - nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL, - ( LPVOID ) &cMember, 1, - LOCALE_USER_DEFAULT, &lDispID ); - hb_xfree( cMember ); - - if ( nOleError == S_OK ) - { - GetParams( &dParams ); - nOleError = pDisp->lpVtbl->Invoke( pDisp, - lDispID, - &IID_NULL, - LOCALE_USER_DEFAULT, - DISPATCH_PROPERTYGET, - &dParams, - &RetVal, - &excep, - &uArgErr ); - - FreeParams( &dParams ); - } - - RetValue(); - -} - -HB_FUNC( OLEERROR ) -{ - hb_retnl( (LONG) nOleError ); -} - -HB_FUNC( OLEISOBJECT ) -{ -#if !defined(__BORLANDC__) && !defined(__XCC__) - hb_retl( RetVal.vt == VT_DISPATCH ); -#else - hb_retl( RetVal.n1.n2.vt == VT_DISPATCH ); -#endif -} - -HB_FUNC( OLEUNINITIALIZE ) -{ - if( lInitialized ) - OleUninitialize(); - lInitialized = 0; -} - -HB_FUNC( OLE2TXTERROR ) -{ - switch ( (LONG) nOleError) - { - case S_OK: - hb_retc( "S_OK" ); - break; - - case CO_E_CLASSSTRING: - hb_retc( "CO_E_CLASSSTRING" ); - break; - - case OLE_E_WRONGCOMPOBJ: - hb_retc( "OLE_E_WRONGCOMPOBJ" ); - break; - - case REGDB_E_CLASSNOTREG: - hb_retc( "REGDB_E_CLASSNOTREG" ); - break; - - case REGDB_E_WRITEREGDB: - hb_retc( "REGDB_E_WRITEREGDB" ); - break; - - case E_OUTOFMEMORY: - hb_retc( "E_OUTOFMEMORY" ); - break; - - case E_INVALIDARG: - hb_retc( "E_INVALIDARG" ); - break; - - case E_UNEXPECTED: - hb_retc( "E_UNEXPECTED" ); - break; - - case DISP_E_UNKNOWNNAME: - hb_retc( "DISP_E_UNKNOWNNAME" ); - break; - - case DISP_E_UNKNOWNLCID: - hb_retc( "DISP_E_UNKNOWNLCID" ); - break; - - case DISP_E_BADPARAMCOUNT: - hb_retc( "DISP_E_BADPARAMCOUNT" ); - break; - - case DISP_E_BADVARTYPE: - hb_retc( "DISP_E_BADVARTYPE" ); - break; - - case DISP_E_EXCEPTION: - hb_retc( "DISP_E_EXCEPTION" ); - break; - - case DISP_E_MEMBERNOTFOUND: - hb_retc( "DISP_E_MEMBERNOTFOUND" ); - break; - - case DISP_E_NONAMEDARGS: - hb_retc( "DISP_E_NONAMEDARGS" ); - break; - - case DISP_E_OVERFLOW: - hb_retc( "DISP_E_OVERFLOW" ); - break; - - case DISP_E_PARAMNOTFOUND: - hb_retc( "DISP_E_PARAMNOTFOUND" ); - break; - - case DISP_E_TYPEMISMATCH: - hb_retc( "DISP_E_TYPEMISMATCH" ); - break; - - case DISP_E_UNKNOWNINTERFACE: - hb_retc( "DISP_E_UNKNOWNINTERFACE" ); - break; - - case DISP_E_PARAMNOTOPTIONAL: - hb_retc( "DISP_E_PARAMNOTOPTIONAL" ); - break; - - default: - hb_retc( "Unknown error" ); - break; - }; -} - -HB_FUNC( GETOLEOBJECT ) -{ - BSTR wCLSID; - IID ClassID, iid; - LPIID riid = (LPIID) &IID_IDispatch; - IUnknown *pUnk = NULL; - char *cOleName = hb_parc( 1 ); - void *pDisp = NULL; /* IDispatch */ - /* void * - * used intentionally to inform compiler that there is no - * strict-aliasing - */ - - nOleError = S_OK; - - wCLSID = (BSTR) AnsiToWide( (LPSTR)cOleName ); - - if ( cOleName[ 0 ] == '{' ) - { - nOleError = CLSIDFromString( wCLSID, (LPCLSID) &ClassID ); - } - else - { - nOleError = CLSIDFromProgID( wCLSID, (LPCLSID) &ClassID ); - } - - hb_xfree( wCLSID ); - - if ( hb_pcount() == 2 ) - { - char * cID = hb_parc( 2 ); - if ( cID[ 0 ] == '{' ) - { - wCLSID = (BSTR)AnsiToWide( (LPSTR)cID ); - nOleError = CLSIDFromString( wCLSID, &iid ); - hb_xfree( wCLSID ); - } - else - { - memcpy( ( LPVOID ) &iid, cID, sizeof( iid ) ); - } - - riid = &iid; - } - - if ( nOleError == S_OK ) - { - nOleError = GetActiveObject( &ClassID, NULL, &pUnk ); - - if ( nOleError == S_OK ) - { - nOleError = pUnk->lpVtbl->QueryInterface( pUnk, riid, &pDisp ); - } - } - - hb_retnl( ( LONG ) pDisp ); -} - -HB_FUNC( MESSAGEBOX ) -{ - hb_retni( MessageBox( ( HWND ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parni( 4 ) ) ); -} diff --git a/harbour/contrib/ole/oleauto.prg b/harbour/contrib/ole/oleauto.prg deleted file mode 100644 index 5cae87ae5f..0000000000 --- a/harbour/contrib/ole/oleauto.prg +++ /dev/null @@ -1,219 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * OLE library - * - * Copyright 2000,2003 José F. Giménez (JFG) - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - - -#include "hbclass.ch" - - -CLASS TOleAuto - - DATA hObj - - METHOD New( cAutoObj ) CONSTRUCTOR - METHOD GetActiveObject( cClass ) - METHOD End() - - METHOD Invoke( cMember, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - METHOD Set( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - METHOD Get( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - - ERROR HANDLER OnError( cMsg, nError ) - -ENDCLASS - -//-------------------------------------------------------------------- - -METHOD New( uObj ) CLASS TOleAuto - - IF ValType( uObj )="C" - ::hObj := CreateOleObject( uObj ) - ELSE - ::hObj := uObj - ENDIF - -RETURN Self - -METHOD GetActiveObject( cClass ) CLASS TOleAuto - - IF ValType( cClass ) = 'C' - ::hObj := GetOleObject( cClass ) - // ::cClassName := cClass - ELSE - MessageBox( 0,"Invalid parameter type to constructor TOleAuto():GetActiveObject()!", "OLE Interface",0 ) - ::hObj := 0 - ENDIF - -RETURN Self - -//-------------------------------------------------------------------- - -METHOD End() CLASS TOleAuto - - ::hObj := NIL - -RETURN NIL - -//-------------------------------------------------------------------- - -METHOD Invoke( cMethod, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto - - LOCAL uObj - - IF uParam6 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ELSEIF uParam5 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4, uParam5 ) - ELSEIF uParam4 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4 ) - ELSEIF uParam3 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3 ) - ELSEIF uParam2 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2 ) - ELSEIF uParam1 != NIL - uObj := OLEInvoke( ::hObj, cMethod, uParam1 ) - ELSE - uObj := OLEInvoke( ::hObj, cMethod ) - ENDIF - - IF OleIsObject() - RETURN TOleAuto():New( uObj ) - ELSEIF Ole2TxtError() == "DISP_E_EXCEPTION" - OLEShowException() - RETURN Self - ELSEIF OleError() != 0 - MessageBox( 0,cMethod + ": " + Ole2TxtError(), "OLE Error",0 ) - ENDIF - -RETURN uObj - -//-------------------------------------------------------------------- - -METHOD Set( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto - - IF uParam6 != NIL - OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ELSEIF uParam5 != NIL - OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5 ) - ELSEIF uParam4 != NIL - OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4 ) - ELSEIF uParam3 != NIL - OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3 ) - ELSEIF uParam2 != NIL - OLESetProperty( ::hObj, cProperty, uParam1, uParam2 ) - ELSEIF uParam1 != NIL - OLESetProperty( ::hObj, cProperty, uParam1 ) - ENDIF - - IF Ole2TxtError() == "DISP_E_EXCEPTION" - OLEShowException() - ELSEIF OleError() != 0 - MessageBox( 0,cProperty + ": " + Ole2TxtError(), "OLE Error",0 ) - ENDIF - -RETURN nil - -//-------------------------------------------------------------------- - -METHOD Get( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto - - LOCAL uObj - - IF uParam6 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ELSEIF uParam5 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5 ) - ELSEIF uParam4 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4 ) - ELSEIF uParam3 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3 ) - ELSEIF uParam2 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2 ) - ELSEIF uParam1 != NIL - uObj := OLEGetProperty( ::hObj, cProperty, uParam1 ) - ELSE - uObj := OLEGetProperty( ::hObj, cProperty ) - ENDIF - - IF Ole2TxtError() $ "DISP_E_MEMBERNOTFOUND | DISP_E_BADPARAMCOUNT | " + ; - "DISP_E_EXCEPTION" - uObj := ::Invoke( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ELSE - IF OleIsObject() - RETURN TOleAuto():New( uObj ) - ELSEIF OleError() != 0 - MessageBox( 0,cProperty + ": " + Ole2TxtError(), "OLE Error",0 ) - ENDIF - ENDIF - -RETURN uObj - -//-------------------------------------------------------------------- - -METHOD OnError( uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto - - LOCAL cMsg := __GetMessage() - - LOCAL uObj - - IF LEFT( cMsg, 1 ) == '_' - ::Set( SUBS( cMsg, 2 ), uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ELSE - uObj := ::Get( cMsg, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) - ENDIF - -RETURN uObj - -EXIT PROCEDURE OLEEXIT - - OLEUninitialize() - -RETURN \ No newline at end of file diff --git a/harbour/contrib/pgsql/common.mak b/harbour/contrib/pgsql/common.mak new file mode 100644 index 0000000000..bd056c96d9 --- /dev/null +++ b/harbour/contrib/pgsql/common.mak @@ -0,0 +1,18 @@ +# +# $Id$ +# + +LIBNAME = libhbpg + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\tpostgre.obj \ + $(OBJ_DIR)\postgres.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/pgsql/make_b32.bat b/harbour/contrib/pgsql/make_b32.bat index e717f557fd..e3076413cb 100644 --- a/harbour/contrib/pgsql/make_b32.bat +++ b/harbour/contrib/pgsql/make_b32.bat @@ -1,30 +1,62 @@ @echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MySQL sources and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\postgresql-8.2.5\src\include +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +set C_USR=%C_USR% -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION + +rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\libhbpg.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\libhbpg.lib del ..\..\lib\b32\libhbpg.lib - if exist ..\..\lib\b32\libhbpg.bak del ..\..\lib\b32\libhbpg.bak - if exist ..\..\obj\b32\postgres.obj del ..\..\obj\b32\postgres.obj - if exist ..\..\obj\b32\TPostgres.c del ..\..\obj\b32\TPostgres.c - if exist ..\..\obj\b32\TPostgres.obj del ..\..\obj\b32\TPostgres.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT diff --git a/harbour/contrib/pgsql/make_vc.bat b/harbour/contrib/pgsql/make_vc.bat new file mode 100644 index 0000000000..c99abceed8 --- /dev/null +++ b/harbour/contrib/pgsql/make_vc.bat @@ -0,0 +1,62 @@ +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem IMPORTANT: You'll need MySQL sources and this envvar +rem to be set to successfully build this library: +rem set C_USR=-IC:\postgresql-8.2.5\src\include +rem --------------------------------------------------------------- + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +set C_USR=%C_USR% -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/pgsql/makefile.bc b/harbour/contrib/pgsql/makefile.bc deleted file mode 100644 index f0d26fcf35..0000000000 --- a/harbour/contrib/pgsql/makefile.bc +++ /dev/null @@ -1,31 +0,0 @@ - -# makefile for Borland C/C++ 32 bits -# Building of libhbpg.lib - Harbour API to postgres - -# Postgresql running under Cygwin/Windows, unmark the line bellow to compile. -# PG_DIR = ..\..\..\cygwin\usr\src\postgresql-7.4.5 - -PG_DIR = C:\PostgreSQL - -INCLUDE_DIR = ..\..\include -INCLUDE_PQ = $(PG_DIR)\include - -BIN_DIR = c:\xharbour\bin -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\libhbpg.lib : \ - $(OBJ_DIR)\TPostgres.obj \ - $(OBJ_DIR)\postgres.obj - -$(OBJ_DIR)\TPostgres.c : TPostgres.prg -$(OBJ_DIR)\TPostgres.obj : $(OBJ_DIR)\TPostgres.c -$(OBJ_DIR)\postgres.obj : postgres.c - -.c.obj: - bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -I$(INCLUDE_PQ) -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION -o$@ $< - tlib $(LIB_DIR)\libhbpg.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -a -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/rdd_ads/common.mak b/harbour/contrib/rdd_ads/common.mak new file mode 100644 index 0000000000..bad5597bbc --- /dev/null +++ b/harbour/contrib/rdd_ads/common.mak @@ -0,0 +1,19 @@ +# +# $Id$ +# + +LIBNAME = rddads + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\ads1.obj \ + $(OBJ_DIR)\adsfunc.obj \ + $(OBJ_DIR)\adsmgmnt.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/rdd_ads/make_b32.bat b/harbour/contrib/rdd_ads/make_b32.bat index 6a9e20912e..5cabbb2fea 100644 --- a/harbour/contrib/rdd_ads/make_b32.bat +++ b/harbour/contrib/rdd_ads/make_b32.bat @@ -3,33 +3,56 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR + implib ..\..\lib\%HB_CC_NAME%\ace32.lib ace32.dll -:BUILD_OK - - copy ..\..\lib\b32\rddads.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\rddads.bak del ..\..\lib\b32\rddads.bak - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\rddads.lib del ..\..\lib\b32\rddads.lib - if exist ..\..\lib\b32\rddads.bak del ..\..\lib\b32\rddads.bak - if exist ..\..\obj\b32\ads1.obj del ..\..\obj\b32\ads1.obj - if exist ..\..\obj\b32\adsfunc.obj del ..\..\obj\b32\adsfunc.obj - if exist ..\..\obj\b32\adsmgmnt.obj del ..\..\obj\b32\adsmgmnt.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + copy ..\..\lib\%HB_CC_NAME%\ace32.lib ..\..\lib\ + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/rdd_ads/make_vc.bat b/harbour/contrib/rdd_ads/make_vc.bat index 43cdfcd96a..efa08b7875 100644 --- a/harbour/contrib/rdd_ads/make_vc.bat +++ b/harbour/contrib/rdd_ads/make_vc.bat @@ -1,21 +1,66 @@ @echo off -rem +rem rem $Id$ -rem +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR + rem --------------------------------------------------------------- + DUMPBIN /EXPORTS ace32.dll > _dump.tmp + echo LIBRARY ace32.dll > _temp.def + echo EXPORTS >> _temp.def + sed -nf exports.sed < _dump.tmp >> _temp.def + LIB /MACHINE:X86 /DEF:_temp.def /OUT:..\..\lib\%HB_CC_NAME%\ace32.lib + del _dump.tmp + del _temp.def + rem --------------------------------------------------------------- -:BUILD_OK - - copy ..\..\lib\vc\rddads.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + copy ..\..\lib\%HB_CC_NAME%\ace32.lib ..\..\lib\ + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/rdd_ads/makefile.bc b/harbour/contrib/rdd_ads/makefile.bc deleted file mode 100644 index 282bab8b85..0000000000 --- a/harbour/contrib/rdd_ads/makefile.bc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of rddads.lib - RDD for Advantage Database Server - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\rddads.lib : \ - $(OBJ_DIR)\ads1.obj \ - $(OBJ_DIR)\adsfunc.obj \ - $(OBJ_DIR)\adsmgmnt.obj - -$(OBJ_DIR)\ads1.obj : ads1.c -$(OBJ_DIR)\adsfunc.obj : adsfunc.c -$(OBJ_DIR)\adsmgmnt.obj : adsmgmnt.c - -.c.obj: - bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\rddads.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@ diff --git a/harbour/contrib/rdd_ads/makefile.vc b/harbour/contrib/rdd_ads/makefile.vc deleted file mode 100644 index f9ce0b0388..0000000000 --- a/harbour/contrib/rdd_ads/makefile.vc +++ /dev/null @@ -1,71 +0,0 @@ -# -# $Id$ -# - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# C compiler definition and C flags. These should never have to change. -# - -CC = cl -CFLAGS = -W3 -nologo -I$(INCLUDE_DIR) -DWIN32 -CLIBFLAGS = $(CFLAGS) -c -CLIBFLAGSDEBUG = $(CLIBFLAGS) -Zi - -# -# Macros to access our library names -# - -ADS_LIB = $(LIB_DIR)\rddads.lib -HARBOUR_EXE = $(BIN_DIR)\harbour.exe -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w -es2 -gc0 - -# -# OBJ list for ads.lib -# - -ADS_LIB_OBJS = \ - $(OBJ_DIR)\ads1.obj \ - $(OBJ_DIR)\adsfunc.obj \ - $(OBJ_DIR)\adsmgmnt.obj - -# -# Our default target -# - -all: $(ADS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\ads1.obj del $(OBJ_DIR)\ads1.obj - -@if exist $(OBJ_DIR)\adsfunc.obj del $(OBJ_DIR)\adsfunc.obj - -@if exist $(OBJ_DIR)\adsmgmnt.obj del $(OBJ_DIR)\adsmgmnt.obj - -@if exist $(ADS_LIB) del $(ADS_LIB) - -# -# Library dependencies and build rules -# - -$(ADS_LIB) : $(ADS_LIB_OBJS) - lib /OUT:$(ADS_LIB) $(ADS_LIB_OBJS) - -# -# ADS dependencies -# - -$(OBJ_DIR)\adsmgmnt.obj : adsmgmnt.c - $(CC) $(CLIBFLAGS) -Fo$@ $** - -$(OBJ_DIR)\adsfunc.obj : adsfunc.c - $(CC) $(CLIBFLAGS) -Fo$@ $** - -$(OBJ_DIR)\ads1.obj : ads1.c - $(CC) $(CLIBFLAGS) -Fo$@ $** - diff --git a/harbour/contrib/samples/common.mak b/harbour/contrib/samples/common.mak new file mode 100644 index 0000000000..027c14accb --- /dev/null +++ b/harbour/contrib/samples/common.mak @@ -0,0 +1,24 @@ +# +# $Id$ +# + +LIBNAME = samples + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\environ.obj \ + $(OBJ_DIR)\date.obj \ + $(OBJ_DIR)\dbf.obj \ + $(OBJ_DIR)\gauge.obj \ + $(OBJ_DIR)\num.obj \ + $(OBJ_DIR)\stack.obj \ + $(OBJ_DIR)\status.obj \ + $(OBJ_DIR)\time.obj + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/samples/gauge.c b/harbour/contrib/samples/gauge.c index a51f2187a1..e14c31db5b 100644 --- a/harbour/contrib/samples/gauge.c +++ b/harbour/contrib/samples/gauge.c @@ -206,8 +206,8 @@ static void hb_gaugeUpdate( PHB_ITEM pArray, float fPercent ) (USHORT) iCenter + 2, (BYTE *) szPct, 4 ); } - hb_gtBox( hb_arrayGetNL( pArray, B_TOP ) + 1, hb_arrayGetNL( pArray, B_LEFT ) + 1, - hb_arrayGetNL( pArray, B_BOTTOM ) - 1, hb_arrayGetNL( pArray, B_RIGHT ) - 1, + hb_gtBox( hb_arrayGetNI( pArray, B_TOP ) + 1, hb_arrayGetNI( pArray, B_LEFT ) + 1, + hb_arrayGetNI( pArray, B_BOTTOM ) - 1, hb_arrayGetNI( pArray, B_RIGHT ) - 1, ( BYTE * ) szStr ); iMax = hb_arrayGetNL( pArray, B_BOTTOM ) - hb_arrayGetNL( pArray, B_TOP ) - 1; diff --git a/harbour/contrib/samples/make_b32.bat b/harbour/contrib/samples/make_b32.bat index dae463c72a..e2eeba3252 100644 --- a/harbour/contrib/samples/make_b32.bat +++ b/harbour/contrib/samples/make_b32.bat @@ -3,26 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/samples/make_vc.bat b/harbour/contrib/samples/make_vc.bat index 892ddc8c03..96eca5a7e9 100644 --- a/harbour/contrib/samples/make_vc.bat +++ b/harbour/contrib/samples/make_vc.bat @@ -1,19 +1,54 @@ -@echo off -rem -rem $Id$ -rem - -:BUILD - - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - goto EXIT - -:BUILD_ERR - - notepad make_vc.log - -:EXIT +@echo off +rem +rem $Id$ +rem + +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + +:BUILD + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log + goto EXIT + +:CLEAN + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT + +:EXIT diff --git a/harbour/contrib/samples/makefile.bc b/harbour/contrib/samples/makefile.bc deleted file mode 100644 index 27e24cac3e..0000000000 --- a/harbour/contrib/samples/makefile.bc +++ /dev/null @@ -1,94 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Samples library for Borland C/C++ 3.x, 4.x, 5.x compilers -# - - -CC = bcc32 -IL = implib -ID = impdef -# NOTE: Using TASM for some reason, this should be normally TASM32. -# I'll leave it to TASM until a better solution is found -AS = tasm - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -SAMPLES_DIR = . -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS =$(CFLAGS) -HARBOUR_EXE = $(BIN_DIR)\harbour.exe -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -SAMPLES_LIB = $(LIB_DIR)\samples.lib -SAMPLES_LIB_OBJS = \ - $(OBJ_DIR)\environ.obj \ - $(OBJ_DIR)\date.obj \ - $(OBJ_DIR)\dbf.obj \ - $(OBJ_DIR)\gauge.obj \ - $(OBJ_DIR)\num.obj \ - $(OBJ_DIR)\stack.obj \ - $(OBJ_DIR)\status.obj \ - $(OBJ_DIR)\time.obj - -all: \ - $(SAMPLES_LIB) - -$(SAMPLES_LIB) = $(SAMPLES_LIB_OBJS) - -$(SAMPLES_LIB) : $(SAMPLES_LIB_OBJS) - -$(OBJ_DIR)\environ.obj : $(SAMPLES_DIR)\environ.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\date.obj : $(SAMPLES_DIR)\date.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\dbf.obj : $(SAMPLES_DIR)\dbf.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\gauge.obj : $(SAMPLES_DIR)\gauge.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\num.obj : $(SAMPLES_DIR)\num.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\stack.obj : $(SAMPLES_DIR)\stack.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\status.obj : $(SAMPLES_DIR)\status.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\time.obj : $(SAMPLES_DIR)\time.c - $(CC) -c $(CLIBFLAGS) -o$@ $** - tlib $(SAMPLES_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/samples/makefile.vc b/harbour/contrib/samples/makefile.vc deleted file mode 100644 index b86885fa2d..0000000000 --- a/harbour/contrib/samples/makefile.vc +++ /dev/null @@ -1,138 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin\vc - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\samples.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\environ.obj \ - $(OBJ_DIR)\date.obj \ - $(OBJ_DIR)\dbf.obj \ - $(OBJ_DIR)\gauge.obj \ - $(OBJ_DIR)\num.obj \ - $(OBJ_DIR)\stack.obj \ - $(OBJ_DIR)\status.obj \ - $(OBJ_DIR)\time.obj - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/tip/common.mak b/harbour/contrib/tip/common.mak new file mode 100644 index 0000000000..810e063d69 --- /dev/null +++ b/harbour/contrib/tip/common.mak @@ -0,0 +1,34 @@ +# +# $Id$ +# + +LIBNAME = tip + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\base64x.obj \ + $(OBJ_DIR)\encmthd.obj \ + $(OBJ_DIR)\utils.obj \ + \ + $(OBJ_DIR)\cgi.obj \ + $(OBJ_DIR)\client.obj \ + $(OBJ_DIR)\credent.obj \ + $(OBJ_DIR)\encb64.obj \ + $(OBJ_DIR)\encoder.obj \ + $(OBJ_DIR)\encqp.obj \ + $(OBJ_DIR)\encurl.obj \ + $(OBJ_DIR)\ftpcln.obj \ + $(OBJ_DIR)\httpcln.obj \ + $(OBJ_DIR)\mail.obj \ + $(OBJ_DIR)\popcln.obj \ + $(OBJ_DIR)\smtpcln.obj \ + $(OBJ_DIR)\thtml.obj \ + $(OBJ_DIR)\url.obj \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/tip/make_b32.bat b/harbour/contrib/tip/make_b32.bat index e53514a47a..e2eeba3252 100644 --- a/harbour/contrib/tip/make_b32.bat +++ b/harbour/contrib/tip/make_b32.bat @@ -3,23 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if "%1" == "clean" goto CLEAN - if "%1" == "CLEAN" goto CLEAN - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - copy ..\..\lib\b32\tip.lib ..\..\lib > nul - goto EXIT - -:BUILD_ERR - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist make_b32.log del make_b32.log + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/tip/make_vc.bat b/harbour/contrib/tip/make_vc.bat index c0ebf72f8a..bf8f375a9a 100644 --- a/harbour/contrib/tip/make_vc.bat +++ b/harbour/contrib/tip/make_vc.bat @@ -3,19 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\tip.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/tip/makefile.bc b/harbour/contrib/tip/makefile.bc deleted file mode 100644 index cf97cb7955..0000000000 --- a/harbour/contrib/tip/makefile.bc +++ /dev/null @@ -1,81 +0,0 @@ -# -# $Id$ -# - -# makefile for Borland C/C++ 32 bits -# Building of tip.lib - -INCLUDE_DIR = ..\..\include - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -$(LIB_DIR)\tip.lib : \ - $(OBJ_DIR)\popcln.obj \ - $(OBJ_DIR)\credent.obj \ - $(OBJ_DIR)\encoder.obj \ - $(OBJ_DIR)\encb64.obj \ - $(OBJ_DIR)\encqp.obj \ - $(OBJ_DIR)\encurl.obj \ - $(OBJ_DIR)\url.obj \ - $(OBJ_DIR)\client.obj \ - $(OBJ_DIR)\ftpcln.obj \ - $(OBJ_DIR)\smtpcln.obj \ - $(OBJ_DIR)\mail.obj \ - $(OBJ_DIR)\cgi.obj \ - $(OBJ_DIR)\thtml.obj \ - $(OBJ_DIR)\base64x.obj \ - $(OBJ_DIR)\encmthd.obj \ - $(OBJ_DIR)\utils.obj - -$(OBJ_DIR)\popcln.c : popcln.prg -$(OBJ_DIR)\popcln.obj : $(OBJ_DIR)\popcln.c - -$(OBJ_DIR)\credent.c : credent.prg -$(OBJ_DIR)\credent.obj : $(OBJ_DIR)\credent.c - -$(OBJ_DIR)\encoder.c : encoder.prg -$(OBJ_DIR)\encoder.obj : $(OBJ_DIR)\encoder.c - -$(OBJ_DIR)\encb64.c : encb64.prg -$(OBJ_DIR)\encb64.obj : $(OBJ_DIR)\encb64.c - -$(OBJ_DIR)\encqp.c : encqp.prg -$(OBJ_DIR)\encqp.obj : $(OBJ_DIR)\encqp.c - -$(OBJ_DIR)\encurl.c : encurl.prg -$(OBJ_DIR)\encurl.obj : $(OBJ_DIR)\encurl.c - -$(OBJ_DIR)\url.c : url.prg -$(OBJ_DIR)\url.obj : $(OBJ_DIR)\url.c - -$(OBJ_DIR)\client.c : client.prg -$(OBJ_DIR)\client.obj : $(OBJ_DIR)\client.c - -$(OBJ_DIR)\ftpcln.c : ftpcln.prg -$(OBJ_DIR)\ftpcln.obj : $(OBJ_DIR)\ftpcln.c - -$(OBJ_DIR)\smtpcln.c : smtpcln.prg -$(OBJ_DIR)\smtpcln.obj : $(OBJ_DIR)\smtpcln.c - -$(OBJ_DIR)\mail.c : mail.prg -$(OBJ_DIR)\mail.obj : $(OBJ_DIR)\mail.c - -$(OBJ_DIR)\cgi.c : cgi.prg -$(OBJ_DIR)\cgi.obj : $(OBJ_DIR)\cgi.c - -$(OBJ_DIR)\thtml.c : thtml.prg -$(OBJ_DIR)\thtml.obj : $(OBJ_DIR)\thtml.c - -$(OBJ_DIR)\base64x.obj : base64x.c -$(OBJ_DIR)\encmthd.obj : encmthd.c -$(OBJ_DIR)\utils.obj : utils.c - -.c.obj: - bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $< - tlib $(LIB_DIR)\tip.lib -+$@,, - -.prg.c: - $(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -kM -n -i$(INCLUDE_DIR) -o$@ - diff --git a/harbour/contrib/tip/makefile.vc b/harbour/contrib/tip/makefile.vc deleted file mode 100644 index 6e8eb3de64..0000000000 --- a/harbour/contrib/tip/makefile.vc +++ /dev/null @@ -1,169 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 -kM $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\tip.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\base64x.obj \ - $(OBJ_DIR)\encmthd.obj \ - $(OBJ_DIR)\utils.obj \ - \ - $(OBJ_DIR)\cgi.obj \ - $(OBJ_DIR)\client.obj \ - $(OBJ_DIR)\credent.obj \ - $(OBJ_DIR)\encb64.obj \ - $(OBJ_DIR)\encoder.obj \ - $(OBJ_DIR)\encqp.obj \ - $(OBJ_DIR)\encurl.obj \ - $(OBJ_DIR)\ftpcln.obj \ - $(OBJ_DIR)\httpcln.obj \ - $(OBJ_DIR)\mail.obj \ - $(OBJ_DIR)\popcln.obj \ - $(OBJ_DIR)\smtpcln.obj \ - $(OBJ_DIR)\thtml.obj \ - $(OBJ_DIR)\url.obj \ - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\base64x.* del $(OBJ_DIR)\base64x.* - -@if exist $(OBJ_DIR)\encmthd.* del $(OBJ_DIR)\encmthd.* - -@if exist $(OBJ_DIR)\utils.* del $(OBJ_DIR)\utils.* - -@if exist $(OBJ_DIR)\cgi.* del $(OBJ_DIR)\cgi.* - -@if exist $(OBJ_DIR)\client.* del $(OBJ_DIR)\client.* - -@if exist $(OBJ_DIR)\credent.* del $(OBJ_DIR)\credent.* - -@if exist $(OBJ_DIR)\encb64.* del $(OBJ_DIR)\encb64.* - -@if exist $(OBJ_DIR)\encoder.* del $(OBJ_DIR)\encoder.* - -@if exist $(OBJ_DIR)\encqp.* del $(OBJ_DIR)\encqp.* - -@if exist $(OBJ_DIR)\encurl.* del $(OBJ_DIR)\encurl.* - -@if exist $(OBJ_DIR)\ftpcln.* del $(OBJ_DIR)\ftpcln.* - -@if exist $(OBJ_DIR)\httpcln.* del $(OBJ_DIR)\httpcln.* - -@if exist $(OBJ_DIR)\mail.* del $(OBJ_DIR)\mail.* - -@if exist $(OBJ_DIR)\popcln.* del $(OBJ_DIR)\popcln.* - -@if exist $(OBJ_DIR)\smtpcln.* del $(OBJ_DIR)\smtpcln.* - -@if exist $(OBJ_DIR)\thtml.* del $(OBJ_DIR)\thtml.* - -@if exist $(OBJ_DIR)\url.* del $(OBJ_DIR)\url.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/tprepro/test.scr b/harbour/contrib/tprepro/test.scr deleted file mode 100644 index 782ac81c08..0000000000 --- a/harbour/contrib/tprepro/test.scr +++ /dev/null @@ -1,13 +0,0 @@ -/* - * $Id$ - */ - -function main() - - local a:="test" - ? a - - USE "test.dbf" ALIAS test SHARED NEW - -return nil - diff --git a/harbour/contrib/tprepro/tprepro.prg b/harbour/contrib/tprepro/tprepro.prg deleted file mode 100644 index 55ffd64e66..0000000000 --- a/harbour/contrib/tprepro/tprepro.prg +++ /dev/null @@ -1,237 +0,0 @@ - -/* - * $Id$ - */ - -/* - * Copyright 2001 Patrick Mast - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - - -//---------------------------------------------------------------------- -Function TestTPerPro() -LOCAL cScript, oPP - -oPP:=TPreProcessor():New("c:\harbour\include") -oPP:TranslateFile( "Test.scr", .t.,"ppo",.f.) -oPP:End() - -Alert("Please, see test.ppo for preprocessed result") - -RETURN NIL - - - - - - -//------------------------------------------------------------------------ -#include "hbclass.ch" - -#DEFINE CRLF HB_OsNewLine() - - -CLASS TPreProcessor - - DATA cIncludePath,cPreProcessed - - METHOD New( cIncludePath ) - METHOD End() - - METHOD AddRule( cRule ) - METHOD SetIncludepath( cIncludePath ) - METHOD TranslateLine( cCode ) - METHOD TranslateFile( cFile, lWritePPO ) - //METHOD TranslateStr( cStr ) - - -ENDCLASS - - - - -METHOD New( cIncludePath ) CLASS TPreprocessor - - __PP_Init( cIncludePath ) - - ::cIncludepath := cIncludePath - ::cPreProcessed := "" - -return Self - - - - -METHOD End() CLASS TPreprocessor - - __PP_Free() - -return Self - - - -METHOD SetIncludepath( cIncludePath ) CLASS TPreprocessor - - __PP_Init( cIncludePath ) - - ::cIncludepath:=cIncludePath - -return Self - - - - - -METHOD AddRule( cRule ) CLASS TPreprocessor - - local lResult - - if SubStr( LTrim( cRule ), 1, 1 ) != "#" - Alert( "error on rule definition" ) - return nil - endif - - lResult = __PPAddRule( cRule ) - -return lresult - - - - -METHOD TranslateLine( cCode ) CLASS TPreprocessor - - local cResult - - cResult = __PreProcess( cCode ) - -return cResult - - - -METHOD TranslateFile( cFile, lWritePPO, cPPOExt, lWasteNoSpace ) CLASS TPreprocessor - - local cStr, cByte, hPPO, cExt, cPP - local cResult :="", cCode := "", cByteWas:="" - local n:=1, f:=1, nPuntComma:=1 - - if lWritePPO = NIL - lWritePPO := .f. - endif - - if cPPOExt = NIL - cPPOExt := ".ppo" - else - cPPOExt := "." + StrTran( cPPOExt, ".", "" ) - endif - - if lWasteNoSpace = NIL - lWasteNoSpace := .f. - endif - - cStr := MemoRead( cFile ) - - while n make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\hbwin32.lib ..\..\lib\*.* > nul - if exist ..\..\lib\b32\hbwin32.bak del ..\..\lib\b32\hbwin32.bak - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN - if exist ..\..\lib\b32\hbwin32.lib del ..\..\lib\b32\hbwin32.lib - if exist ..\..\lib\b32\hbwin32.bak del ..\..\lib\b32\hbwin32.bak - if exist ..\..\obj\b32\tprinter.obj del ..\..\obj\b32\tprinter.obj - if exist ..\..\obj\b32\w32_ole.obj del ..\..\obj\b32\w32_ole.obj - if exist ..\..\obj\b32\w32_prn.obj del ..\..\obj\b32\w32_prn.obj - if exist ..\..\obj\b32\w32_tole.obj del ..\..\obj\b32\w32_tole.obj - if exist ..\..\obj\b32\w32_tprn.obj del ..\..\obj\b32\w32_tprn.obj + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT diff --git a/harbour/contrib/win32/make_vc.bat b/harbour/contrib/win32/make_vc.bat index bdcb67a64a..bf8f375a9a 100644 --- a/harbour/contrib/win32/make_vc.bat +++ b/harbour/contrib/win32/make_vc.bat @@ -3,19 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\hbwin32.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/win32/makefile.bc b/harbour/contrib/win32/makefile.bc deleted file mode 100644 index be59a5fd88..0000000000 --- a/harbour/contrib/win32/makefile.bc +++ /dev/null @@ -1,125 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\hbwin32.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\tprinter.obj \ - $(OBJ_DIR)\w32_ole.obj \ - $(OBJ_DIR)\w32_prn.obj \ - \ - $(OBJ_DIR)\w32_tole.obj \ - $(OBJ_DIR)\w32_tprn.obj \ - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - -# -# TOOLS.LIB dependencies -# - -$(OBJ_DIR)\tprinter.obj : $(TOOLS_DIR)\tprinter.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\w32_ole.obj : $(TOOLS_DIR)\w32_ole.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\w32_prn.obj : $(TOOLS_DIR)\w32_prn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\w32_tole.c : $(TOOLS_DIR)\w32_tole.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\w32_tole.obj : $(OBJ_DIR)\w32_tole.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\w32_tprn.c : $(TOOLS_DIR)\w32_tprn.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\w32_tprn.obj : $(OBJ_DIR)\w32_tprn.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/win32/makefile.vc b/harbour/contrib/win32/makefile.vc deleted file mode 100644 index 65128c93f6..0000000000 --- a/harbour/contrib/win32/makefile.vc +++ /dev/null @@ -1,145 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\hbwin32.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\tprinter.obj \ - $(OBJ_DIR)\w32_ole.obj \ - $(OBJ_DIR)\w32_prn.obj \ - \ - $(OBJ_DIR)\w32_tole.obj \ - $(OBJ_DIR)\w32_tprn.obj \ - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\tprinter.* del $(OBJ_DIR)\tprinter.* - -@if exist $(OBJ_DIR)\w32_ole.* del $(OBJ_DIR)\w32_ole.* - -@if exist $(OBJ_DIR)\w32_prn.* del $(OBJ_DIR)\w32_prn.* - -@if exist $(OBJ_DIR)\w32_tole.* del $(OBJ_DIR)\w32_tole.* - -@if exist $(OBJ_DIR)\w32_tprn.* del $(OBJ_DIR)\w32_tprn.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/contrib/xhb/common.mak b/harbour/contrib/xhb/common.mak new file mode 100644 index 0000000000..82ba534475 --- /dev/null +++ b/harbour/contrib/xhb/common.mak @@ -0,0 +1,26 @@ +# +# $Id$ +# + +LIBNAME = xhb + +LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT) + +# +# LIB rules +# + +LIB_OBJS = \ + $(OBJ_DIR)\hbxml$(OBJEXT) \ + $(OBJ_DIR)\hbsyslog$(OBJEXT) \ + $(OBJ_DIR)\hboutdbg$(OBJEXT) \ + $(OBJ_DIR)\cstructc$(OBJEXT) \ + $(OBJ_DIR)\xhbfunc$(OBJEXT) \ + $(OBJ_DIR)\txml$(OBJEXT) \ + $(OBJ_DIR)\hblog$(OBJEXT) \ + $(OBJ_DIR)\hblognet$(OBJEXT) \ + $(OBJ_DIR)\cstruct$(OBJEXT) \ + $(OBJ_DIR)\xhbcomp$(OBJEXT) \ + +all: \ + $(LIB_PATH) \ diff --git a/harbour/contrib/xhb/make_b32.bat b/harbour/contrib/xhb/make_b32.bat index ebc092973d..e2eeba3252 100644 --- a/harbour/contrib/xhb/make_b32.bat +++ b/harbour/contrib/xhb/make_b32.bat @@ -3,27 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + if "%1" == "clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - make -fmakefile.bc %1 %2 %3 > make_b32.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\b32\xhb.lib ..\..\lib\*.* > nul - goto EXIT - -:BUILD_ERR - - notepad make_b32.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT :CLEAN + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT :EXIT - diff --git a/harbour/contrib/xhb/make_vc.bat b/harbour/contrib/xhb/make_vc.bat index a2522bae98..bf8f375a9a 100644 --- a/harbour/contrib/xhb/make_vc.bat +++ b/harbour/contrib/xhb/make_vc.bat @@ -3,19 +3,52 @@ rem rem $Id$ rem +rem --------------------------------------------------------------- +rem This is a generic template file, if it doesn't fit your own needs +rem please DON'T MODIFY IT. +rem +rem Instead, make a local copy and modify that one, or make a call to +rem this batch file from your customized one. [vszakats] +rem +rem Set any of the below settings to customize your build process: +rem set HB_MAKE_PROGRAM= +rem set HB_MAKE_FLAGS= +rem --------------------------------------------------------------- + +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak + +rem --------------------------------------------------------------- + +if "%1" == "clean" goto CLEAN +if "%1" == "CLEAN" goto CLEAN + +if "%1" == "install" goto INSTALL +if "%1" == "INSTALL" goto INSTALL + :BUILD - nmake /f makefile.vc %1 %2 %3 > make_vc.log - if errorlevel 1 goto BUILD_ERR - -:BUILD_OK - - copy ..\..\lib\vc\xhb.lib ..\..\lib\*.* >nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -:BUILD_ERR +:CLEAN - notepad make_vc.log + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + goto EXIT + +:INSTALL + + if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\.. + + if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin + if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include + if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib + + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + goto EXIT :EXIT - diff --git a/harbour/contrib/xhb/makefile.bc b/harbour/contrib/xhb/makefile.bc deleted file mode 100644 index 254c4f445e..0000000000 --- a/harbour/contrib/xhb/makefile.bc +++ /dev/null @@ -1,189 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts -# with external commands named echo. -# - -!if $d(B16) - -CC = bcc -AS = tasm - -# Borland C/C++ (DOS 16 bits) -CFLAGS = -mh $(CFLAGS) - -BIN_DIR = bin\b16 -OBJ_DIR = obj\b16 -LIB_DIR = lib\b16 - -!else - -CC = bcc32 -AS = tasm32 - -BIN_DIR = ..\..\bin\b32 -OBJ_DIR = ..\..\obj\b32 -LIB_DIR = ..\..\lib\b32 - -# This is needed, otherwise the libs may overflow when -# debug info is requested with -v -y -ARFLAGS = /P32 - -!endif - -!if !$d(BCC_NOOPTIM) -CFLAGS = -O2 $(CFLAGS) -!endif - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -v $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\xhb.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -# -# TOOLS.LIB rules -# - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\hbxml.obj \ - $(OBJ_DIR)\hbsyslog.obj \ - $(OBJ_DIR)\hboutdbg.obj \ - $(OBJ_DIR)\cstructc.obj \ - $(OBJ_DIR)\xhbfunc.obj \ - $(OBJ_DIR)\txml.obj \ - $(OBJ_DIR)\hblog.obj \ - $(OBJ_DIR)\hblognet.obj \ - $(OBJ_DIR)\cstruct.obj \ - $(OBJ_DIR)\xhbcomp.obj \ - $(OBJ_DIR)\xhbmsgs.obj \ - $(OBJ_DIR)\xhbwith.obj \ - $(OBJ_DIR)\xhbenum.obj - -# -# Our default target -# - -all: \ - $(TOOLS_LIB) \ - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - -# -# TOOLS.LIB dependencies -# - -$(OBJ_DIR)\hbxml.obj : $(TOOLS_DIR)\hbxml.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hbsyslog.obj : $(TOOLS_DIR)\hbsyslog.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hboutdbg.obj : $(TOOLS_DIR)\hboutdbg.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\cstructc.obj : $(TOOLS_DIR)\cstructc.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xhbfunc.obj : $(TOOLS_DIR)\xhbfunc.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\txml.c : $(TOOLS_DIR)\txml.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\txml.obj : $(OBJ_DIR)\txml.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hblog.c : $(TOOLS_DIR)\hblog.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\hblog.obj : $(OBJ_DIR)\hblog.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\hblognet.c : $(TOOLS_DIR)\hblognet.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\hblognet.obj : $(OBJ_DIR)\hblognet.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\cstruct.c : $(TOOLS_DIR)\cstruct.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\cstruct.obj : $(OBJ_DIR)\cstruct.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xhbcomp.c : $(TOOLS_DIR)\xhbcomp.prg - $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ - -$(OBJ_DIR)\xhbcomp.obj : $(OBJ_DIR)\xhbcomp.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xhbmsgs.obj : $(TOOLS_DIR)\xhbmsgs.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xhbwith.obj : $(TOOLS_DIR)\xhbwith.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, - -$(OBJ_DIR)\xhbenum.obj : $(TOOLS_DIR)\xhbenum.c - $(CC) $(CLIBFLAGS) -o$@ $** - tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, diff --git a/harbour/contrib/xhb/makefile.vc b/harbour/contrib/xhb/makefile.vc deleted file mode 100644 index 0241fc2f3e..0000000000 --- a/harbour/contrib/xhb/makefile.vc +++ /dev/null @@ -1,154 +0,0 @@ -# -# $Id$ -# - -# -# Makefile for Harbour Project for Microsoft Visual C (32 bits) -# - -# -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) -# -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -# - -# -# Notes about this makefile: -# -# 1. To add new files to a dependancy list, add an obj name to one of the -# OBJ lists for the appropriate library. -# NOTE: put .prg related obj's last in the lib list. -# -# 2. This is a recursive script. If you change the name of this file, -# be sure to change MK_FILE (a few lines down) to the new name as well. -# -# 3. Recurrsion rules are quite simple: -# If you specifiy /a on the command line, files in the obj\vc dir -# will be deleted, and when nmake recurses, it's without the /a flag -# -# If a .prg.obj rule is fired, nmake will execute this script with -# a specific target as a parameter immediatley after compiling a given -# set of prg files. -# ie: Harbour $< -# nmake /fmakefile.vc obj\vc\rtl.lib2 -# which will simply get make to re-evaluate the dependancy list for the -# lib, and as a result, it will execute the C compiler using the .c.obj -# rule below to create the obj's for the prg's that were created just -# prior to the recurrsive call. Once the obj's are created, the -# recurrsion is complete. -# See additional notes under RTL.LIB below. -# - -MK_FILE = makefile.vc -MK_FLAGS = $(MAKEFLAGS: =) - -OBJ_DIR = ..\..\obj\vc -LIB_DIR = ..\..\lib\vc -BIN_DIR = ..\..\bin - -# -# Directory macros. These should never have to change. -# - -INCLUDE_DIR = ..\..\include -TOOLS_DIR = . - -# -# C compiler definition and C flags. These should never have to change. -# - -AS = masm -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) -CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) -CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) -HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) - -# -# Macros to access our library names -# - -TOOLS_LIB = $(LIB_DIR)\xhb.lib - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -# -# Rules -# - -.SUFFIXES: .prg .lib .c .obj .asm - -# override builtin - -.c.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -# -# -# - -LIBLIST = \ - $(TOOLS_LIB) - -# -# TOOLS.LIB rules -# - -{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj:: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< - -{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:: - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2 - -TOOLS_LIB_OBJS = \ - $(OBJ_DIR)\hbxml.obj \ - $(OBJ_DIR)\hbsyslog.obj \ - $(OBJ_DIR)\hboutdbg.obj \ - $(OBJ_DIR)\cstructc.obj \ - $(OBJ_DIR)\xhbfunc.obj \ - $(OBJ_DIR)\txml.obj \ - $(OBJ_DIR)\hblog.obj \ - $(OBJ_DIR)\hblognet.obj \ - $(OBJ_DIR)\cstruct.obj \ - $(OBJ_DIR)\xhbcomp.obj \ - -# -# Our default target -# - - -all: \ - $(TOOLS_LIB) - -CLEAN: - -@if exist $(OBJ_DIR)\hbxml.* del $(OBJ_DIR)\hbxml.* - -@if exist $(OBJ_DIR)\hbsyslog.* del $(OBJ_DIR)\hbsyslog.* - -@if exist $(OBJ_DIR)\hboutdbg.* del $(OBJ_DIR)\hboutdbg.* - -@if exist $(OBJ_DIR)\cstructc.* del $(OBJ_DIR)\cstructc.* - -@if exist $(OBJ_DIR)\xhbfunc.* del $(OBJ_DIR)\xhbfunc.* - -@if exist $(OBJ_DIR)\txml.* del $(OBJ_DIR)\txml.* - -@if exist $(OBJ_DIR)\hblog.* del $(OBJ_DIR)\hblog.* - -@if exist $(OBJ_DIR)\hblognet.* del $(OBJ_DIR)\hblognet.* - -@if exist $(OBJ_DIR)\cstruct.* del $(OBJ_DIR)\cstruct.* - -@if exist $(OBJ_DIR)\xhbcomp.* del $(OBJ_DIR)\xhbcomp.* - -@if exist $(TOOLS_LIB) del $(TOOLS_LIB) - -# -# Library dependencies and build rules -# - -$(TOOLS_LIB) : $(TOOLS_LIB_OBJS) - lib /out:$@ $** - -# dummy targets used for prg to c creation - -$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS) diff --git a/harbour/make_b32.bat b/harbour/make_b32.bat index 0e44471295..285da8d1cf 100644 --- a/harbour/make_b32.bat +++ b/harbour/make_b32.bat @@ -11,7 +11,7 @@ rem Instead, make a local copy and modify that one, or make a call to rem this batch file from your customized one. [vszakats] rem rem Set any of the below settings to customize your build process: -rem set HB_BUILD_MODE=P +rem set HB_BUILD_MODE=C rem set HB_BUILD_DLL=yes rem set HB_BUILD_DEBUG=yes rem set HB_BUILD_VERBOSE=yes @@ -20,18 +20,10 @@ rem set HB_MAKE_PROGRAM= rem set HB_MAKE_FLAGS= rem --------------------------------------------------------------- -if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe - -rem Save the user value, force silent file overwrite with COPY -rem (not all Windows versions support the COPY /Y flag) -set HB_ORGENV_COPYCMD=%COPYCMD% -set COPYCMD=/Y - -rem --------------------------------------------------------------- - -rem IMPORTANT ! It has to be declared here -if "%CC_DIRNAME%" == "" set CC_DIRNAME=b32 if "%HB_GT_LIB%" == "" set HB_GT_LIB=gtwin +if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe +set HB_MAKEFILE=make_%HB_CC_NAME%.mak rem --------------------------------------------------------------- @@ -41,36 +33,19 @@ if "%1" == "CLEAN" goto CLEAN if "%1" == "install" goto INSTALL if "%1" == "INSTALL" goto INSTALL -rem --------------------------------------------------------------- - :BUILD - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -r -fmakefile.bc %1 %2 %3 > make_%CC_DIRNAME%.log - if errorlevel 1 goto BUILD_ERR + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -rem --------------------------------------------------------------- - -:BUILD_ERR - - notepad make_%CC_DIRNAME%.log - goto EXIT - -rem --------------------------------------------------------------- - :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f makefile.bc CLEAN > make_%CC_DIRNAME%.log - - rem In this case, the makefile handles most cleanup. - - if exist make_%CC_DIRNAME%.log del make_%CC_DIRNAME%.log > nul - if exist inst_%CC_DIRNAME%.log del inst_%CC_DIRNAME%.log > nul - + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT -rem --------------------------------------------------------------- - :INSTALL if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=. @@ -79,13 +54,7 @@ rem --------------------------------------------------------------- if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f makefile.bc INSTALL > nul + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT -rem --------------------------------------------------------------- - :EXIT -rem Restore user value -set COPYCMD=%HB_ORGENV_COPYCMD% -set HB_ORGENV_COPYCMD= -set CC_DIRNAME= diff --git a/harbour/makefile.bc b/harbour/make_b32.mak similarity index 97% rename from harbour/makefile.bc rename to harbour/make_b32.mak index 0f4edc1885..4980a3c85a 100644 --- a/harbour/makefile.bc +++ b/harbour/make_b32.mak @@ -125,7 +125,7 @@ DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR)) INCLUDE_DIR = include # C Compiler Flags -CFLAGS = -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -Iobj\$(CC_DIRNAME) +CFLAGS = -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -Iobj\$(HB_CC_NAME) #----------- !ifndef BCC_NOOPTIM CFLAGS = -O2 $(CFLAGS) @@ -685,7 +685,7 @@ doClean: -if exist $(DLL_OBJ_DIR)\*.obj $(DEL) $(DLL_OBJ_DIR)\*.obj > nul -if exist $(DLL_OBJ_DIR)\*.c $(DEL) $(DLL_OBJ_DIR)\*.c > nul -if exist $(DLL_OBJ_DIR)\*.h $(DEL) $(DLL_OBJ_DIR)\*.h > nul - -if exist inst_$(CC_DIRNAME).log $(DEL) inst_$(CC_DIRNAME).log > nul + -if exist inst_$(HB_CC_NAME).log $(DEL) inst_$(HB_CC_NAME).log > nul -if exist gtlibs.mak $(DEL) gtlibs.mak > nul -if exist bin\*.exe $(DEL) bin\*.exe > nul -if exist lib\*.lib $(DEL) lib\*.lib > nul @@ -699,14 +699,14 @@ Install : doInstall INSTALL : doInstall doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL) - -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(CC_DIRNAME).log - -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(CC_DIRNAME).log + -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(HB_CC_NAME).log + -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log !if "$(HB_INSTALL_PREFIX)" != "." - -if exist $(HB_INC_INSTALL)\nul copy /A include\*.api $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_INC_INSTALL)\nul copy /A include\*.ch $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_INC_INSTALL)\nul copy /A include\*.h $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A include\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A include\*.ch $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A include\*.h $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log !endif #********************************************************** diff --git a/harbour/makefile.gc b/harbour/make_gcc.mak similarity index 99% rename from harbour/makefile.gc rename to harbour/make_gcc.mak index d39fcac244..2bdb2952f5 100644 --- a/harbour/makefile.gc +++ b/harbour/make_gcc.mak @@ -153,7 +153,7 @@ endif # Main "Include" directory INCLUDE_DIR := include -CFLAGS := -W -Wall -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -Iobj/$(CC_DIRNAME) +CFLAGS := -W -Wall -I$(INCLUDE_DIR) $(C_USR) $(CFLAGS) -Iobj/$(HB_CC_NAME) #----------- ifndef GCC_NOOPTIM CFLAGS := -O3 $(CFLAGS) @@ -498,7 +498,7 @@ doClean: -$(DEL) $(DLL_OBJ_DIR)/*.c -$(DEL) $(DLL_OBJ_DIR)/*.h -$(DEL) $(PP_DIR)/pptable.c - -$(DEL) inst_$(CC_DIRNAME).log + -$(DEL) inst_$(HB_CC_NAME).log -$(DEL) common.cf #********************************************************** diff --git a/harbour/make_gcc.sh b/harbour/make_gcc.sh index 3afa6ab3ce..20051651b8 100755 --- a/harbour/make_gcc.sh +++ b/harbour/make_gcc.sh @@ -17,13 +17,13 @@ if [ -z "$HB_ARCHITECTURE" ]; then export HB_ARCHITECTURE="$hb_arch" fi -if [ -z "$CC_DIRNAME" ]; then +if [ -z "$HB_CC_NAME" ]; then case "$HB_ARCHITECTURE" in - w32) CC_DIRNAME="mingw" ;; - dos) CC_DIRNAME="djgpp" ;; - *) CC_DIRNAME="gcc" ;; + w32) HB_CC_NAME="mingw" ;; + dos) HB_CC_NAME="djgpp" ;; + *) HB_CC_NAME="gcc" ;; esac - export CC_DIRNAME + export HB_CC_NAME fi if [ -z "$HB_GT_LIB" ]; then @@ -163,7 +163,7 @@ export CC LD EXEEXT #export HB_BUILD_VERBOSE=yes -mkdir -p obj/$CC_DIRNAME lib/$CC_DIRNAME bin/$CC_DIRNAME +mkdir -p obj/$HB_CC_NAME lib/$HB_CC_NAME bin/$HB_CC_NAME # Convert common.mak (for BCC/VC) to common.cf (GCC) @@ -184,6 +184,6 @@ sed -e "s/\.obj/.o/g" \ -e 's/$(HB_GT_LIST)/$(foreach gt, $(HB_GT_LIST), $(GT$(gt)_LIB))/g' \ common.mak > common.cf -#$MAKE -n -p -r -f makefile.gc 1>EOK 2>ERR -$MAKE -r -f makefile.gc $* +#$MAKE -n -p -r -f make_gcc.mak 1>EOK 2>ERR +$MAKE -r -f make_gcc.mak $* rm -f common.cf diff --git a/harbour/make_vc.bat b/harbour/make_vc.bat index c088434783..688994c075 100644 --- a/harbour/make_vc.bat +++ b/harbour/make_vc.bat @@ -15,22 +15,15 @@ rem set HB_BUILD_MODE=C rem set HB_BUILD_DLL=yes rem set HB_BUILD_DEBUG=yes rem set HB_BUILD_VERBOSE=yes +rem set HB_REBUILD_PARSER=yes rem set HB_MAKE_PROGRAM= rem set HB_MAKE_FLAGS= rem --------------------------------------------------------------- -if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe - -rem Save the user value, force silent file overwrite with COPY -rem (not all Windows versions support the COPY /Y flag) -set HB_ORGENV_COPYCMD=%COPYCMD% -set COPYCMD=/Y - -rem --------------------------------------------------------------- - -rem IMPORTANT ! It has to be declared here -if "%CC_DIRNAME%" == "" set CC_DIRNAME=vc if "%HB_GT_LIB%" == "" set HB_GT_LIB=gtwin +if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc +if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe +set HB_MAKEFILE=make_%HB_CC_NAME%.mak rem --------------------------------------------------------------- @@ -40,36 +33,19 @@ if "%1" == "CLEAN" goto CLEAN if "%1" == "install" goto INSTALL if "%1" == "INSTALL" goto INSTALL -rem --------------------------------------------------------------- - :BUILD - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% /f makefile.vc %1 %2 %3 > make_%CC_DIRNAME%.log - if errorlevel 1 goto BUILD_ERR + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log + if errorlevel 1 notepad make_%HB_CC_NAME%.log goto EXIT -rem --------------------------------------------------------------- - -:BUILD_ERR - - notepad make_%CC_DIRNAME%.log - goto EXIT - -rem --------------------------------------------------------------- - :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% /f makefile.vc CLEAN > make_%CC_DIRNAME%.log - - rem In this case, the makefile handles most cleanup. - - if exist make_%CC_DIRNAME%.log del make_%CC_DIRNAME%.log > nul - if exist inst_%CC_DIRNAME%.log del inst_%CC_DIRNAME%.log > nul - + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul + if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul goto EXIT -rem --------------------------------------------------------------- - :INSTALL if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=. @@ -78,14 +54,7 @@ rem --------------------------------------------------------------- if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% /f makefile.vc INSTALL > nul - + %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul goto EXIT -rem --------------------------------------------------------------- - :EXIT -rem Restore user value -set COPYCMD=%HB_ORGENV_COPYCMD% -set HB_ORGENV_COPYCMD= -set CC_DIRNAME= diff --git a/harbour/makefile.vc b/harbour/make_vc.mak similarity index 98% rename from harbour/makefile.vc rename to harbour/make_vc.mak index 16468b8916..0bffdc8611 100644 --- a/harbour/makefile.vc +++ b/harbour/make_vc.mak @@ -145,7 +145,7 @@ CFLAGS_VER = -Ot2b1 -EHs-c- -FD -Gs -D_CRT_SECURE_NO_DEPRECATE CFLAGS_VER = -Ogt2yb1p -GX- -G6 -YX -FD -Gs !endif -CFLAGS = -I$(INCLUDE_DIR) $(CFLAGS_VER) -T$(HB_BUILD_MODE) -W3 -nologo -D__WINDOWS__ -DWIN32 -D__WIN32__ $(C_USR) $(CFLAGS) -Iobj\$(CC_DIRNAME) +CFLAGS = -I$(INCLUDE_DIR) $(CFLAGS_VER) -T$(HB_BUILD_MODE) -W3 -nologo -D__WINDOWS__ -DWIN32 -D__WIN32__ $(C_USR) $(CFLAGS) -Iobj\$(HB_CC_NAME) #----------- !if "$(HB_BUILD_DEBUG)" == "yes" CFLAGS = -Zi $(CFLAGS) @@ -1055,7 +1055,7 @@ doClean: -if exist $(DLL_OBJ_DIR)\*.obj $(DEL) $(DLL_OBJ_DIR)\*.obj > nul -if exist $(DLL_OBJ_DIR)\*.c $(DEL) $(DLL_OBJ_DIR)\*.c > nul -if exist $(DLL_OBJ_DIR)\*.h $(DEL) $(DLL_OBJ_DIR)\*.h > nul - -if exist inst_$(CC_DIRNAME).log $(DEL) inst_$(CC_DIRNAME).log > nul + -if exist inst_$(HB_CC_NAME).log $(DEL) inst_$(HB_CC_NAME).log > nul -if exist bin\*.exe $(DEL) bin\*.exe > nul -if exist lib\*.lib $(DEL) lib\*.lib > nul @@ -1068,14 +1068,14 @@ Install : doInstall INSTALL : doInstall doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL) - -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B /Y $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(CC_DIRNAME).log - -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B /Y $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B /Y $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B /Y $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(CC_DIRNAME).log + -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe copy /B /Y $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) > inst_$(HB_CC_NAME).log + -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll copy /B /Y $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib copy /B /Y $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib copy /B /Y $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log !if "$(HB_INSTALL_PREFIX)" != "." - -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.api $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.ch $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log - -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.h $(HB_INC_INSTALL) >> inst_$(CC_DIRNAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.ch $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log + -if exist $(HB_INC_INSTALL)\nul copy /A /Y include\*.h $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log !endif #**********************************************************