1 #ifndef CONFIG_H 2 #define CONFIG_H 3 /* 4 * config.h (for ANTLR, DLG, and SORCERER) 5 * 6 * This is a simple configuration file that doesn't have config stuff 7 * in it, but it's a start. 8 * 9 * SOFTWARE RIGHTS 10 * 11 * We reserve no LEGAL rights to the Purdue Compiler Construction Tool 12 * Set (PCCTS) -- PCCTS is in the public domain. An individual or 13 * company may do whatever they wish with source code distributed with 14 * PCCTS or the code generated by PCCTS, including the incorporation of 15 * PCCTS, or its output, into commerical software. 16 * 17 * We encourage users to develop software with PCCTS. However, we do ask 18 * that credit is given to us for developing PCCTS. By "credit", 19 * we mean that if you incorporate our source code into one of your 20 * programs (commercial product, research project, or otherwise) that you 21 * acknowledge this fact somewhere in the documentation, research report, 22 * etc... If you like PCCTS and have developed a nice tool with the 23 * output, please mention that you developed it using PCCTS. In 24 * addition, we ask that this header remain intact in our source code. 25 * As long as these guidelines are kept, we expect to continue enhancing 26 * this system and expect to make other tools available as they are 27 * completed. 28 * 29 * Used by PCCTS 1.33 (SORCERER 1.00B11 and up) 30 * Terence Parr 31 * Parr Research Corporation 32 * with Purdue University and AHPCRC, University of Minnesota 33 * 1989-1995 34 */ 35 36 /* This file knows about the following ``environments'' 37 UNIX (default) 38 DOS (use #define PC) 39 MAC (use #define MPW; has a few things for THINK C, Metrowerks) 40 */ 41 42 /* should test __STDC__ for 1, but some compilers don't set value, just def */ 43 #ifdef __STDC__ 44 #define __USE_PROTOS 45 #endif 46 #ifdef __cplusplus 47 #ifndef __USE_PROTOS 48 #define __USE_PROTOS 49 #endif 50 #endif 51 52 /* 53 * Define PC32 if in a 32-bit PC environment (e.g. extended DOS or Win32). 54 * The macros tested here are defined by Watcom, Microsoft, Borland, 55 * and djgpp, respectively, when they are used as 32-bit compilers. 56 * Users of these compilers *must* be sure to define PC in their 57 * makefiles for this to work correctly. 58 */ 59 #ifdef PC 60 # if (defined(__WATCOM__) || defined(_WIN32) || defined(__WIN32__) || \ 61 defined(__GNUC__) || defined(__GNUG__)) 62 # ifndef PC32 63 # define PC32 64 # endif 65 # endif 66 #endif 67 68 #ifdef PC 69 #define ATOKEN_H "AToken.h" 70 #define ATOKPTR_H "ATokPtr.h" 71 #define ATOKPTR_C "ATokPtr.cpp" 72 #define ATOKENBUFFER_H "ATokBuf.h" 73 #define ATOKENBUFFER_C "ATokBuf.cpp" 74 #define ATOKENSTREAM_H "ATokStr.h" 75 #define APARSER_H "AParser.h" 76 #define APARSER_C "AParser.cpp" 77 #define ASTBASE_H "ASTBase.h" 78 #define ASTBASE_C "ASTBase.cpp" 79 #define PCCTSAST_C "PCCTSAST.cpp" 80 #define LIST_C "List.cpp" 81 #define DLEXERBASE_H "DLexBase.h" 82 #define DLEXERBASE_C "DLexBase.cpp" 83 #define DLEXER_C "DLexer.cpp" 84 #define STREESUPPORT_C "STreeSup.C" 85 #else 86 #define ATOKEN_H "AToken.h" 87 #define ATOKPTR_H "ATokPtr.h" 88 #define ATOKPTR_C "ATokPtr.cpp" 89 #define ATOKENBUFFER_H "ATokenBuffer.h" 90 #define ATOKENBUFFER_C "ATokenBuffer.cpp" 91 #define ATOKENSTREAM_H "ATokenStream.h" 92 #define APARSER_H "AParser.h" 93 #define APARSER_C "AParser.cpp" 94 #define ASTBASE_H "ASTBase.h" 95 #define ASTBASE_C "ASTBase.cpp" 96 #define PCCTSAST_C "PCCTSAST.cpp" 97 #define LIST_C "List.cpp" 98 #define DLEXERBASE_H "DLexerBase.h" 99 #define DLEXERBASE_C "DLexerBase.cpp" 100 #define DLEXER_C "DLexer.cpp" 101 #define STREESUPPORT_C "STreeSupport.cpp" 102 #endif 103 104 /* SORCERER Stuff */ 105 #ifdef PC 106 #define STPARSER_H "STreePar.h" 107 #define STPARSER_C "STreePar.C" 108 #else 109 #define STPARSER_H "STreeParser.h" 110 #define STPARSER_C "STreeParser.cpp" 111 #endif 112 113 #ifdef MPW 114 #define CPP_FILE_SUFFIX ".cp" 115 #define CPP_FILE_SUFFIX_NO_DOT "cp" 116 #define OBJ_FILE_SUFFIX ".o" 117 #else 118 #ifdef PC 119 #define CPP_FILE_SUFFIX ".cpp" 120 #define CPP_FILE_SUFFIX_NO_DOT "cpp" 121 #define OBJ_FILE_SUFFIX ".obj" 122 #else 123 #define CPP_FILE_SUFFIX ".cpp" 124 #define CPP_FILE_SUFFIX_NO_DOT "cpp" 125 #define OBJ_FILE_SUFFIX ".o" 126 #endif 127 #endif 128 129 /* User may redefine how line information looks */ 130 #define LineInfoFormatStr "# %d \"%s\"\n" 131 132 #ifdef MPW /* Macintosh Programmer's Workshop */ 133 #define ErrHdr "File \"%s\"; Line %d #" 134 #else 135 #define ErrHdr "%s, line %d:" 136 #endif 137 138 139 /* must assume old K&R cpp here, can't use #if defined(..)... */ 140 141 #ifdef MPW 142 #define TopDirectory ":" 143 #define DirectorySymbol ":" 144 #define OutputDirectoryOption "Directory where all output files should go (default=\":\")" 145 #else 146 #ifdef PC 147 #define TopDirectory "." 148 #define DirectorySymbol "\\" 149 #define OutputDirectoryOption "Directory where all output files should go (default=\".\")" 150 #else 151 #define TopDirectory "." 152 #define DirectorySymbol "/" 153 #define OutputDirectoryOption "Directory where all output files should go (default=\".\")" 154 #endif 155 #endif 156 157 #ifdef MPW 158 159 /* Make sure we have prototypes for all functions under MPW */ 160 161 #include <string.h> 162 #include <stdlib.h> 163 #include <CursorCtl.h> 164 #ifdef __cplusplus 165 extern "C" { 166 #endif 167 extern void fsetfileinfo (char *filename, unsigned long newcreator, unsigned long newtype); 168 #ifdef __cplusplus 169 } 170 #endif 171 172 /* File creators for various popular development environments */ 173 174 #define MAC_FILE_CREATOR 'MPS ' /* MPW Text files */ 175 #if 0 176 #define MAC_FILE_CREATOR 'KAHL' /* THINK C/Symantec C++ Text files */ 177 #endif 178 #if 0 179 #define MAC_FILE_CREATOR 'MMCC' /* Metrowerks C/C++ Text files */ 180 #endif 181 182 #endif 183 184 #ifdef MPW 185 #define DAWDLE SpinCursor(1) 186 #else 187 #define DAWDLE 188 #endif 189 190 191 /* 192 * useless definitions of special_inits() and special_fopen_actions() 193 * deleted -- GPW 1997/09/06 194 */ 195 196 /* Define usable bits for set.c stuff */ 197 #define BytesPerWord sizeof(unsigned) 198 #define WORDSIZE (sizeof(unsigned)*8) 199 #define LogWordSize (WORDSIZE==16?4:5) 200 201 #ifndef TRUE 202 #define TRUE 1 203 #endif 204 #ifndef FALSE 205 #define FALSE 0 206 #endif 207 208 #ifdef VAXC 209 #define PCCTS_EXIT_SUCCESS 1 210 #define PCCTS_EXIT_FAILURE 0 211 #define zzDIE return 0; 212 #define zzDONE return 1; 213 214 #else /* !VAXC */ 215 216 #define PCCTS_EXIT_SUCCESS 0 217 #define PCCTS_EXIT_FAILURE 1 218 #define zzDIE return 1; 219 #define zzDONE return 0; 220 221 #endif 222 223 #ifdef USER_ZZMODE_STACK 224 # ifndef ZZSTACK_MAX_MODE 225 # define ZZSTACK_MAX_MODE 32 226 # endif 227 # define ZZMAXSTK (ZZSTACK_MAX_MODE * 2) 228 #endif 229 230 #endif 231