1 /* A Bison parser, made by GNU Bison 3.7.6.  */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
35    especially those whose name start with YY_ or yy_.  They are
36    private implementation details that can be changed or removed.  */
37 
38 #ifndef YY_YY_SCANNERPARSER_H_INCLUDED
39 # define YY_YY_SCANNERPARSER_H_INCLUDED
40 /* Debug traces.  */
41 #ifndef YYDEBUG
42 # define YYDEBUG 0
43 #endif
44 #if YYDEBUG
45 extern int yydebug;
46 #endif
47 
48 /* Token kinds.  */
49 #ifndef YYTOKENTYPE
50 # define YYTOKENTYPE
51   enum yytokentype
52   {
53     YYEMPTY = -2,
54     YYEOF = 0,                     /* "end of file"  */
55     YYerror = 256,                 /* error  */
56     YYUNDEF = 257,                 /* "invalid token"  */
57     IDENTIFIER = 258,              /* "identifier"  */
58     TYPEDEF_NAME = 259,            /* "typedef-name"  */
59     INTEGER = 260,                 /* INTEGER  */
60     FLOATING = 261,                /* FLOATING  */
61     CHARACTER = 262,               /* CHARACTER  */
62     STRING = 263,                  /* STRING  */
63     ELLIPSIS = 264,                /* ELLIPSIS  */
64     ADDEQ = 265,                   /* ADDEQ  */
65     SUBEQ = 266,                   /* SUBEQ  */
66     MULEQ = 267,                   /* MULEQ  */
67     DIVEQ = 268,                   /* DIVEQ  */
68     MODEQ = 269,                   /* MODEQ  */
69     XOREQ = 270,                   /* XOREQ  */
70     ANDEQ = 271,                   /* ANDEQ  */
71     OREQ = 272,                    /* OREQ  */
72     SL = 273,                      /* SL  */
73     SR = 274,                      /* SR  */
74     SLEQ = 275,                    /* SLEQ  */
75     SREQ = 276,                    /* SREQ  */
76     EQ = 277,                      /* EQ  */
77     NOTEQ = 278,                   /* NOTEQ  */
78     LTEQ = 279,                    /* LTEQ  */
79     GTEQ = 280,                    /* GTEQ  */
80     ANDAND = 281,                  /* ANDAND  */
81     OROR = 282,                    /* OROR  */
82     PLUSPLUS = 283,                /* PLUSPLUS  */
83     MINUSMINUS = 284,              /* MINUSMINUS  */
84     ARROW = 285,                   /* ARROW  */
85     AUTO = 286,                    /* AUTO  */
86     BOOL = 287,                    /* BOOL  */
87     BREAK = 288,                   /* BREAK  */
88     CASE = 289,                    /* CASE  */
89     CHAR = 290,                    /* CHAR  */
90     CONST = 291,                   /* CONST  */
91     CONTINUE = 292,                /* CONTINUE  */
92     DEFAULT = 293,                 /* DEFAULT  */
93     DO = 294,                      /* DO  */
94     DOUBLE = 295,                  /* DOUBLE  */
95     ELSE = 296,                    /* ELSE  */
96     ENUM = 297,                    /* ENUM  */
97     EXTERN = 298,                  /* EXTERN  */
98     FLOAT = 299,                   /* FLOAT  */
99     FOR = 300,                     /* FOR  */
100     GOTO = 301,                    /* GOTO  */
101     IF = 302,                      /* IF  */
102     INLINE = 303,                  /* INLINE  */
103     INT = 304,                     /* INT  */
104     LONG = 305,                    /* LONG  */
105     REGISTER = 306,                /* REGISTER  */
106     RESTRICT = 307,                /* RESTRICT  */
107     RETURN = 308,                  /* RETURN  */
108     SHORT = 309,                   /* SHORT  */
109     SIGNED = 310,                  /* SIGNED  */
110     SIZEOF = 311,                  /* SIZEOF  */
111     STATIC = 312,                  /* STATIC  */
112     STRUCT = 313,                  /* STRUCT  */
113     SWITCH = 314,                  /* SWITCH  */
114     TYPEDEF = 315,                 /* TYPEDEF  */
115     UNION = 316,                   /* UNION  */
116     UNSIGNED = 317,                /* UNSIGNED  */
117     VOID = 318,                    /* VOID  */
118     VOLATILE = 319,                /* VOLATILE  */
119     WHILE = 320,                   /* WHILE  */
120     FUNCTION_MACRO = 321,          /* FUNCTION_MACRO  */
121     OBJECT_MACRO = 322             /* OBJECT_MACRO  */
122   };
123   typedef enum yytokentype yytoken_kind_t;
124 #endif
125 /* Token kinds.  */
126 #define YYEMPTY -2
127 #define YYEOF 0
128 #define YYerror 256
129 #define YYUNDEF 257
130 #define IDENTIFIER 258
131 #define TYPEDEF_NAME 259
132 #define INTEGER 260
133 #define FLOATING 261
134 #define CHARACTER 262
135 #define STRING 263
136 #define ELLIPSIS 264
137 #define ADDEQ 265
138 #define SUBEQ 266
139 #define MULEQ 267
140 #define DIVEQ 268
141 #define MODEQ 269
142 #define XOREQ 270
143 #define ANDEQ 271
144 #define OREQ 272
145 #define SL 273
146 #define SR 274
147 #define SLEQ 275
148 #define SREQ 276
149 #define EQ 277
150 #define NOTEQ 278
151 #define LTEQ 279
152 #define GTEQ 280
153 #define ANDAND 281
154 #define OROR 282
155 #define PLUSPLUS 283
156 #define MINUSMINUS 284
157 #define ARROW 285
158 #define AUTO 286
159 #define BOOL 287
160 #define BREAK 288
161 #define CASE 289
162 #define CHAR 290
163 #define CONST 291
164 #define CONTINUE 292
165 #define DEFAULT 293
166 #define DO 294
167 #define DOUBLE 295
168 #define ELSE 296
169 #define ENUM 297
170 #define EXTERN 298
171 #define FLOAT 299
172 #define FOR 300
173 #define GOTO 301
174 #define IF 302
175 #define INLINE 303
176 #define INT 304
177 #define LONG 305
178 #define REGISTER 306
179 #define RESTRICT 307
180 #define RETURN 308
181 #define SHORT 309
182 #define SIGNED 310
183 #define SIZEOF 311
184 #define STATIC 312
185 #define STRUCT 313
186 #define SWITCH 314
187 #define TYPEDEF 315
188 #define UNION 316
189 #define UNSIGNED 317
190 #define VOID 318
191 #define VOLATILE 319
192 #define WHILE 320
193 #define FUNCTION_MACRO 321
194 #define OBJECT_MACRO 322
195 
196 /* Value type.  */
197 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
198 union YYSTYPE
199 {
200 #line 190 "scannerparser.y"
201 
202   char *str;
203   GList *list;
204   CSymbol *symbol;
205   CType *ctype;
206   StorageClassSpecifier storage_class_specifier;
207   TypeQualifier type_qualifier;
208   FunctionSpecifier function_specifier;
209   UnaryOperator unary_operator;
210 
211 #line 212 "scannerparser.h"
212 
213 };
214 typedef union YYSTYPE YYSTYPE;
215 # define YYSTYPE_IS_TRIVIAL 1
216 # define YYSTYPE_IS_DECLARED 1
217 #endif
218 
219 
220 extern YYSTYPE yylval;
221 
222 int yyparse (GIGenerator* igenerator);
223 
224 #endif /* !YY_YY_SCANNERPARSER_H_INCLUDED  */
225