From 9dba9f74693a84fb696b58cd655166b74af8fe8b Mon Sep 17 00:00:00 2001 From: "Alexander S.Kresin" Date: Fri, 6 Aug 1999 18:38:07 +0000 Subject: [PATCH] Updating preprocessor files --- harbour/ChangeLog | 11 + harbour/include/hbpp.h | 20 +- harbour/source/hbpp/hbpp.c | 289 ++++++------- harbour/source/hbpp/hbppint.c | 2 - harbour/source/hbpp/stdalone/hbpp.c | 320 ++++++++++---- harbour/source/hbpp/table.c | 645 ++++++++++++++-------------- 6 files changed, 732 insertions(+), 555 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 936fc1ef61..8b1e801539 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,14 @@ +199908.06-22:12 GMT+3 Alexander Kresin + * include/hbpp.h + * source/hbpp/hbpp.c + * source/hbpp/hbppint.c + * source/hbpp/table.c + * fixed some bugs + * linked list for #commands and #translates storage instead or array + * source/hbpp/stdalone/hbpp.c + * added run-time messages + * creation of table.c contens + 19990806-19:55 GMT+1 Antonio Linares * include/classes.ch * Added support for SETGET methods diff --git a/harbour/include/hbpp.h b/harbour/include/hbpp.h index 4b1318c63e..eba76e0678 100644 --- a/harbour/include/hbpp.h +++ b/harbour/include/hbpp.h @@ -33,19 +33,20 @@ typedef struct _DEFINES struct _DEFINES *last; } DEFINES; -typedef struct +struct _COMMANDS; +typedef struct _COMMANDS { int com_or_xcom; char *name; char *mpatt; char *value; -} COMMANDS, TRANSLATES; + struct _COMMANDS *last; +} COMMANDS; #define STR_SIZE 8192 #define BUFF_SIZE 2048 -#define INITIAL_ACOM_SIZE 200 -#define SKIPTABSPACES( sptr ) while ( *sptr == ' ' || *sptr == '\t' ) (sptr)++ +#define SKIPTABSPACES(sptr) while ( *sptr == ' ' || *sptr == '\t' ) (sptr)++ #define PATH_DELIMITER "/\\" #define IS_PATH_SEP( c ) (strchr(PATH_DELIMITER, (c))!=NULL) @@ -56,10 +57,10 @@ typedef struct extern int ParseDirective( char* ); extern int ParseExpression( char*, char* ); -extern int pp_RdStr( FILE*,char *,int,int,char*,int*,int* ); -extern int pp_WrStr( FILE*,char * ); +extern int pp_RdStr(FILE*,char *,int,int,char*,int*,int*); +extern int pp_WrStr(FILE*,char *); extern int strolen ( char* ); -extern int strocpy ( char*, char* ); +extern int strocpy (char*, char* ); extern char* strodup ( char * ); extern DEFINES *AddDefine( char * szDefine, char * szValue ); /* add a new Lex define from the command line */ @@ -69,9 +70,6 @@ extern int lInclude; extern int *aCondCompile, nCondCompile; extern int nline; -extern COMMANDS *aCommnew ; -extern TRANSLATES *aTranslates ; - /* Needed support modules, but not contained in HBPP.C */ extern FILENAME *SplitFilename( char * ); /* splits filename into a path, a name and an extension */ @@ -86,5 +84,7 @@ extern void _xfree( void * ); /* frees fixed memory */ extern PATHNAMES *_pIncludePath; extern FILENAME *_pFileName; extern DEFINES *topDefine; +extern COMMANDS *topCommand; +extern COMMANDS *topTranslate; #endif /* HB_PP_H_ */ diff --git a/harbour/source/hbpp/hbpp.c b/harbour/source/hbpp/hbpp.c index f2864e7742..f732419813 100644 --- a/harbour/source/hbpp/hbpp.c +++ b/harbour/source/hbpp/hbpp.c @@ -54,16 +54,15 @@ int ParseDefine( char* ); /* Process #define directive */ DEFINES* AddDefine ( char*, char* ); /* Add new #define to a linked list */ int ParseUndef( char* ); /* Process #undef directive */ int ParseIfdef( char*, int); /* Process #ifdef directive */ -int ParseCommand( char*, int, int ); /* Process #command or #translate directive */ -int ConvertPatterns ( char*, int, char*, int ); /* Converting result pattern in #command and #translate */ -void AddCommand ( char * ); /* Add new #command to an array */ -void AddTranslate ( char * ); /* Add new #translate to an array */ -COMMANDS* getCommand ( int ); +void ParseCommand( char*, int, int ); /* Process #command or #translate directive */ +void ConvertPatterns ( char*, int, char*, int ); /* Converting result pattern in #command and #translate */ +COMMANDS* AddCommand ( char * ); /* Add new #command to an array */ +COMMANDS* AddTranslate ( char * ); /* Add new #translate to an array */ int ParseExpression( char*, char* ); /* Parsing a line ( without preprocessor directive ) */ int WorkDefine ( char**, char*, DEFINES * ); /* Replace fragment of code with a #defined result text */ int WorkPseudoF ( char**, char*, DEFINES*); /* Replace pseudofunction with a #defined result text */ -int WorkCommand ( char*, char*, char*, int); -int WorkTranslate ( char*, char*, char*, int, int* ); +int WorkCommand ( char*, char*, char*, COMMANDS* ); +int WorkTranslate ( char*, char*, char*, COMMANDS*, int* ); int CommandStuff ( char *, char *, char *, int*, int ); int RemoveSlash( char * ); int WorkMarkers( char**, char**, char*, int*, int ); @@ -72,8 +71,8 @@ int isExpres ( char* ); void SkipOptional( char**, char*, int*, int*); DEFINES* DefSearch(char *); -int ComSearch(char *,int); -int TraSearch(char *,int); +COMMANDS* ComSearch( char *, COMMANDS* ); +COMMANDS* TraSearch( char *, COMMANDS* ); void SearnRep( char*,char*,int,char*,int*); int ReplacePattern ( char, char*, int, char*, int ); void pp_rQuotes( char *, char * ); @@ -124,14 +123,6 @@ int nline=0; int Repeate; char groupchar; -extern COMMANDS aCommands[] ; -extern int kolcomm; -COMMANDS *aCommnew ; -int kolcommands = 0, maxcommands = INITIAL_ACOM_SIZE; - -TRANSLATES *aTranslates ; -int koltranslates = 0, maxtranslates = 50; - /* Table with parse errors */ char * _szPErrors[] = { "Can\'t open include file \"%s\"", "#else does not match #if", @@ -340,97 +331,85 @@ DEFINES* DefSearch(char *defname) return NULL; } -int ComSearch(char *cmdname, int ncmd) +COMMANDS* ComSearch(char *cmdname, COMMANDS *stcmdStart) { - int i,j; - if ( !ncmd || ncmd > kolcomm ) - for ( i=(ncmd)? ncmd-kolcomm-1:kolcommands-1; i >= 0; i-- ) - { - for ( j=0; (*(aCommnew[i].name+j)==toupper(*(cmdname+j))) && - (*(aCommnew[i].name+j)!='\0') && - ((aCommnew[i].com_or_xcom)? 1:(j<4 || ISNAME(*(cmdname+j+1)))); j++ ); - if ( (*(aCommnew[i].name+j)==toupper(*(cmdname+j))) || - ( !aCommnew[i].com_or_xcom && j >= 4 && *(aCommnew[i].name+j)!='\0') ) - return kolcomm+i; - } + int j; + COMMANDS *stcmd = ( stcmdStart )? stcmdStart:topCommand; - for ( i=(ncmd && ncmd<=kolcomm)? ncmd-1:kolcomm-1; i >= 0; i-- ) - { - for ( j=0; (*(aCommands[i].name+j)==toupper(*(cmdname+j))) && - (*(aCommands[i].name+j)!='\0') && - ((aCommands[i].com_or_xcom)? 1:(j<4 || ISNAME(*(cmdname+j+1)))); j++ ); - if ( (*(aCommands[i].name+j)==toupper(*(cmdname+j))) || - ( !aCommands[i].com_or_xcom && j >= 4 && *(aCommands[i].name+j)!='\0' - && *(cmdname+j) == '\0' ) ) - break; - } - return i; + while( stcmd != NULL ) + { + for ( j=0; (*(stcmd->name+j)==toupper(*(cmdname+j))) && + (*(stcmd->name+j)!='\0') && + ((stcmd->com_or_xcom)? 1:(j<4 || ISNAME(*(cmdname+j+1)))); j++ ); + if ( (*(stcmd->name+j)==toupper(*(cmdname+j))) || + ( !stcmd->com_or_xcom && j >= 4 && *(stcmd->name+j)!='\0' + && *(cmdname+j) == '\0' ) ) + break; + stcmd = stcmd->last; + } + + return stcmd; } -int TraSearch(char *cmdname, int ncmd) +COMMANDS* TraSearch(char *cmdname, COMMANDS *sttraStart) { - int i,j; + int j; + COMMANDS *sttra = ( sttraStart )? sttraStart:topTranslate; - for ( i=(ncmd>=0)? ncmd:koltranslates-1; i >= 0; i-- ) - { - for ( j=0; *(aTranslates[i].name+j)==toupper(*(cmdname+j)) && - *(aTranslates[i].name+j)!='\0' && - ((aTranslates[i].com_or_xcom)? 1:(j<4 || ISNAME(*(cmdname+j+1)))); j++ ); - if ( *(aTranslates[i].name+j)==toupper(*(cmdname+j)) || - ( !aTranslates[i].com_or_xcom && j >= 4 && - *(aTranslates[i].name+j)!='\0' && *(cmdname+j) == '\0' ) ) - break; - } - return i; + while( sttra != NULL ) + { + for ( j=0; *(sttra->name+j)==toupper(*(cmdname+j)) && + *(sttra->name+j)!='\0' && + ((sttra->com_or_xcom)? 1:(j<4 || ISNAME(*(cmdname+j+1)))); j++ ); + if ( *(sttra->name+j)==toupper(*(cmdname+j)) || + ( !sttra->com_or_xcom && j >= 4 && + *(sttra->name+j)!='\0' && *(cmdname+j) == '\0' ) ) + break; + sttra = sttra->last; + } + return sttra; } -int ParseCommand( char* sLine, int com_or_xcom, int com_or_tra ) +void ParseCommand( char* sLine, int com_or_xcom, int com_or_tra ) { - static char mpatt[PATTERN_SIZE], rpatt[PATTERN_SIZE]; - char cmdname[MAX_NAME]; - int mlen,rlen; - int ipos, rez; + static char mpatt[PATTERN_SIZE], rpatt[PATTERN_SIZE]; + char cmdname[MAX_NAME]; + COMMANDS *stcmd; + int mlen,rlen; + int ipos, rez; - NextWord( &sLine, cmdname, FALSE ); - /* NextName( &sLine, cmdname, NULL ); */ - SKIPTABSPACES(sLine); - stroupper( cmdname ); + NextWord( &sLine, cmdname, FALSE ); + stroupper( cmdname ); + SKIPTABSPACES(sLine); - if ( (ipos = pp_strAt( "=>", 2, sLine, strolen(sLine) )) > 0 ) - stroncpy( mpatt, sLine, ipos-1 ); - else GenError( _szPErrors, 'P', ERR_COMMAND_DEFINITION, NULL, NULL ); - mlen = strotrim( mpatt ); + if ( (ipos = pp_strAt( "=>", 2, sLine, strolen(sLine) )) > 0 ) + stroncpy( mpatt, sLine, ipos-1 ); + else + GenError( _szPErrors, 'P', ERR_COMMAND_DEFINITION, NULL, NULL ); + mlen = strotrim( mpatt ); - sLine += ipos + 1; - SKIPTABSPACES(sLine); - strocpy( rpatt, sLine ); - rlen = strotrim( rpatt ); + sLine += ipos + 1; + SKIPTABSPACES(sLine); + strocpy( rpatt, sLine ); + rlen = strotrim( rpatt ); - if ( (rez = ConvertPatterns ( mpatt, mlen, rpatt, rlen )) > 0 ) return rez; + ConvertPatterns ( mpatt, mlen, rpatt, rlen ); - if ( com_or_tra ) - { - AddCommand ( cmdname ); - aCommnew[kolcommands-1].com_or_xcom = com_or_xcom; - aCommnew[kolcommands-1].mpatt = strodup ( mpatt ); - aCommnew[kolcommands-1].value = ( rlen > 0 )? strodup ( rpatt ) : NULL; - } - else - { - AddTranslate ( cmdname ); - aTranslates[koltranslates-1].com_or_xcom = com_or_xcom; - aTranslates[koltranslates-1].mpatt = strodup ( mpatt ); - aTranslates[koltranslates-1].value = ( rlen > 0 )? strodup ( rpatt ) : NULL; - } + if ( com_or_tra ) + stcmd = AddCommand ( cmdname ); + else + stcmd = AddTranslate ( cmdname ); - return 0; + stcmd->com_or_xcom = com_or_xcom; + stcmd->mpatt = strodup ( mpatt ); + stcmd->value = ( rlen > 0 )? strodup ( rpatt ) : NULL; } /* ConvertPatterns() * Converts result pattern in #command and #translate to inner format */ -int ConvertPatterns ( char *mpatt, int mlen, char *rpatt, int rlen ) +void ConvertPatterns ( char *mpatt, int mlen, char *rpatt, int rlen ) { int i = 0, ipos, ifou; int explen,rmlen; @@ -512,43 +491,38 @@ int ConvertPatterns ( char *mpatt, int mlen, char *rpatt, int rlen ) } i++; } - return 0; } -void AddCommand ( char *cmdname ) +COMMANDS* AddCommand ( char *cmdname ) { - if ( kolcommands == maxcommands ) - { - maxcommands += 50; - aCommnew = (COMMANDS *)_xrealloc( aCommnew, sizeof( COMMANDS ) * maxcommands ); - } - aCommnew[kolcommands].name = strodup ( cmdname ); - kolcommands++; + COMMANDS *stcmd; + + stcmd = ( COMMANDS * ) _xgrab( sizeof( COMMANDS ) ); + stcmd->last = topCommand; + topCommand = stcmd; + stcmd->name = strodup ( cmdname ); + return stcmd; } -void AddTranslate ( char *cmdname ) +COMMANDS* AddTranslate ( char *traname ) { - if ( koltranslates == maxtranslates ) - { - maxtranslates += 50; - aTranslates = (TRANSLATES *)_xrealloc( aTranslates, sizeof( TRANSLATES ) * maxtranslates ); - } - aTranslates[koltranslates].name = strodup ( cmdname ); - koltranslates++; -} + COMMANDS *sttra; -COMMANDS* getCommand ( int ndef ) -{ - return (ndef>=kolcomm)? &(aCommnew[ndef-kolcomm]):&(aCommands[ndef]); + sttra = ( COMMANDS * ) _xgrab( sizeof( COMMANDS ) ); + sttra->last = topTranslate; + topTranslate = sttra; + sttra->name = strodup ( traname ); + return sttra; } int ParseExpression( char* sLine, char* sOutLine ) { char sToken[MAX_NAME]; char *ptri, *ptro, *ptrb; - int lenToken, i, ndef, ipos, isdvig, lens; + int lenToken, i, ipos, isdvig, lens; int rezDef, rezTra, rezCom, kolpass = 0; DEFINES *stdef; + COMMANDS *stcmd; do { @@ -597,9 +571,9 @@ int ParseExpression( char* sLine, char* sOutLine ) /* Look for definitions from #translate */ ptri = sLine + isdvig; while ( ( lenToken = NextName(&ptri, sToken, NULL) ) > 0 ) - if ( (ndef=TraSearch(sToken,-1)) >= 0 ) + if ( (stcmd = TraSearch(sToken,NULL)) != NULL ) { - if( (i = WorkTranslate( sToken, ptri, ptro, ndef, &lens )) >= 0 ) + if( (i = WorkTranslate( sToken, ptri, ptro, stcmd, &lens )) >= 0 ) { while ( lens > 0 && (*(ptri+lens-1)==' ' || *(ptri+lens-1)=='\t') ) lens--; @@ -636,11 +610,11 @@ int ParseExpression( char* sLine, char* sOutLine ) } SKIPTABSPACES( ptri ); - if ( *ptri != '=' && (ISNAME(*ptri) || *(ptri+1) != '=') - && (ndef=ComSearch(sToken,0)) >= 0 ) + if ( ( *ptri == '\0' || ( *ptri != '=' && (ISNAME(*ptri) || *(ptri+1) != '=') ) ) + && ( stcmd = ComSearch(sToken,NULL) ) != NULL ) { ptro = sOutLine; - i = WorkCommand( sToken, ptri, ptro, ndef ); + i = WorkCommand( sToken, ptri, ptro, stcmd ); ptri = sLine + isdvig; if ( ipos > 0 ) *(ptri+ipos-1) = ';'; if ( i >= 0 ) @@ -750,54 +724,56 @@ int WorkPseudoF ( char** ptri, char* ptro, DEFINES *stdef ) return lenres; } -int WorkCommand ( char* sToken, char* ptri, char* ptro, int ndef ) +int WorkCommand ( char* sToken, char* ptri, char* ptro, COMMANDS *stcmd ) { - int rez; - int lenres; - char *ptrmp; + int rez; + int lenres; + char *ptrmp; - do - { - lenres = strocpy ( ptro, getCommand(ndef)->value ); /* Copying result pattern */ - ptrmp = getCommand(ndef)->mpatt; /* Pointer to a match pattern */ - Repeate = 0; - groupchar = '@'; - rez = CommandStuff ( ptrmp, ptri, ptro, &lenres, TRUE ); + do + { + lenres = strocpy ( ptro, stcmd->value ); /* Copying result pattern */ + ptrmp = stcmd->mpatt; /* Pointer to a match pattern */ + Repeate = 0; + groupchar = '@'; + rez = CommandStuff ( ptrmp, ptri, ptro, &lenres, TRUE ); - if ( rez < 0 ) ndef = ComSearch(sToken,ndef); - } - while ( rez < 0 && ndef >= 0 ); + stcmd = stcmd->last; + if ( rez < 0 && stcmd != NULL ) stcmd = ComSearch(sToken, stcmd); + } + while ( rez < 0 && stcmd != NULL ); - *(ptro+lenres) = '\0'; - if ( rez >= 0 ) return lenres; - return -1; + *(ptro+lenres) = '\0'; + if ( rez >= 0 ) return lenres; + return -1; } -int WorkTranslate ( char* sToken, char* ptri, char* ptro, int ndef, int *lens ) +int WorkTranslate ( char* sToken, char* ptri, char* ptro, COMMANDS *sttra, int *lens ) { - int rez; - int lenres; - char *ptrmp; + int rez; + int lenres; + char *ptrmp; - do - { - lenres = strocpy ( ptro, aTranslates[ndef].value ); - ptrmp = aTranslates[ndef].mpatt; - Repeate = 0; - groupchar = '@'; - rez = CommandStuff ( ptrmp, ptri, ptro, &lenres, FALSE ); + do + { + lenres = strocpy ( ptro, sttra->value ); + ptrmp = sttra->mpatt; + Repeate = 0; + groupchar = '@'; + rez = CommandStuff ( ptrmp, ptri, ptro, &lenres, FALSE ); - if ( rez < 0 && ndef > 0 ) ndef = TraSearch(sToken,ndef-1); - } - while ( rez < 0 && ndef > 0 ); + sttra = sttra->last; + if ( rez < 0 && sttra != NULL ) sttra = TraSearch(sToken, sttra); + } + while ( rez < 0 && sttra != NULL ); - *(ptro+lenres) = '\0'; - if ( rez >= 0 ) - { - *lens = rez; - return lenres; - } - return -1; + *(ptro+lenres) = '\0'; + if ( rez >= 0 ) + { + *lens = rez; + return lenres; + } + return -1; } int CommandStuff ( char *ptrmp, char *inputLine, char * ptro, int *lenres, int com_or_tra ) @@ -1607,11 +1583,14 @@ int stroncpy (char* ptro, char* ptri, int lens ) int strincmp (char* ptro, char** ptri ) { - for ( ; **ptri != ' ' && **ptri != ',' && **ptri != '[' && **ptri != ']' && + for ( ; **ptri != ' ' && **ptri != '\t' && **ptri != ',' && **ptri != '[' && **ptri != ']' && **ptri != '\1' && **ptri != '\0' && toupper(**ptri)==toupper(*ptro); ptro++, (*ptri)++ ); - if ( **ptri == ' ' || **ptri == ',' || **ptri == '[' || - **ptri == ']' || **ptri == '\1' || **ptri == '\0' ) return 0; + if ( ( **ptri == ' ' || **ptri == ',' || **ptri == '[' || + **ptri == ']' || **ptri == '\1' || **ptri == '\0' ) && + ( ( !ISNAME(*ptro) && ISNAME(*(ptro-1)) ) || + ( !ISNAME(*(ptro-1)) ) ) ) + return 0; return 1; } diff --git a/harbour/source/hbpp/hbppint.c b/harbour/source/hbpp/hbppint.c index c241467879..7184827d58 100644 --- a/harbour/source/hbpp/hbppint.c +++ b/harbour/source/hbpp/hbppint.c @@ -60,8 +60,6 @@ void Hbpp_init ( void ) { lenBuffer = 10; iBuffer = 10; aCondCompile = (int*) _xgrab( sizeof(int) * 5 ); - aCommnew = ( COMMANDS * ) _xgrab( sizeof(COMMANDS) * INITIAL_ACOM_SIZE ); - aTranslates = ( TRANSLATES * ) _xgrab( sizeof(TRANSLATES) * 50 ); } int PreProcess( FILE* handl_i, FILE* handl_o, char *sOut ) diff --git a/harbour/source/hbpp/stdalone/hbpp.c b/harbour/source/hbpp/stdalone/hbpp.c index 9ed781f69d..7d5acf0465 100644 --- a/harbour/source/hbpp/stdalone/hbpp.c +++ b/harbour/source/hbpp/stdalone/hbpp.c @@ -43,7 +43,11 @@ #include #include "hbpp.h" +extern int pp_strAt(char *, int, char*, int); +extern void pp_Stuff (char*, char*, int, int, int); + int Hp_Parse( FILE*, FILE* ); +void OutTable( DEFINES*, COMMANDS* ); void AddSearchPath( char *, PATHNAMES * * ); /* add pathname to a search list */ char sLine[STR_SIZE], sOutLine[STR_SIZE]; @@ -56,8 +60,11 @@ int main (int argc,char* argv[]) FILE *handl_i,*handl_o; char szFileName[ _POSIX_PATH_MAX ]; char * szDefText; - int iArg = 1, i; + int iArg = 1, i, lOutTable = 0, lOutNew = 0; + DEFINES *stdef = topDefine; + COMMANDS *stcmd = topCommand; + printf( "\nHarbour preprocessor" ); while( iArg < argc ) { if( IS_OPT_SEP(argv[ iArg ][ 0 ])) @@ -65,7 +72,7 @@ int main (int argc,char* argv[]) switch( argv[ iArg ][ 1 ] ) { case 'd': - case 'D': /* defines a Lex #define from the command line */ + case 'D': /* defines a #define from the command line */ { i = 0; szDefText = strodup( argv[ iArg ] + 2 ); @@ -85,6 +92,14 @@ int main (int argc,char* argv[]) case 'I': AddSearchPath( argv[ iArg ]+2, &_pIncludePath ); break; + case 'o': + case 'O': + lOutTable = 1; + break; + case 'n': + case 'N': + lOutNew = 1; + break; default: printf( "\nInvalid command line option: %s\n", &argv[ iArg ][ 1 ] ); break; @@ -100,8 +115,17 @@ int main (int argc,char* argv[]) if ((handl_i = fopen(szFileName, "r")) == NULL) { printf("\nCan't open %s\n",szFileName); return 1; } + printf( "\n\nParsing file %s\n", szFileName ); + } + else + { + printf( "\nSyntax: Hbpp.exe [options]" ); + printf( "\nOptions:" ); + printf( "\n\t/d[=]\t#define " ); + if( lOutTable ) + OutTable( NULL, NULL ); + return 1; } - else { printf("\nFile name absent\n"); return 1; } _pFileName->extension =".ppo"; MakeFilename( szFileName, _pFileName ); @@ -114,93 +138,237 @@ int main (int argc,char* argv[]) if( szInclude ) { - char * pPath; - char * pDelim; + char * pPath; + char * pDelim; - pPath = szInclude = strodup( szInclude ); - while( (pDelim = strchr( pPath, OS_PATH_LIST_SEPARATOR )) != NULL ) - { - *pDelim = '\0'; + pPath = szInclude = strodup( szInclude ); + while( (pDelim = strchr( pPath, OS_PATH_LIST_SEPARATOR )) != NULL ) + { + *pDelim = '\0'; + AddSearchPath( pPath, &_pIncludePath ); + pPath = pDelim + 1; + } AddSearchPath( pPath, &_pIncludePath ); - pPath = pDelim + 1; - } - AddSearchPath( pPath, &_pIncludePath ); } - } + } - aCondCompile = (int*) _xgrab( sizeof(int) * 5 ); - aCommnew = ( COMMANDS * ) _xgrab( sizeof(COMMANDS) * INITIAL_ACOM_SIZE ); - aTranslates = ( TRANSLATES * ) _xgrab( sizeof(TRANSLATES) * 50 ); + aCondCompile = (int*) _xgrab( sizeof(int) * 5 ); - Hp_Parse(handl_i,handl_o ); - fclose(handl_i); fclose(handl_o); -/* - for (int i=0;i= 0 ) - { - if ( !lInclude ) nline++; - lens += rdlen; - - if( sLine[lens-1] == ';' ) - { - lContinue = 1; - lens--; lens--; - while ( sLine[lens] == ' ' || sLine[lens] == '\t' ) lens--; - if ( sLine[lens+1] == ' ' || sLine[lens+1] == '\t' ) lens++; - sLine[++lens] = '\0'; - } - else { lContinue = 0; lens=0; } - - if ( *sLine != '\0' && !lContinue ) - { - ptr = sLine; - SKIPTABSPACES( ptr ); - if ( *ptr == '#' ) { - if ( (rezParse=ParseDirective( ptr+1 )) == 0 ) - *sLine = '\0'; - } - else - { - if ( nCondCompile==0 || aCondCompile[nCondCompile-1]) - { - if ( (rezParse = ParseExpression( ptr, sOutLine)) > 0 ) + if ( !lInclude ) nline++; + lens += rdlen; + + if( sLine[lens-1] == ';' ) { - printf ( "\nError number %u in line %u\n", rezParse, nline ); - return rezParse; + lContinue = 1; + lens--; lens--; + while ( sLine[lens] == ' ' || sLine[lens] == '\t' ) lens--; + if ( sLine[lens+1] == ' ' || sLine[lens+1] == '\t' ) lens++; + sLine[++lens] = '\0'; } - } - else *sLine = '\0'; - } - } + else { lContinue = 0; lens=0; } - if(!lInclude) - { - if( lContinue ) pp_WrStr(handl_o,"\n"); else pp_WrStr(handl_o,sLine); - } - } - return 0; + if ( *sLine != '\0' && !lContinue ) + { + printf( "\r line %i", nline ); + ptr = sLine; + SKIPTABSPACES( ptr ); + if ( *ptr == '#' ) + { + if ( ParseDirective( ptr+1 ) == 0 ) + *sLine = '\0'; + } + else + { + if ( nCondCompile==0 || aCondCompile[nCondCompile-1]) + ParseExpression( ptr, sOutLine ); + else + *sLine = '\0'; + } + } + + if(!lInclude) + { + if( lContinue ) pp_WrStr(handl_o,"\n"); + else pp_WrStr(handl_o,sLine); + } + } + return 0; +} + +void OutTable( DEFINES* endDefine, COMMANDS* endCommand ) +{ + FILE *handl_o; + int i, ipos, len_mpatt, len_value; + int num; + DEFINES *stdef1 = topDefine, *stdef2 = NULL, *stdef3; + COMMANDS *stcmd1 = topCommand, *stcmd2 = NULL, *stcmd3; + + while( stdef1 != endDefine ) + { + stdef3 = stdef1->last; + stdef1->last = stdef2; + stdef2 = stdef1; + stdef1 = stdef3; + } + while( stcmd1 != endCommand ) + { + stcmd3 = stcmd1->last; + stcmd1->last = stcmd2; + stcmd2 = stcmd1; + stcmd1 = stcmd3; + } + + if ((handl_o = fopen("hbpp.out", "wt" )) == NULL) + { + printf( "\nCan't open hbpp.out\n" ); + return; + } + + num = 1; + while( stdef2 != NULL ) + { + fprintf( handl_o,"\n static DEFINES sD___%i = ",num ); + fprintf( handl_o,"{\"%s\",", stdef2->name); + if( stdef2->pars ) + fprintf(handl_o, "\"%s\",", stdef2->pars); + else + fprintf(handl_o, "NULL,"); + fprintf(handl_o, "%d,", stdef2->npars); + if( stdef2->value ) + fprintf(handl_o, "\"%s\"", stdef2->value); + else + fprintf(handl_o, "NULL"); + if( num == 1 ) + fprintf(handl_o, ", NULL };"); + else + fprintf(handl_o, ", &sD___%i };", num-1); + stdef2 = stdef2->last; + num++; + } + fprintf( handl_o,"\n DEFINES *topDefine = " ); + if( num == 1 ) + fprintf( handl_o,"NULL;" ); + else + fprintf( handl_o," = &sD___%i;\n",num-1 ); + + num = 1; + while( stcmd2 != NULL ) + { + fprintf( handl_o,"\n static COMMANDS sC___%i = ",num ); + fprintf( handl_o,"{%d,\"%s\",",stcmd2->com_or_xcom, stcmd2->name); + if (stcmd2->mpatt !=NULL) + { + len_mpatt = strocpy( sLine, stcmd2->mpatt ); + while( (ipos = pp_strAt( "\1", 1, sLine, len_mpatt) ) > 0 ) + { + pp_Stuff ( "\\1", sLine+ipos-1, 2, 1, len_mpatt ); + len_mpatt++; + } + fprintf(handl_o, "\"%s\",", sLine); + } + else + fprintf(handl_o, "NULL,"); + if ( stcmd2->value !=NULL ) + { + len_value = strocpy( sLine, stcmd2->value ); + while( (ipos = pp_strAt( "\1", 1, sLine, len_value) ) > 0 ) + { + pp_Stuff ( "\\1", sLine+ipos-1, 2, 1, len_value ); + len_value++; + } + if( len_mpatt + len_value > 80 ) + fprintf( handl_o, "\n " ); + fprintf(handl_o, "\"%s\"",sLine); + } + else fprintf(handl_o, "NULL"); + if( num == 1 ) + fprintf(handl_o, ",NULL };"); + else + fprintf(handl_o, ",&sC___%i };", num-1); + stcmd2 = stcmd2->last; + num++; + } + fprintf( handl_o,"\n COMMANDS *topCommand = " ); + if( num == 1 ) + fprintf( handl_o,"NULL;" ); + else + fprintf( handl_o," = &sC___%i;\n",num-1 ); + + stcmd1 = topTranslate, stcmd2 = NULL; + while( stcmd1 != NULL ) + { + stcmd3 = stcmd1->last; + stcmd1->last = stcmd2; + stcmd2 = stcmd1; + stcmd1 = stcmd3; + } + num = 1; + while( stcmd2 != NULL ) + { + fprintf( handl_o,"\n static COMMANDS sC___%i = ",num ); + fprintf( handl_o,"{%d,\"%s\",",stcmd2->com_or_xcom, stcmd2->name); + if (stcmd2->mpatt !=NULL) + { + len_mpatt = strocpy( sLine, stcmd2->mpatt ); + while( (ipos = pp_strAt( "\1", 1, sLine, len_mpatt) ) > 0 ) + { + pp_Stuff ( "\\1", sLine+ipos-1, 2, 1, len_mpatt ); + len_mpatt++; + } + fprintf(handl_o, "\"%s\",", sLine); + } + else + fprintf(handl_o, "NULL,"); + if ( stcmd2->value !=NULL ) + { + len_value = strocpy( sLine, stcmd2->value ); + while( (ipos = pp_strAt( "\1", 1, sLine, len_value) ) > 0 ) + { + pp_Stuff ( "\\1", sLine+ipos-1, 2, 1, len_value ); + len_value++; + } + if( len_mpatt + len_value > 80 ) + fprintf( handl_o, "\n " ); + fprintf(handl_o, "\"%s\"",sLine); + } + else fprintf(handl_o, "NULL"); + if( num == 1 ) + fprintf(handl_o, ",NULL };"); + else + fprintf(handl_o, ",&sC___%i };", num-1); + stcmd2 = stcmd2->last; + num++; + } + fprintf( handl_o,"\n COMMANDS *topTranslate = " ); + if( num == 1 ) + fprintf( handl_o,"NULL;" ); + else + fprintf( handl_o," = &sT___%i;",num ); + + fclose(handl_o); } /* @@ -382,7 +550,7 @@ void GenError( char* _szErrors[], char cPrefix, int iError, char * szError1, cha { char * szLine = ( char * ) OurMalloc( 160 ); /*2 lines of text */ /* printf( "\r%s(%i) ", files.pLast->szFileName, iLine ); */ - printf( "Error %c%i ", cPrefix, iError ); + printf( "\tError %c%i ", cPrefix, iError ); sprintf( szLine, _szErrors[ iError - 1 ], szError1, szError2 ); printf( "%s\n\n", szLine ); exit( 1 ); diff --git a/harbour/source/hbpp/table.c b/harbour/source/hbpp/table.c index d1505b4133..cc5fa04420 100644 --- a/harbour/source/hbpp/table.c +++ b/harbour/source/hbpp/table.c @@ -36,317 +36,338 @@ #include "hbpp.h" static DEFINES sD___01 = {"__HARBOUR__",NULL,-1,"", NULL }; - static DEFINES sD___02 = {"_SET_ALTERNATE",NULL,-1,"1", &sD___01 }; - static DEFINES sD___03 = {"_SET_ALTFILE",NULL,-1,"2", &sD___02 }; - static DEFINES sD___04 = {"_SET_BELL",NULL,-1,"3", &sD___03 }; - static DEFINES sD___05 = {"_SET_CANCEL",NULL,-1,"4", &sD___04 }; - static DEFINES sD___06 = {"_SET_COLOR",NULL,-1,"5", &sD___05 }; - static DEFINES sD___07 = {"_SET_CONFIRM",NULL,-1,"6", &sD___06 }; - static DEFINES sD___08 = {"_SET_CONSOLE",NULL,-1,"7", &sD___07 }; - static DEFINES sD___09 = {"_SET_CURSOR",NULL,-1,"8", &sD___08 }; - static DEFINES sD___10 = {"_SET_DATEFORMAT",NULL,-1,"9", &sD___09 }; - static DEFINES sD___11 = {"_SET_DEBUG",NULL,-1,"10", &sD___10 }; - static DEFINES sD___12 = {"_SET_DECIMALS",NULL,-1,"11", &sD___11 }; - static DEFINES sD___13 = {"_SET_DEFAULT",NULL,-1,"12", &sD___12 }; - static DEFINES sD___14 = {"_SET_DELETED",NULL,-1,"13", &sD___13 }; - static DEFINES sD___15 = {"_SET_DELIMCHARS",NULL,-1,"14", &sD___14 }; - static DEFINES sD___16 = {"_SET_DELIMITERS",NULL,-1,"15", &sD___15 }; - static DEFINES sD___17 = {"_SET_DEVICE",NULL,-1,"16", &sD___16 }; - static DEFINES sD___18 = {"_SET_EPOCH",NULL,-1,"17", &sD___17 }; - static DEFINES sD___19 = {"_SET_ESCAPE",NULL,-1,"18", &sD___18 }; - static DEFINES sD___20 = {"_SET_EVENTMASK",NULL,-1,"19", &sD___19 }; - static DEFINES sD___21 = {"_SET_EXACT",NULL,-1,"20", &sD___20 }; - static DEFINES sD___22 = {"_SET_EXCLUSIVE",NULL,-1,"21", &sD___21 }; - static DEFINES sD___23 = {"_SET_EXIT",NULL,-1,"22", &sD___22 }; - static DEFINES sD___24 = {"_SET_EXTRA",NULL,-1,"23", &sD___23 }; - static DEFINES sD___25 = {"_SET_EXTRAFILE",NULL,-1,"24", &sD___24 }; - static DEFINES sD___26 = {"_SET_FIXED",NULL,-1,"25", &sD___25 }; - static DEFINES sD___27 = {"_SET_INSERT",NULL,-1,"26", &sD___26 }; - static DEFINES sD___28 = {"_SET_INTENSITY",NULL,-1,"27", &sD___27 }; - static DEFINES sD___29 = {"_SET_MARGIN",NULL,-1,"28", &sD___28 }; - static DEFINES sD___30 = {"_SET_MCENTER",NULL,-1,"29", &sD___29 }; - static DEFINES sD___31 = {"_SET_MESSAGE",NULL,-1,"30", &sD___30 }; - static DEFINES sD___32 = {"_SET_PATH",NULL,-1,"31", &sD___31 }; - static DEFINES sD___33 = {"_SET_PRINTER",NULL,-1,"32", &sD___32 }; - static DEFINES sD___34 = {"_SET_PRINTFILE",NULL,-1,"33", &sD___33 }; - static DEFINES sD___35 = {"_SET_SCOREBOARD",NULL,-1,"34", &sD___34 }; - static DEFINES sD___36 = {"_SET_SCROLLBREAK",NULL,-1,"35", &sD___35 }; - static DEFINES sD___37 = {"_SET_SOFTSEEK",NULL,-1,"36", &sD___36 }; - static DEFINES sD___38 = {"_SET_TYPEAHEAD",NULL,-1,"37", &sD___37 }; - static DEFINES sD___39 = {"_SET_UNIQUE",NULL,-1,"38", &sD___38 }; - static DEFINES sD___40 = {"_SET_WRAP",NULL,-1,"39", &sD___39 }; - static DEFINES sD___41 = {"_SET_CH",NULL,-1,NULL, &sD___40 }; - static DEFINES sD___42 = {"_DFSET","x,y",2,"Set( _SET_DATEFORMAT, if(__SetCentury(), x, y) )", &sD___41 }; + static DEFINES sD___02 = {"_SET_ALTERNATE",NULL,-1,"1", &sD___01 }; + static DEFINES sD___03 = {"_SET_ALTFILE",NULL,-1,"2", &sD___02 }; + static DEFINES sD___04 = {"_SET_BELL",NULL,-1,"3", &sD___03 }; + static DEFINES sD___05 = {"_SET_CANCEL",NULL,-1,"4", &sD___04 }; + static DEFINES sD___06 = {"_SET_COLOR",NULL,-1,"5", &sD___05 }; + static DEFINES sD___07 = {"_SET_CONFIRM",NULL,-1,"6", &sD___06 }; + static DEFINES sD___08 = {"_SET_CONSOLE",NULL,-1,"7", &sD___07 }; + static DEFINES sD___09 = {"_SET_CURSOR",NULL,-1,"8", &sD___08 }; + static DEFINES sD___10 = {"_SET_DATEFORMAT",NULL,-1,"9", &sD___09 }; + static DEFINES sD___11 = {"_SET_DEBUG",NULL,-1,"10", &sD___10 }; + static DEFINES sD___12 = {"_SET_DECIMALS",NULL,-1,"11", &sD___11 }; + static DEFINES sD___13 = {"_SET_DEFAULT",NULL,-1,"12", &sD___12 }; + static DEFINES sD___14 = {"_SET_DELETED",NULL,-1,"13", &sD___13 }; + static DEFINES sD___15 = {"_SET_DELIMCHARS",NULL,-1,"14", &sD___14 }; + static DEFINES sD___16 = {"_SET_DELIMITERS",NULL,-1,"15", &sD___15 }; + static DEFINES sD___17 = {"_SET_DEVICE",NULL,-1,"16", &sD___16 }; + static DEFINES sD___18 = {"_SET_EPOCH",NULL,-1,"17", &sD___17 }; + static DEFINES sD___19 = {"_SET_ESCAPE",NULL,-1,"18", &sD___18 }; + static DEFINES sD___20 = {"_SET_EVENTMASK",NULL,-1,"19", &sD___19 }; + static DEFINES sD___21 = {"_SET_EXACT",NULL,-1,"20", &sD___20 }; + static DEFINES sD___22 = {"_SET_EXCLUSIVE",NULL,-1,"21", &sD___21 }; + static DEFINES sD___23 = {"_SET_EXIT",NULL,-1,"22", &sD___22 }; + static DEFINES sD___24 = {"_SET_EXTRA",NULL,-1,"23", &sD___23 }; + static DEFINES sD___25 = {"_SET_EXTRAFILE",NULL,-1,"24", &sD___24 }; + static DEFINES sD___26 = {"_SET_FIXED",NULL,-1,"25", &sD___25 }; + static DEFINES sD___27 = {"_SET_INSERT",NULL,-1,"26", &sD___26 }; + static DEFINES sD___28 = {"_SET_INTENSITY",NULL,-1,"27", &sD___27 }; + static DEFINES sD___29 = {"_SET_MARGIN",NULL,-1,"28", &sD___28 }; + static DEFINES sD___30 = {"_SET_MCENTER",NULL,-1,"29", &sD___29 }; + static DEFINES sD___31 = {"_SET_MESSAGE",NULL,-1,"30", &sD___30 }; + static DEFINES sD___32 = {"_SET_PATH",NULL,-1,"31", &sD___31 }; + static DEFINES sD___33 = {"_SET_PRINTER",NULL,-1,"32", &sD___32 }; + static DEFINES sD___34 = {"_SET_PRINTFILE",NULL,-1,"33", &sD___33 }; + static DEFINES sD___35 = {"_SET_SCOREBOARD",NULL,-1,"34", &sD___34 }; + static DEFINES sD___36 = {"_SET_SCROLLBREAK",NULL,-1,"35", &sD___35 }; + static DEFINES sD___37 = {"_SET_SOFTSEEK",NULL,-1,"36", &sD___36 }; + static DEFINES sD___38 = {"_SET_TYPEAHEAD",NULL,-1,"37", &sD___37 }; + static DEFINES sD___39 = {"_SET_UNIQUE",NULL,-1,"38", &sD___38 }; + static DEFINES sD___40 = {"_SET_WRAP",NULL,-1,"39", &sD___39 }; + static DEFINES sD___41 = {"_SET_CH",NULL,-1,NULL, &sD___40 }; + static DEFINES sD___42 = {"_DFSET","x,y",2,"Set( _SET_DATEFORMAT, if(__SetCentury(), x, y) )", &sD___41 }; DEFINES *topDefine = &sD___42; -int kolcomm = 240; -COMMANDS aCommands[] = -{ - {0,"NOTE","\1A30",NULL}, - {0,"DO","WHILE \1A00","while \1A00"}, - {0,"END","\1A00","end"}, - {0,"END","SEQUENCE","end"}, - {0,"ENDSEQUENCE","","end"}, - {0,"ENDDO","\1A30","enddo"}, - {0,"ENDIF","\1A30","endif"}, - {0,"ENDCASE","\1A30","endcase"}, - {0,"ENDFOR","[ \1A30 ]","next"}, - {0,"NEXT","\1A00 [TO \1B00] [STEP \1C00]","next"}, - {0,"DO","\1A00.PRG [WITH \1B10]","do \1A00 [ WITH \1B00]"}, - {0,"CALL","\1A00() [WITH \1B10]","call \1A00 [ WITH \1B00]"}, - {0,"STORE","\1A00 TO \1B00 [, \1C00 ]","\1B00 := [ \1C00 := ] \1A00"}, - {0,"SET","ECHO \1A30",NULL}, - {0,"SET","HEADING \1A30",NULL}, - {0,"SET","MENU \1A30",NULL}, - {0,"SET","STATUS \1A30",NULL}, - {0,"SET","STEP \1A30",NULL}, - {0,"SET","SAFETY \1A30",NULL}, - {0,"SET","TALK \1A30",NULL}, - {0,"SET","PROCEDURE TO",NULL}, - {0,"SET","PROCEDURE TO \1A00","_ProcReq_( \1A30 )"}, - {0,"SET","EXACT \1A20ON,OFF,&>","Set( _SET_EXACT, \1A30 )"}, - {0,"SET","EXACT (\1A00)","Set( _SET_EXACT, \1A00 )"}, - {0,"SET","FIXED \1A20ON,OFF,&>","Set( _SET_FIXED, \1A30 )"}, - {0,"SET","FIXED (\1A00)","Set( _SET_FIXED, \1A00 )"}, - {0,"SET","DECIMALS TO \1A00","Set( _SET_DECIMALS, \1A00 )"}, - {0,"SET","DECIMALS TO","Set( _SET_DECIMALS, 0 )"}, - {0,"SET","PATH TO \1A30","Set( _SET_PATH, \1A30 )"}, - {0,"SET","PATH TO","Set( _SET_PATH, \"\" )"}, - {0,"SET","DEFAULT TO \1A40","Set( _SET_DEFAULT, \1A30 )"}, - {0,"SET","DEFAULT TO","Set( _SET_DEFAULT, \"\" )"}, - {0,"SET","CENTURY \1A20ON,OFF,&>","__SetCentury( \1A30 )"}, - {0,"SET","CENTURY (\1A00)","__SetCentury( \1A00 )"}, - {0,"SET","EPOCH TO \1A00","Set( _SET_EPOCH, \1A00 )"}, - {0,"SET","DATE FORMAT [TO] \1A00","Set( _SET_DATEFORMAT, \1A00 )"}, - {0,"SET","DATE [TO] AMERICAN","_DFSET( 'mm/dd/yyyy', 'mm/dd/yy' )"}, - {0,"SET","DATE [TO] ANSI","_DFSET( 'yyyy.mm.dd', 'yy.mm.dd' )"}, - {0,"SET","DATE [TO] BRITISH","_DFSET( 'dd/mm/yyyy', 'dd/mm/yy' )"}, - {0,"SET","DATE [TO] FRENCH","_DFSET( 'dd/mm/yyyy', 'dd/mm/yy' )"}, - {0,"SET","DATE [TO] GERMAN","_DFSET( 'dd.mm.yyyy', 'dd.mm.yy' )"}, - {0,"SET","DATE [TO] ITALIAN","_DFSET( 'dd-mm-yyyy', 'dd-mm-yy' )"}, - {0,"SET","DATE [TO] JAPANESE","_DFSET( 'yyyy/mm/dd', 'yy/mm/dd' )"}, - {0,"SET","DATE [TO] USA","_DFSET( 'mm-dd-yyyy', 'mm-dd-yy' )"}, - {0,"SET","ALTERNATE \1A20ON,OFF,&>","Set( _SET_ALTERNATE, \1A30 )"}, - {0,"SET","ALTERNATE (\1A00)","Set( _SET_ALTERNATE, \1A00 )"}, - {0,"SET","ALTERNATE TO","Set( _SET_ALTFILE, \"\" )"}, - {0,"SET","ALTERNATE TO \1A40 [\1B20 ADDITIVE>]","Set( _SET_ALTFILE, \1A30, \1B50 )"}, - {0,"SET","CONSOLE \1A20ON,OFF,&>","Set( _SET_CONSOLE, \1A30 )"}, - {0,"SET","CONSOLE (\1A00)","Set( _SET_CONSOLE, \1A00 )"}, - {0,"SET","MARGIN TO \1A00","Set( _SET_MARGIN, \1A00 )"}, - {0,"SET","MARGIN TO","Set( _SET_MARGIN, 0 )"}, - {0,"SET","PRINTER \1A20ON,OFF,&>","Set( _SET_PRINTER, \1A30 )"}, - {0,"SET","PRINTER (\1A00)","Set( _SET_PRINTER, \1A00 )"}, - {0,"SET","PRINTER TO","Set( _SET_PRINTFILE, \"\" )"}, - {0,"SET","PRINTER TO \1A40 [\1B20 ADDITIVE>]","Set( _SET_PRINTFILE, \1A30, \1B50 )"}, - {0,"SET","DEVICE TO SCREEN","Set( _SET_DEVICE, 'SCREEN' )"}, - {0,"SET","DEVICE TO PRINTER","Set( _SET_DEVICE, 'PRINTER' )"}, - {0,"SET","COLOR TO [\1A30]","SetColor( \1A10 )"}, - {0,"SET","COLOR TO ( \1A00 )","SetColor( \1A00 )"}, - {0,"SET","COLOUR TO [\1A30]","SET COLOR TO [\1A00]"}, - {0,"SET","CURSOR \1A20ON,OFF,&>","SetCursor( if(Upper(\1A30) == 'ON', 1, 0) )"}, - {0,"SET","CURSOR (\1A00)","SetCursor( if(\1A00, 1, 0) )"}, - {0,"?","[ \1A10]","QOut( \1A00 )"}, - {0,"??","[ \1A10]","QQOut( \1A00 )"}, - {0,"EJECT","","__Eject()"}, - {0,"TEXT","","text QOut, QQOut"}, - {0,"TEXT","TO FILE \1A40","__TextSave( \1A30 ) ; text QOut, __TextRestore"}, - {0,"TEXT","TO PRINTER","__TextSave('PRINTER') ; text QOut, __TextRestore"}, - {0,"CLS","","Scroll() ; SetPos(0,0)"}, - {0,"CLEAR","SCREEN","CLS"}, - {0,"@","\1A00, \1B00","Scroll( \1A00, \1B00, \1A00 ) ; SetPos( \1A00, \1B00 )"}, - {0,"@","\1A00, \1B00 CLEAR","Scroll( \1A00, \1B00 ) ; SetPos( \1A00, \1B00 )"}, - {0,"@","\1A00, \1B00 CLEAR TO \1C00, \1D00","Scroll( \1A00, \1B00, \1C00, \1D00 ) ; SetPos( \1A00, \1B00 )"}, - {0,"@","\1A00, \1B00, \1C00, \1D00 BOX \1E00 [COLOR \1F00]","DispBox( \1A00, \1B00, \1C00, \1D00, \1E00 [, \1F00 ] )"}, - {0,"@","\1A00, \1B00 TO \1C00, \1D00 [DOUBLE] [COLOR \1E00]","DispBox( \1A00, \1B00, \1C00, \1D00, 2 [, \1E00 ] )"}, - {0,"@","\1A00, \1B00 TO \1C00, \1D00 [COLOR \1E00]","DispBox( \1A00, \1B00, \1C00, \1D00, 1 [, \1E00 ] )"}, - {0,"@","\1A00, \1B00 SAY \1C00 [PICTURE \1D00] [COLOR \1E00]","DevPos( \1A00, \1B00 ) ; DevOutPict( \1C00, \1D00 [, \1E00] )"}, - {0,"@","\1A00, \1B00 SAY \1C00 [COLOR \1D00]","DevPos( \1A00, \1B00 ) ; DevOut( \1C00 [, \1D00] )"}, - {0,"SET","BELL \1A20ON,OFF,&>","Set( _SET_BELL, \1A30 )"}, - {0,"SET","BELL (\1A00)","Set( _SET_BELL, \1A00 )"}, - {0,"SET","CONFIRM \1A20ON,OFF,&>","Set( _SET_CONFIRM, \1A30 )"}, - {0,"SET","CONFIRM (\1A00)","Set( _SET_CONFIRM, \1A00 )"}, - {0,"SET","ESCAPE \1A20ON,OFF,&>","Set( _SET_ESCAPE, \1A30 )"}, - {0,"SET","ESCAPE (\1A00)","Set( _SET_ESCAPE, \1A00 )"}, - {0,"SET","INTENSITY \1A20ON,OFF,&>","Set( _SET_INTENSITY, \1A30 )"}, - {0,"SET","INTENSITY (\1A00)","Set( _SET_INTENSITY, \1A00 )"}, - {0,"SET","SCOREBOARD \1A20ON,OFF,&>","Set( _SET_SCOREBOARD, \1A30 )"}, - {0,"SET","SCOREBOARD (\1A00)","Set( _SET_SCOREBOARD, \1A00 )"}, - {0,"SET","DELIMITERS \1A20ON,OFF,&>","Set( _SET_DELIMITERS, \1A30 )"}, - {0,"SET","DELIMITERS (\1A00)","Set( _SET_DELIMITERS, \1A00 )"}, - {0,"SET","DELIMITERS TO \1A00","Set( _SET_DELIMCHARS, \1A00 )"}, - {0,"SET","DELIMITERS TO DEFAULT","Set( _SET_DELIMCHARS, '::' )"}, - {0,"SET","DELIMITERS TO","Set( _SET_DELIMCHARS, '::' )"}, - {0,"SET","FORMAT TO \1A00","_ProcReq_( \1A30 + '.FMT' ) ; __SetFormat( {|| \1A00()} )"}, - {0,"SET","FORMAT TO \1A00.\1B00","_ProcReq_( \1A30 + '.' + \1B30 ) ; __SetFormat( {|| \1A00()} )"}, - {0,"SET","FORMAT TO \1A20&>","if ( Empty(\1A30) ) ; SET FORMAT TO ; else ; __SetFormat( &('{||' + \1A30 + '()}') ) ; end"}, - {0,"SET","FORMAT TO","__SetFormat()"}, - {0,"@","\1A00, \1B00 GET \1C00 [PICTURE \1D00] [VALID \1E00] [WHEN \1F00] [SEND \1G00]", - "SetPos( \1A00, \1B00 ) ; AAdd( GetList, _GET_( \1C00, \1C20, \1D00, \1E40, \1F40,{|u| If( PCount()==0,\1C00,\1C00:=u )} ):display() ) [; ATail(GetList):\1G00]"}, - {0,"@","\1A00, \1B00 SAY \1C00 [\1D10] GET \1E00 [\1F10]","@ \1A00, \1B00 SAY \1C00 [\1D00] ; @ Row(), Col()+1 GET \1E00 [\1F00]"}, - {0,"@","\1A00, \1B00 GET \1C00 [\1D10] RANGE \1E00, \1F00 [\1G10]", - "@ \1A00, \1B00 GET \1C00 [\1D00] VALID {|_1| RangeCheck(_1,, \1E00, \1F00)} [\1G00]"}, - {0,"@","\1A00, \1B00 GET \1C00 [\1D10] COLOR \1E00 [\1F10]","@ \1A00, \1B00 GET \1C00 [\1D00] SEND colorDisp(\1E00) [\1F00]"}, - {0,"READ","SAVE","ReadModal(GetList)"}, - {0,"READ","","ReadModal(GetList) ; GetList := {}"}, - {0,"CLEAR","GETS","ReadKill(.T.) ; GetList := {}"}, - {0,"@","[\1A10] COLOUR [\1B10]","@ [\1A00] COLOR [\1B00]"}, - {0,"SET","WRAP \1A20ON,OFF,&>","Set( _SET_WRAP, \1A30 )"}, - {0,"SET","WRAP (\1A00)","Set( _SET_WRAP, \1A00 )"}, - {0,"SET","MESSAGE TO \1A00 [\1B20 CENTER, CENTRE>]","Set( _SET_MESSAGE, \1A00 ) ; Set( _SET_MCENTER, \1B50 )"}, - {0,"SET","MESSAGE TO","Set( _SET_MESSAGE, 0 ) ; Set( _SET_MCENTER, .f. )"}, - {0,"@","\1A00, \1B00 PROMPT \1C00 [MESSAGE \1D00]","__AtPrompt( \1A00, \1B00, \1C00 , \1D00 )"}, - {0,"MENU","TO \1A00","\1A00 := __MenuTo( {|_1| if(PCount() == 0, \1A00, \1A00 := _1)}, \1A10 )"}, - {0,"SAVE","SCREEN","__XSaveScreen()"}, - {0,"RESTORE","SCREEN","__XRestScreen()"}, - {0,"SAVE","SCREEN TO \1A00","\1A00 := SaveScreen( 0, 0, Maxrow(), Maxcol() )"}, - {0,"RESTORE","SCREEN FROM \1A00","RestScreen( 0, 0, Maxrow(), Maxcol(), \1A00 )"}, - {0,"WAIT","[\1A00]","__Wait( \1A00 )"}, - {0,"WAIT","[\1A00] TO \1B00","\1B00 := __Wait( \1A00 )"}, - {0,"ACCEPT","[\1A00] TO \1B00","\1B00 := __Accept( \1A00 )"}, - {0,"INPUT","[\1A00] TO \1B00", "if ( !Empty(__Accept(\1A00)) ) ; \1B00 := &( __AcceptStr() ) ; end"}, - {0,"KEYBOARD","\1A00","__Keyboard( \1A00 )"}, - {0,"CLEAR","TYPEAHEAD","__Keyboard()"}, - {0,"SET","TYPEAHEAD TO \1A00","Set( _SET_TYPEAHEAD, \1A00 )"}, - {0,"SET","KEY \1A00 TO \1B00","SetKey( \1A00, {|p, l, v| \1B00(p, l, v)} )"}, - {0,"SET","KEY \1A00 TO \1B00 ( [\1C10] )","SET KEY \1A00 TO \1B00"}, - {0,"SET","KEY \1A00 TO \1B20&>","if ( Empty(\1B30) ) ; SetKey( \1A00, NIL ) ; else ; SetKey( \1A00, {|p, l, v| \1B00(p, l, v)} ) ; end"}, - {0,"SET","KEY \1A00 [TO]","SetKey( \1A00, NIL )"}, - {0,"SET","FUNCTION \1A00 [TO] [\1B00]","__SetFunction( \1A00, \1B00 )"}, - {0,"CLEAR","MEMORY","__MVClear()"}, - {0,"RELEASE"," \1A00","__MVXRelease( \1A30 )"}, - {0,"RELEASE","ALL","__MVRelease('*', .t.)"}, - {0,"RELEASE","ALL LIKE \1A00","__MVRelease( \1A10, .t. )"}, - {0,"RELEASE","ALL EXCEPT \1A00","__MVRelease( \1A10, .f. )"}, - {0,"RESTORE","[FROM \1A40] [\1B20 ADDITIVE>]","__MVRestore( \1A30, \1B50 )"}, - {0,"SAVE","ALL LIKE \1A00 TO \1B40","__MVSave( \1B30, \1A30, .t. )"}, - {0,"SAVE","TO \1A40 ALL LIKE \1B00","__MVSave( \1A30, \1B30, .t. )"}, - {0,"SAVE","ALL EXCEPT \1A00 TO \1B40","__MVSave( \1B30, \1A30, .f. )"}, - {0,"SAVE","TO \1A40 ALL EXCEPT \1B00","__MVSave( \1A30, \1B30, .f. )"}, - {0,"SAVE","[TO \1A40] [ALL]","__MVSave( \1A30, '*', .t. )"}, - {0,"ERASE","\1A40","FErase( \1A30 )"}, - {0,"DELETE","FILE \1A40","FErase( \1A30 )"}, - {0,"RENAME","\1A40 TO \1B40","FRename( \1A30, \1B30 )"}, - {0,"COPY","FILE \1A40 TO \1B40","__CopyFile( \1A30, \1B30 )"}, - {0,"DIR","[\1A40]","__Dir( \1A30 )"}, - {0,"TYPE","\1A40 [\1B20 TO PRINTER>] [TO FILE \1C40]","__TypeFile( \1A30, \1B50 ) [; COPY FILE \1A30 TO \1C30 ]"}, - {0,"TYPE","\1A40 [\1B20 TO PRINTER>]","__TypeFile( \1A30, \1B50 )"}, - {0,"REQUEST","\1A10","EXTERNAL \1A00"}, - {0,"CANCEL","","__Quit()"}, - {0,"QUIT","","__Quit()"}, - {0,"RUN","\1A30","__Run( \1A10 )"}, - {0,"RUN","( \1A00 )","__Run( \1A00 )"}, - {0,"!","\1A30","RUN \1A00"}, - {0,"RUN","= \1A00","( run := \1A00 )"}, - {0,"RUN",":= \1A00","( run := \1A00 )"}, - {0,"SET","EXCLUSIVE \1A20ON,OFF,&>","Set( _SET_EXCLUSIVE, \1A30 )"}, - {0,"SET","EXCLUSIVE (\1A00)","Set( _SET_EXCLUSIVE, \1A00 )"}, - {0,"SET","SOFTSEEK \1A20ON,OFF,&>","Set( _SET_SOFTSEEK, \1A30 )"}, - {0,"SET","SOFTSEEK (\1A00)","Set( _SET_SOFTSEEK, \1A00 )"}, - {0,"SET","UNIQUE \1A20ON,OFF,&>","Set( _SET_UNIQUE, \1A30 )"}, - {0,"SET","UNIQUE (\1A00)","Set( _SET_UNIQUE, \1A00 )"}, - {0,"SET","DELETED \1A20ON,OFF,&>","Set( _SET_DELETED, \1A30 )"}, - {0,"SET","DELETED (\1A00)","Set( _SET_DELETED, \1A00 )"}, - {0,"SELECT","\1A00","dbSelectArea( \1A30 )"}, - {0,"SELECT","\1A00([\1B10])","dbSelectArea( \1A00(\1B00) )"}, - {0,"USE","","dbCloseArea()"}, - {0,"USE","\1A40 [VIA \1B00] [ALIAS \1C00] [\1D20 NEW>] [\1E20 EXCLUSIVE>] [\1F20 SHARED>] [\1G20 READONLY>] [INDEX \1H40 [, \1I40]]", - "dbUseArea( \1D50, \1B00, \1A30, \1C30, if(\1F50 .or. \1E50, !\1E50, NIL), \1G50 ) [; dbSetIndex( \1H30 )] [; dbSetIndex( \1I30 )]"}, - {0,"APPEND","BLANK","dbAppend()"}, - {0,"PACK","","__dbPack()"}, - {0,"ZAP","","__dbZap()"}, - {0,"UNLOCK","","dbUnlock()"}, - {0,"UNLOCK","ALL","dbUnlockAll()"}, - {0,"COMMIT","","dbCommitAll()"}, - {0,"GOTO","\1A00","dbGoto(\1A00)"}, - {0,"GO","\1A00","dbGoto(\1A00)"}, - {0,"GOTO","TOP","dbGoTop()"}, - {0,"GO","TOP","dbGoTop()"}, - {0,"GOTO","BOTTOM","dbGoBottom()"}, - {0,"GO","BOTTOM","dbGoBottom()"}, - {0,"SKIP","","dbSkip(1)"}, - {0,"SKIP","\1A00","dbSkip( \1A00 )"}, - {0,"SKIP","ALIAS \1A00","\1A00 -> ( dbSkip(1) )"}, - {0,"SKIP","\1A00 ALIAS \1B00","\1B00 -> ( dbSkip(\1A00) )"}, - {0,"SEEK","\1A00 [\1B20 SOFTSEEK>]","dbSeek( \1A00, if( \1B50, .T., NIL ) )"}, - {0,"FIND","\1A30","dbSeek( \1A30 )"}, - {0,"FIND",":= \1A00","( find := \1A00 )"}, - {0,"FIND","= \1A00","( find := \1A00 )"}, - {0,"CONTINUE","","__dbContinue()"}, - {0,"LOCATE","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", - "__dbLocate(\1A40,\1B40,\1C00,\1D00,\1E50)"}, - {0,"SET","RELATION TO","dbClearRel()"}, - {0,"SET","RELATION [\1A20ADDITIVE>] [TO \1B00 INTO \1C40 [, [TO] \1D00 INTO \1E40]]", - "if ( !\1A50 ) ; dbClearRel() ; end ; dbSetRelation(\1C30,\1B40,\1B20) [; dbSetRelation(\1E30,\1D40,\1D20)]"}, - {0,"SET","FILTER TO","dbClearFilter(NIL)"}, - {0,"SET","FILTER TO \1A00","dbSetFilter( \1A40, \1A20 )"}, - {0,"SET","FILTER TO \1A20&>","if ( Empty(\1A30) ) ; dbClearFilter() ; else ; dbSetFilter(\1A40,\1A30) ; end"}, - {0,"REPLACE","[ \1A00 WITH \1B00 [, \1C00 WITH \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", - "DBEval( {|| _FIELD->\1A00 := \1B00 [,_FIELD->\1C00 := \1D00]},\1E40,\1F40,\1G00,\1H00,\1I50)"}, - {0,"REPLACE","\1A00 WITH \1B00 [, \1C00 WITH \1D00 ]","_FIELD->\1A00 := \1B00 [; _FIELD->\1C00 := \1D00]"}, - {0,"DELETE","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", - "DBEval( {|| dbDelete()}, \1A40, \1B40, \1C00, \1D00, \1E50 )"}, - {0,"RECALL","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", - "DBEval( {|| dbRecall()}, \1A40, \1B40, \1C00, \1D00, \1E50 )"}, - {0,"DELETE","","dbDelete()"}, - {0,"RECALL","","dbRecall()"}, - {0,"CREATE","\1A40 [FROM \1B40] [VIA \1C00] [ALIAS \1D00] [\1E20 NEW>]","__dbCreate( \1A30, \1B30, \1C00, \1E50, \1D30 )"}, - {0,"COPY","[STRUCTURE] [EXTENDED] [TO \1A40]","__dbCopyXStruct( \1A30 )"}, - {0,"COPY","[STRUCTURE] [TO \1A40] [FIELDS \1B10]","__dbCopyStruct( \1A30, { \1B30 } )"}, - {0,"COPY","[TO \1A40] [DELIMITED [WITH \1B30]] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", - "__dbDelim( .T., \1A30, \1B30, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )"}, - {0,"COPY","[TO \1A40] [SDF] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", - "__dbSDF( .T., \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )"}, - {0,"COPY","[TO \1A40] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [VIA \1H00] [ALL]", - "__dbCopy( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50, \1H00 )"}, - {0,"APPEND","[FROM \1A40] [DELIMITED [WITH \1B30]] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", - "__dbDelim( .F., \1A30, \1B30, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )"}, - {0,"APPEND","[FROM \1A40] [SDF] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", - "__dbSDF( .F., \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )"}, - {0,"APPEND","[FROM \1A40] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [VIA \1H00] [ALL]", - "__dbApp( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50, \1H00 )"}, - {0,"SORT","[TO \1A40] [ON \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", - "__dbSort( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )"}, - {0,"TOTAL","[TO \1A40] [ON \1B00] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", - "__dbTotal( \1A30, \1B40, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )"}, - {0,"UPDATE","[FROM \1A40] [ON \1B00] [REPLACE \1C00 WITH \1D00 [, \1E00 WITH \1F00]] [\1G20RANDOM>]", - "__dbUpdate( \1A30, \1B40, \1G50, {|| _FIELD->\1C00 := \1D00 [, _FIELD->\1E00 := \1F00]} )"}, - {0,"JOIN","[WITH \1A40] [TO \1B00] [FIELDS \1C10] [FOR \1D00]","__dbJoin( \1A30, \1B30, { \1C30 }, \1D40 )"}, - {0,"COUNT","[TO \1A00] [FOR \1B00] [WHILE \1C00] [NEXT \1D00] [RECORD \1E00] [\1F20REST>] [ALL]", - "\1A00 := 0 ; DBEval( {|| \1A00 := \1A00 + 1}, \1B40, \1C40, \1D00, \1E00, \1F50 )"}, - {0,"SUM","[ \1A00 [, \1B00] TO \1C00 [, \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", - "\1C00 := [ \1D00 := ] 0 ; DBEval( {|| \1C00 := \1C00 + \1A00 [, \1D00 := \1D00 + \1B00 ]}, \1E40, \1F40, \1G00, \1H00, \1I50 )"}, - {0,"AVERAGE","[ \1A00 [, \1B00] TO \1C00 [, \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", - "M->__Avg := \1C00 := [ \1D00 := ] 0 ; DBEval( {|| M->__Avg := M->__Avg + 1, \1C00 := \1C00 + \1A00 [, \1D00 := \1D00 + \1B00] }, \1E40, \1F40, \1G00, \1H00, \1I50 ) ; \1C00 := \1C00 / M->__Avg [; \1D00 := \1D00 / M->__Avg ]"}, - {0,"LIST","[\1A10] [\1B20OFF>] [\1C20 TO PRINTER>] [TO FILE \1D40] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", - "__dbList( \1B50, { \1A40 }, .t., \1E40, \1F40, \1G00, \1H00, \1I50, \1C50, \1D30 )"}, - {0,"DISPLAY","[\1A10] [\1B20OFF>] [\1C20 TO PRINTER>] [TO FILE \1D40] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [\1J20ALL>]", - "__DBList( \1B50, { \1A40 }, \1J50, \1E40, \1F40, \1G00, \1H00, \1I50, \1C50, \1D30 )"}, - {0,"REPORT","FORM \1A00 [HEADING \1B00] [\1C20 PLAIN>] [\1D20 NOEJECT>] [\1E20 SUMMARY>] [\1F20 NOCONSOLE>] [\1G20 TO PRINTER>] [TO FILE \1H40] [FOR \1I00] [WHILE \1J00] [NEXT \1K00] [RECORD \1L00] [\1M20REST>] [ALL]", - "__ReportForm( \1A30, \1G50, \1H30, \1F50, \1I40, \1J40, \1K00, \1L00, \1M50, \1C50, \1B00, \1D50, \1E50 )"}, - {0,"LABEL","FORM \1A00 [\1B20 SAMPLE>] [\1C20 NOCONSOLE>] [\1D20 TO PRINTER>] [TO FILE \1E40] [FOR \1F00] [WHILE \1G00] [NEXT \1H00] [RECORD \1I00] [\1J20REST>] [ALL]", - "__LabelForm( \1A30, \1D50, \1E30, \1C50, \1F40, \1G40, \1H00, \1I00, \1J50, \1B50 )"}, - {0,"CLOSE","\1A00","\1A00->( dbCloseArea() )"}, - {0,"CLOSE","","dbCloseArea()"}, - {0,"CLOSE","DATABASES","dbCloseAll()"}, - {0,"CLOSE","ALTERNATE","Set(_SET_ALTFILE, \"\")"}, - {0,"CLOSE","FORMAT","__SetFormat(NIL)"}, - {0,"CLOSE","INDEXES","dbClearIndex()"}, - {0,"CLOSE","PROCEDURE",NULL}, - {0,"CLOSE","ALL","CLOSE DATABASES ; SELECT 1 ; CLOSE FORMAT"}, - {0,"CLEAR","","CLEAR SCREEN ; CLEAR GETS"}, - {0,"CLEAR","ALL","CLOSE DATABASES ; CLOSE FORMAT ; CLEAR MEMORY ; CLEAR GETS ; SET ALTERNATE OFF ; SET ALTERNATE TO"}, - {0,"INDEX","ON \1A00 [TAG \1B40 ] TO \1C40 [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>]", - "ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )"}, - {0,"INDEX","ON \1A00 TAG \1B40 [TO \1C40] [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>]", - "ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )"}, - {0,"INDEX","ON \1A00 TO \1B40 [\1C20 UNIQUE>]","dbCreateIndex( \1B30, \1A20, \1A40, if( \1C50, .t., NIL ) )"}, - {0,"DELETE","TAG \1A40 [ IN \1B40 ] [, \1C40 [ IN \1D40 ] ]","ordDestroy( \1A30, \1B30 ) [; ordDestroy( \1C30, \1D30 ) ]"}, - {0,"REINDEX","[EVAL \1A00] [EVERY \1B00]","ordCondSet(,,,, \1A40, \1B00,,,,,,,) ; ordListRebuild()"}, - {0,"REINDEX","","ordListRebuild()"}, - {0,"SET","INDEX TO [ \1A40 [, \1B40]] [\1C20 ADDITIVE>]", - "if !\1C50 ; ordListClear() ; end [; ordListAdd( \1A30 )] [; ordListAdd( \1B30 )]"}, - {0,"SET","ORDER TO \1A00 [IN \1B40]","ordSetFocus( \1A00 [, \1B30] )"}, - {0,"SET","ORDER TO TAG \1A40 [IN \1B40]","ordSetFocus( \1A30 [, \1B30] )"}, - {0,"SET","ORDER TO","ordSetFocus(0)"}, - {0,"ANNOUNCE","\1A10","procedure \1A00 ; return"} -}; + static COMMANDS sC___1 = {0,"NOTE","\1A30",NULL,NULL }; + static COMMANDS sC___2 = {0,"DO","WHILE \1A00","while \1A00",&sC___1 }; + static COMMANDS sC___3 = {0,"END","\1A00","end",&sC___2 }; + static COMMANDS sC___4 = {0,"END","SEQUENCE","end",&sC___3 }; + static COMMANDS sC___5 = {0,"ENDSEQUENCE","","end",&sC___4 }; + static COMMANDS sC___6 = {0,"ENDDO","\1A30","enddo",&sC___5 }; + static COMMANDS sC___7 = {0,"ENDIF","\1A30","endif",&sC___6 }; + static COMMANDS sC___8 = {0,"ENDCASE","\1A30","endcase",&sC___7 }; + static COMMANDS sC___9 = {0,"ENDFOR","[ \1A30 ]","next",&sC___8 }; + static COMMANDS sC___10 = {0,"NEXT","\1A00 [TO \1B00] [STEP \1C00]","next",&sC___9 }; + static COMMANDS sC___11 = {0,"DO","\1A00.PRG [WITH \1B10]","do \1A00 [ WITH \1B00]",&sC___10 }; + static COMMANDS sC___12 = {0,"CALL","\1A00() [WITH \1B10]","call \1A00 [ WITH \1B00]",&sC___11 }; + static COMMANDS sC___13 = {0,"STORE","\1A00 TO \1B00 [, \1C00 ]","\1B00 := [ \1C00 := ] \1A00",&sC___12 }; + static COMMANDS sC___14 = {0,"SET","ECHO \1A30",NULL,&sC___13 }; + static COMMANDS sC___15 = {0,"SET","HEADING \1A30",NULL,&sC___14 }; + static COMMANDS sC___16 = {0,"SET","MENU \1A30",NULL,&sC___15 }; + static COMMANDS sC___17 = {0,"SET","STATUS \1A30",NULL,&sC___16 }; + static COMMANDS sC___18 = {0,"SET","STEP \1A30",NULL,&sC___17 }; + static COMMANDS sC___19 = {0,"SET","SAFETY \1A30",NULL,&sC___18 }; + static COMMANDS sC___20 = {0,"SET","TALK \1A30",NULL,&sC___19 }; + static COMMANDS sC___21 = {0,"SET","PROCEDURE TO",NULL,&sC___20 }; + static COMMANDS sC___22 = {0,"SET","PROCEDURE TO \1A00","_ProcReq_( \1A30 )",&sC___21 }; + static COMMANDS sC___23 = {0,"SET","EXACT \1A20ON,OFF,&>","Set( _SET_EXACT, \1A30 )",&sC___22 }; + static COMMANDS sC___24 = {0,"SET","EXACT (\1A00)","Set( _SET_EXACT, \1A00 )",&sC___23 }; + static COMMANDS sC___25 = {0,"SET","FIXED \1A20ON,OFF,&>","Set( _SET_FIXED, \1A30 )",&sC___24 }; + static COMMANDS sC___26 = {0,"SET","FIXED (\1A00)","Set( _SET_FIXED, \1A00 )",&sC___25 }; + static COMMANDS sC___27 = {0,"SET","DECIMALS TO \1A00","Set( _SET_DECIMALS, \1A00 )",&sC___26 }; + static COMMANDS sC___28 = {0,"SET","DECIMALS TO","Set( _SET_DECIMALS, 0 )",&sC___27 }; + static COMMANDS sC___29 = {0,"SET","PATH TO \1A30","Set( _SET_PATH, \1A30 )",&sC___28 }; + static COMMANDS sC___30 = {0,"SET","PATH TO","Set( _SET_PATH, "" )",&sC___29 }; + static COMMANDS sC___31 = {0,"SET","DEFAULT TO \1A40","Set( _SET_DEFAULT, \1A30 )",&sC___30 }; + static COMMANDS sC___32 = {0,"SET","DEFAULT TO","Set( _SET_DEFAULT, "" )",&sC___31 }; + static COMMANDS sC___33 = {0,"SET","CENTURY \1A20ON,OFF,&>","__SetCentury( \1A30 )",&sC___32 }; + static COMMANDS sC___34 = {0,"SET","CENTURY (\1A00)","__SetCentury( \1A00 )",&sC___33 }; + static COMMANDS sC___35 = {0,"SET","EPOCH TO \1A00","Set( _SET_EPOCH, \1A00 )",&sC___34 }; + static COMMANDS sC___36 = {0,"SET","DATE FORMAT [TO] \1A00","Set( _SET_DATEFORMAT, \1A00 )",&sC___35 }; + static COMMANDS sC___37 = {0,"SET","DATE [TO] AMERICAN","_DFSET( 'mm/dd/yyyy', 'mm/dd/yy' )",&sC___36 }; + static COMMANDS sC___38 = {0,"SET","DATE [TO] ANSI","_DFSET( 'yyyy.mm.dd', 'yy.mm.dd' )",&sC___37 }; + static COMMANDS sC___39 = {0,"SET","DATE [TO] BRITISH","_DFSET( 'dd/mm/yyyy', 'dd/mm/yy' )",&sC___38 }; + static COMMANDS sC___40 = {0,"SET","DATE [TO] FRENCH","_DFSET( 'dd/mm/yyyy', 'dd/mm/yy' )",&sC___39 }; + static COMMANDS sC___41 = {0,"SET","DATE [TO] GERMAN","_DFSET( 'dd.mm.yyyy', 'dd.mm.yy' )",&sC___40 }; + static COMMANDS sC___42 = {0,"SET","DATE [TO] ITALIAN","_DFSET( 'dd-mm-yyyy', 'dd-mm-yy' )",&sC___41 }; + static COMMANDS sC___43 = {0,"SET","DATE [TO] JAPANESE","_DFSET( 'yyyy/mm/dd', 'yy/mm/dd' )",&sC___42 }; + static COMMANDS sC___44 = {0,"SET","DATE [TO] USA","_DFSET( 'mm-dd-yyyy', 'mm-dd-yy' )",&sC___43 }; + static COMMANDS sC___45 = {0,"SET","ALTERNATE \1A20ON,OFF,&>","Set( _SET_ALTERNATE, \1A30 )",&sC___44 }; + static COMMANDS sC___46 = {0,"SET","ALTERNATE (\1A00)","Set( _SET_ALTERNATE, \1A00 )",&sC___45 }; + static COMMANDS sC___47 = {0,"SET","ALTERNATE TO","Set( _SET_ALTFILE, "" )",&sC___46 }; + static COMMANDS sC___48 = {0,"SET","ALTERNATE TO \1A40 [\1B20 ADDITIVE>]","Set( _SET_ALTFILE, \1A30, \1B50 )",&sC___47 }; + static COMMANDS sC___49 = {0,"SET","CONSOLE \1A20ON,OFF,&>","Set( _SET_CONSOLE, \1A30 )",&sC___48 }; + static COMMANDS sC___50 = {0,"SET","CONSOLE (\1A00)","Set( _SET_CONSOLE, \1A00 )",&sC___49 }; + static COMMANDS sC___51 = {0,"SET","MARGIN TO \1A00","Set( _SET_MARGIN, \1A00 )",&sC___50 }; + static COMMANDS sC___52 = {0,"SET","MARGIN TO","Set( _SET_MARGIN, 0 )",&sC___51 }; + static COMMANDS sC___53 = {0,"SET","PRINTER \1A20ON,OFF,&>","Set( _SET_PRINTER, \1A30 )",&sC___52 }; + static COMMANDS sC___54 = {0,"SET","PRINTER (\1A00)","Set( _SET_PRINTER, \1A00 )",&sC___53 }; + static COMMANDS sC___55 = {0,"SET","PRINTER TO","Set( _SET_PRINTFILE, "" )",&sC___54 }; + static COMMANDS sC___56 = {0,"SET","PRINTER TO \1A40 [\1B20 ADDITIVE>]","Set( _SET_PRINTFILE, \1A30, \1B50 )",&sC___55 }; + static COMMANDS sC___57 = {0,"SET","DEVICE TO SCREEN","Set( _SET_DEVICE, 'SCREEN' )",&sC___56 }; + static COMMANDS sC___58 = {0,"SET","DEVICE TO PRINTER","Set( _SET_DEVICE, 'PRINTER' )",&sC___57 }; + static COMMANDS sC___59 = {0,"SET","COLOR TO [\1A30]","SetColor( \1A10 )",&sC___58 }; + static COMMANDS sC___60 = {0,"SET","COLOR TO ( \1A00 )","SetColor( \1A00 )",&sC___59 }; + static COMMANDS sC___61 = {0,"SET","COLOUR TO [\1A30]","SET COLOR TO [\1A00]",&sC___60 }; + static COMMANDS sC___62 = {0,"SET","CURSOR \1A20ON,OFF,&>","SetCursor( if(Upper(\1A30) == 'ON', 1, 0) )",&sC___61 }; + static COMMANDS sC___63 = {0,"SET","CURSOR (\1A00)","SetCursor( if(\1A00, 1, 0) )",&sC___62 }; + static COMMANDS sC___64 = {0,"?","[ \1A10]","QOut( \1A00 )",&sC___63 }; + static COMMANDS sC___65 = {0,"??","[ \1A10]","QQOut( \1A00 )",&sC___64 }; + static COMMANDS sC___66 = {0,"EJECT","","__Eject()",&sC___65 }; + static COMMANDS sC___67 = {0,"TEXT","","text QOut, QQOut",&sC___66 }; + static COMMANDS sC___68 = {0,"TEXT","TO FILE \1A40","__TextSave( \1A30 ) ; text QOut, __TextRestore",&sC___67 }; + static COMMANDS sC___69 = {0,"TEXT","TO PRINTER","__TextSave('PRINTER') ; text QOut, __TextRestore",&sC___68 }; + static COMMANDS sC___70 = {0,"CLS","","Scroll() ; SetPos(0,0)",&sC___69 }; + static COMMANDS sC___71 = {0,"CLEAR","SCREEN","CLS",&sC___70 }; + static COMMANDS sC___72 = {0,"@","\1A00, \1B00","Scroll( \1A00, \1B00, \1A00 ) ; SetPos( \1A00, \1B00 )",&sC___71 }; + static COMMANDS sC___73 = {0,"@","\1A00, \1B00 CLEAR","Scroll( \1A00, \1B00 ) ; SetPos( \1A00, \1B00 )",&sC___72 }; + static COMMANDS sC___74 = {0,"@","\1A00, \1B00 CLEAR TO \1C00, \1D00", + "Scroll( \1A00, \1B00, \1C00, \1D00 ) ; SetPos( \1A00, \1B00 )",&sC___73 }; + static COMMANDS sC___75 = {0,"@","\1A00, \1B00, \1C00, \1D00 BOX \1E00 [COLOR \1F00]", + "DispBox( \1A00, \1B00, \1C00, \1D00, \1E00 [, \1F00 ] )",&sC___74 }; + static COMMANDS sC___76 = {0,"@","\1A00, \1B00 TO \1C00, \1D00 [DOUBLE] [COLOR \1E00]", + "DispBox( \1A00, \1B00, \1C00, \1D00, 2 [, \1E00 ] )",&sC___75 }; + static COMMANDS sC___77 = {0,"@","\1A00, \1B00 TO \1C00, \1D00 [COLOR \1E00]", + "DispBox( \1A00, \1B00, \1C00, \1D00, 1 [, \1E00 ] )",&sC___76 }; + static COMMANDS sC___78 = {0,"@","\1A00, \1B00 SAY \1C00 [PICTURE \1D00] [COLOR \1E00]", + "DevPos( \1A00, \1B00 ) ; DevOutPict( \1C00, \1D00 [, \1E00] )",&sC___77 }; + static COMMANDS sC___79 = {0,"@","\1A00, \1B00 SAY \1C00 [COLOR \1D00]", + "DevPos( \1A00, \1B00 ) ; DevOut( \1C00 [, \1D00] )",&sC___78 }; + static COMMANDS sC___80 = {0,"SET","BELL \1A20ON,OFF,&>","Set( _SET_BELL, \1A30 )",&sC___79 }; + static COMMANDS sC___81 = {0,"SET","BELL (\1A00)","Set( _SET_BELL, \1A00 )",&sC___80 }; + static COMMANDS sC___82 = {0,"SET","CONFIRM \1A20ON,OFF,&>","Set( _SET_CONFIRM, \1A30 )",&sC___81 }; + static COMMANDS sC___83 = {0,"SET","CONFIRM (\1A00)","Set( _SET_CONFIRM, \1A00 )",&sC___82 }; + static COMMANDS sC___84 = {0,"SET","ESCAPE \1A20ON,OFF,&>","Set( _SET_ESCAPE, \1A30 )",&sC___83 }; + static COMMANDS sC___85 = {0,"SET","ESCAPE (\1A00)","Set( _SET_ESCAPE, \1A00 )",&sC___84 }; + static COMMANDS sC___86 = {0,"SET","INTENSITY \1A20ON,OFF,&>","Set( _SET_INTENSITY, \1A30 )",&sC___85 }; + static COMMANDS sC___87 = {0,"SET","INTENSITY (\1A00)","Set( _SET_INTENSITY, \1A00 )",&sC___86 }; + static COMMANDS sC___88 = {0,"SET","SCOREBOARD \1A20ON,OFF,&>","Set( _SET_SCOREBOARD, \1A30 )",&sC___87 }; + static COMMANDS sC___89 = {0,"SET","SCOREBOARD (\1A00)","Set( _SET_SCOREBOARD, \1A00 )",&sC___88 }; + static COMMANDS sC___90 = {0,"SET","DELIMITERS \1A20ON,OFF,&>","Set( _SET_DELIMITERS, \1A30 )",&sC___89 }; + static COMMANDS sC___91 = {0,"SET","DELIMITERS (\1A00)","Set( _SET_DELIMITERS, \1A00 )",&sC___90 }; + static COMMANDS sC___92 = {0,"SET","DELIMITERS TO \1A00","Set( _SET_DELIMCHARS, \1A00 )",&sC___91 }; + static COMMANDS sC___93 = {0,"SET","DELIMITERS TO DEFAULT","Set( _SET_DELIMCHARS, '::' )",&sC___92 }; + static COMMANDS sC___94 = {0,"SET","DELIMITERS TO","Set( _SET_DELIMCHARS, '::' )",&sC___93 }; + static COMMANDS sC___95 = {0,"SET","FORMAT TO \1A00","_ProcReq_( \1A30 + '.FMT' ) ; __SetFormat( {|| \1A00()} )",&sC___94 }; + static COMMANDS sC___96 = {0,"SET","FORMAT TO \1A00.\1B00", + "_ProcReq_( \1A30 + '.' + \1B30 ) ; __SetFormat( {|| \1A00()} )",&sC___95 }; + static COMMANDS sC___97 = {0,"SET","FORMAT TO \1A20&>", + "if ( Empty(\1A30) ) ; SET FORMAT TO ; else ; __SetFormat( &('{||' + \1A30 + '()}') ) ; end",&sC___96 }; + static COMMANDS sC___98 = {0,"SET","FORMAT TO","__SetFormat()",&sC___97 }; + static COMMANDS sC___99 = {0,"@","\1A00, \1B00 GET \1C00 [PICTURE \1D00] [VALID \1E00] [WHEN \1F00] [SEND \1G00]", + "SetPos( \1A00, \1B00 ) ; AAdd( GetList, _GET_( \1C00, \1C20, \1D00, \1E40, \1F40,{|u| If( PCount()==0,\1C00,\1C00:=u )} ):display() ) [; ATail(GetList):\1G00]",&sC___98 }; + static COMMANDS sC___100 = {0,"@","\1A00, \1B00 SAY \1C00 [\1D10] GET \1E00 [\1F10]", + "@ \1A00, \1B00 SAY \1C00 [\1D00] ; @ Row(), Col()+1 GET \1E00 [\1F00]",&sC___99 }; + static COMMANDS sC___101 = {0,"@","\1A00, \1B00 GET \1C00 [\1D10] RANGE \1E00, \1F00 [\1G10]", + "@ \1A00, \1B00 GET \1C00 [\1D00] VALID {|_1| RangeCheck(_1,, \1E00, \1F00)} [\1G00]",&sC___100 }; + static COMMANDS sC___102 = {0,"@","\1A00, \1B00 GET \1C00 [\1D10] COLOR \1E00 [\1F10]", + "@ \1A00, \1B00 GET \1C00 [\1D00] SEND colorDisp(\1E00) [\1F00]",&sC___101 }; + static COMMANDS sC___103 = {0,"READ","SAVE","ReadModal(GetList)",&sC___102 }; + static COMMANDS sC___104 = {0,"READ","","ReadModal(GetList) ; GetList := {}",&sC___103 }; + static COMMANDS sC___105 = {0,"CLEAR","GETS","ReadKill(.T.) ; GetList := {}",&sC___104 }; + static COMMANDS sC___106 = {0,"@","[\1A10] COLOUR [\1B10]","@ [\1A00] COLOR [\1B00]",&sC___105 }; + static COMMANDS sC___107 = {0,"SET","WRAP \1A20ON,OFF,&>","Set( _SET_WRAP, \1A30 )",&sC___106 }; + static COMMANDS sC___108 = {0,"SET","WRAP (\1A00)","Set( _SET_WRAP, \1A00 )",&sC___107 }; + static COMMANDS sC___109 = {0,"SET","MESSAGE TO \1A00 [\1B20 CENTER, CENTRE>]", + "Set( _SET_MESSAGE, \1A00 ) ; Set( _SET_MCENTER, \1B50 )",&sC___108 }; + static COMMANDS sC___110 = {0,"SET","MESSAGE TO","Set( _SET_MESSAGE, 0 ) ; Set( _SET_MCENTER, .f. )",&sC___109 }; + static COMMANDS sC___111 = {0,"@","\1A00, \1B00 PROMPT \1C00 [MESSAGE \1D00]", + "__AtPrompt( \1A00, \1B00, \1C00 , \1D00 )",&sC___110 }; + static COMMANDS sC___112 = {0,"MENU","TO \1A00","\1A00 := __MenuTo( {|_1| if(PCount() == 0, \1A00, \1A00 := _1)}, \1A10 )",&sC___111 }; + static COMMANDS sC___113 = {0,"SAVE","SCREEN","__XSaveScreen()",&sC___112 }; + static COMMANDS sC___114 = {0,"RESTORE","SCREEN","__XRestScreen()",&sC___113 }; + static COMMANDS sC___115 = {0,"SAVE","SCREEN TO \1A00","\1A00 := SaveScreen( 0, 0, Maxrow(), Maxcol() )",&sC___114 }; + static COMMANDS sC___116 = {0,"RESTORE","SCREEN FROM \1A00","RestScreen( 0, 0, Maxrow(), Maxcol(), \1A00 )",&sC___115 }; + static COMMANDS sC___117 = {0,"WAIT","[\1A00]","__Wait( \1A00 )",&sC___116 }; + static COMMANDS sC___118 = {0,"WAIT","[\1A00] TO \1B00","\1B00 := __Wait( \1A00 )",&sC___117 }; + static COMMANDS sC___119 = {0,"ACCEPT","[\1A00] TO \1B00","\1B00 := __Accept( \1A00 )",&sC___118 }; + static COMMANDS sC___120 = {0,"INPUT","[\1A00] TO \1B00", + "if ( !Empty(__Accept(\1A00)) ) ; \1B00 := &( __AcceptStr() ) ; end",&sC___119 }; + static COMMANDS sC___121 = {0,"KEYBOARD","\1A00","__Keyboard( \1A00 )",&sC___120 }; + static COMMANDS sC___122 = {0,"CLEAR","TYPEAHEAD","__Keyboard()",&sC___121 }; + static COMMANDS sC___123 = {0,"SET","TYPEAHEAD TO \1A00","Set( _SET_TYPEAHEAD, \1A00 )",&sC___122 }; + static COMMANDS sC___124 = {0,"SET","KEY \1A00 TO \1B00","SetKey( \1A00, {|p, l, v| \1B00(p, l, v)} )",&sC___123 }; + static COMMANDS sC___125 = {0,"SET","KEY \1A00 TO \1B00 ( [\1C10] )","SET KEY \1A00 TO \1B00",&sC___124 }; + static COMMANDS sC___126 = {0,"SET","KEY \1A00 TO \1B20&>", + "if ( Empty(\1B30) ) ; SetKey( \1A00, NIL ) ; else ; SetKey( \1A00, {|p, l, v| \1B00(p, l, v)} ) ; end",&sC___125 }; + static COMMANDS sC___127 = {0,"SET","KEY \1A00 [TO]","SetKey( \1A00, NIL )",&sC___126 }; + static COMMANDS sC___128 = {0,"SET","FUNCTION \1A00 [TO] [\1B00]","__SetFunction( \1A00, \1B00 )",&sC___127 }; + static COMMANDS sC___129 = {0,"CLEAR","MEMORY","__MVClear()",&sC___128 }; + static COMMANDS sC___130 = {0,"RELEASE"," \1A00","__MVXRelease( \1A30 )",&sC___129 }; + static COMMANDS sC___131 = {0,"RELEASE","ALL","__MVRelease('*', .t.)",&sC___130 }; + static COMMANDS sC___132 = {0,"RELEASE","ALL LIKE \1A00","__MVRelease( \1A10, .t. )",&sC___131 }; + static COMMANDS sC___133 = {0,"RELEASE","ALL EXCEPT \1A00","__MVRelease( \1A10, .f. )",&sC___132 }; + static COMMANDS sC___134 = {0,"RESTORE","[FROM \1A40] [\1B20 ADDITIVE>]","__MVRestore( \1A30, \1B50 )",&sC___133 }; + static COMMANDS sC___135 = {0,"SAVE","ALL LIKE \1A00 TO \1B40","__MVSave( \1B30, \1A30, .t. )",&sC___134 }; + static COMMANDS sC___136 = {0,"SAVE","TO \1A40 ALL LIKE \1B00","__MVSave( \1A30, \1B30, .t. )",&sC___135 }; + static COMMANDS sC___137 = {0,"SAVE","ALL EXCEPT \1A00 TO \1B40","__MVSave( \1B30, \1A30, .f. )",&sC___136 }; + static COMMANDS sC___138 = {0,"SAVE","TO \1A40 ALL EXCEPT \1B00","__MVSave( \1A30, \1B30, .f. )",&sC___137 }; + static COMMANDS sC___139 = {0,"SAVE","[TO \1A40] [ALL]","__MVSave( \1A30, '*', .t. )",&sC___138 }; + static COMMANDS sC___140 = {0,"ERASE","\1A40","FErase( \1A30 )",&sC___139 }; + static COMMANDS sC___141 = {0,"DELETE","FILE \1A40","FErase( \1A30 )",&sC___140 }; + static COMMANDS sC___142 = {0,"RENAME","\1A40 TO \1B40","FRename( \1A30, \1B30 )",&sC___141 }; + static COMMANDS sC___143 = {0,"COPY","FILE \1A40 TO \1B40","__CopyFile( \1A30, \1B30 )",&sC___142 }; + static COMMANDS sC___144 = {0,"DIR","[\1A40]","__Dir( \1A30 )",&sC___143 }; + static COMMANDS sC___145 = {0,"TYPE","\1A40 [\1B20 TO PRINTER>] [TO FILE \1C40]", + "__TypeFile( \1A30, \1B50 ) [; COPY FILE \1A30 TO \1C30 ]",&sC___144 }; + static COMMANDS sC___146 = {0,"TYPE","\1A40 [\1B20 TO PRINTER>]","__TypeFile( \1A30, \1B50 )",&sC___145 }; + static COMMANDS sC___147 = {0,"REQUEST","\1A10","EXTERNAL \1A00",&sC___146 }; + static COMMANDS sC___148 = {0,"CANCEL","","__Quit()",&sC___147 }; + static COMMANDS sC___149 = {0,"QUIT","","__Quit()",&sC___148 }; + static COMMANDS sC___150 = {0,"RUN","\1A30","__Run( \1A10 )",&sC___149 }; + static COMMANDS sC___151 = {0,"RUN","( \1A00 )","__Run( \1A00 )",&sC___150 }; + static COMMANDS sC___152 = {0,"!","\1A30","RUN \1A00",&sC___151 }; + static COMMANDS sC___153 = {0,"RUN","= \1A00","( run := \1A00 )",&sC___152 }; + static COMMANDS sC___154 = {0,"RUN",":= \1A00","( run := \1A00 )",&sC___153 }; + static COMMANDS sC___155 = {0,"SET","EXCLUSIVE \1A20ON,OFF,&>","Set( _SET_EXCLUSIVE, \1A30 )",&sC___154 }; + static COMMANDS sC___156 = {0,"SET","EXCLUSIVE (\1A00)","Set( _SET_EXCLUSIVE, \1A00 )",&sC___155 }; + static COMMANDS sC___157 = {0,"SET","SOFTSEEK \1A20ON,OFF,&>","Set( _SET_SOFTSEEK, \1A30 )",&sC___156 }; + static COMMANDS sC___158 = {0,"SET","SOFTSEEK (\1A00)","Set( _SET_SOFTSEEK, \1A00 )",&sC___157 }; + static COMMANDS sC___159 = {0,"SET","UNIQUE \1A20ON,OFF,&>","Set( _SET_UNIQUE, \1A30 )",&sC___158 }; + static COMMANDS sC___160 = {0,"SET","UNIQUE (\1A00)","Set( _SET_UNIQUE, \1A00 )",&sC___159 }; + static COMMANDS sC___161 = {0,"SET","DELETED \1A20ON,OFF,&>","Set( _SET_DELETED, \1A30 )",&sC___160 }; + static COMMANDS sC___162 = {0,"SET","DELETED (\1A00)","Set( _SET_DELETED, \1A00 )",&sC___161 }; + static COMMANDS sC___163 = {0,"SELECT","\1A00","dbSelectArea( \1A30 )",&sC___162 }; + static COMMANDS sC___164 = {0,"SELECT","\1A00([\1B10])","dbSelectArea( \1A00(\1B00) )",&sC___163 }; + static COMMANDS sC___165 = {0,"USE","","dbCloseArea()",&sC___164 }; + static COMMANDS sC___166 = {0,"USE","\1A40 [VIA \1B00] [ALIAS \1C00] [\1D20 NEW>] [\1E20 EXCLUSIVE>] [\1F20 SHARED>] [\1G20 READONLY>] [INDEX \1H40 [, \1I40]]", + "dbUseArea( \1D50, \1B00, \1A30, \1C30, if(\1F50 .or. \1E50, !\1E50, NIL), \1G50 ) [; dbSetIndex( \1H30 )] [; dbSetIndex( \1I30 )]",&sC___165 }; + static COMMANDS sC___167 = {0,"APPEND","BLANK","dbAppend()",&sC___166 }; + static COMMANDS sC___168 = {0,"PACK","","__dbPack()",&sC___167 }; + static COMMANDS sC___169 = {0,"ZAP","","__dbZap()",&sC___168 }; + static COMMANDS sC___170 = {0,"UNLOCK","","dbUnlock()",&sC___169 }; + static COMMANDS sC___171 = {0,"UNLOCK","ALL","dbUnlockAll()",&sC___170 }; + static COMMANDS sC___172 = {0,"COMMIT","","dbCommitAll()",&sC___171 }; + static COMMANDS sC___173 = {0,"GOTO","\1A00","dbGoto(\1A00)",&sC___172 }; + static COMMANDS sC___174 = {0,"GO","\1A00","dbGoto(\1A00)",&sC___173 }; + static COMMANDS sC___175 = {0,"GOTO","TOP","dbGoTop()",&sC___174 }; + static COMMANDS sC___176 = {0,"GO","TOP","dbGoTop()",&sC___175 }; + static COMMANDS sC___177 = {0,"GOTO","BOTTOM","dbGoBottom()",&sC___176 }; + static COMMANDS sC___178 = {0,"GO","BOTTOM","dbGoBottom()",&sC___177 }; + static COMMANDS sC___179 = {0,"SKIP","","dbSkip(1)",&sC___178 }; + static COMMANDS sC___180 = {0,"SKIP","\1A00","dbSkip( \1A00 )",&sC___179 }; + static COMMANDS sC___181 = {0,"SKIP","ALIAS \1A00","\1A00 -> ( dbSkip(1) )",&sC___180 }; + static COMMANDS sC___182 = {0,"SKIP","\1A00 ALIAS \1B00","\1B00 -> ( dbSkip(\1A00) )",&sC___181 }; + static COMMANDS sC___183 = {0,"SEEK","\1A00 [\1B20 SOFTSEEK>]","dbSeek( \1A00, if( \1B50, .T., NIL ) )",&sC___182 }; + static COMMANDS sC___184 = {0,"FIND","\1A30","dbSeek( \1A30 )",&sC___183 }; + static COMMANDS sC___185 = {0,"FIND",":= \1A00","( find := \1A00 )",&sC___184 }; + static COMMANDS sC___186 = {0,"FIND","= \1A00","( find := \1A00 )",&sC___185 }; + static COMMANDS sC___187 = {0,"CONTINUE","","__dbContinue()",&sC___186 }; + static COMMANDS sC___188 = {0,"LOCATE","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", + "__dbLocate(\1A40,\1B40,\1C00,\1D00,\1E50)",&sC___187 }; + static COMMANDS sC___189 = {0,"SET","RELATION TO","dbClearRel()",&sC___188 }; + static COMMANDS sC___190 = {0,"SET","RELATION [\1A20ADDITIVE>] [TO \1B00 INTO \1C40 [, [TO] \1D00 INTO \1E40]]", + "if ( !\1A50 ) ; dbClearRel() ; end ; dbSetRelation(\1C30,\1B40,\1B20) [; dbSetRelation(\1E30,\1D40,\1D20)]",&sC___189 }; + static COMMANDS sC___191 = {0,"SET","FILTER TO","dbClearFilter(NIL)",&sC___190 }; + static COMMANDS sC___192 = {0,"SET","FILTER TO \1A00","dbSetFilter( \1A40, \1A20 )",&sC___191 }; + static COMMANDS sC___193 = {0,"SET","FILTER TO \1A20&>", + "if ( Empty(\1A30) ) ; dbClearFilter() ; else ; dbSetFilter(\1A40,\1A30) ; end",&sC___192 }; + static COMMANDS sC___194 = {0,"REPLACE","[ \1A00 WITH \1B00 [, \1C00 WITH \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", + "DBEval( {|| _FIELD->\1A00 := \1B00 [,_FIELD->\1C00 := \1D00]},\1E40,\1F40,\1G00,\1H00,\1I50)",&sC___193 }; + static COMMANDS sC___195 = {0,"REPLACE","\1A00 WITH \1B00 [, \1C00 WITH \1D00 ]", + "_FIELD->\1A00 := \1B00 [; _FIELD->\1C00 := \1D00]",&sC___194 }; + static COMMANDS sC___196 = {0,"DELETE","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", + "DBEval( {|| dbDelete()}, \1A40, \1B40, \1C00, \1D00, \1E50 )",&sC___195 }; + static COMMANDS sC___197 = {0,"RECALL","[FOR \1A00] [WHILE \1B00] [NEXT \1C00] [RECORD \1D00] [\1E20REST>] [ALL]", + "DBEval( {|| dbRecall()}, \1A40, \1B40, \1C00, \1D00, \1E50 )",&sC___196 }; + static COMMANDS sC___198 = {0,"DELETE","","dbDelete()",&sC___197 }; + static COMMANDS sC___199 = {0,"RECALL","","dbRecall()",&sC___198 }; + static COMMANDS sC___200 = {0,"CREATE","\1A40 [FROM \1B40] [VIA \1C00] [ALIAS \1D00] [\1E20 NEW>]", + "__dbCreate( \1A30, \1B30, \1C00, \1E50, \1D30 )",&sC___199 }; + static COMMANDS sC___201 = {0,"COPY","[STRUCTURE] [EXTENDED] [TO \1A40]","__dbCopyXStruct( \1A30 )",&sC___200 }; + static COMMANDS sC___202 = {0,"COPY","[STRUCTURE] [TO \1A40] [FIELDS \1B10]","__dbCopyStruct( \1A30, { \1B30 } )",&sC___201 }; + static COMMANDS sC___203 = {0,"COPY","[TO \1A40] [DELIMITED [WITH \1B30]] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", + "__dbDelim( .T., \1A30, \1B30, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )",&sC___202 }; + static COMMANDS sC___204 = {0,"COPY","[TO \1A40] [SDF] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", + "__dbSDF( .T., \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )",&sC___203 }; + static COMMANDS sC___205 = {0,"COPY","[TO \1A40] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [VIA \1H00] [ALL]", + "__dbCopy( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50, \1H00 )",&sC___204 }; + static COMMANDS sC___206 = {0,"APPEND","[FROM \1A40] [DELIMITED [WITH \1B30]] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", + "__dbDelim( .F., \1A30, \1B30, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )",&sC___205 }; + static COMMANDS sC___207 = {0,"APPEND","[FROM \1A40] [SDF] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", + "__dbSDF( .F., \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )",&sC___206 }; + static COMMANDS sC___208 = {0,"APPEND","[FROM \1A40] [FIELDS \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [VIA \1H00] [ALL]", + "__dbApp( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50, \1H00 )",&sC___207 }; + static COMMANDS sC___209 = {0,"SORT","[TO \1A40] [ON \1B10] [FOR \1C00] [WHILE \1D00] [NEXT \1E00] [RECORD \1F00] [\1G20REST>] [ALL]", + "__dbSort( \1A30, { \1B30 }, \1C40, \1D40, \1E00, \1F00, \1G50 )",&sC___208 }; + static COMMANDS sC___210 = {0,"TOTAL","[TO \1A40] [ON \1B00] [FIELDS \1C10] [FOR \1D00] [WHILE \1E00] [NEXT \1F00] [RECORD \1G00] [\1H20REST>] [ALL]", + "__dbTotal( \1A30, \1B40, { \1C30 }, \1D40, \1E40, \1F00, \1G00, \1H50 )",&sC___209 }; + static COMMANDS sC___211 = {0,"UPDATE","[FROM \1A40] [ON \1B00] [REPLACE \1C00 WITH \1D00 [, \1E00 WITH \1F00]] [\1G20RANDOM>]", + "__dbUpdate( \1A30, \1B40, \1G50, {|| _FIELD->\1C00 := \1D00 [, _FIELD->\1E00 := \1F00]} )",&sC___210 }; + static COMMANDS sC___212 = {0,"JOIN","[WITH \1A40] [TO \1B00] [FIELDS \1C10] [FOR \1D00]", + "__dbJoin( \1A30, \1B30, { \1C30 }, \1D40 )",&sC___211 }; + static COMMANDS sC___213 = {0,"COUNT","[TO \1A00] [FOR \1B00] [WHILE \1C00] [NEXT \1D00] [RECORD \1E00] [\1F20REST>] [ALL]", + "\1A00 := 0 ; DBEval( {|| \1A00 := \1A00 + 1}, \1B40, \1C40, \1D00, \1E00, \1F50 )",&sC___212 }; + static COMMANDS sC___214 = {0,"SUM","[ \1A00 [, \1B00] TO \1C00 [, \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", + "\1C00 := [ \1D00 := ] 0 ; DBEval( {|| \1C00 := \1C00 + \1A00 [, \1D00 := \1D00 + \1B00 ]}, \1E40, \1F40, \1G00, \1H00, \1I50 )",&sC___213 }; + static COMMANDS sC___215 = {0,"AVERAGE","[ \1A00 [, \1B00] TO \1C00 [, \1D00] ] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", + "M->__Avg := \1C00 := [ \1D00 := ] 0 ; DBEval( {|| M->__Avg := M->__Avg + 1, \1C00 := \1C00 + \1A00 [, \1D00 := \1D00 + \1B00] }, \1E40, \1F40, \1G00, \1H00, \1I50 ) ; \1C00 := \1C00 / M->__Avg [; \1D00 := \1D00 / M->__Avg ]",&sC___214 }; + static COMMANDS sC___216 = {0,"LIST","[\1A10] [\1B20OFF>] [\1C20 TO PRINTER>] [TO FILE \1D40] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [ALL]", + "__dbList( \1B50, { \1A40 }, .t., \1E40, \1F40, \1G00, \1H00, \1I50, \1C50, \1D30 )",&sC___215 }; + static COMMANDS sC___217 = {0,"DISPLAY","[\1A10] [\1B20OFF>] [\1C20 TO PRINTER>] [TO FILE \1D40] [FOR \1E00] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [\1J20ALL>]", + "__DBList( \1B50, { \1A40 }, \1J50, \1E40, \1F40, \1G00, \1H00, \1I50, \1C50, \1D30 )",&sC___216 }; + static COMMANDS sC___218 = {0,"REPORT","FORM \1A00 [HEADING \1B00] [\1C20 PLAIN>] [\1D20 NOEJECT>] [\1E20 SUMMARY>] [\1F20 NOCONSOLE>] [\1G20 TO PRINTER>] [TO FILE \1H40] [FOR \1I00] [WHILE \1J00] [NEXT \1K00] [RECORD \1L00] [\1M20REST>] [ALL]", + "__ReportForm( \1A30, \1G50, \1H30, \1F50, \1I40, \1J40, \1K00, \1L00, \1M50, \1C50, \1B00, \1D50, \1E50 )",&sC___217 }; + static COMMANDS sC___219 = {0,"LABEL","FORM \1A00 [\1B20 SAMPLE>] [\1C20 NOCONSOLE>] [\1D20 TO PRINTER>] [TO FILE \1E40] [FOR \1F00] [WHILE \1G00] [NEXT \1H00] [RECORD \1I00] [\1J20REST>] [ALL]", + "__LabelForm( \1A30, \1D50, \1E30, \1C50, \1F40, \1G40, \1H00, \1I00, \1J50, \1B50 )",&sC___218 }; + static COMMANDS sC___220 = {0,"CLOSE","\1A00","\1A00->( dbCloseArea() )",&sC___219 }; + static COMMANDS sC___221 = {0,"CLOSE","","dbCloseArea()",&sC___220 }; + static COMMANDS sC___222 = {0,"CLOSE","DATABASES","dbCloseAll()",&sC___221 }; + static COMMANDS sC___223 = {0,"CLOSE","ALTERNATE","Set(_SET_ALTFILE, "")",&sC___222 }; + static COMMANDS sC___224 = {0,"CLOSE","FORMAT","__SetFormat(NIL)",&sC___223 }; + static COMMANDS sC___225 = {0,"CLOSE","INDEXES","dbClearIndex()",&sC___224 }; + static COMMANDS sC___226 = {0,"CLOSE","PROCEDURE",NULL,&sC___225 }; + static COMMANDS sC___227 = {0,"CLOSE","ALL","CLOSE DATABASES ; SELECT 1 ; CLOSE FORMAT",&sC___226 }; + static COMMANDS sC___228 = {0,"CLEAR","","CLEAR SCREEN ; CLEAR GETS",&sC___227 }; + static COMMANDS sC___229 = {0,"CLEAR","ALL", + "CLOSE DATABASES ; CLOSE FORMAT ; CLEAR MEMORY ; CLEAR GETS ; SET ALTERNATE OFF ; SET ALTERNATE TO",&sC___228 }; + static COMMANDS sC___230 = {0,"INDEX","ON \1A00 [TAG \1B40 ] TO \1C40 [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>]", + "ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___229 }; + static COMMANDS sC___231 = {0,"INDEX","ON \1A00 TAG \1B40 [TO \1C40] [FOR \1D00] [\1E20ALL>] [WHILE \1F00] [NEXT \1G00] [RECORD \1H00] [\1I20REST>] [EVAL \1J00] [EVERY \1K00] [\1L20 UNIQUE>] [\1M20 ASCENDING>] [\1N20 DESCENDING>]", + "ordCondSet( \1D20, \1D40, [\1E50], \1F40, \1J40, \1K00, RECNO(), \1G00, \1H00, [\1I50], [\1N50] ) ; ordCreate(\1C30, \1B30, \1A20, \1A40, [\1L50] )",&sC___230 }; + static COMMANDS sC___232 = {0,"INDEX","ON \1A00 TO \1B40 [\1C20 UNIQUE>]", + "dbCreateIndex( \1B30, \1A20, \1A40, if( \1C50, .t., NIL ) )",&sC___231 }; + static COMMANDS sC___233 = {0,"DELETE","TAG \1A40 [ IN \1B40 ] [, \1C40 [ IN \1D40 ] ]", + "ordDestroy( \1A30, \1B30 ) [; ordDestroy( \1C30, \1D30 ) ]",&sC___232 }; + static COMMANDS sC___234 = {0,"REINDEX","[EVAL \1A00] [EVERY \1B00]", + "ordCondSet(,,,, \1A40, \1B00,,,,,,,) ; ordListRebuild()",&sC___233 }; + static COMMANDS sC___235 = {0,"REINDEX","","ordListRebuild()",&sC___234 }; + static COMMANDS sC___236 = {0,"SET","INDEX TO [ \1A40 [, \1B40]] [\1C20 ADDITIVE>]", + "if !\1C50 ; ordListClear() ; end [; ordListAdd( \1A30 )] [; ordListAdd( \1B30 )]",&sC___235 }; + static COMMANDS sC___237 = {0,"SET","ORDER TO \1A00 [IN \1B40]","ordSetFocus( \1A00 [, \1B30] )",&sC___236 }; + static COMMANDS sC___238 = {0,"SET","ORDER TO TAG \1A40 [IN \1B40]","ordSetFocus( \1A30 [, \1B30] )",&sC___237 }; + static COMMANDS sC___239 = {0,"SET","ORDER TO","ordSetFocus(0)",&sC___238 }; + static COMMANDS sC___240 = {0,"ANNOUNCE","\1A10","procedure \1A00 ; return",&sC___239 }; + COMMANDS *topCommand = &sC___240; + COMMANDS *topTranslate = NULL; \ No newline at end of file