1 /* A Bison parser, made by GNU Bison 2.6.2. */ 2 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 #ifndef QC_YY_QC_PARSE_H 34 # define QC_YY_QC_PARSE_H 35 /* Enabling traces. */ 36 #ifndef QC_YYDEBUG 37 # if defined YYDEBUG 38 # if YYDEBUG 39 # define QC_YYDEBUG 1 40 # else 41 # define QC_YYDEBUG 0 42 # endif 43 # else /* ! defined YYDEBUG */ 44 # define QC_YYDEBUG 0 45 # endif /* ! defined QC_YYDEBUG */ 46 #endif /* ! defined QC_YYDEBUG */ 47 #if QC_YYDEBUG 48 extern int qc_yydebug; 49 #endif 50 51 /* Tokens. */ 52 #ifndef QC_YYTOKENTYPE 53 # define QC_YYTOKENTYPE 54 /* Put the tokens into the symbol table, so that GDB and other debuggers 55 know about them. */ 56 enum qc_yytokentype { 57 LOW = 258, 58 IFX = 259, 59 ELSE = 260, 60 BREAK_PRIMARY = 261, 61 CLASS_NOT_CATEGORY = 262, 62 STORAGEX = 263, 63 COMMA = 264, 64 PAS = 265, 65 ASX = 266, 66 OR = 267, 67 AND = 268, 68 NE = 269, 69 EQ = 270, 70 GT = 271, 71 LT = 272, 72 GE = 273, 73 LE = 274, 74 SHR = 275, 75 SHL = 276, 76 INCOP = 277, 77 UNARY = 278, 78 SIZEOF = 279, 79 HYPERUNARY = 280, 80 CLASS_NAME = 281, 81 NAME = 282, 82 VALUE = 283, 83 STRING = 284, 84 LOCAL = 285, 85 RETURN = 286, 86 WHILE = 287, 87 DO = 288, 88 IF = 289, 89 FOR = 290, 90 BREAK = 291, 91 CONTINUE = 292, 92 ELLIPSIS = 293, 93 NIL = 294, 94 IFBE = 295, 95 IFB = 296, 96 IFAE = 297, 97 IFA = 298, 98 SWITCH = 299, 99 CASE = 300, 100 DEFAULT = 301, 101 ENUM = 302, 102 TYPEDEF = 303, 103 ARGS = 304, 104 EXTERN = 305, 105 STATIC = 306, 106 SYSTEM = 307, 107 NOSAVE = 308, 108 OVERLOAD = 309, 109 STRUCT = 310, 110 TYPE = 311, 111 OBJECT = 312, 112 TYPE_NAME = 313, 113 CLASS = 314, 114 DEFS = 315, 115 ENCODE = 316, 116 END = 317, 117 IMPLEMENTATION = 318, 118 INTERFACE = 319, 119 PRIVATE = 320, 120 PROTECTED = 321, 121 PROTOCOL = 322, 122 PUBLIC = 323, 123 SELECTOR = 324, 124 REFERENCE = 325, 125 SELF = 326, 126 THIS = 327 127 }; 128 #endif 129 /* Tokens. */ 130 #define LOW 258 131 #define IFX 259 132 #define ELSE 260 133 #define BREAK_PRIMARY 261 134 #define CLASS_NOT_CATEGORY 262 135 #define STORAGEX 263 136 #define COMMA 264 137 #define PAS 265 138 #define ASX 266 139 #define OR 267 140 #define AND 268 141 #define NE 269 142 #define EQ 270 143 #define GT 271 144 #define LT 272 145 #define GE 273 146 #define LE 274 147 #define SHR 275 148 #define SHL 276 149 #define INCOP 277 150 #define UNARY 278 151 #define SIZEOF 279 152 #define HYPERUNARY 280 153 #define CLASS_NAME 281 154 #define NAME 282 155 #define VALUE 283 156 #define STRING 284 157 #define LOCAL 285 158 #define RETURN 286 159 #define WHILE 287 160 #define DO 288 161 #define IF 289 162 #define FOR 290 163 #define BREAK 291 164 #define CONTINUE 292 165 #define ELLIPSIS 293 166 #define NIL 294 167 #define IFBE 295 168 #define IFB 296 169 #define IFAE 297 170 #define IFA 298 171 #define SWITCH 299 172 #define CASE 300 173 #define DEFAULT 301 174 #define ENUM 302 175 #define TYPEDEF 303 176 #define ARGS 304 177 #define EXTERN 305 178 #define STATIC 306 179 #define SYSTEM 307 180 #define NOSAVE 308 181 #define OVERLOAD 309 182 #define STRUCT 310 183 #define TYPE 311 184 #define OBJECT 312 185 #define TYPE_NAME 313 186 #define CLASS 314 187 #define DEFS 315 188 #define ENCODE 316 189 #define END 317 190 #define IMPLEMENTATION 318 191 #define INTERFACE 319 192 #define PRIVATE 320 193 #define PROTECTED 321 194 #define PROTOCOL 322 195 #define PUBLIC 323 196 #define SELECTOR 324 197 #define REFERENCE 325 198 #define SELF 326 199 #define THIS 327 200 201 202 203 #if ! defined QC_YYSTYPE && ! defined QC_YYSTYPE_IS_DECLARED 204 typedef union QC_YYSTYPE 205 { 206 /* Line 2049 of yacc.c */ 207 #line 93 "../../../../tools/qfcc/source/qc-parse.y" 208 209 int op; 210 int size; 211 specifier_t spec; 212 void *pointer; // for ensuring pointer values are null 213 struct type_s *type; 214 struct expr_s *expr; 215 struct function_s *function; 216 struct switch_block_s *switch_block; 217 struct param_s *param; 218 struct method_s *method; 219 struct class_s *class; 220 struct category_s *category; 221 struct class_type_s *class_type; 222 struct protocol_s *protocol; 223 struct protocollist_s *protocol_list; 224 struct keywordarg_s *keywordarg; 225 struct methodlist_s *methodlist; 226 struct symbol_s *symbol; 227 struct symtab_s *symtab; 228 229 230 /* Line 2049 of yacc.c */ 231 #line 232 "qc-parse.h" 232 } QC_YYSTYPE; 233 # define QC_YYSTYPE_IS_TRIVIAL 1 234 # define qc_yystype QC_YYSTYPE /* obsolescent; will be withdrawn */ 235 # define QC_YYSTYPE_IS_DECLARED 1 236 #endif 237 238 extern QC_YYSTYPE qc_yylval; 239 240 #ifdef YYPARSE_PARAM 241 #if defined __STDC__ || defined __cplusplus 242 int qc_yyparse (void *YYPARSE_PARAM); 243 #else 244 int qc_yyparse (); 245 #endif 246 #else /* ! YYPARSE_PARAM */ 247 #if defined __STDC__ || defined __cplusplus 248 int qc_yyparse (void); 249 #else 250 int qc_yyparse (); 251 #endif 252 #endif /* ! YYPARSE_PARAM */ 253 254 #endif /* !QC_YY_QC_PARSE_H */ 255