mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 21:23:04 +01:00
211 lines
8.4 KiB
C
211 lines
8.4 KiB
C
/*
|
|
* PROGRAM: Preprocessor
|
|
* MODULE: gpreswi.h
|
|
* DESCRIPTION: Gpre Command Switch definitions
|
|
*
|
|
* The contents of this file are subject to the Interbase Public
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code was created by Inprise Corporation
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
* Copyright (C) Inprise Corporation.
|
|
*
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
*
|
|
* Revision 1.2 2000/11/16 15:54:29 fsg
|
|
* Added new switch -verbose to gpre that will dump
|
|
* parsed lines to stderr
|
|
*
|
|
* Fixed gpre bug in handling row names in WHERE clauses
|
|
* that are reserved words now (DATE etc)
|
|
* (this caused gpre to dump core when parsing tan.e)
|
|
*
|
|
* Fixed gpre bug in handling lower case table aliases
|
|
* in WHERE clauses for sql dialect 2 and 3.
|
|
* (cause a core dump in a test case from C.R. Zamana)
|
|
*
|
|
* Added support for RM/Cobol
|
|
* SWB 31.Aug.2006
|
|
*
|
|
* Added support for user specifiable date format for Cobol programs
|
|
* SWB 15.Sep.2006
|
|
*
|
|
* Added -noqli switch to suppress parsing of QLI keywords. This was
|
|
* causing problems with Cobol programs since the QLI and Cobol reserved word
|
|
* lists intersect.
|
|
* Stephen W. Boyd 21.Mar.2007
|
|
*/
|
|
|
|
|
|
#include "../jrd/common.h"
|
|
|
|
|
|
/*
|
|
* Switch handling constants. Note that IN_SW_COUNT must always be
|
|
* one larger than the largest switch value
|
|
*/
|
|
|
|
enum gpre_cmd_switch
|
|
{
|
|
IN_SW_GPRE_0, /* not a known switch */
|
|
IN_SW_GPRE_C, /* source is C */
|
|
IN_SW_GPRE_D, /* SQL database declaration */
|
|
IN_SW_GPRE_E, /* accept either case */
|
|
IN_SW_GPRE_F, /* source is FORTRAN */
|
|
IN_SW_GPRE_G, /* internal GDS module */
|
|
IN_SW_GPRE_GXX, /* internal GDS C++ module */
|
|
IN_SW_GPRE_I, /* use ID's rather than names */
|
|
IN_SW_GPRE_M, /* don't generate READY/START_TRANS */
|
|
IN_SW_GPRE_N, /* don't generate debug lines */
|
|
IN_SW_GPRE_O, /* write output to standard out */
|
|
IN_SW_GPRE_P, /* source is PASCAL */
|
|
IN_SW_GPRE_R, /* generate raw BLR */
|
|
IN_SW_GPRE_S, /* generate normal, rather than C strings */
|
|
IN_SW_GPRE_T, /* print trace messages */
|
|
IN_SW_GPRE_X, /* database is EXTERNAL (used with /DATABASE only) */
|
|
IN_SW_GPRE_COB, /* source is (shudder) cobol */
|
|
IN_SW_GPRE_ANSI, /* source is (worse and worse!) ansi cobol format */
|
|
IN_SW_GPRE_ADA, /* source is ada */
|
|
IN_SW_GPRE_HANDLES, /* ada handles package */
|
|
IN_SW_GPRE_Z, /* print software version */
|
|
IN_SW_GPRE_ALSYS, /* source is alsys ada */
|
|
IN_SW_GPRE_D_FLOAT, /* use blr_d_float for doubles */
|
|
IN_SW_GPRE_CXX, /* source is C++ */
|
|
IN_SW_GPRE_SCXX, /* source is C++ with Saber extension */
|
|
IN_SW_GPRE_SQLDA, /* use old or new SQLDA */
|
|
IN_SW_GPRE_USER, /* default username to use when attaching database */
|
|
IN_SW_GPRE_PASSWORD, /* default password to use in attaching database */
|
|
IN_SW_GPRE_INTERP, /* default character set/collation */
|
|
|
|
IN_SW_GPRE_CPLUSPLUS, /* source is platform dependant C++ */
|
|
IN_SW_GPRE_SQLDIALECT, /* SQL dialect passed */
|
|
|
|
/* Added this to let gpre dump the lines that it is parsing to stderr
|
|
FSG 14.Nov.2000
|
|
*/
|
|
IN_SW_GPRE_VERBOSE,
|
|
|
|
/* Added this to allow boot version of gpre to only resolve queries
|
|
* against internal metadata
|
|
*/
|
|
IN_SW_GPRE_LANG_INTERNAL,
|
|
|
|
/* Added this to allow in builds to specify the compiletime database directory
|
|
* without the need to edit the epp source
|
|
*/
|
|
IN_SW_GPRE_BASE,
|
|
|
|
/*
|
|
* Added to allow generation of RM/Cobol compatible code
|
|
* SWB 31.Aug.2006
|
|
*/
|
|
IN_SW_GPRE_RMCOBOL,
|
|
|
|
/*
|
|
* Added to allow specification of a Cobol date format, other than ISC_QUAD, to be used to
|
|
* deliver dates to Cobol programs
|
|
*/
|
|
IN_SW_GPRE_DATE_FMT,
|
|
/*
|
|
* Added to allow QLI processing to be suppressed. QLI and COBOL reserved word lists
|
|
* intersect and since QLI reserved words are recognized no matter where they occur in the
|
|
* source stream this was causing bogus errors while parsing COBOL programs.
|
|
*/
|
|
IN_SW_NO_QLI,
|
|
#ifdef TRUSTED_AUTH
|
|
/*
|
|
* Added to allow trusted authentication even with ISC_USER set in environment
|
|
*/
|
|
IN_SW_GPRE_TRUSTED,
|
|
#endif
|
|
IN_SW_GPRE_FETCH_PASS, /* fetch password to use from file */
|
|
|
|
/* As mentioned above: This should always be one larger than the largest
|
|
switch value.
|
|
FSG 14.Nov.2000
|
|
*/
|
|
|
|
IN_SW_GPRE_COUNT /* number of IN_SW values */
|
|
|
|
}; // enum gpre_cmd_switch
|
|
|
|
|
|
/*
|
|
* Dynamic switch table type declaration. Used to indicate that a
|
|
* switch was set. Allocated in MAIN.
|
|
*/
|
|
|
|
struct sw_tab_t
|
|
{
|
|
gpre_cmd_switch sw_in_sw;
|
|
};
|
|
|
|
|
|
static const in_sw_tab_t gpre_in_sw_table[] =
|
|
{
|
|
#ifdef GPRE_ADA
|
|
{IN_SW_GPRE_ADA , 0, "ADA" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program"},
|
|
#ifdef ALSYS_ADA
|
|
{IN_SW_GPRE_ALSYS , 0, "ALSYS" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program"},
|
|
#endif
|
|
{IN_SW_GPRE_HANDLES , 0, "HANDLES" , 0, 0, 0, FALSE, 0, 0, "\t\tADA handle package requires handle package name"},
|
|
#endif
|
|
{IN_SW_GPRE_C , 0, "C" , 0, 0, 0, FALSE, 0, 0, "\t\textended C program"},
|
|
{IN_SW_GPRE_CXX , 0, "CXX" , 0, 0, 0, FALSE, 0, 0, "\t\textended C++ program"},
|
|
{IN_SW_GPRE_CPLUSPLUS, 0, "CPLUSPLUS" , 0, 0, 0, FALSE, 0, 0, "\textended C++ program"},
|
|
{IN_SW_GPRE_D , 0, "DATABASE" , 0, 0, 0, FALSE, 0, 0, "\tdatabase declaration requires database name"},
|
|
|
|
{IN_SW_GPRE_D_FLOAT , 0, "D_FLOAT" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate blr_d_float for doubles"},
|
|
{IN_SW_GPRE_E , 0, "EITHER_CASE" , 0, 0, 0, FALSE, 0, 0, "\taccept upper or lower case DML in C"},
|
|
#ifdef GPRE_FORTRAN
|
|
{IN_SW_GPRE_F , 0, "FORTRAN" , 0, 0, 0, FALSE, 0, 0, "\t\textended FORTRAN program"},
|
|
#endif
|
|
{IN_SW_GPRE_FETCH_PASS, 0, "FETCH_PASSWORD", 0, 0, 0, FALSE, 0, 0, "\tfetch password from file"},
|
|
{IN_SW_GPRE_G , 0, "GDS" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_GXX , 0, "GDS_CXX" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_I , 0, "IDENTIFIERS" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_I , 0, "IDS" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_INTERP , 0, "CHARSET" , 0, 0, 0, FALSE, 0, 0, "\t\tDefault character set & format"},
|
|
{IN_SW_GPRE_INTERP , 0, "INTERPRETATION", 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_LANG_INTERNAL , 0, "LANG_INTERNAL" , 0, 0, 0, FALSE, 0, 0, "\tinternal language only"},
|
|
{IN_SW_GPRE_M , 0, "MANUAL" , 0, 0, 0, FALSE, 0, 0, "\t\tdo not automatically ATTACH to a database"},
|
|
{IN_SW_GPRE_N , 0, "NO_LINES" , 0, 0, 0, FALSE, 0, 0, "\tdo not generate C debug lines"},
|
|
{IN_SW_GPRE_O , 0, "OUTPUT" , 0, 0, 0, FALSE, 0, 0, "\t\tsend output to standard out"},
|
|
#ifdef GPRE_PASCAL
|
|
{IN_SW_GPRE_P , 0, "PASCAL" , 0, 0, 0, FALSE, 0, 0, "\t\textended PASCAL program"},
|
|
#endif
|
|
{IN_SW_GPRE_PASSWORD, 0, "PASSWORD" , 0, 0, 0, FALSE, 0, 0, "\tdefault password"},
|
|
{IN_SW_GPRE_R , 0, "RAW" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate unformatted binary BLR"},
|
|
{IN_SW_GPRE_SQLDIALECT, 0, "SQL_DIALECT", 0, 0, 0, FALSE, 0, 0, "\tSQL dialect to use"},
|
|
{IN_SW_GPRE_S , 0, "STRINGS" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
{IN_SW_GPRE_SQLDA , 0, "SQLDA" , 0, 0, 0, FALSE, 0, 0, "\t\t***** Deprecated feature. ********"},
|
|
{IN_SW_GPRE_T , 0, "TRACE" , 0, 0, 0, FALSE, 0, 0, NULL},
|
|
#ifdef TRUSTED_AUTH
|
|
{IN_SW_GPRE_TRUSTED , 0, "TRUSTED" , 0, 0, 0, FALSE, 0, 0, "\t\tuse trusted authentication"},
|
|
#endif
|
|
{IN_SW_GPRE_USER , 0, "USER" , 0, 0, 0, FALSE, 0, 0, "\t\tdefault user name"},
|
|
/* FSG 14.Nov.2000 */
|
|
{IN_SW_GPRE_VERBOSE , 0, "VERBOSE" , 0, 0, 0, FALSE, 0, 0, "\t\tVerbose Output to stderr"},
|
|
{IN_SW_GPRE_X , 0, "X" , 0, 0, 0, FALSE, 0, 0, "\t\tEXTERNAL database (used with -DATABASE)"},
|
|
#ifdef GPRE_COBOL
|
|
{IN_SW_GPRE_COB , 0, "COB" , 0, 0, 0, FALSE, 0, 0, "\t\textended COBOL program"},
|
|
{IN_SW_GPRE_ANSI , 0, "ANSI" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate ANSI85 compatible COBOL"},
|
|
{IN_SW_GPRE_RMCOBOL , 0, "RMC" , 0, 0, 0, FALSE, 0, 0, "\t\tRM/Cobol"},
|
|
#endif
|
|
{IN_SW_GPRE_Z , 0, "Z" , 0, 0, 0, FALSE, 0, 0, "\t\tprint software version"},
|
|
{IN_SW_GPRE_BASE , 0, "BASE" , 0, 0, 0, FALSE, 0, 0, "\t\tbase directory for compiletime DB"},
|
|
#ifdef GPRE_COBOL
|
|
{IN_SW_GPRE_DATE_FMT, 0, "DFM" , 0, 0, 0, FALSE, 0, 0, "\t\tCobol date format"},
|
|
#endif
|
|
{IN_SW_NO_QLI , 0, "NOQLI" , 0, 0, 0, FALSE, 0, 0, "\t\tsupress QLI syntax"},
|
|
{IN_SW_GPRE_0 , 0, NULL , 0, 0, 0, FALSE, 0, 0, NULL}
|
|
};
|