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