Home | History | Annotate | Download | only in compiler
      1 /* A Bison parser, made by GNU Bison 2.3.  */
      2 
      3 /* Skeleton interface for Bison's Yacc-like parsers in C
      4 
      5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
      6    Free Software Foundation, 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 2, or (at your option)
     11    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, write to the Free Software
     20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
     21    Boston, MA 02110-1301, USA.  */
     22 
     23 /* As a special exception, you may create a larger work that contains
     24    part or all of the Bison parser skeleton and distribute that work
     25    under terms of your choice, so long as that work isn't itself a
     26    parser generator using the skeleton or a modified version thereof
     27    as a parser skeleton.  Alternatively, if you modify or redistribute
     28    the parser skeleton itself, you may (at your option) remove this
     29    special exception, which will cause the skeleton and the resulting
     30    Bison output files to be licensed under the GNU General Public
     31    License without this special exception.
     32 
     33    This special exception was added by the Free Software Foundation in
     34    version 2.2 of Bison.  */
     35 
     36 /* Tokens.  */
     37 #ifndef YYTOKENTYPE
     38 # define YYTOKENTYPE
     39    /* Put the tokens into the symbol table, so that GDB and other debuggers
     40       know about them.  */
     41    enum yytokentype {
     42      INVARIANT = 258,
     43      HIGH_PRECISION = 259,
     44      MEDIUM_PRECISION = 260,
     45      LOW_PRECISION = 261,
     46      PRECISION = 262,
     47      ATTRIBUTE = 263,
     48      CONST_QUAL = 264,
     49      BOOL_TYPE = 265,
     50      FLOAT_TYPE = 266,
     51      INT_TYPE = 267,
     52      BREAK = 268,
     53      CONTINUE = 269,
     54      DO = 270,
     55      ELSE = 271,
     56      FOR = 272,
     57      IF = 273,
     58      DISCARD = 274,
     59      RETURN = 275,
     60      BVEC2 = 276,
     61      BVEC3 = 277,
     62      BVEC4 = 278,
     63      IVEC2 = 279,
     64      IVEC3 = 280,
     65      IVEC4 = 281,
     66      VEC2 = 282,
     67      VEC3 = 283,
     68      VEC4 = 284,
     69      MATRIX2 = 285,
     70      MATRIX3 = 286,
     71      MATRIX4 = 287,
     72      IN_QUAL = 288,
     73      OUT_QUAL = 289,
     74      INOUT_QUAL = 290,
     75      UNIFORM = 291,
     76      VARYING = 292,
     77      STRUCT = 293,
     78      VOID_TYPE = 294,
     79      WHILE = 295,
     80      SAMPLER2D = 296,
     81      SAMPLERCUBE = 297,
     82      IDENTIFIER = 298,
     83      TYPE_NAME = 299,
     84      FLOATCONSTANT = 300,
     85      INTCONSTANT = 301,
     86      BOOLCONSTANT = 302,
     87      FIELD_SELECTION = 303,
     88      LEFT_OP = 304,
     89      RIGHT_OP = 305,
     90      INC_OP = 306,
     91      DEC_OP = 307,
     92      LE_OP = 308,
     93      GE_OP = 309,
     94      EQ_OP = 310,
     95      NE_OP = 311,
     96      AND_OP = 312,
     97      OR_OP = 313,
     98      XOR_OP = 314,
     99      MUL_ASSIGN = 315,
    100      DIV_ASSIGN = 316,
    101      ADD_ASSIGN = 317,
    102      MOD_ASSIGN = 318,
    103      LEFT_ASSIGN = 319,
    104      RIGHT_ASSIGN = 320,
    105      AND_ASSIGN = 321,
    106      XOR_ASSIGN = 322,
    107      OR_ASSIGN = 323,
    108      SUB_ASSIGN = 324,
    109      LEFT_PAREN = 325,
    110      RIGHT_PAREN = 326,
    111      LEFT_BRACKET = 327,
    112      RIGHT_BRACKET = 328,
    113      LEFT_BRACE = 329,
    114      RIGHT_BRACE = 330,
    115      DOT = 331,
    116      COMMA = 332,
    117      COLON = 333,
    118      EQUAL = 334,
    119      SEMICOLON = 335,
    120      BANG = 336,
    121      DASH = 337,
    122      TILDE = 338,
    123      PLUS = 339,
    124      STAR = 340,
    125      SLASH = 341,
    126      PERCENT = 342,
    127      LEFT_ANGLE = 343,
    128      RIGHT_ANGLE = 344,
    129      VERTICAL_BAR = 345,
    130      CARET = 346,
    131      AMPERSAND = 347,
    132      QUESTION = 348
    133    };
    134 #endif
    135 /* Tokens.  */
    136 #define INVARIANT 258
    137 #define HIGH_PRECISION 259
    138 #define MEDIUM_PRECISION 260
    139 #define LOW_PRECISION 261
    140 #define PRECISION 262
    141 #define ATTRIBUTE 263
    142 #define CONST_QUAL 264
    143 #define BOOL_TYPE 265
    144 #define FLOAT_TYPE 266
    145 #define INT_TYPE 267
    146 #define BREAK 268
    147 #define CONTINUE 269
    148 #define DO 270
    149 #define ELSE 271
    150 #define FOR 272
    151 #define IF 273
    152 #define DISCARD 274
    153 #define RETURN 275
    154 #define BVEC2 276
    155 #define BVEC3 277
    156 #define BVEC4 278
    157 #define IVEC2 279
    158 #define IVEC3 280
    159 #define IVEC4 281
    160 #define VEC2 282
    161 #define VEC3 283
    162 #define VEC4 284
    163 #define MATRIX2 285
    164 #define MATRIX3 286
    165 #define MATRIX4 287
    166 #define IN_QUAL 288
    167 #define OUT_QUAL 289
    168 #define INOUT_QUAL 290
    169 #define UNIFORM 291
    170 #define VARYING 292
    171 #define STRUCT 293
    172 #define VOID_TYPE 294
    173 #define WHILE 295
    174 #define SAMPLER2D 296
    175 #define SAMPLERCUBE 297
    176 #define IDENTIFIER 298
    177 #define TYPE_NAME 299
    178 #define FLOATCONSTANT 300
    179 #define INTCONSTANT 301
    180 #define BOOLCONSTANT 302
    181 #define FIELD_SELECTION 303
    182 #define LEFT_OP 304
    183 #define RIGHT_OP 305
    184 #define INC_OP 306
    185 #define DEC_OP 307
    186 #define LE_OP 308
    187 #define GE_OP 309
    188 #define EQ_OP 310
    189 #define NE_OP 311
    190 #define AND_OP 312
    191 #define OR_OP 313
    192 #define XOR_OP 314
    193 #define MUL_ASSIGN 315
    194 #define DIV_ASSIGN 316
    195 #define ADD_ASSIGN 317
    196 #define MOD_ASSIGN 318
    197 #define LEFT_ASSIGN 319
    198 #define RIGHT_ASSIGN 320
    199 #define AND_ASSIGN 321
    200 #define XOR_ASSIGN 322
    201 #define OR_ASSIGN 323
    202 #define SUB_ASSIGN 324
    203 #define LEFT_PAREN 325
    204 #define RIGHT_PAREN 326
    205 #define LEFT_BRACKET 327
    206 #define RIGHT_BRACKET 328
    207 #define LEFT_BRACE 329
    208 #define RIGHT_BRACE 330
    209 #define DOT 331
    210 #define COMMA 332
    211 #define COLON 333
    212 #define EQUAL 334
    213 #define SEMICOLON 335
    214 #define BANG 336
    215 #define DASH 337
    216 #define TILDE 338
    217 #define PLUS 339
    218 #define STAR 340
    219 #define SLASH 341
    220 #define PERCENT 342
    221 #define LEFT_ANGLE 343
    222 #define RIGHT_ANGLE 344
    223 #define VERTICAL_BAR 345
    224 #define CARET 346
    225 #define AMPERSAND 347
    226 #define QUESTION 348
    227 
    228 
    229 
    230 
    231 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    232 typedef union YYSTYPE
    233 
    234 {
    235     struct {
    236         TSourceLoc line;
    237         union {
    238             TString *string;
    239             float f;
    240             int i;
    241             bool b;
    242         };
    243         TSymbol* symbol;
    244     } lex;
    245     struct {
    246         TSourceLoc line;
    247         TOperator op;
    248         union {
    249             TIntermNode* intermNode;
    250             TIntermNodePair nodePair;
    251             TIntermTyped* intermTypedNode;
    252             TIntermAggregate* intermAggregate;
    253         };
    254         union {
    255             TPublicType type;
    256             TPrecision precision;
    257             TQualifier qualifier;
    258             TFunction* function;
    259             TParameter param;
    260             TTypeLine typeLine;
    261             TTypeList* typeList;
    262         };
    263     } interm;
    264 }
    265 /* Line 1489 of yacc.c.  */
    266 
    267 	YYSTYPE;
    268 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    269 # define YYSTYPE_IS_DECLARED 1
    270 # define YYSTYPE_IS_TRIVIAL 1
    271 #endif
    272 
    273 
    274 
    275