8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 21:23:04 +01:00
firebird-mirror/src/gpre/gpreswi.h

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}
};