mirror of https://github.com/acidanthera/audk.git
360 lines
9.1 KiB
C
360 lines
9.1 KiB
C
|
#ifndef PCCTS_CONFIG_H
|
||
|
#define PCCTS_CONFIG_H
|
||
|
/*
|
||
|
* pcctscfg.h (formerly config.h) (for ANTLR, DLG, and SORCERER)
|
||
|
*
|
||
|
* This is a simple configuration file that doesn't have config stuff
|
||
|
* in it, but it's a start.
|
||
|
*
|
||
|
* SOFTWARE RIGHTS
|
||
|
*
|
||
|
* We reserve no LEGAL rights to the Purdue Compiler Construction Tool
|
||
|
* Set (PCCTS) -- PCCTS is in the public domain. An individual or
|
||
|
* company may do whatever they wish with source code distributed with
|
||
|
* PCCTS or the code generated by PCCTS, including the incorporation of
|
||
|
* PCCTS, or its output, into commerical software.
|
||
|
*
|
||
|
* We encourage users to develop software with PCCTS. However, we do ask
|
||
|
* that credit is given to us for developing PCCTS. By "credit",
|
||
|
* we mean that if you incorporate our source code into one of your
|
||
|
* programs (commercial product, research project, or otherwise) that you
|
||
|
* acknowledge this fact somewhere in the documentation, research report,
|
||
|
* etc... If you like PCCTS and have developed a nice tool with the
|
||
|
* output, please mention that you developed it using PCCTS. In
|
||
|
* addition, we ask that this header remain intact in our source code.
|
||
|
* As long as these guidelines are kept, we expect to continue enhancing
|
||
|
* this system and expect to make other tools available as they are
|
||
|
* completed.
|
||
|
*
|
||
|
* Used by PCCTS 1.33 (SORCERER 1.00B11 and up)
|
||
|
* Terence Parr
|
||
|
* Parr Research Corporation
|
||
|
* with Purdue University and AHPCRC, University of Minnesota
|
||
|
* 1989-2000
|
||
|
*/
|
||
|
|
||
|
/* This file knows about the following ``environments''
|
||
|
UNIX (default)
|
||
|
DOS (use #define PC)
|
||
|
MAC (use #define MPW; has a few things for THINK C, Metrowerks)
|
||
|
MS/C++ (MR14 Microsoft Visual C++ environment uses symbol _MSC_VER)
|
||
|
|
||
|
*/
|
||
|
|
||
|
/* should test __STDC__ for 1, but some compilers don't set value, just def */
|
||
|
|
||
|
#ifndef __USE_PROTOS
|
||
|
#ifdef __STDC__
|
||
|
#define __USE_PROTOS
|
||
|
#endif
|
||
|
#ifdef __cplusplus
|
||
|
#define __USE_PROTOS
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef PCCTS_USE_NAMESPACE_STD
|
||
|
#define PCCTS_NAMESPACE_STD namespace std {}; using namespace std;
|
||
|
#else
|
||
|
#define PCCTS_NAMESPACE_STD
|
||
|
#endif
|
||
|
|
||
|
#include "pccts_stdio.h"
|
||
|
#include "pccts_stdlib.h"
|
||
|
|
||
|
/* largest file name size */
|
||
|
|
||
|
#ifdef _MAX_PATH
|
||
|
#define MaxFileName _MAX_PATH /* MR9 RJV: MAX_PATH defined in stdlib.h (MSVC++ 5.0) */
|
||
|
#else
|
||
|
#define MaxFileName 300
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* Define PC32 if in a 32-bit PC environment (e.g. extended DOS or Win32).
|
||
|
* The macros tested here are defined by Watcom, Microsoft, Borland,
|
||
|
* and djgpp, respectively, when they are used as 32-bit compilers.
|
||
|
* Users of these compilers *must* be sure to define PC in their
|
||
|
* makefiles for this to work correctly.
|
||
|
*/
|
||
|
#ifdef PC
|
||
|
# if (defined(__WATCOMC__) || defined(_WIN32) || defined(__WIN32__) || \
|
||
|
defined(__GNUC__) || defined(__GNUG__))
|
||
|
# ifndef PC32
|
||
|
# define PC32
|
||
|
# endif
|
||
|
# endif
|
||
|
#endif
|
||
|
|
||
|
/* MR1 10-Apr-97 Default for PC is short file names */
|
||
|
/* MR1 Default for non-PC is long file names */
|
||
|
/* MR1 Can override via command line option LONGFILENAMES */
|
||
|
|
||
|
#ifndef LONGFILENAMES
|
||
|
#ifndef PC
|
||
|
#define LONGFILENAMES
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef LONGFILENAMES
|
||
|
#define ATOKEN_H "AToken.h"
|
||
|
#define ATOKPTR_H "ATokPtr.h"
|
||
|
#define ATOKPTR_IMPL_H "ATokPtrIm.h"
|
||
|
#define ATOKENBUFFER_H "ATokBuf.h"
|
||
|
#define ATOKENBUFFER_C "ATokBuf.cpp"
|
||
|
#define ATOKENSTREAM_H "ATokStr.h"
|
||
|
#define APARSER_H "AParser.h"
|
||
|
#define APARSER_C "AParser.cpp"
|
||
|
#define ASTBASE_H "ASTBase.h"
|
||
|
#define ASTBASE_C "ASTBase.cpp"
|
||
|
#define PCCTSAST_C "PCCTSAST.cpp"
|
||
|
#define LIST_C "List.cpp"
|
||
|
#define DLEXERBASE_H "DLexBase.h"
|
||
|
#define DLEXERBASE_C "DLexBase.cpp"
|
||
|
#define DLEXER_H "DLexer.h"
|
||
|
#define STREESUPPORT_C "STreeSup.C"
|
||
|
#else
|
||
|
#define ATOKEN_H "AToken.h"
|
||
|
#define ATOKPTR_H "ATokPtr.h"
|
||
|
#define ATOKPTR_IMPL_H "ATokPtrImpl.h"
|
||
|
#define ATOKENBUFFER_H "ATokenBuffer.h"
|
||
|
#define ATOKENBUFFER_C "ATokenBuffer.cpp"
|
||
|
#define ATOKENSTREAM_H "ATokenStream.h"
|
||
|
#define APARSER_H "AParser.h"
|
||
|
#define APARSER_C "AParser.cpp"
|
||
|
#define ASTBASE_H "ASTBase.h"
|
||
|
#define ASTBASE_C "ASTBase.cpp"
|
||
|
#define PCCTSAST_C "PCCTSAST.cpp"
|
||
|
#define LIST_C "List.cpp"
|
||
|
#define DLEXERBASE_H "DLexerBase.h"
|
||
|
#define DLEXERBASE_C "DLexerBase.cpp"
|
||
|
#define DLEXER_H "DLexer.h"
|
||
|
#define STREESUPPORT_C "STreeSupport.cpp"
|
||
|
#endif
|
||
|
|
||
|
/* SORCERER Stuff */
|
||
|
|
||
|
/* MR8 6-Aug-97 Change from ifdef PC to ifndef LONGFILENAMES */
|
||
|
|
||
|
#ifndef LONGFILENAMES
|
||
|
#define STPARSER_H "STreePar.h"
|
||
|
#define STPARSER_C "STreePar.C"
|
||
|
#else
|
||
|
#define STPARSER_H "STreeParser.h"
|
||
|
#define STPARSER_C "STreeParser.cpp"
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
#define CPP_FILE_SUFFIX ".cp"
|
||
|
#define CPP_FILE_SUFFIX_NO_DOT "cp"
|
||
|
#define OBJ_FILE_SUFFIX ".o"
|
||
|
#else
|
||
|
#ifdef PC
|
||
|
#define CPP_FILE_SUFFIX ".cpp"
|
||
|
#define CPP_FILE_SUFFIX_NO_DOT "cpp"
|
||
|
#define OBJ_FILE_SUFFIX ".obj"
|
||
|
#else
|
||
|
#ifdef __VMS
|
||
|
#define CPP_FILE_SUFFIX ".cpp"
|
||
|
#define CPP_FILE_SUFFIX_NO_DOT "cpp"
|
||
|
#define OBJ_FILE_SUFFIX ".obj"
|
||
|
#else
|
||
|
#define CPP_FILE_SUFFIX ".cpp"
|
||
|
#define CPP_FILE_SUFFIX_NO_DOT "cpp"
|
||
|
#define OBJ_FILE_SUFFIX ".o"
|
||
|
#endif
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* User may redefine how line information looks */ /* make it #line MR7 */
|
||
|
/* MR21 Use #ifndef */
|
||
|
|
||
|
#ifndef LineInfoFormatStr
|
||
|
#define LineInfoFormatStr "#line %d \"%s\"\n"
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW /* Macintosh Programmer's Workshop */
|
||
|
#define ErrHdr "File \"%s\"; Line %d #"
|
||
|
#else
|
||
|
#ifdef _MSC_VER /* MR14 Microsoft Visual C++ environment */
|
||
|
#define ErrHdr "%s(%d) :"
|
||
|
#else
|
||
|
#define ErrHdr "%s, line %d:" /* default */
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* must assume old K&R cpp here, can't use #if defined(..)... */
|
||
|
|
||
|
#ifdef MPW
|
||
|
#define TopDirectory ":"
|
||
|
#define DirectorySymbol ":"
|
||
|
#define OutputDirectoryOption "Directory where all output files should go (default=\":\")"
|
||
|
#else
|
||
|
#ifdef PC
|
||
|
#define TopDirectory "."
|
||
|
#define DirectorySymbol "\\"
|
||
|
#define OutputDirectoryOption "Directory where all output files should go (default=\".\")"
|
||
|
#else
|
||
|
#ifdef __VMS
|
||
|
#define TopDirectory "[000000]"
|
||
|
#define DirectorySymbol "]"
|
||
|
#define OutputDirectoryOption "Directory where all output files should go (default=\"[]\")"
|
||
|
#else
|
||
|
#define TopDirectory "."
|
||
|
#define DirectorySymbol "/"
|
||
|
#define OutputDirectoryOption "Directory where all output files should go (default=\".\")"
|
||
|
#endif
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
|
||
|
/* Make sure we have prototypes for all functions under MPW */
|
||
|
|
||
|
#include "pccts_string.h"
|
||
|
#include "pccts_stdlib.h"
|
||
|
|
||
|
/* MR6 2-Jun-97 Fixes false dependency caused by VC++ #include scanner */
|
||
|
/* MR6 Reported by Brad Schick (schick@interaccess.com) */
|
||
|
#define MPW_CursorCtl_Header <CursorCtl.h>
|
||
|
#include MPW_CursorCtl_Header
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
extern void fsetfileinfo (const char *filename, unsigned long newcreator, unsigned long newtype);
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
/* File creators for various popular development environments */
|
||
|
|
||
|
#define MAC_FILE_CREATOR 'MPS ' /* MPW Text files */
|
||
|
#if 0
|
||
|
#define MAC_FILE_CREATOR 'KAHL' /* THINK C/Symantec C++ Text files */
|
||
|
#endif
|
||
|
#if 0
|
||
|
#define MAC_FILE_CREATOR 'CWIE' /* Metrowerks C/C++ Text files */
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
#define DAWDLE SpinCursor(1)
|
||
|
#else
|
||
|
#define DAWDLE
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
#define SPECIAL_INITS
|
||
|
#define SPECIAL_FOPEN
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
#ifdef __cplusplus
|
||
|
inline
|
||
|
#else
|
||
|
static
|
||
|
#endif
|
||
|
void special_inits()
|
||
|
{
|
||
|
InitCursorCtl((acurHandle) 0);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#ifdef MPW
|
||
|
#ifdef __cplusplus
|
||
|
inline
|
||
|
#else
|
||
|
static
|
||
|
#endif
|
||
|
void special_fopen_actions(char * s)
|
||
|
{
|
||
|
fsetfileinfo (s, MAC_FILE_CREATOR, 'TEXT');
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
/* Define usable bits for set.c stuff */
|
||
|
#define BytesPerWord sizeof(unsigned)
|
||
|
#define WORDSIZE (sizeof(unsigned)*8)
|
||
|
#define LogWordSize (WORDSIZE==16?4:5)
|
||
|
|
||
|
#ifndef TRUE
|
||
|
#define TRUE 1
|
||
|
#endif
|
||
|
#ifndef FALSE
|
||
|
#define FALSE 0
|
||
|
#endif
|
||
|
|
||
|
#if defined(VAXC) || defined(__VMS)
|
||
|
#include <ssdef.h>
|
||
|
#define PCCTS_EXIT_SUCCESS 1
|
||
|
#define PCCTS_EXIT_FAILURE SS$_ABORT
|
||
|
#define zzDIE return SS$_ABORT;
|
||
|
#define zzDONE return 1;
|
||
|
|
||
|
#else /* !VAXC and !__VMS */
|
||
|
|
||
|
#define PCCTS_EXIT_SUCCESS 0
|
||
|
#define PCCTS_EXIT_FAILURE 1
|
||
|
#define zzDIE return 1;
|
||
|
#define zzDONE return 0;
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#ifdef USER_ZZMODE_STACK
|
||
|
# ifndef ZZSTACK_MAX_MODE
|
||
|
# define ZZSTACK_MAX_MODE 32
|
||
|
# endif
|
||
|
# define ZZMAXSTK (ZZSTACK_MAX_MODE * 2)
|
||
|
#endif
|
||
|
|
||
|
#ifndef DllExportPCCTS
|
||
|
#define DllExportPCCTS
|
||
|
#endif
|
||
|
|
||
|
#ifdef PC
|
||
|
#ifndef PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#define PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef PC32
|
||
|
#ifndef PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#define PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef __VMS
|
||
|
#ifndef PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#define PCCTS_CASE_INSENSITIVE_FILE_NAME
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef __USE_PROTOS
|
||
|
#ifndef PCCTS_USE_STDARG
|
||
|
#define PCCTS_USE_STDARG
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef __STDC__
|
||
|
#ifndef PCCTS_USE_STDARG
|
||
|
#define PCCTS_USE_STDARG
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
#ifndef PCCTS_USE_STDARG
|
||
|
#define PCCTS_USE_STDARG
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef _MSC_VER
|
||
|
/*Turn off the warnings for:
|
||
|
unreferenced inline/local function has been removed
|
||
|
*/
|
||
|
#pragma warning(disable : 4514)
|
||
|
/* function not expanded */
|
||
|
#pragma warning(disable : 4710)
|
||
|
#endif
|
||
|
|
||
|
#endif
|