1eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* A Bison parser, made by GNU Bison 3.0.4.  */
2e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens
3eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Bison implementation for Yacc-like parsers in C
4eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
5eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman   This program is free software: you can redistribute it and/or modify
8894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   it under the terms of the GNU General Public License as published by
919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman   the Free Software Foundation, either version 3 of the License, or
1019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman   (at your option) any later version.
11eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
12894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   This program is distributed in the hope that it will be useful,
13894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   but WITHOUT ANY WARRANTY; without even the implied warranty of
14894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   GNU General Public License for more details.
16eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
17894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   You should have received a copy of the GNU General Public License
1819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
20894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* As a special exception, you may create a larger work that contains
21894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   part or all of the Bison parser skeleton and distribute that work
22894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   under terms of your choice, so long as that work isn't itself a
23894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   parser generator using the skeleton or a modified version thereof
24894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   as a parser skeleton.  Alternatively, if you modify or redistribute
25894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   the parser skeleton itself, you may (at your option) remove this
26894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   special exception, which will cause the skeleton and the resulting
27894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   Bison output files to be licensed under the GNU General Public
28894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   License without this special exception.
29eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
30894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   This special exception was added by the Free Software Foundation in
31894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   version 2.2 of Bison.  */
32894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
33894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* C LALR(1) parser skeleton written by Richard Stallman, by
34894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   simplifying the original so-called "semantic" parser.  */
35894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
36894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* All symbols defined below should begin with yy or YY, to avoid
37894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   infringing on user name space.  This should be done even for local
38894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   variables, as they might otherwise be expanded by user macros.
39894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   There are some unavoidable exceptions within include files to
40894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   define necessary library symbols; they are noted "INFRINGES ON
41894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   USER NAME SPACE" below.  */
42894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Identify Bison output.  */
44894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define YYBISON 1
45894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Bison version.  */
47eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYBISON_VERSION "3.0.4"
48894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
49894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Skeleton name.  */
50894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define YYSKELETON_NAME "yacc.c"
51894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
52894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Pure parsers.  */
53894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define YYPURE 1
54894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* Push parsers.  */
5619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#define YYPUSH 0
5719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
5819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* Pull parsers.  */
5919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#define YYPULL 1
6019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
61894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
62894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
63894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
6419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* Copy the first part of user declarations.  */
6519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
6619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
670bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
6819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
690bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// Licensed under the Apache License, Version 2.0 (the "License");
700bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// you may not use this file except in compliance with the License.
710bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// You may obtain a copy of the License at
7219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
730bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens//    http://www.apache.org/licenses/LICENSE-2.0
740bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens//
750bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// Unless required by applicable law or agreed to in writing, software
760bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// distributed under the License is distributed on an "AS IS" BASIS,
770bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
780bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// See the License for the specific language governing permissions and
790bac285a78df6a6d7a6b68784748b92805420ffbNicolas Capens// limitations under the License.
8019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
8166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// This file is auto-generated by generate_parser.sh. DO NOT EDIT!
8266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
8366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Ignore errors in auto-generated code.
8466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#if defined(__GNUC__)
8566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma GCC diagnostic ignored "-Wunused-function"
8666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma GCC diagnostic ignored "-Wunused-variable"
8766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma GCC diagnostic ignored "-Wswitch-enum"
8866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#elif defined(_MSC_VER)
8966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma warning(disable: 4065)
9066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma warning(disable: 4189)
9166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma warning(disable: 4505)
9266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#pragma warning(disable: 4701)
9366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman#endif
9419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
95cc863da574ed5079b055574127fe5788a9a0fc33Nicolas Capens#include "SymbolTable.h"
96cc863da574ed5079b055574127fe5788a9a0fc33Nicolas Capens#include "ParseHelper.h"
9719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
98d4ae863d01d5f448dbbba6be4ecc161971a2324fJohn Bauman#define YYENABLE_NLS 0
99d4ae863d01d5f448dbbba6be4ecc161971a2324fJohn Bauman
10019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
10119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
102eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# ifndef YY_NULLPTR
103eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  if defined __cplusplus && 201103L <= __cplusplus
104eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   define YY_NULLPTR nullptr
105eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  else
106eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   define YY_NULLPTR 0
107eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  endif
108eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
10919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
11019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* Enabling verbose error messages.  */
11119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#ifdef YYERROR_VERBOSE
11219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman# undef YYERROR_VERBOSE
11319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman# define YYERROR_VERBOSE 1
11419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#else
11519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman# define YYERROR_VERBOSE 0
11619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#endif
11719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
118eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* In a future release of Bison, this section will be replaced
119eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   by #include "glslang_tab.h".  */
120eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_YY_GLSLANG_TAB_H_INCLUDED
121eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_YY_GLSLANG_TAB_H_INCLUDED
122eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Debug traces.  */
123eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YYDEBUG
124eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYDEBUG 0
125eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
126eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if YYDEBUG
127eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichextern int yydebug;
12819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#endif
12915ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu/* "%code requires" blocks.  */
13015ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
13115ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
13215ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu#define YYLTYPE TSourceLoc
13315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu#define YYLTYPE_IS_DECLARED 1
13415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
13515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
13615ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
137eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Token type.  */
138894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YYTOKENTYPE
139894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYTOKENTYPE
140eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  enum yytokentype
141eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  {
142eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    INVARIANT = 258,
143eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    HIGH_PRECISION = 259,
144eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MEDIUM_PRECISION = 260,
145eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LOW_PRECISION = 261,
146eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    PRECISION = 262,
147eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ATTRIBUTE = 263,
148eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    CONST_QUAL = 264,
149eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BOOL_TYPE = 265,
150eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    FLOAT_TYPE = 266,
151eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    INT_TYPE = 267,
152eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UINT_TYPE = 268,
153eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BREAK = 269,
154eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    CONTINUE = 270,
155eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DO = 271,
156eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ELSE = 272,
157eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    FOR = 273,
158eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IF = 274,
159eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DISCARD = 275,
160eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RETURN = 276,
161eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SWITCH = 277,
162eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    CASE = 278,
163eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DEFAULT = 279,
164eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BVEC2 = 280,
165eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BVEC3 = 281,
166eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BVEC4 = 282,
167eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IVEC2 = 283,
168eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IVEC3 = 284,
169eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IVEC4 = 285,
170eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VEC2 = 286,
171eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VEC3 = 287,
172eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VEC4 = 288,
173eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UVEC2 = 289,
174eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UVEC3 = 290,
175eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UVEC4 = 291,
176eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX2 = 292,
177eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX3 = 293,
178eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX4 = 294,
179eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IN_QUAL = 295,
180eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    OUT_QUAL = 296,
181eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    INOUT_QUAL = 297,
182eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UNIFORM = 298,
183eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VARYING = 299,
184eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX2x3 = 300,
185eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX3x2 = 301,
186eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX2x4 = 302,
187eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX4x2 = 303,
188eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX3x4 = 304,
189eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MATRIX4x3 = 305,
190eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    CENTROID = 306,
191eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    FLAT = 307,
192eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SMOOTH = 308,
193eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    STRUCT = 309,
194eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VOID_TYPE = 310,
195eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    WHILE = 311,
196eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER2D = 312,
197eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLERCUBE = 313,
198eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER_EXTERNAL_OES = 314,
199eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER2DRECT = 315,
200eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER2DARRAY = 316,
201eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ISAMPLER2D = 317,
202eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ISAMPLER3D = 318,
203eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ISAMPLERCUBE = 319,
204eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ISAMPLER2DARRAY = 320,
205eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    USAMPLER2D = 321,
206eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    USAMPLER3D = 322,
207eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    USAMPLERCUBE = 323,
208eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    USAMPLER2DARRAY = 324,
209eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER3D = 325,
210eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER3DRECT = 326,
211eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER2DSHADOW = 327,
212eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLERCUBESHADOW = 328,
213eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SAMPLER2DARRAYSHADOW = 329,
214eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LAYOUT = 330,
215eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    IDENTIFIER = 331,
216eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    TYPE_NAME = 332,
217eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    FLOATCONSTANT = 333,
218eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    INTCONSTANT = 334,
219eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    UINTCONSTANT = 335,
220eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BOOLCONSTANT = 336,
221eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    FIELD_SELECTION = 337,
222eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_OP = 338,
223eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_OP = 339,
224eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    INC_OP = 340,
225eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DEC_OP = 341,
226eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LE_OP = 342,
227eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    GE_OP = 343,
228eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    EQ_OP = 344,
229eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    NE_OP = 345,
230eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    AND_OP = 346,
231eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    OR_OP = 347,
232eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    XOR_OP = 348,
233eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MUL_ASSIGN = 349,
234eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DIV_ASSIGN = 350,
235eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    ADD_ASSIGN = 351,
236eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    MOD_ASSIGN = 352,
237eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_ASSIGN = 353,
238eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_ASSIGN = 354,
239eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    AND_ASSIGN = 355,
240eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    XOR_ASSIGN = 356,
241eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    OR_ASSIGN = 357,
242eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SUB_ASSIGN = 358,
243eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_PAREN = 359,
244eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_PAREN = 360,
245eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_BRACKET = 361,
246eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_BRACKET = 362,
247eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_BRACE = 363,
248eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_BRACE = 364,
249eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DOT = 365,
250eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    COMMA = 366,
251eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    COLON = 367,
252eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    EQUAL = 368,
253eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SEMICOLON = 369,
254eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    BANG = 370,
255eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    DASH = 371,
256eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    TILDE = 372,
257eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    PLUS = 373,
258eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    STAR = 374,
259eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    SLASH = 375,
260eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    PERCENT = 376,
261eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    LEFT_ANGLE = 377,
262eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    RIGHT_ANGLE = 378,
263eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    VERTICAL_BAR = 379,
264eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    CARET = 380,
265eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    AMPERSAND = 381,
266eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    QUESTION = 382
267eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  };
268894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
269894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
270eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Value type.  */
271894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
272eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
273eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichunion YYSTYPE
274894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
27519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
27619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
277894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    struct {
278894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        union {
279894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TString *string;
280894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            float f;
281894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            int i;
2822c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens            unsigned int u;
283894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            bool b;
284894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        };
285894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TSymbol* symbol;
286894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    } lex;
287894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    struct {
288894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TOperator op;
289894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        union {
290894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TIntermNode* intermNode;
291894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TIntermNodePair nodePair;
292894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TIntermTyped* intermTypedNode;
293894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TIntermAggregate* intermAggregate;
29476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu            TIntermSwitch* intermSwitch;
29576a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu            TIntermCase* intermCase;
296894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        };
297894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        union {
298894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TPublicType type;
299894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TPrecision precision;
3007d626796531874d308706c46a32942d71c85a7f8Nicolas Capens            TLayoutQualifier layoutQualifier;
301894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TQualifier qualifier;
302894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TFunction* function;
303894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TParameter param;
304a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu            TField* field;
305a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu            TFieldList* fieldList;
306894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        };
307894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    } interm;
308894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
30919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
310eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
31119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
312eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichtypedef union YYSTYPE YYSTYPE;
31319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman# define YYSTYPE_IS_TRIVIAL 1
314894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYSTYPE_IS_DECLARED 1
315894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
316894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
317eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Location type.  */
31815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
319eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichtypedef struct YYLTYPE YYLTYPE;
320eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstruct YYLTYPE
32115ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu{
32215ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  int first_line;
32315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  int first_column;
32415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  int last_line;
32515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  int last_column;
326eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
32715ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu# define YYLTYPE_IS_DECLARED 1
32815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu# define YYLTYPE_IS_TRIVIAL 1
32915ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu#endif
33015ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
331894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
332eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
333eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichint yyparse (TParseContext* context, void* yyscanner);
334eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
335eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif /* !YY_YY_GLSLANG_TAB_H_INCLUDED  */
336eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
337894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Copy the second part of user declarations.  */
338894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
339894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
34015ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetuextern int yylex(YYSTYPE* yylval, YYLTYPE* yylloc, void* yyscanner);
341eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichextern void yyerror(YYLTYPE* lloc, TParseContext* context, void* scanner, const char* reason);
34215ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
343253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu#define YYLLOC_DEFAULT(Current, Rhs, N)                      \
344253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu  do {                                                       \
345253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu      if (N) {                                         \
346253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).first_file = YYRHSLOC(Rhs, 1).first_file;  \
347253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).first_line = YYRHSLOC(Rhs, 1).first_line;  \
348253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).last_file = YYRHSLOC(Rhs, N).last_file;    \
349253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).last_line = YYRHSLOC(Rhs, N).last_line;    \
350253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu      }                                                      \
351253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu      else {                                                 \
352253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).first_file = YYRHSLOC(Rhs, 0).last_file;   \
353253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).first_line = YYRHSLOC(Rhs, 0).last_line;   \
354253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).last_file = YYRHSLOC(Rhs, 0).last_file;    \
355253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (Current).last_line = YYRHSLOC(Rhs, 0).last_line;    \
356253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu      }                                                      \
357253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu  } while (0)
358894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
359894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define FRAG_VERT_ONLY(S, L) {  \
3600a65584a1529450c476c026f3254d78efc200645Alexis Hetu    if (context->getShaderType() != GL_FRAGMENT_SHADER &&  \
3610a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->getShaderType() != GL_VERTEX_SHADER) {  \
36266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        context->error(L, " supported in vertex/fragment shaders only ", S);  \
363894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        context->recover();  \
364894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }  \
365894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
366894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
367894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define VERTEX_ONLY(S, L) {  \
3680a65584a1529450c476c026f3254d78efc200645Alexis Hetu    if (context->getShaderType() != GL_VERTEX_SHADER) {  \
36966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        context->error(L, " supported in vertex shaders only ", S);  \
370894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        context->recover();  \
371894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }  \
372894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
373894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
374894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define FRAG_ONLY(S, L) {  \
3750a65584a1529450c476c026f3254d78efc200645Alexis Hetu    if (context->getShaderType() != GL_FRAGMENT_SHADER) {  \
37666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        context->error(L, " supported in fragment shaders only ", S);  \
377894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        context->recover();  \
378894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }  \
379894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
380894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
381c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens#define ES2_ONLY(S, L) {  \
3820a65584a1529450c476c026f3254d78efc200645Alexis Hetu    if (context->getShaderVersion() != 100) {  \
383c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens        context->error(L, " supported in GLSL ES 1.00 only ", S);  \
384c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens        context->recover();  \
385c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens    }  \
386c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens}
387c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens
3883e9e208b8f2cedb9e45a369d3e8c97456336f70cAlexis Hetu#define ES3_ONLY(TOKEN, LINE, REASON) {  \
3890a65584a1529450c476c026f3254d78efc200645Alexis Hetu    if (context->getShaderVersion() != 300) {  \
3903e9e208b8f2cedb9e45a369d3e8c97456336f70cAlexis Hetu        context->error(LINE, REASON " supported in GLSL ES 3.00 only ", TOKEN);  \
391c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens        context->recover();  \
392c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens    }  \
393c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens}
394c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens
395894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
396894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
397894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef short
398894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# undef short
399894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
400894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
401894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef YYTYPE_UINT8
402894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef YYTYPE_UINT8 yytype_uint8;
403894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
404894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef unsigned char yytype_uint8;
405894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
406894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
407894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef YYTYPE_INT8
408894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef YYTYPE_INT8 yytype_int8;
409894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
410eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichtypedef signed char yytype_int8;
411894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
412894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
413894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef YYTYPE_UINT16
414894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef YYTYPE_UINT16 yytype_uint16;
415894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
416894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef unsigned short int yytype_uint16;
417894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
418894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
419894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef YYTYPE_INT16
420894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef YYTYPE_INT16 yytype_int16;
421894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
422894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumantypedef short int yytype_int16;
423894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
424894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
425894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YYSIZE_T
426894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifdef __SIZE_TYPE__
427894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSIZE_T __SIZE_TYPE__
428894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# elif defined size_t
429894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSIZE_T size_t
430eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# elif ! defined YYSIZE_T
431894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
432894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSIZE_T size_t
433894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# else
434894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSIZE_T unsigned int
435894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
436894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
437894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
438894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
439894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
440894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YY_
441eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# if defined YYENABLE_NLS && YYENABLE_NLS
442894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  if ENABLE_NLS
443894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
444eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
445894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
446894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
447894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifndef YY_
448eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YY_(Msgid) Msgid
449eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
450eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
451eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
452eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_ATTRIBUTE
453eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# if (defined __GNUC__                                               \
454eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
455eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
456eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
457eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# else
458eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YY_ATTRIBUTE(Spec) /* empty */
459eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
460eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
461eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
462eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_ATTRIBUTE_PURE
463eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
464eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
465eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
466eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_ATTRIBUTE_UNUSED
467eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
468eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
469eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
470eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if !defined _Noreturn \
471eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
472eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# if defined _MSC_VER && 1200 <= _MSC_VER
473eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define _Noreturn __declspec (noreturn)
474eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# else
475eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
476894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
477894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
478894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
479894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Suppress unused-variable warnings by "using" E.  */
480894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if ! defined lint || defined __GNUC__
481eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYUSE(E) ((void) (E))
482894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
483eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYUSE(E) /* empty */
484894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
485894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
486eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
487eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
488eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
489eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    _Pragma ("GCC diagnostic push") \
490eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
491eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
492eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
493eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    _Pragma ("GCC diagnostic pop")
494894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
495eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_INITIAL_VALUE(Value) Value
496894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
497eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
498eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
499eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_IGNORE_MAYBE_UNINITIALIZED_END
500894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
501eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YY_INITIAL_VALUE
502eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_INITIAL_VALUE(Value) /* Nothing. */
503eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
504eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
505894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
506894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if ! defined yyoverflow || YYERROR_VERBOSE
507894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
508894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* The parser invokes alloca or malloc; define the necessary symbols.  */
509894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
510894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifdef YYSTACK_USE_ALLOCA
511894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  if YYSTACK_USE_ALLOCA
512894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   ifdef __GNUC__
513894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    define YYSTACK_ALLOC __builtin_alloca
514894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   elif defined __BUILTIN_VA_ARG_INCR
515894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
516894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   elif defined _AIX
517894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    define YYSTACK_ALLOC __alloca
518894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   elif defined _MSC_VER
519894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
520894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    define alloca _alloca
521894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   else
522894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    define YYSTACK_ALLOC alloca
523eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
524894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
525eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
526eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#     ifndef EXIT_SUCCESS
527eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#      define EXIT_SUCCESS 0
528894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#     endif
529894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#    endif
530894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   endif
531894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
532894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
533894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
534894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifdef YYSTACK_ALLOC
535eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   /* Pacify GCC's 'empty if-body' warning.  */
536eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
537894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  ifndef YYSTACK_ALLOC_MAXIMUM
538894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    /* The OS might guarantee only one guard page at the bottom of the stack,
539894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       and a page size can be as small as 4096 bytes.  So we cannot safely
540894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
541894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       to allow for a few compiler-allocated temporary stack slots.  */
542894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
543894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
544894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# else
545894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSTACK_ALLOC YYMALLOC
546894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  define YYSTACK_FREE YYFREE
547894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  ifndef YYSTACK_ALLOC_MAXIMUM
548894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
549894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
550eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
551894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       && ! ((defined YYMALLOC || defined malloc) \
552eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             && (defined YYFREE || defined free)))
553894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
554eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   ifndef EXIT_SUCCESS
555eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#    define EXIT_SUCCESS 0
556894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   endif
557894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
558894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  ifndef YYMALLOC
559894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define YYMALLOC malloc
560eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   if ! defined malloc && ! defined EXIT_SUCCESS
561894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
562894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   endif
563894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
564894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  ifndef YYFREE
565894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define YYFREE free
566eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   if ! defined free && ! defined EXIT_SUCCESS
567894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanvoid free (void *); /* INFRINGES ON USER NAME SPACE */
568894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   endif
569894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
570894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
571894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
572894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
573894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
574894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if (! defined yyoverflow \
575894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     && (! defined __cplusplus \
576eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
577eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
578894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
579894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* A type that is properly aligned for any stack member.  */
580894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanunion yyalloc
581894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
58219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  yytype_int16 yyss_alloc;
58319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  YYSTYPE yyvs_alloc;
58415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYLTYPE yyls_alloc;
58519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman};
586894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
587894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* The size of the maximum gap between one aligned stack and the next.  */
588894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
589894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
590894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* The size of an array large to enough to hold all stacks, each with
591894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   N elements.  */
592894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYSTACK_BYTES(N) \
59315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
59415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu      + 2 * YYSTACK_GAP_MAXIMUM)
595894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
596eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYCOPY_NEEDED 1
597894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
598894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Relocate STACK from its old location to the new one.  The
599894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   local variables YYSIZE and YYSTACKSIZE give the old and new number of
600894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   elements in the stack, and YYPTR gives the new location of the
601894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   stack.  Advance YYPTR to a properly aligned location for the next
602894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   stack.  */
603eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
604eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    do                                                                  \
605eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      {                                                                 \
606eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYSIZE_T yynewbytes;                                            \
607eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
608eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        Stack = &yyptr->Stack_alloc;                                    \
609eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
610eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyptr += yynewbytes / sizeof (*yyptr);                          \
611eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      }                                                                 \
612eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    while (0)
613894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
614894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
615894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
616eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
617eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Copy COUNT objects from SRC to DST.  The source and destination do
618eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   not overlap.  */
619eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# ifndef YYCOPY
620eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  if defined __GNUC__ && 1 < __GNUC__
621eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   define YYCOPY(Dst, Src, Count) \
622eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
623eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  else
624eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#   define YYCOPY(Dst, Src, Count)              \
625eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      do                                        \
626eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {                                       \
627eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          YYSIZE_T yyi;                         \
628eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          for (yyi = 0; yyi < (Count); yyi++)   \
629eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (Dst)[yyi] = (Src)[yyi];            \
630eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }                                       \
631eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      while (0)
632eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  endif
633eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
634eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif /* !YYCOPY_NEEDED */
635eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
636894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYFINAL -- State number of the termination state.  */
6374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYFINAL  113
638894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYLAST -- Last index in YYTABLE.  */
6394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYLAST   2530
640894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
641894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYNTOKENS -- Number of terminals.  */
642b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu#define YYNTOKENS  128
643894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYNNTS -- Number of nonterminals.  */
64476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu#define YYNNTS  93
645894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYNRULES -- Number of rules.  */
6464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYNRULES  273
647eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* YYNSTATES -- Number of states.  */
6484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYNSTATES  414
649894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
650eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
651eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   by yylex, with out-of-bounds checking.  */
652894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#define YYUNDEFTOK  2
653b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu#define YYMAXUTOK   382
654894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
655eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYTRANSLATE(YYX)                                                \
656894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
657894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
658eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
659eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   as returned by yylex, without out-of-bounds checking.  */
660894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_uint8 yytranslate[] =
661894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
662894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
665894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
668894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
670894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
671894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
672894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
673894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
674894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
675894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
676894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
677894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
678894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
679894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
680894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
681894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
682894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
683894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
684894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
685894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
686894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
687894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
688894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
689894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
690894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
691894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
692894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
693894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
694894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
695894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
696b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
6973c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
698b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
699b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
700b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu     125,   126,   127
701894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
702894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
703894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if YYDEBUG
704eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
705894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_uint16 yyrline[] =
706894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
7073bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu       0,   229,   229,   249,   252,   257,   262,   267,   272,   278,
7083bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     281,   284,   287,   290,   293,   299,   307,   318,   322,   330,
7093bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     333,   339,   343,   350,   356,   365,   373,   379,   386,   396,
7103bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     399,   402,   405,   415,   416,   417,   418,   426,   427,   431,
7113bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     435,   443,   444,   447,   453,   454,   458,   465,   466,   469,
7123bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     472,   475,   481,   482,   485,   491,   492,   499,   500,   507,
7133bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     508,   515,   516,   522,   523,   529,   530,   536,   537,   543,
7143bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     544,   552,   553,   554,   555,   557,   558,   559,   562,   565,
7153bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     568,   571,   577,   580,   591,   599,   607,   610,   616,   623,
7163bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     627,   631,   635,   642,   648,   651,   658,   666,   687,   713,
7173bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     723,   751,   756,   766,   771,   781,   784,   787,   790,   796,
7183bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     803,   806,   810,   814,   819,   824,   831,   835,   839,   843,
7193bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     848,   853,   857,   864,   874,   880,   883,   889,   895,   902,
7203bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     911,   920,   928,   931,   938,   942,   946,   951,   959,   962,
7213bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu     966,   970,   979,   988,   996,  1006,  1018,  1021,  1024,  1030,
7223bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu    1037,  1040,  1046,  1049,  1052,  1058,  1061,  1066,  1081,  1085,
7233bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu    1089,  1093,  1097,  1101,  1106,  1111,  1116,  1121,  1126,  1131,
7243bb01956196ed0e7c8fce2e8fe45afb25e455fd9Alexis Hetu    1136,  1141,  1146,  1151,  1156,  1161,  1167,  1173,  1179,  1185,
7254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1191,  1197,  1203,  1209,  1215,  1220,  1225,  1234,  1243,  1248,
7264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,  1293,  1298,
7274676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1303,  1308,  1313,  1326,  1326,  1329,  1329,  1335,  1338,  1354,
7284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1357,  1366,  1370,  1376,  1383,  1398,  1402,  1406,  1407,  1413,
7294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1414,  1415,  1416,  1417,  1418,  1419,  1423,  1424,  1424,  1424,
7304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1434,  1435,  1439,  1439,  1440,  1440,  1445,  1448,  1458,  1461,
7314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1467,  1468,  1472,  1480,  1484,  1491,  1491,  1498,  1501,  1508,
7324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1513,  1528,  1528,  1533,  1533,  1540,  1540,  1548,  1551,  1557,
7334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1560,  1566,  1570,  1577,  1580,  1583,  1586,  1589,  1598,  1602,
7344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1609,  1612,  1618,  1618
735894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
736894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
737894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
738eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if YYDEBUG || YYERROR_VERBOSE || 0
739894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
740894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
741894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const char *const yytname[] =
742894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
743894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "$end", "error", "$undefined", "INVARIANT", "HIGH_PRECISION",
744894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "ATTRIBUTE",
7453c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens  "CONST_QUAL", "BOOL_TYPE", "FLOAT_TYPE", "INT_TYPE", "UINT_TYPE",
7463c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens  "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN",
7473c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens  "SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3",
748e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens  "IVEC4", "VEC2", "VEC3", "VEC4", "UVEC2", "UVEC3", "UVEC4", "MATRIX2",
749e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens  "MATRIX3", "MATRIX4", "IN_QUAL", "OUT_QUAL", "INOUT_QUAL", "UNIFORM",
750b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "VARYING", "MATRIX2x3", "MATRIX3x2", "MATRIX2x4", "MATRIX4x2",
751b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "MATRIX3x4", "MATRIX4x3", "CENTROID", "FLAT", "SMOOTH", "STRUCT",
752b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "VOID_TYPE", "WHILE", "SAMPLER2D", "SAMPLERCUBE", "SAMPLER_EXTERNAL_OES",
753b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "SAMPLER2DRECT", "SAMPLER2DARRAY", "ISAMPLER2D", "ISAMPLER3D",
754b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "ISAMPLERCUBE", "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D",
755b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER3D", "SAMPLER3DRECT",
756b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAYSHADOW", "LAYOUT",
757b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "INTCONSTANT",
758b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
759b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
760b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
761b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
762b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu  "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
7632c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
7642c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
7652c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
7662c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "AMPERSAND", "QUESTION", "$accept", "variable_identifier",
7672c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "primary_expression", "postfix_expression", "integer_expression",
7682c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  "function_call", "function_call_or_method", "function_call_generic",
769894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "function_call_header_no_parameters",
770894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "function_call_header_with_parameters", "function_call_header",
771894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "function_identifier", "unary_expression", "unary_operator",
772894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "multiplicative_expression", "additive_expression", "shift_expression",
773894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "relational_expression", "equality_expression", "and_expression",
774894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "exclusive_or_expression", "inclusive_or_expression",
775894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "logical_and_expression", "logical_xor_expression",
776894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "logical_or_expression", "conditional_expression",
777894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "assignment_expression", "assignment_operator", "expression",
778a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "constant_expression", "enter_struct", "declaration",
779a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "function_prototype", "function_declarator",
780a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "function_header_with_parameters", "function_header",
781a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "parameter_declarator", "parameter_declaration", "parameter_qualifier",
782a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "parameter_type_specifier", "init_declarator_list", "single_declaration",
783a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "fully_specified_type", "interpolation_qualifier",
784a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
785a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "type_specifier", "precision_qualifier", "layout_qualifier",
786a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  "layout_qualifier_id_list", "layout_qualifier_id",
7877d626796531874d308706c46a32942d71c85a7f8Nicolas Capens  "type_specifier_no_prec", "type_specifier_nonarray", "struct_specifier",
7887d626796531874d308706c46a32942d71c85a7f8Nicolas Capens  "$@1", "$@2", "struct_declaration_list", "struct_declaration",
789894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "struct_declarator_list", "struct_declarator", "initializer",
790894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "declaration_statement", "statement", "simple_statement",
79166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman  "compound_statement", "$@3", "$@4", "statement_no_new_scope",
79266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman  "statement_with_scope", "$@5", "$@6", "compound_statement_no_new_scope",
79319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  "statement_list", "expression_statement", "selection_statement",
79476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu  "selection_rest_statement", "switch_statement", "$@7", "case_label",
79576a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu  "condition", "iteration_statement", "$@8", "$@9", "$@10",
79676a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu  "for_init_statement", "conditionopt", "for_rest_statement",
797894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  "jump_statement", "translation_unit", "external_declaration",
798eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  "function_definition", "$@11", YY_NULLPTR
799894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
800894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
801894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
802894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifdef YYPRINT
803eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* YYTOKNUM[NUM] -- (External) token number corresponding to the
804eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   (internal) symbol number NUM (which must be that of a token).  */
805894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_uint16 yytoknum[] =
806894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
807894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
808894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
809894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
810894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
811894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
812894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
813894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
814894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
815894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
816c6841851785cab1f3fd19b8aae8e8a8fe7dd7b99Nicolas Capens     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
8177d626796531874d308706c46a32942d71c85a7f8Nicolas Capens     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
818b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
819b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu     375,   376,   377,   378,   379,   380,   381,   382
820894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
821894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
822894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
8234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYPACT_NINF -344
824894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
825eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define yypact_value_is_default(Yystate) \
8264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  (!!((Yystate) == (-344)))
827894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
8284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu#define YYTABLE_NINF -233
829894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
830eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define yytable_value_is_error(Yytable_value) \
831eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  0
832894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
833eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
834eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     STATE-NUM.  */
835894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_int16 yypact[] =
836894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
8374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    2168,   120,  -344,  -344,  -344,   146,  -344,  -344,  -344,  -344,
8384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,
8394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,
8404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,   127,  -344,  -344,
8414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -41,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,
8424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,   -84,
8434676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,   -68,   -57,   -39,     1,   -89,  -344,    41,    14,
8444676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1187,  -344,  -344,  2453,    14,  -344,    15,  -344,  2093,  -344,
8454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,    14,  -344,  2453,  -344,  -344,    18,  -344,
8464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,  -344,    26,  -344,    10,  -344,  -344,  -344,  -344,  -344,
8474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    2317,   113,    60,  -344,   -66,  -344,    31,  -344,  2243,  -344,
8484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  1257,  -344,  -344,  -344,   -45,  -344,  2243,    46,
8494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -21,  -344,   415,  -344,  -344,  -344,  -344,    68,  2317,   -42,
8504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  1355,  1646,  -344,   188,  2317,    89,  1838,  -344,    85,
8514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  1646,  1646,  1646,  -344,  -344,
8524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,    39,  -344,  -344,  -344,    74,
8534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -17,  1741,    96,  -344,  1646,    37,   -37,    91,   -61,    87,
8544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    81,    71,   116,   115,   -64,  -344,   102,  -344,  -344,
8554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    2243,  1923,   105,  -344,    47,    97,    99,  -344,   110,   131,
8564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     124,  1453,   138,  1646,   132,   142,   140,  -344,  -344,   123,
8574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,   -77,  -344,   -68,   143,  -344,  -344,  -344,  -344,
8584676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     531,  -344,  -344,  -344,  -344,  -344,  -344,   144,  -344,  -344,
8594676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1548,  1646,   141,   148,  -344,  -344,    89,   145,    -9,  -344,
8604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -58,  -344,  -344,  -344,   -13,  -344,  -344,  1646,  2385,  -344,
8614676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  1646,   152,  -344,  -344,  -344,  1646,  1646,  1646,  1646,
8624676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1646,  1646,  1646,  1646,  1646,  1646,  1646,  1646,  1646,  1646,
8634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1646,  1646,  1646,  1646,  1646,  1646,  -344,  2008,  -344,  -344,
8644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,   150,  -344,  1646,  -344,  -344,    -7,
8654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1646,   147,  -344,  -344,  -344,   647,  -344,  -344,  -344,  -344,
8664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,  1646,  1646,  -344,
8674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  1646,   149,   153,  -344,  1646,   151,     5,  1646,
8684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      89,  -344,   -70,  -344,  -344,   158,   157,  -344,   165,  -344,
8694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,    37,    37,   -37,   -37,    91,    91,
8704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      91,    91,   -61,   -61,    87,    65,    81,    71,   116,   115,
8714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,  -344,   214,    26,   879,   995,    -8,  -344,     4,  -344,
8724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    1092,   647,  -344,  -344,   164,  1646,   159,  -344,  1646,  -344,
8734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     166,  -344,  1646,  -344,  -344,  1646,   170,  -344,  -344,  -344,
8744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  1092,   150,  -344,   157,   200,  2317,   172,   169,  -344,
8754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  1646,  -344,  -344,   173,  -344,  1646,  -344,   167,   174,
8764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     265,  -344,   175,   171,   763,  -344,  -344,   177,     9,  1646,
8774676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     763,   150,  -344,  1646,  -344,  -344,  -344,  -344,   178,   157,
8784676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344
879894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
880894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
881eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
882eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     Performed when YYTABLE does not specify something else to do.  Zero
883eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     means the default is an error.  */
884eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic const yytype_uint16 yydefact[] =
885eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
886eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       0,     0,   146,   147,   148,     0,   128,   138,   162,   159,
887eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     160,   161,   166,   167,   168,   169,   170,   171,   163,   164,
888eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     165,   172,   173,   174,   175,   176,   177,   139,   140,   143,
889eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     129,   178,   179,   180,   181,   182,   183,     0,   126,   125,
8904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   158,   184,   185,   186,   187,   189,   190,   191,   192,
8914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     193,   194,   195,   196,   197,   188,   198,   199,   200,     0,
8924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     202,   271,   272,     0,    95,   105,     0,   110,   116,   133,
8934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   131,   123,     0,   134,   144,   155,   201,     0,   268,
8944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     270,   130,   122,     0,   136,     0,   141,   142,     0,   205,
8954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    86,     0,    93,   105,   127,   106,   107,   108,    96,
8964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   105,     0,    87,   117,   132,     0,    92,     0,   124,
8974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     145,   135,     0,     1,   269,   137,     0,   203,     0,   152,
8984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   150,     0,   273,    97,   102,   104,   109,     0,   111,
8994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      98,     0,     0,    85,     0,     0,     0,     0,   207,     2,
9004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       6,     4,     5,     7,    28,     0,     0,     0,   156,    35,
9014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      34,    36,    33,     3,     9,    29,    11,    16,    17,     0,
9024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    22,     0,    37,     0,    41,    44,    47,    52,    55,
9034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    59,    61,    63,    65,    67,    84,     0,    26,    88,
9044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   149,     0,     0,     0,   253,     0,     0,
9054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,   227,   236,   240,    37,
9064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      69,    82,     0,   216,     0,   144,   219,   238,   218,   217,
9074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   220,   221,   222,   223,   224,   225,    99,   101,   103,
9084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,   215,   121,     0,   213,     0,   211,
9094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   208,    30,    31,     0,    13,    14,     0,     0,    20,
9104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      19,     0,   158,    23,    25,    32,     0,     0,     0,     0,
911eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
9124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,   157,     0,   206,   153,
9134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     154,   151,   264,   263,   234,   255,     0,   267,   265,     0,
9144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   248,   251,   226,     0,    72,    73,    75,    74,
9154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,    78,    79,    80,    81,    76,    71,     0,     0,   241,
9164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     237,   239,     0,     0,     0,   115,     0,   118,     0,     0,
9174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   209,     0,    89,     8,     0,    15,    27,    12,    18,
9184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      24,    38,    39,    40,    43,    42,    45,    46,    50,    51,
9194676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    53,    54,    56,    58,    60,    62,    64,    66,
9204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   204,     0,     0,     0,     0,     0,   266,     0,   247,
9214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   228,    70,    83,     0,     0,   112,   119,     0,   210,
9224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   212,     0,    90,    10,     0,     0,   233,   235,   258,
9234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     257,   260,   234,   245,   249,     0,     0,     0,     0,   100,
9244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     113,     0,   120,   214,     0,    68,     0,   259,     0,     0,
9254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     244,   242,     0,     0,     0,   229,   114,     0,     0,   261,
9264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   234,   246,     0,   231,   252,   230,    91,     0,   262,
9274676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     256,   243,   250,   254
928eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
929eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
930eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYPGOTO[NTERM-NUM].  */
931894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_int16 yypgoto[] =
932894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
9334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -344,  -344,  -344,  -344,  -344,    48,  -344,  -344,
9344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,    70,  -344,   -56,   -49,  -123,   -53,    28,    29,
9354676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      27,    32,    30,    33,  -344,  -110,  -128,  -344,  -138,  -119,
9364676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,    11,    17,  -344,  -344,  -344,   168,   201,   197,   176,
9374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,  -326,     7,  -344,  -105,    13,   -69,   294,  -344,
9384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,   117,     0,  -344,  -344,  -344,  -344,  -103,  -121,    76,
9394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -10,  -215,   -40,  -203,  -314,   -86,  -344,  -344,   -97,  -343,
9404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    -344,  -344,   -87,    23,   -36,  -344,  -344,  -344,  -344,  -344,
9414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     -60,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,
9424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     232,  -344,  -344
943894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
944894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
945eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYDEFGOTO[NTERM-NUM].  */
946eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic const yytype_int16 yydefgoto[] =
947eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
9484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   153,   154,   155,   315,   156,   157,   158,   159,   160,
9494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     161,   162,   199,   164,   165,   166,   167,   168,   169,   170,
9504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     171,   172,   173,   174,   175,   200,   201,   297,   202,   177,
9514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     108,   203,   204,    63,    64,    65,   125,    99,   100,   126,
9524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      66,    67,    68,    69,   101,    70,    71,    72,    73,    74,
9534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     120,   121,   178,    76,    77,   180,   118,   137,   138,   228,
9544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     229,   225,   206,   207,   208,   209,   285,   378,   405,   342,
9554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     343,   344,   406,   210,   211,   212,   391,   213,   392,   214,
9564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     377,   215,   350,   274,   345,   371,   388,   389,   216,    78,
9574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      79,    80,    92
958eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
959eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
960eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
961eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     positive, shift that token.  If negative, reduce the rule whose
962eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     number is the opposite.  If YYTABLE_NINF, syntax error.  */
963894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_int16 yytable[] =
964894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
9654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,   109,   176,   135,   224,   123,   305,   301,    83,   234,
9664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      95,    61,   223,   135,    84,   181,   231,    62,   312,    95,
9674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      90,   176,   102,     7,   375,   103,   253,   254,   264,   390,
9684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     368,   127,   135,   243,   298,    88,   362,   299,   130,   136,
9694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     131,    96,    97,    98,   363,   375,    91,   132,    93,   136,
9704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      96,    97,    98,   279,    27,    28,   313,    29,   411,   127,
9714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     231,   255,   256,   265,   220,    37,   226,    89,   136,   179,
9724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,   221,    94,   110,   281,   135,   135,   267,    75,   249,
9734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     404,   250,   105,   176,   183,   116,   404,   111,   240,    61,
9744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     184,   357,   314,   224,   241,    62,   115,   372,   298,   316,
9754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,   304,   310,   298,   298,   311,   -94,   347,    75,   373,
9764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     176,   136,   136,   320,   408,   298,   310,   104,    75,   359,
9774676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     298,   112,   205,   119,   235,   236,   117,   340,    75,     7,
9784676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     328,   329,   330,   331,   122,    75,   129,    75,   346,   133,
9794676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     380,    83,   348,   382,   217,   237,   231,    84,   301,   238,
9804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       2,     3,     4,    96,    97,    98,   246,   247,   248,   182,
9814676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      27,    28,   135,    29,    81,   227,   396,    86,    87,   352,
9824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     353,    37,    38,    39,   251,   252,   257,   258,   224,   239,
9834676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,    75,   163,   354,   269,   270,   298,   365,   412,   -27,
9844676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     360,   259,   176,   324,   325,   261,    82,     7,   136,   176,
9854676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     244,   163,   326,   327,   332,   333,   260,   262,   263,   266,
9864676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     205,   272,   374,   273,   275,   232,   233,   286,   287,   288,
9874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     289,   290,   291,   292,   293,   294,   295,   224,    27,    28,
9884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     224,    29,    81,   374,   245,   276,   296,   385,   277,    37,
9894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      38,    39,   280,   384,   282,   376,   283,   -26,   398,   284,
9904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     302,   309,   176,   224,   306,   307,   367,   -21,  -232,   349,
9914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     356,   409,   355,   163,   358,   364,   376,    75,   298,   -28,
9924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     366,   379,   381,   383,   386,   224,   393,   394,   395,   400,
9934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     397,   399,   401,   196,   403,   205,   319,   334,   336,   335,
9944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     163,   407,   413,   338,   337,   124,   218,   339,   128,    85,
9954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     361,   271,   308,   410,   219,   369,   402,   109,   351,   370,
9964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     114,   387,     0,     0,     0,     0,   321,   322,   323,   163,
9974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
9984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     163,   163,   163,   163,   163,     0,     0,     0,     0,     0,
9994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,   205,   205,     0,     0,     0,     0,
10004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     205,   205,     0,     0,     0,     0,     0,     0,     0,     0,
1001dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   205,   163,     0,     0,     0,    75,     0,     0,   163,
1003a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
10054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     205,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     1,     2,
10074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       3,     4,     5,     6,     7,     8,     9,    10,    11,   185,
10084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     186,   187,   163,   188,   189,   190,   191,   192,   193,   194,
10094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
10104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      22,    23,    24,    25,    26,    27,    28,     0,    29,    30,
10114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
10124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      41,   195,    42,    43,    44,    45,    46,    47,    48,    49,
10134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      50,    51,    52,    53,    54,    55,     0,    56,    57,    58,
10144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      59,   139,    60,   140,   141,   142,   143,   144,     0,     0,
10154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     145,   146,     0,     0,     0,     0,     0,     0,     0,     0,
10164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,   147,
10174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   196,   197,     0,     0,     0,     0,   198,
10184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     149,   150,   151,   152,     1,     2,     3,     4,     5,     6,
10194676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       7,     8,     9,    10,    11,   185,   186,   187,     0,   188,
10204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     189,   190,   191,   192,   193,   194,    12,    13,    14,    15,
10214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
10224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      26,    27,    28,     0,    29,    30,    31,    32,    33,    34,
10234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,    37,    38,    39,    40,    41,   195,    42,    43,
10244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
10254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      54,    55,     0,    56,    57,    58,    59,   139,    60,   140,
10264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     141,   142,   143,   144,     0,     0,   145,   146,     0,     0,
1027e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,   147,     0,     0,     0,   196,
10294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     300,     0,     0,     0,     0,   198,   149,   150,   151,   152,
10304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
10314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      11,   185,   186,   187,     0,   188,   189,   190,   191,   192,
10324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     193,   194,    12,    13,    14,    15,    16,    17,    18,    19,
10334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      20,    21,    22,    23,    24,    25,    26,    27,    28,     0,
10344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
10354676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      39,    40,    41,   195,    42,    43,    44,    45,    46,    47,
10364676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    50,    51,    52,    53,    54,    55,     0,    56,
10374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,   139,    60,   140,   141,   142,   143,   144,
10384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   145,   146,     0,     0,     0,     0,     0,     0,
1039e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   147,     0,     0,     0,   196,     0,     0,     0,     0,
10414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   198,   149,   150,   151,   152,     1,     2,     3,     4,
10424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       5,     6,     7,     8,     9,    10,    11,   185,   186,   187,
10434676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   188,   189,   190,   191,   192,   193,   194,    12,    13,
10444676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
10454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
10464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    40,    41,   195,
10474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
10484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,    59,   139,
10494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60,   140,   141,   142,   143,   144,     0,     0,   145,   146,
1050e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,   147,     0,     0,
10524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   122,     0,     0,     0,     0,     0,   198,   149,   150,
10534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     151,   152,     1,     2,     3,     4,     5,     6,     7,     8,
10544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       9,    10,    11,   185,   186,   187,     0,   188,   189,   190,
10554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     191,   192,   193,   194,    12,    13,    14,    15,    16,    17,
10564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
10574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      28,     0,    29,    30,    31,    32,    33,    34,    35,    36,
10584676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      37,    38,    39,    40,    41,   195,    42,    43,    44,    45,
10594676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
10604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    56,    57,    58,    59,   139,    60,   140,   141,   142,
10614676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     143,   144,     0,     0,   145,   146,     0,     0,     0,     0,
1062407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   147,     0,     0,     0,     0,     0,     0,
10644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   198,   149,   150,   151,   152,     1,     2,
10654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       3,     4,     5,     6,     7,     8,     9,    10,    11,     0,
1066407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
10684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      22,    23,    24,    25,    26,    27,    28,     0,    29,    30,
10694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
10704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      41,     0,    42,    43,    44,    45,    46,    47,    48,    49,
10714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      50,    51,    52,    53,    54,    55,     0,    56,    57,    58,
10724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      59,   139,    60,   140,   141,   142,   143,   144,     0,     0,
10734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     145,   146,     0,     0,     0,     0,     0,     0,     0,     0,
10744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,   134,     2,     3,     4,   147,
10754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       6,     7,     8,     9,    10,    11,     0,     0,     0,   198,
10764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     149,   150,   151,   152,     0,     0,     0,    12,    13,    14,
1077407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
10784676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
10794676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      34,    35,    36,    37,    38,    39,    40,    41,     0,    42,
10804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
10814676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      53,    54,    55,     0,    56,    57,    58,    59,   139,    60,
10824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     140,   141,   142,   143,   144,     0,     0,   145,   146,     0,
1083ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10844676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     2,     3,     4,     0,     0,   147,     8,     9,    10,
10854676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      11,     0,     0,     0,     0,     0,     0,   149,   150,   151,
10864676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     152,     0,    12,    13,    14,    15,    16,    17,    18,    19,
10874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      20,    21,    22,    23,    24,    25,    26,     0,     0,     0,
10884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,    31,    32,    33,    34,    35,    36,     0,     0,
10894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    40,    41,     0,    42,    43,    44,    45,    46,    47,
10904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    50,    51,    52,    53,    54,    55,     0,    56,
10914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,     0,   106,    60,     0,     0,     8,     9,    10,
10924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,    12,    13,    14,    15,    16,    17,    18,    19,
10944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      20,    21,    22,    23,    24,    25,    26,     0,     0,     0,
10954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   107,    31,    32,    33,    34,    35,    36,     0,     0,
10964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    40,    41,     0,    42,    43,    44,    45,    46,    47,
10974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    50,    51,    52,    53,    54,    55,     0,    56,
10984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,     0,   139,    60,   140,   141,   142,   143,   144,
10994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   145,   146,     0,     0,     0,     0,     0,     0,
1100ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   147,     0,     0,   148,     8,     9,    10,    11,     0,
11024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   149,   150,   151,   152,     0,     0,     0,     0,
11034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
11044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      22,    23,    24,    25,    26,     0,     0,     0,     0,     0,
11054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      31,    32,    33,    34,    35,    36,     0,     0,     0,    40,
11064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      41,     0,    42,    43,    44,    45,    46,    47,    48,    49,
11074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      50,    51,    52,    53,    54,    55,     0,    56,    57,    58,
11084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   139,    60,   140,   141,   142,   143,   144,     0,     0,
11094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     145,   146,     0,     0,     0,     0,     0,     0,     0,     0,
11104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,   147,
11114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   222,     8,     9,    10,    11,     0,     0,     0,
11124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     149,   150,   151,   152,     0,     0,     0,     0,    12,    13,
1113407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1114407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      24,    25,    26,     0,     0,     0,     0,     0,    31,    32,
1115407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      33,    34,    35,    36,     0,     0,     0,    40,    41,     0,
11164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
11174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,     0,   139,
11184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60,   140,   141,   142,   143,   144,     0,     0,   145,   146,
11191aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,   147,     8,     9,
11214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      10,    11,     0,     0,     0,     0,     0,   278,   149,   150,
11224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     151,   152,     0,    12,    13,    14,    15,    16,    17,    18,
11234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      19,    20,    21,    22,    23,    24,    25,    26,     0,     0,
11244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,    31,    32,    33,    34,    35,    36,     0,
11254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,    40,    41,     0,    42,    43,    44,    45,    46,
11264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11274676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      56,    57,    58,     0,   139,    60,   140,   141,   142,   143,
11284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     144,     0,     0,   145,   146,     0,     0,     0,     0,     0,
11291aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   147,     0,     0,   303,     8,     9,    10,    11,
11314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   149,   150,   151,   152,     0,     0,     0,
11321aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich       0,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1133407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      21,    22,    23,    24,    25,    26,     0,     0,     0,     0,
1134407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,    31,    32,    33,    34,    35,    36,     0,     0,     0,
11354676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      40,    41,     0,    42,    43,    44,    45,    46,    47,    48,
11364676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      49,    50,    51,    52,    53,    54,    55,     0,    56,    57,
11374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      58,     0,   139,    60,   140,   141,   142,   143,   144,     0,
11384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   145,   146,     0,     0,     0,     0,     0,     0,     0,
11394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     147,     8,     9,    10,    11,     0,     0,     0,     0,     0,
11414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   149,   150,   151,   152,     0,    12,    13,    14,    15,
11424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
11434676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      26,     0,     0,     0,     0,     0,    31,    32,    33,    34,
11444676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,     0,     0,     0,    40,   242,     0,    42,    43,
11454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
11464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      54,    55,     0,    56,    57,    58,     0,   139,    60,   140,
11474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     141,   142,   143,   144,     0,     0,   145,   146,     0,     0,
11484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   134,     2,     3,     4,   147,     6,     7,     8,     9,
11504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      10,    11,     0,     0,     0,     0,   149,   150,   151,   152,
11514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
1152407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1153407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
11544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
11554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      56,    57,    58,    59,     0,    60,     0,     0,     0,     0,
11574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,   134,     2,     3,     4,
1158407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,     6,     7,     8,     9,    10,    11,     0,     0,     0,
11594676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,   230,    12,    13,
1160407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1161407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
1162407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
11634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
11644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
11654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   134,     2,     3,     4,     0,     6,     7,     8,     9,
1167407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
11684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,   268,    12,    13,    14,    15,    16,    17,    18,
1169407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1170407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
11714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
11724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      56,    57,    58,    59,     0,    60,     0,     0,     0,     0,
11744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,   113,     0,     0,     1,     2,     3,     4,
1175407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       5,     6,     7,     8,     9,    10,    11,     0,     0,     0,
11764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,   341,    12,    13,
1177407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1178407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
1179407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
11804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
11814676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
11824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1183407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
1184407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
1185407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1186407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
11874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
11884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      56,    57,    58,    59,     0,    60,   134,     2,     3,     4,
11904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     6,     7,     8,     9,    10,    11,     0,     0,     0,
11914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
11924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
11934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
11944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
11954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
11964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
11974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60,     2,     3,     4,     0,     0,     0,     8,     9,    10,
11984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,    12,    13,    14,    15,    16,    17,    18,    19,
12004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      20,    21,    22,    23,    24,    25,    26,     0,     0,     0,
12014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,    31,    32,    33,    34,    35,    36,     0,     0,
12024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    40,    41,     0,    42,    43,    44,    45,    46,    47,
12034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    50,    51,    52,    53,    54,    55,     0,    56,
12044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,     0,     0,    60,     8,     9,    10,    11,     0,
12054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
12074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      22,    23,    24,    25,    26,     0,     0,     0,     0,     0,
12084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      31,    32,    33,    34,    35,    36,     0,     0,     0,    40,
12094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      41,     0,    42,    43,    44,    45,    46,    47,    48,    49,
12104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      50,    51,    52,    53,    54,    55,     0,    56,    57,    58,
12114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,   317,    60,     8,     9,    10,    11,   318,     0,     0,
12124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
12134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
12144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      24,    25,    26,     0,     0,     0,     0,     0,    31,    32,
12154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,     0,     0,     0,    40,    41,     0,
12164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
12174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,     0,    56,    57,    58,     0,     0,
12184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      60
1219894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
1220894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1221894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_int16 yycheck[] =
1222894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
12234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,    70,   112,   108,   132,    92,   221,   210,     1,   147,
12244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       9,     0,   131,   118,     1,   118,   137,     0,    76,     9,
12254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,   131,   111,     9,   350,   114,    87,    88,    92,   372,
12264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     344,   100,   137,   161,   111,    76,   106,   114,   104,   108,
12274676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     106,    40,    41,    42,   114,   371,   114,   113,   105,   118,
12284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      40,    41,    42,   191,    40,    41,   114,    43,   401,   128,
12294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     181,   122,   123,   127,   106,    51,   135,   108,   137,   114,
12304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      70,   113,   111,    73,   193,   180,   181,   180,    78,   116,
12314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     394,   118,    69,   193,   105,    85,   400,    74,   105,    78,
12324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     111,   306,   105,   221,   111,    78,    83,   105,   111,   237,
12334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     100,   220,   111,   111,   111,   114,   105,   114,   108,   105,
12344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     220,   180,   181,   241,   105,   111,   111,    76,   118,   114,
12354676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     111,   106,   122,    76,    85,    86,   108,   265,   128,     9,
12364676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     253,   254,   255,   256,   108,   135,    76,   137,   276,   108,
12374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     355,   134,   280,   358,    76,   106,   267,   134,   351,   110,
12384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       4,     5,     6,    40,    41,    42,   119,   120,   121,   113,
12394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      40,    41,   267,    43,    44,    76,   381,    40,    41,   297,
12404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     298,    51,    52,    53,    83,    84,    89,    90,   306,   105,
12414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     180,   181,   112,   302,    79,    80,   111,   112,   403,   104,
12424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     309,   126,   302,   249,   250,   124,    76,     9,   267,   309,
12434676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,   131,   251,   252,   257,   258,   125,    91,    93,   107,
12444676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     210,   114,   350,   114,   104,   145,   146,    94,    95,    96,
12454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      97,    98,    99,   100,   101,   102,   103,   355,    40,    41,
12464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     358,    43,    44,   371,   164,   104,   113,   365,   114,    51,
12474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,   104,   362,   112,   350,   104,   104,   386,   109,
12484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     106,   106,   362,   381,   113,   107,   343,   105,   108,   112,
12494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     107,   399,   113,   193,   113,   107,   371,   267,   111,   104,
12504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      56,   107,   113,   107,   104,   403,    76,   105,   109,   105,
12514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     107,   114,    17,   108,   113,   285,   238,   259,   261,   260,
12524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     220,   114,   114,   263,   262,    94,   128,   264,   101,     5,
12534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     310,   184,   226,   400,   128,   345,   392,   376,   285,   345,
12544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      78,   371,    -1,    -1,    -1,    -1,   246,   247,   248,   249,
12554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
12564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     260,   261,   262,   263,   264,    -1,    -1,    -1,    -1,    -1,
12574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,   344,   345,    -1,    -1,    -1,    -1,
12584676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     350,   351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1259a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   371,   302,    -1,    -1,    -1,   376,    -1,    -1,   309,
1261e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12624676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,   394,    -1,    -1,    -1,    -1,    -1,
12634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     400,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
12654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
12664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      15,    16,   362,    18,    19,    20,    21,    22,    23,    24,
12674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
12684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
12694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
12704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
12714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
12724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
12734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
12754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,   108,   109,    -1,    -1,    -1,    -1,   114,
12764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     115,   116,   117,   118,     3,     4,     5,     6,     7,     8,
12774676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       9,    10,    11,    12,    13,    14,    15,    16,    -1,    18,
12784676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
12794676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
12804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      39,    40,    41,    -1,    43,    44,    45,    46,    47,    48,
12814676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
12824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
12834676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
12844676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
1285e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12864676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,   108,
12874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     109,    -1,    -1,    -1,    -1,   114,   115,   116,   117,   118,
12884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
12894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      13,    14,    15,    16,    -1,    18,    19,    20,    21,    22,
12904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
12914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    40,    41,    -1,
12924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
12934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
12944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
12954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
12964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
1297e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
12984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
12994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   114,   115,   116,   117,   118,     3,     4,     5,     6,
13004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
13014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    18,    19,    20,    21,    22,    23,    24,    25,    26,
13024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
13034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
13044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
13054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
13064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
13074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
13084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,
13104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   108,    -1,    -1,    -1,    -1,    -1,   114,   115,   116,
13114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     117,   118,     3,     4,     5,     6,     7,     8,     9,    10,
13124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      11,    12,    13,    14,    15,    16,    -1,    18,    19,    20,
13134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
13144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
13154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
13164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
13174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
13184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    72,    73,    74,    75,    76,    77,    78,    79,    80,
13194676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
13204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,
13224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,   114,   115,   116,   117,   118,     3,     4,
13234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
13244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13254676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
13264676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
13274676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
13284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
13294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
13304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
13314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,   104,
13334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,   114,
13344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     115,   116,   117,   118,    -1,    -1,    -1,    25,    26,    27,
1335e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1336e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      38,    39,    40,    41,    -1,    43,    44,    45,    46,    47,
13374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      48,    49,    50,    51,    52,    53,    54,    55,    -1,    57,
13384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1339e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
1340e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      78,    79,    80,    81,    82,    -1,    -1,    85,    86,    -1,
1341e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,     4,     5,     6,    -1,    -1,   104,    10,    11,    12,
13434676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      13,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,
13444676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     118,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
13454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    -1,    -1,    -1,
13464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    45,    46,    47,    48,    49,    50,    -1,    -1,
13474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    54,    55,    -1,    57,    58,    59,    60,    61,    62,
13484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
13494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      73,    74,    -1,    76,    77,    -1,    -1,    10,    11,    12,
13504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1351407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
13524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    -1,    -1,    -1,
13534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   114,    45,    46,    47,    48,    49,    50,    -1,    -1,
13544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    54,    55,    -1,    57,    58,    59,    60,    61,    62,
1355407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
13564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      73,    74,    -1,    76,    77,    78,    79,    80,    81,    82,
1357407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
1358407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13594676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   104,    -1,    -1,   107,    10,    11,    12,    13,    -1,
13604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
13614676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
13624676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
13634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    54,
13644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
13654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
13664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
13674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
13694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,   107,    10,    11,    12,    13,    -1,    -1,    -1,
13704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     115,   116,   117,   118,    -1,    -1,    -1,    -1,    25,    26,
13714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
13724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      37,    38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
13734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
13744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
13754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    -1,    76,
13764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
1377ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13784676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    10,    11,
13794676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    -1,    -1,    -1,    -1,    -1,   114,   115,   116,
13804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     117,   118,    -1,    25,    26,    27,    28,    29,    30,    31,
1381ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      32,    33,    34,    35,    36,    37,    38,    39,    -1,    -1,
1382ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    -1,
13834676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    54,    55,    -1,    57,    58,    59,    60,    61,
1384ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
1385ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
1386ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
1387ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,   104,    -1,    -1,   107,    10,    11,    12,    13,
13894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,   115,   116,   117,   118,    -1,    -1,    -1,
13904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
13914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      34,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
13924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
13934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      54,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
13944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
13954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      74,    -1,    76,    77,    78,    79,    80,    81,    82,    -1,
13964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13971aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,    10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,
13994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,   115,   116,   117,   118,    -1,    25,    26,    27,    28,
14001aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1401407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
1402407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      49,    50,    -1,    -1,    -1,    54,    55,    -1,    57,    58,
14034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1404407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      69,    70,    -1,    72,    73,    74,    -1,    76,    77,    78,
1405407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
14061aa4b61c904cdab3530991f35f7979f14723821cVeranika Liaukevich      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,     3,     4,     5,     6,   104,     8,     9,    10,    11,
14084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      12,    13,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
14094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
14104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
14114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
14124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
14134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
14144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      72,    73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,
1415407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
14164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
14174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    25,    26,
1418407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1419407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
1420407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
14214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1422407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
1423407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1424407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
1425407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1426407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,   109,    25,    26,    27,    28,    29,    30,    31,
1427407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1428407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
14294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
1430407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
1431407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      72,    73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,
14324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,     0,    -1,    -1,     3,     4,     5,     6,
14334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
1434407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    25,    26,
1435407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1436407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
1437407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
14384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1439407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
14404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1441407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
1443407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1444407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
14454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
1446407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
1447407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      72,    73,    74,    75,    -1,    77,     3,     4,     5,     6,
14484676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
1449407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,
1450407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1451407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
1452407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
14534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1454407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
14554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,     4,     5,     6,    -1,    -1,    -1,    10,    11,    12,
14564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
14584676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      33,    34,    35,    36,    37,    38,    39,    -1,    -1,    -1,
14594676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    45,    46,    47,    48,    49,    50,    -1,    -1,
14604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    54,    55,    -1,    57,    58,    59,    60,    61,    62,
14614676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
14624676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      73,    74,    -1,    -1,    77,    10,    11,    12,    13,    -1,
14634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
14654676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
14664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    54,
14674676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
14684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
14694676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    76,    77,    10,    11,    12,    13,    82,    -1,    -1,
14704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,
14714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
14724676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      37,    38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
14734676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
14744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
14754676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      67,    68,    69,    70,    -1,    72,    73,    74,    -1,    -1,
14764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77
1477894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
1478894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1479eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1480eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     symbol of state STATE-NUM.  */
1481894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic const yytype_uint8 yystos[] =
1482894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1483894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
14843c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens      12,    13,    25,    26,    27,    28,    29,    30,    31,    32,
1485e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens      33,    34,    35,    36,    37,    38,    39,    40,    41,    43,
148655a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
14874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      54,    55,    57,    58,    59,    60,    61,    62,    63,    64,
14884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      65,    66,    67,    68,    69,    70,    72,    73,    74,    75,
14894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      77,   159,   160,   161,   162,   163,   168,   169,   170,   171,
14904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     173,   174,   175,   176,   177,   180,   181,   182,   217,   218,
14914676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     219,    44,    76,   171,   174,   176,    40,    41,    76,   108,
14924676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,   114,   220,   105,   111,     9,    40,    41,    42,   165,
14934676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     166,   172,   111,   114,    76,   174,    76,   114,   158,   175,
14944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     180,   174,   106,     0,   218,   174,   180,   108,   184,    76,
14954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     178,   179,   108,   200,   165,   164,   167,   175,   166,    76,
14964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,   106,   113,   108,     3,   173,   175,   185,   186,    76,
14974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      78,    79,    80,    81,    82,    85,    86,   104,   107,   115,
14984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     116,   117,   118,   129,   130,   131,   133,   134,   135,   136,
14994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
15004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     147,   148,   149,   150,   151,   152,   153,   157,   180,   114,
15014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     183,   185,   113,   105,   111,    14,    15,    16,    18,    19,
15024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      20,    21,    22,    23,    24,    56,   108,   109,   114,   140,
15034676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     153,   154,   156,   159,   160,   180,   190,   191,   192,   193,
15044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     201,   202,   203,   205,   207,   209,   216,    76,   164,   167,
15054676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     106,   113,   107,   157,   154,   189,   175,    76,   187,   188,
15064676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     109,   186,   140,   140,   156,    85,    86,   106,   110,   105,
15074676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     105,   111,    55,   154,   104,   140,   119,   120,   121,   116,
15084676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     118,    83,    84,    87,    88,   122,   123,    89,    90,   126,
15094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     125,   124,    91,    93,    92,   127,   107,   185,   109,    79,
15104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      80,   179,   114,   114,   211,   104,   104,   114,   114,   156,
15114676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     104,   157,   112,   104,   109,   194,    94,    95,    96,    97,
15124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu      98,    99,   100,   101,   102,   103,   113,   155,   111,   114,
15134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     109,   191,   106,   107,   157,   189,   113,   107,   187,   106,
15144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     111,   114,    76,   114,   105,   132,   156,    76,    82,   135,
15154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     154,   140,   140,   140,   142,   142,   143,   143,   144,   144,
15164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     144,   144,   145,   145,   146,   147,   148,   149,   150,   151,
15174676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     156,   109,   197,   198,   199,   212,   156,   114,   156,   112,
15184676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     210,   201,   154,   154,   157,   113,   107,   189,   113,   114,
15194676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     157,   188,   106,   114,   107,   112,    56,   200,   192,   190,
15204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     202,   213,   105,   105,   156,   170,   173,   208,   195,   107,
15214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     189,   113,   189,   107,   157,   154,   104,   208,   214,   215,
15224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     197,   204,   206,    76,   105,   109,   189,   107,   156,   114,
15234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     105,    17,   193,   113,   192,   196,   200,   114,   105,   156,
15244676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     196,   197,   189,   114
1525894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman};
1526894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1527eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1528eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic const yytype_uint8 yyr1[] =
1529eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
1530eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       0,   128,   129,   130,   130,   130,   130,   130,   130,   131,
1531eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     131,   131,   131,   131,   131,   132,   133,   134,   134,   135,
1532eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     135,   136,   136,   137,   137,   138,   139,   139,   139,   140,
1533eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     140,   140,   140,   141,   141,   141,   141,   142,   142,   142,
1534eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     142,   143,   143,   143,   144,   144,   144,   145,   145,   145,
1535eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     145,   145,   146,   146,   146,   147,   147,   148,   148,   149,
1536eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     149,   150,   150,   151,   151,   152,   152,   153,   153,   154,
1537eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     154,   155,   155,   155,   155,   155,   155,   155,   155,   155,
1538eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     155,   155,   156,   156,   157,   158,   159,   159,   159,   159,
1539eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     159,   159,   159,   160,   161,   161,   162,   162,   163,   164,
1540eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     164,   165,   165,   165,   165,   166,   166,   166,   166,   167,
1541eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     168,   168,   168,   168,   168,   168,   169,   169,   169,   169,
1542eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     169,   169,   169,   170,   170,   171,   171,   172,   173,   173,
1543eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     173,   173,   173,   173,   173,   173,   173,   173,   174,   174,
1544eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     174,   174,   174,   174,   175,   175,   176,   176,   176,   177,
1545eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     178,   178,   179,   179,   179,   180,   180,   180,   181,   181,
1546eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
1547eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
1548eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
1549eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
15504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     181,   181,   181,   183,   182,   184,   182,   185,   185,   186,
15514676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     186,   187,   187,   188,   188,   189,   190,   191,   191,   192,
15524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     192,   192,   192,   192,   192,   192,   193,   194,   195,   193,
15534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     196,   196,   198,   197,   199,   197,   200,   200,   201,   201,
15544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     202,   202,   203,   204,   204,   206,   205,   207,   207,   208,
15554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     208,   210,   209,   211,   209,   212,   209,   213,   213,   214,
15564676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     214,   215,   215,   216,   216,   216,   216,   216,   217,   217,
15574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu     218,   218,   220,   219
1558eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
1559894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1560eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1561eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic const yytype_uint8 yyr2[] =
1562eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
1563eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       0,     2,     1,     1,     1,     1,     1,     1,     3,     1,
1564eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       4,     1,     3,     2,     2,     1,     1,     1,     3,     2,
1565eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       2,     2,     1,     2,     3,     2,     1,     1,     1,     1,
1566eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       2,     2,     2,     1,     1,     1,     1,     1,     3,     3,
1567eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       3,     1,     3,     3,     1,     3,     3,     1,     3,     3,
1568eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       3,     3,     1,     3,     3,     1,     3,     1,     3,     1,
1569eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       3,     1,     3,     1,     3,     1,     3,     1,     5,     1,
1570eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1571eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     1,     1,     3,     1,     2,     2,     2,     4,     5,
1572eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       6,     9,     2,     2,     1,     1,     2,     3,     3,     2,
1573eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       5,     3,     2,     3,     2,     0,     1,     1,     1,     1,
1574eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     3,     6,     7,     8,     5,     1,     2,     5,     6,
1575eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       7,     4,     2,     1,     2,     1,     1,     1,     1,     1,
1576eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       2,     1,     2,     1,     1,     2,     2,     3,     1,     1,
1577eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     2,     2,     1,     1,     2,     1,     1,     1,     4,
1578eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     3,     1,     3,     3,     1,     3,     4,     1,     1,
1579eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1580eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1581eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1582eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
15834676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     1,     1,     0,     6,     0,     5,     1,     2,     3,
15844676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       4,     1,     3,     1,     4,     1,     1,     1,     1,     1,
15854676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     1,     1,     1,     1,     1,     2,     0,     0,     5,
15864676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     1,     0,     2,     0,     2,     2,     3,     1,     2,
15874676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     2,     5,     3,     1,     0,     6,     3,     2,     1,
15884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       4,     0,     6,     0,     8,     0,     7,     1,     1,     1,
15894676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       0,     2,     3,     2,     2,     2,     3,     2,     1,     2,
15904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu       1,     1,     0,     3
1591eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich};
1592894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1593894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1594eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define yyerrok         (yyerrstatus = 0)
1595eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define yyclearin       (yychar = YYEMPTY)
1596eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYEMPTY         (-2)
1597eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYEOF           0
1598894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1599eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYACCEPT        goto yyacceptlab
1600eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYABORT         goto yyabortlab
1601eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYERROR         goto yyerrorlab
1602894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1603894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1604eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYRECOVERING()  (!!yyerrstatus)
1605894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1606eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYBACKUP(Token, Value)                                  \
1607eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichdo                                                              \
1608eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yychar == YYEMPTY)                                        \
1609eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {                                                           \
1610eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yychar = (Token);                                         \
1611eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yylval = (Value);                                         \
1612eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYPOPSTACK (yylen);                                       \
1613eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yystate = *yyssp;                                         \
1614eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      goto yybackup;                                            \
1615eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }                                                           \
1616eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  else                                                          \
1617eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {                                                           \
1618eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yyerror (&yylloc, context, yyscanner, YY_("syntax error: cannot back up")); \
1619eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYERROR;                                                  \
1620eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }                                                           \
1621eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichwhile (0)
1622eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1623eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Error token number */
1624eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYTERROR        1
1625eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYERRCODE       256
1626894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1627894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1628894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1629894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   If N is 0, then set CURRENT to the empty location which ends
1630894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   the previous symbol: RHS[0] (always defined).  */
1631894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1632894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YYLLOC_DEFAULT
1633eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1634eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    do                                                                  \
1635eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (N)                                                            \
1636eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {                                                               \
1637eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1638eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1639eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1640eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1641eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }                                                               \
1642eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      else                                                              \
1643eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {                                                               \
1644eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).first_line   = (Current).last_line   =              \
1645eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            YYRHSLOC (Rhs, 0).last_line;                                \
1646eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (Current).first_column = (Current).last_column =              \
1647eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            YYRHSLOC (Rhs, 0).last_column;                              \
1648eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }                                                               \
1649eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    while (0)
1650894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
1651894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1652eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1653eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1654eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1655eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Enable debugging if requested.  */
1656eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if YYDEBUG
1657eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1658eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# ifndef YYFPRINTF
1659eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1660eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YYFPRINTF fprintf
1661eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
1662eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1663eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYDPRINTF(Args)                        \
1664eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichdo {                                            \
1665eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yydebug)                                  \
1666eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    YYFPRINTF Args;                             \
1667eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich} while (0)
1668eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1669894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1670894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YY_LOCATION_PRINT -- Print the location on the stream.
1671894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   This macro was not mandated originally: define only if we know
1672894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   we won't break user code: when these are the locations we know.  */
1673894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1674894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YY_LOCATION_PRINT
1675eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1676894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1677eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
1678894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1679eced26a12537825c00dcdd8e74e110b3e838a08fVeranika LiaukevichYY_ATTRIBUTE_UNUSED
1680eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic unsigned
1681eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
1682eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
1683eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  unsigned res = 0;
1684eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
1685eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (0 <= yylocp->first_line)
1686eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
1687eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
1688eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (0 <= yylocp->first_column)
1689eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
1690eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }
1691eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (0 <= yylocp->last_line)
1692eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
1693eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (yylocp->first_line < yylocp->last_line)
1694eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
1695eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
1696eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          if (0 <= end_col)
1697eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            res += YYFPRINTF (yyo, ".%d", end_col);
1698eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
1699eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      else if (0 <= end_col && yylocp->first_column < end_col)
1700eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        res += YYFPRINTF (yyo, "-%d", end_col);
1701eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }
1702eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  return res;
1703eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich }
1704894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1705eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YY_LOCATION_PRINT(File, Loc)          \
1706eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yy_location_print_ (File, &(Loc))
1707894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1708eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# else
1709eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1710894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
1711eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#endif
1712894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1713894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1714eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1715eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichdo {                                                                      \
1716eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yydebug)                                                            \
1717eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {                                                                     \
1718eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYFPRINTF (stderr, "%s ", Title);                                   \
1719eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yy_symbol_print (stderr,                                            \
1720eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  Type, Value, Location, context, yyscanner); \
1721eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYFPRINTF (stderr, "\n");                                           \
1722eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }                                                                     \
1723eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich} while (0)
1724894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1725894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1726eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/*----------------------------------------.
1727eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich| Print this symbol's value on YYOUTPUT.  |
1728eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich`----------------------------------------*/
1729894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1730894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic void
1731eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, TParseContext* context, void* yyscanner)
1732894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1733eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  FILE *yyo = yyoutput;
1734eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYUSE (yyo);
173515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYUSE (yylocationp);
1736894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYUSE (context);
1737eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYUSE (yyscanner);
1738eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (!yyvaluep)
1739eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    return;
1740894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifdef YYPRINT
1741894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yytype < YYNTOKENS)
1742894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1743894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
1744eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYUSE (yytype);
1745894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1746894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1747894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1748894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*--------------------------------.
1749894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| Print this symbol on YYOUTPUT.  |
1750894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`--------------------------------*/
1751894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1752894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic void
1753eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, TParseContext* context, void* yyscanner)
1754894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1755eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYFPRINTF (yyoutput, "%s %s (",
1756eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1757894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
175815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YY_LOCATION_PRINT (yyoutput, *yylocationp);
175915ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYFPRINTF (yyoutput, ": ");
1760eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, context, yyscanner);
1761894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYFPRINTF (yyoutput, ")");
1762894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1763894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1764894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*------------------------------------------------------------------.
1765894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1766894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| TOP (included).                                                   |
1767894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`------------------------------------------------------------------*/
1768894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1769894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic void
177019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Baumanyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1771894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1772894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYFPRINTF (stderr, "Stack now");
177319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  for (; yybottom <= yytop; yybottom++)
177419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    {
177519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman      int yybot = *yybottom;
177619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman      YYFPRINTF (stderr, " %d", yybot);
177719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
1778894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYFPRINTF (stderr, "\n");
1779894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1780894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1781eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_STACK_PRINT(Bottom, Top)                            \
1782eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichdo {                                                            \
1783eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yydebug)                                                  \
1784eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    yy_stack_print ((Bottom), (Top));                           \
1785eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich} while (0)
1786894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1787894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1788894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*------------------------------------------------.
1789894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| Report that the YYRULE is going to be reduced.  |
1790894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`------------------------------------------------*/
1791894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1792894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic void
1793eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, TParseContext* context, void* yyscanner)
1794894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1795eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  unsigned long int yylno = yyrline[yyrule];
1796894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  int yynrhs = yyr2[yyrule];
1797894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  int yyi;
1798894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1799eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             yyrule - 1, yylno);
1800894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* The symbols being reduced.  */
1801894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  for (yyi = 0; yyi < yynrhs; yyi++)
1802894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
180319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1804eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yy_symbol_print (stderr,
1805eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                       yystos[yyssp[yyi + 1 - yynrhs]],
1806eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                       &(yyvsp[(yyi + 1) - (yynrhs)])
1807eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                       , &(yylsp[(yyi + 1) - (yynrhs)])                       , context, yyscanner);
180819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman      YYFPRINTF (stderr, "\n");
1809894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
1810894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1811894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1812eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YY_REDUCE_PRINT(Rule)          \
1813eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichdo {                                    \
1814eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yydebug)                          \
1815eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    yy_reduce_print (yyssp, yyvsp, yylsp, Rule, context, yyscanner); \
1816eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich} while (0)
1817894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1818894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Nonzero means print parse trace.  It is left uninitialized so that
1819894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   multiple parsers can coexist.  */
1820894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanint yydebug;
1821894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else /* !YYDEBUG */
1822894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYDPRINTF(Args)
1823894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1824894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YY_STACK_PRINT(Bottom, Top)
1825894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YY_REDUCE_PRINT(Rule)
1826894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif /* !YYDEBUG */
1827894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1828894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1829894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYINITDEPTH -- initial size of the parser's stacks.  */
1830eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#ifndef YYINITDEPTH
1831894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYINITDEPTH 200
1832894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
1833894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1834894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1835894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   if the built-in stack extension method is used).
1836894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1837894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   Do not make this value too large; the results are undefined if
1838894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1839894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   evaluated with infinite-precision integer arithmetic.  */
1840894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1841894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef YYMAXDEPTH
1842894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# define YYMAXDEPTH 10000
1843894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
1844894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1845894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1846894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if YYERROR_VERBOSE
1847894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1848894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifndef yystrlen
1849894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  if defined __GLIBC__ && defined _STRING_H
1850894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define yystrlen strlen
1851894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  else
1852894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Return the length of YYSTR.  */
1853894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic YYSIZE_T
1854894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyystrlen (const char *yystr)
1855894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1856894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYSIZE_T yylen;
1857894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  for (yylen = 0; yystr[yylen]; yylen++)
1858894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    continue;
1859894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  return yylen;
1860894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1861894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
1862894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
1863894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1864894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifndef yystpcpy
1865894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1866894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#   define yystpcpy stpcpy
1867894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  else
1868894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1869894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   YYDEST.  */
1870894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic char *
1871894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyystpcpy (char *yydest, const char *yysrc)
1872894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1873894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  char *yyd = yydest;
1874894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  const char *yys = yysrc;
1875894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1876894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  while ((*yyd++ = *yys++) != '\0')
1877894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    continue;
1878894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1879894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  return yyd - 1;
1880894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1881894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  endif
1882894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
1883894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1884894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifndef yytnamerr
1885894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1886894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   quotes and backslashes, so that it's suitable for yyerror.  The
1887894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   heuristic is that double-quoting is unnecessary unless the string
1888894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   contains an apostrophe, a comma, or backslash (other than
1889894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1890894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   null, do not copy; instead, return the length of what the result
1891894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman   would have been.  */
1892894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic YYSIZE_T
1893894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyytnamerr (char *yyres, const char *yystr)
1894894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
1895894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (*yystr == '"')
1896894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
1897894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYSIZE_T yyn = 0;
1898894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      char const *yyp = yystr;
1899894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1900894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      for (;;)
1901eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        switch (*++yyp)
1902eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          {
1903eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          case '\'':
1904eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          case ',':
1905eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            goto do_not_strip_quotes;
1906eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1907eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          case '\\':
1908eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (*++yyp != '\\')
1909eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              goto do_not_strip_quotes;
1910eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            /* Fall through.  */
1911eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          default:
1912eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (yyres)
1913eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              yyres[yyn] = *yyp;
1914eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            yyn++;
1915eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            break;
1916eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1917eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          case '"':
1918eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (yyres)
1919eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              yyres[yyn] = '\0';
1920eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            return yyn;
1921eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          }
1922894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    do_not_strip_quotes: ;
1923894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
1924894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1925894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (! yyres)
1926894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    return yystrlen (yystr);
1927894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1928894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  return yystpcpy (yyres, yystr) - yyres;
1929894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
1930894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
1931894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1932eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1933eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   about the unexpected token YYTOKEN for the state stack whose top is
1934eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   YYSSP.
1935894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
1936eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1937eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   not large enough to hold the message.  In that case, also set
1938eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1939eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   required number of bytes is too large to store.  */
1940eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic int
1941eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1942eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yytype_int16 *yyssp, int yytoken)
1943eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich{
1944eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1945eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYSIZE_T yysize = yysize0;
1946eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1947eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Internationalized format string. */
1948eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  const char *yyformat = YY_NULLPTR;
1949eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Arguments of yyformat. */
1950eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1951eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Number of reported tokens (one for the "unexpected", one per
1952eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     "expected"). */
1953eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  int yycount = 0;
1954eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1955eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* There are many possibilities here to consider:
1956eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     - If this state is a consistent state with a default action, then
1957eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       the only way this function was invoked is if the default action
1958eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       is an error action.  In that case, don't check for expected
1959eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       tokens because there are none.
1960eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     - The only way there can be no lookahead present (in yychar) is if
1961eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       this state is a consistent state with a default action.  Thus,
1962eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       detecting the absence of a lookahead is sufficient to determine
1963eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       that there is no unexpected or expected token to report.  In that
1964eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       case, just report a simple "syntax error".
1965eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     - Don't assume there isn't a lookahead just because this state is a
1966eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       consistent state with a default action.  There might have been a
1967eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       previous inconsistent state, consistent state with a non-default
1968eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       action, or user semantic action that manipulated yychar.
1969eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     - Of course, the expected token list depends on states to have
1970eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       correct lookahead information, and it depends on the parser not
1971eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       to perform extra reductions after fetching a lookahead from the
1972eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       scanner and before detecting a syntax error.  Thus, state merging
1973eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       (from LALR or IELR) and default reductions corrupt the expected
1974eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       token list.  However, the list is correct for canonical LR with
1975eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       one exception: it will still contain any token that will not be
1976eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       accepted due to an error action in a later state.
1977eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  */
1978eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yytoken != YYEMPTY)
1979eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
1980eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      int yyn = yypact[*yyssp];
1981eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yyarg[yycount++] = yytname[yytoken];
1982eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (!yypact_value_is_default (yyn))
1983eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
1984eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          /* Start YYX at -YYN if negative to avoid negative indexes in
1985eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             YYCHECK.  In other words, skip the first -YYN actions for
1986eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             this state because they are default actions.  */
1987eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          int yyxbegin = yyn < 0 ? -yyn : 0;
1988eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          /* Stay within bounds of both yycheck and yytname.  */
1989eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          int yychecklim = YYLAST - yyn + 1;
1990eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1991eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          int yyx;
1992eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
1993eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1994eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1995eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                && !yytable_value_is_error (yytable[yyx + yyn]))
1996eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              {
1997eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1998eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  {
1999eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    yycount = 1;
2000eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    yysize = yysize0;
2001eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    break;
2002eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  }
2003eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yyarg[yycount++] = yytname[yyx];
2004eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                {
2005eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2006eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  if (! (yysize <= yysize1
2007eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2008eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    return 2;
2009eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  yysize = yysize1;
2010eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                }
2011eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              }
2012eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
2013894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2014eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2015eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  switch (yycount)
2016eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
2017eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYCASE_(N, S)                      \
2018eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      case N:                               \
2019eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyformat = S;                       \
2020eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      break
2021eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(0, YY_("syntax error"));
2022eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(1, YY_("syntax error, unexpected %s"));
2023eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2024eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2025eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2026eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2027eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# undef YYCASE_
2028eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }
2029eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2030eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  {
2031eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2032eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2033eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      return 2;
2034eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    yysize = yysize1;
2035eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  }
2036eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2037eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (*yymsg_alloc < yysize)
2038eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
2039eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      *yymsg_alloc = 2 * yysize;
2040eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (! (yysize <= *yymsg_alloc
2041eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2042eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2043eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      return 1;
2044eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }
2045eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2046eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Avoid sprintf, as that infringes on the user's name space.
2047eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     Don't have undefined behavior even if the translation
2048eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     produced a string with the wrong number of "%s"s.  */
2049eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  {
2050eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    char *yyp = *yymsg;
2051eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    int yyi = 0;
2052eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    while ((*yyp = *yyformat) != '\0')
2053eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2054eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
2055eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yyp += yytnamerr (yyp, yyarg[yyi++]);
2056eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yyformat += 2;
2057eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
2058eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      else
2059eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
2060eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yyp++;
2061eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yyformat++;
2062eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
2063eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  }
2064eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  return 0;
2065894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
2066894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif /* YYERROR_VERBOSE */
2067894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2068894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-----------------------------------------------.
2069894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| Release the memory associated to this symbol.  |
2070894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-----------------------------------------------*/
2071894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2072894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanstatic void
2073eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, TParseContext* context, void* yyscanner)
2074894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
2075894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYUSE (yyvaluep);
207615ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYUSE (yylocationp);
2077894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYUSE (context);
2078eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYUSE (yyscanner);
2079894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (!yymsg)
2080894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    yymsg = "Deleting";
2081894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2082894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2083eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2084eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYUSE (yytype);
2085eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_END
2086894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
2087894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2088894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2089894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2090894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2091eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/*----------.
2092eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich| yyparse.  |
2093eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich`----------*/
2094894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2095894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanint
2096eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichyyparse (TParseContext* context, void* yyscanner)
2097894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman{
209819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* The lookahead symbol.  */
2099894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanint yychar;
2100894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2101eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
210219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman/* The semantic value of the lookahead symbol.  */
2103eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/* Default value used for initialization, for pacifying older GCCs
2104eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich   or non-GCC compilers.  */
2105eced26a12537825c00dcdd8e74e110b3e838a08fVeranika LiaukevichYY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2106eced26a12537825c00dcdd8e74e110b3e838a08fVeranika LiaukevichYYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2107894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
210815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu/* Location data for the lookahead symbol.  */
2109eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevichstatic YYLTYPE yyloc_default
2110eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2111eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  = { 1, 1, 1, 1 }
2112eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# endif
2113eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich;
2114eced26a12537825c00dcdd8e74e110b3e838a08fVeranika LiaukevichYYLTYPE yylloc = yyloc_default;
211515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
211619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    /* Number of syntax errors so far.  */
211719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    int yynerrs;
2118894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
211919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    int yystate;
212019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    /* Number of tokens to shift before error messages enabled.  */
212119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    int yyerrstatus;
2122894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
212319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    /* The stacks and their tools:
2124eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       'yyss': related to states.
2125eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       'yyvs': related to semantic values.
2126eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       'yyls': related to locations.
2127894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2128eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich       Refer to the stacks through separate pointers, to allow yyoverflow
212919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman       to reallocate them elsewhere.  */
2130894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
213119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    /* The state stack.  */
213219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    yytype_int16 yyssa[YYINITDEPTH];
213319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    yytype_int16 *yyss;
213419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    yytype_int16 *yyssp;
2135894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
213619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    /* The semantic value stack.  */
213719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    YYSTYPE yyvsa[YYINITDEPTH];
213819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    YYSTYPE *yyvs;
213919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    YYSTYPE *yyvsp;
2140894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
214115ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu    /* The location stack.  */
214215ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu    YYLTYPE yylsa[YYINITDEPTH];
214315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu    YYLTYPE *yyls;
214415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu    YYLTYPE *yylsp;
214515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
214615ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu    /* The locations where the error started and ended.  */
2147eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    YYLTYPE yyerror_range[3];
214815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu
214919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    YYSIZE_T yystacksize;
2150894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
215119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  int yyn;
215219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  int yyresult;
215319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Lookahead token as an internal (translated) token number.  */
2154eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  int yytoken = 0;
2155894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* The variables used to return semantic value and location from the
2156894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     action routines.  */
2157894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYSTYPE yyval;
215815ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYLTYPE yyloc;
2159894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
216019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#if YYERROR_VERBOSE
216119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Buffer for error messages, and its allocated size.  */
216219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  char yymsgbuf[128];
216319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  char *yymsg = yymsgbuf;
216419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
216519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#endif
216619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
216715ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2168894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2169894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* The number of symbols on the RHS of the reduced rule.
2170894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     Keep to zero when no symbol should be popped.  */
2171894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  int yylen = 0;
2172894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2173eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyssp = yyss = yyssa;
2174eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyvsp = yyvs = yyvsa;
2175eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yylsp = yyls = yylsa;
217619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  yystacksize = YYINITDEPTH;
217719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
2178894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYDPRINTF ((stderr, "Starting parse\n"));
2179894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2180894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yystate = 0;
2181894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyerrstatus = 0;
2182894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yynerrs = 0;
218319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  yychar = YYEMPTY; /* Cause a token to be read.  */
2184eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yylsp[0] = yylloc;
2185894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yysetstate;
2186894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2187894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*------------------------------------------------------------.
2188894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yynewstate -- Push a new state, which is found in yystate.  |
2189894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`------------------------------------------------------------*/
2190894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman yynewstate:
2191894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* In all cases, when you get here, the value and location stacks
2192894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     have just been pushed.  So pushing a state here evens the stacks.  */
2193894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyssp++;
2194894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2195894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman yysetstate:
2196894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  *yyssp = yystate;
2197894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2198894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyss + yystacksize - 1 <= yyssp)
2199894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2200894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      /* Get the current used size of the three stacks, in elements.  */
2201894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYSIZE_T yysize = yyssp - yyss + 1;
2202894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2203894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifdef yyoverflow
2204894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      {
2205eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        /* Give user a chance to reallocate the stack.  Use copies of
2206eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich           these so that the &'s don't force the real ones into
2207eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich           memory.  */
2208eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYSTYPE *yyvs1 = yyvs;
2209eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yytype_int16 *yyss1 = yyss;
2210eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYLTYPE *yyls1 = yyls;
2211eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2212eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        /* Each stack pointer address is followed by the size of the
2213eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich           data in use in that stack, in bytes.  This used to be a
2214eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich           conditional around just the two extra args, but that might
2215eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich           be undefined if yyoverflow is a macro.  */
2216eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyoverflow (YY_("memory exhausted"),
2217eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    &yyss1, yysize * sizeof (*yyssp),
2218eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    &yyvs1, yysize * sizeof (*yyvsp),
2219eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    &yyls1, yysize * sizeof (*yylsp),
2220eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    &yystacksize);
2221eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2222eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyls = yyls1;
2223eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyss = yyss1;
2224eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyvs = yyvs1;
2225894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      }
2226894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else /* no yyoverflow */
2227894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# ifndef YYSTACK_RELOCATE
2228894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      goto yyexhaustedlab;
2229894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# else
2230894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      /* Extend the stack our own way.  */
2231894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      if (YYMAXDEPTH <= yystacksize)
2232eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        goto yyexhaustedlab;
2233894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yystacksize *= 2;
2234894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      if (YYMAXDEPTH < yystacksize)
2235eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yystacksize = YYMAXDEPTH;
2236894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2237894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      {
2238eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yytype_int16 *yyss1 = yyss;
2239eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        union yyalloc *yyptr =
2240eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2241eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (! yyptr)
2242eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          goto yyexhaustedlab;
2243eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYSTACK_RELOCATE (yyss_alloc, yyss);
2244eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2245eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYSTACK_RELOCATE (yyls_alloc, yyls);
2246894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#  undef YYSTACK_RELOCATE
2247eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (yyss1 != yyssa)
2248eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          YYSTACK_FREE (yyss1);
2249894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      }
2250894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman# endif
2251894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif /* no yyoverflow */
2252894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2253894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yyssp = yyss + yysize - 1;
2254894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yyvsp = yyvs + yysize - 1;
225515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu      yylsp = yyls + yysize - 1;
2256894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2257894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2258eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  (unsigned long int) yystacksize));
2259894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2260894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      if (yyss + yystacksize - 1 <= yyssp)
2261eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYABORT;
2262894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2263894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2264894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2265894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
226619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  if (yystate == YYFINAL)
226719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    YYACCEPT;
226819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
2269894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yybackup;
2270894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2271894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-----------.
2272894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yybackup.  |
2273894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-----------*/
2274894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyybackup:
2275894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2276894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* Do appropriate processing given the current state.  Read a
227719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman     lookahead token if we need one and don't already have one.  */
2278894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
227919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* First try to decide what to do without reference to lookahead token.  */
2280894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyn = yypact[yystate];
2281eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  if (yypact_value_is_default (yyn))
2282894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    goto yydefault;
2283894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
228419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Not known => get a lookahead token if don't already have one.  */
2285894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
228619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2287894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yychar == YYEMPTY)
2288894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2289894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYDPRINTF ((stderr, "Reading a token: "));
2290eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yychar = yylex (&yylval, &yylloc, yyscanner);
2291894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2292894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2293894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yychar <= YYEOF)
2294894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2295894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yychar = yytoken = YYEOF;
2296894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYDPRINTF ((stderr, "Now at end of input.\n"));
2297894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2298894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  else
2299894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2300894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yytoken = YYTRANSLATE (yychar);
2301894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2302894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2303894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2304894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* If the proper action on seeing token YYTOKEN is to reduce or to
2305894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     detect an error, take that action.  */
2306894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyn += yytoken;
2307894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2308894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    goto yydefault;
2309894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyn = yytable[yyn];
2310894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyn <= 0)
2311894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2312eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (yytable_value_is_error (yyn))
2313eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        goto yyerrlab;
2314894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yyn = -yyn;
2315894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      goto yyreduce;
2316894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
2317894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2318894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* Count tokens shifted since error; after three, turn off error
2319894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     status.  */
2320894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyerrstatus)
2321894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    yyerrstatus--;
2322894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
232319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Shift the lookahead token.  */
2324894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2325894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
232619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Discard the shifted token.  */
232719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  yychar = YYEMPTY;
2328894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2329894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yystate = yyn;
2330eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2331894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  *++yyvsp = yylval;
2332eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_END
233315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  *++yylsp = yylloc;
2334894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yynewstate;
2335894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2336894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2337894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-----------------------------------------------------------.
2338894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yydefault -- do the default action for the current state.  |
2339894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-----------------------------------------------------------*/
2340894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyydefault:
2341894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyn = yydefact[yystate];
2342894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyn == 0)
2343894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    goto yyerrlab;
2344894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yyreduce;
2345894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2346894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2347894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-----------------------------.
2348894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyreduce -- Do a reduction.  |
2349894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-----------------------------*/
2350894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyreduce:
2351894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* yyn is the number of a rule to reduce with.  */
2352894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yylen = yyr2[yyn];
2353894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2354894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* If YYLEN is nonzero, implement the default value of the action:
2355eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     '$$ = $1'.
2356894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2357894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     Otherwise, the following line sets YYVAL to garbage.
2358894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     This behavior is undocumented and Bison
2359894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     users should not rely upon it.  Assigning to YYVAL
2360894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     unconditionally makes the parser a bit smaller, and it avoids a
2361894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     GCC warning that YYVAL may be used uninitialized.  */
2362894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyval = yyvsp[1-yylen];
2363894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
236415ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  /* Default location.  */
236515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2366894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_REDUCE_PRINT (yyn);
2367894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  switch (yyn)
2368894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2369894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        case 2:
2370894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2371894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2372894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // The symbol table search was done in the lexical phase
2373eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        const TVariable *variable = context->getNamedVariable((yylsp[0]), (yyvsp[0].lex).string, (yyvsp[0].lex).symbol);
2374894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2375894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // don't delete $1.string, it's used by error recovery, and the pool
2376894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // pop will reclaim the memory
2377894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
23787cbb1de26de993b59381f9752c04cd55951fc645Nicolas Capens        // Constants which aren't indexable arrays can be propagated by value.
23790863f0df08c859d5966e809073046e9dab1cde6eNicolas Capens        ConstantUnion *constArray = variable->getConstPointer();
23807cbb1de26de993b59381f9752c04cd55951fc645Nicolas Capens        if (constArray && variable->getType().getArraySize() <= 1) {
2381894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            TType t(variable->getType());
2382eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(constArray, t, (yylsp[0]));
2383894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        } else
2384894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            (yyval.interm.intermTypedNode) = context->intermediate.addSymbol(variable->getUniqueId(),
2385894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman                                                     variable->getName(),
2386eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                                                     variable->getType(), (yylsp[0]));
238719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2388eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2389894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2390894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2391894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  case 3:
2392894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2393894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2394eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
239519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2396eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2397894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2398894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2399894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  case 4:
2400894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2401894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2402894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        ConstantUnion *unionArray = new ConstantUnion[1];
2403eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        unionArray->setIConst((yyvsp[0].lex).i);
2404eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtInt, EbpUndefined, EvqConstExpr), (yylsp[0]));
240519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2406eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2407894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2408894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2409894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  case 5:
2410894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2411894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2412894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        ConstantUnion *unionArray = new ConstantUnion[1];
2413eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        unionArray->setUConst((yyvsp[0].lex).u);
2414eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtUInt, EbpUndefined, EvqConstExpr), (yylsp[0]));
24152c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens    }
2416eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
24172c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens    break;
24182c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
24192c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 6:
24202c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
24212c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens    {
24222c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens        ConstantUnion *unionArray = new ConstantUnion[1];
2423eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        unionArray->setFConst((yyvsp[0].lex).f);
2424eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtFloat, EbpUndefined, EvqConstExpr), (yylsp[0]));
242519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2426eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2427894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2428894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24292c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 7:
2430894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2431894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2432894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        ConstantUnion *unionArray = new ConstantUnion[1];
2433eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        unionArray->setBConst((yyvsp[0].lex).b);
2434eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConstExpr), (yylsp[0]));
243519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2436eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2437894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2438894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24392c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 8:
2440894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2441894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2442eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
244319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2444eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2445894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2446894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24472c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 9:
2448894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2449894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2450eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
245119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2452eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2453894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2454894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24552c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 10:
2456894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2457894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2458eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addIndexExpression((yyvsp[-3].interm.intermTypedNode), (yylsp[-2]), (yyvsp[-1].interm.intermTypedNode));
245919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2460eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2461894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2462894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24632c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 11:
2464894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2465894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2466eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
246719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2468eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2469894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2470894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24712c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 12:
2472894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2473894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2474eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addFieldSelectionExpression((yyvsp[-2].interm.intermTypedNode), (yylsp[-1]), *(yyvsp[0].lex).string, (yylsp[0]));
247519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2476eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2477894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2478894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24792c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 13:
2480894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2481894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2482eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addUnaryMathLValue(EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode), (yylsp[0]));
248319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2484eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2485894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2486894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24872c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 14:
2488894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2489894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2490eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addUnaryMathLValue(EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode), (yylsp[0]));
249119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2492eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2493894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2494894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
24952c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 15:
2496894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2497894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2498eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->integerErrorCheck((yyvsp[0].interm.intermTypedNode), "[]"))
2499894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
2500eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
250119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2502eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2503894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2504894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25052c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 16:
2506894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2507894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2508b3ff42cdf382b15fd1776881c525815f7d25a1f3Alexis Hetu        bool fatalError = false;
2509eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addFunctionCallOrMethod((yyvsp[0].interm).function, (yyvsp[0].interm).nodePair.node1, (yyvsp[0].interm).nodePair.node2, (yylsp[0]), &fatalError);
2510b3ff42cdf382b15fd1776881c525815f7d25a1f3Alexis Hetu        if (fatalError)
2511894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        {
2512b3ff42cdf382b15fd1776881c525815f7d25a1f3Alexis Hetu            YYERROR;
2513894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
251419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2515eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2516894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2517894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25182c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 17:
2519894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2520894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2521eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
2522950cb449744bc5d4e3d8ad8432e4549f5e29863cAlexis Hetu        (yyval.interm).nodePair.node2 = nullptr;
252319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2524eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2525894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2526894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25272c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 18:
2528894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2529894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2530eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("", (yylsp[0]), "methods");
2531eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
2532eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).nodePair.node2 = (yyvsp[-2].interm.intermTypedNode);
253319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2534eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2535894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2536894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25372c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 19:
2538894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2539894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2540eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-1].interm);
254119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2542eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2543894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2544894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25452c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 20:
2546894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2547894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2548eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-1].interm);
254919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2550eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2551894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2552894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25532c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 21:
2554894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2555894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2556eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).function = (yyvsp[-1].interm.function);
2557950cb449744bc5d4e3d8ad8432e4549f5e29863cAlexis Hetu        (yyval.interm).nodePair.node1 = nullptr;
255819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2559eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2560894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2561894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25622c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 22:
2563894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2564894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2565eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).function = (yyvsp[0].interm.function);
2566950cb449744bc5d4e3d8ad8432e4549f5e29863cAlexis Hetu        (yyval.interm).nodePair.node1 = nullptr;
256719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2568eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2569894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2570894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25712c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 23:
2572894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2573894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2574eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TParameter param = { 0, new TType((yyvsp[0].interm.intermTypedNode)->getType()) };
2575eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyvsp[-1].interm.function)->addParameter(param);
2576eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).function = (yyvsp[-1].interm.function);
2577eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).nodePair.node1 = (yyvsp[0].interm.intermTypedNode);
257819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2579eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2580894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2581894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25822c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 24:
2583894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2584894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2585eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TParameter param = { 0, new TType((yyvsp[0].interm.intermTypedNode)->getType()) };
2586eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyvsp[-2].interm).function->addParameter(param);
2587eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).function = (yyvsp[-2].interm).function;
2588eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).nodePair.node1 = context->intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
258919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2590eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2591894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2592894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
25932c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 25:
2594894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2595894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2596eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.function) = (yyvsp[-1].interm.function);
259719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2598eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2599894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2600894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26012c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 26:
2602894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2603894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2604eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[0].interm.type).array) {
2605eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            ES3_ONLY("[]", (yylsp[0]), "array constructor");
2606894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
2607eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.function) = context->addConstructorFunc((yyvsp[0].interm.type));
260819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2609eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2610894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2611894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26122c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 27:
2613894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2614894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2615eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[0]), *(yyvsp[0].lex).string))
2616894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
2617894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TType type(EbtVoid, EbpUndefined);
2618eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TFunction *function = new TFunction((yyvsp[0].lex).string, type);
2619894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.function) = function;
262019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2621eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2622894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2623894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26242c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 28:
2625894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2626894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2627eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[0]), *(yyvsp[0].lex).string))
2628894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
2629894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TType type(EbtVoid, EbpUndefined);
2630eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TFunction *function = new TFunction((yyvsp[0].lex).string, type);
2631894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.function) = function;
263219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2633eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2634894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2635894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26362c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 29:
2637894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2638894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2639eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
264019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2641eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2642894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2643894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26442c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 30:
2645894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2646894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2647eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addUnaryMathLValue(EOpPreIncrement, (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
264819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2649eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2650894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2651894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26522c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 31:
2653894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2654894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2655eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addUnaryMathLValue(EOpPreDecrement, (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
265619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2657eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2658894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2659894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26602c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 32:
2661894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2662894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2663eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[-1].interm).op != EOpNull) {
2664eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.intermTypedNode) = context->addUnaryMath((yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
2665894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        } else
2666eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
266719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2668eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2669894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2670894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26712c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 33:
2672894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2673253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    { (yyval.interm).op = EOpNull; }
2674eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2675894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2676894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26772c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 34:
2678894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2679253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    { (yyval.interm).op = EOpNegative; }
2680eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2681894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2682894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26832c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 35:
2684894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2685253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    { (yyval.interm).op = EOpLogicalNot; }
2686eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2687894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2688894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26892c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 36:
2690894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26911780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2692eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("~", (yylsp[0]), "bit-wise operator");
2693253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu        (yyval.interm).op = EOpBitwiseNot;
26941780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2695eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2696894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2697894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
26982c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens  case 37:
2699894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2700eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2701eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
27021780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
27031780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27041780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 38:
27051780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
2706894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2707eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("*", (yylsp[-1]));
2708eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
270919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2710eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2711894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2712894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27131780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 39:
2714894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2715894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2716eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("/", (yylsp[-1]));
2717eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
271819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2719eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2720894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2721894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27221780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 40:
27231780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27241780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2725eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("%", (yylsp[-1]));
2726eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("%", (yylsp[-1]), "integer modulus operator");
2727eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpIMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
27281780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2729eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
27301780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
27311780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27321780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 41:
2733894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2734eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2735eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2736894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2737894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27381780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 42:
2739894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2740894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2741eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
274219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2743eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2744894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2745894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27461780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 43:
2747894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2748894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2749eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
275019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2751eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2752894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2753894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27541780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 44:
2755894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2756eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2757eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2758894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2759894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27601780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 45:
27611780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27621780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2763eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("<<", (yylsp[-1]), "bit-wise operator");
2764eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpBitShiftLeft, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
27651780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2766eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
27671780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
27681780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27691780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 46:
27701780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27711780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2772eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY(">>", (yylsp[-1]), "bit-wise operator");
2773eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpBitShiftRight, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
27741780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2775eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
27761780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
27771780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
27781780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 47:
2779894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2780eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2781eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2782894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2783894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27841780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 48:
2785894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2786894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2787eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
278819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2789eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2790894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2791894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
27921780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 49:
2793894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2794894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2795eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
279619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2797eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2798894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2799894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28001780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 50:
2801894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2802894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2803eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
280419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2805eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2806894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2807894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28081780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 51:
2809894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2810894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2811eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
281219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2813eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2814894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2815894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28161780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 52:
2817894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2818eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2819eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2820894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2821894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28221780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 53:
2823894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2824894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2825eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
282619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2827eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2828894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2829894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28301780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 54:
2831894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2832894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2833eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
283419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2835eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2836894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2837894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28381780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 55:
2839894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2840eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2841eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2842894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2843894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28441780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 56:
2845894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28461780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2847eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("&", (yylsp[-1]), "bit-wise operator");
2848eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpBitwiseAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
28491780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2850eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2851894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2852894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28531780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 57:
2854894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2855eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2856eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
28572c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens    break;
28582c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
28591780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 58:
28602c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
2861894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2862eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("^", (yylsp[-1]), "bit-wise operator");
2863eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpBitwiseXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
286419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2865eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2866894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2867894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28681780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 59:
2869894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2870eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2871eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2872894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2873894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28741780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 60:
2875894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2876894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2877eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("|", (yylsp[-1]), "bit-wise operator");
2878eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMath(EOpBitwiseOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
287919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2880eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2881894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2882894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28831780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 61:
2884894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2885eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2886eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2887894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2888894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28891780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 62:
2890894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2891894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2892eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
289319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2894eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2895894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2896894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
28971780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 63:
2898894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2899eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2900eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2901894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2902894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29031780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 64:
2904894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2905894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2906eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
29071780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2908eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29091780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29101780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29111780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 65:
29121780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
2913eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2914eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29151780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29161780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29171780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 66:
29181780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29191780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2920eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addBinaryMathBooleanResult(EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
29211780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    }
2922eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29231780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29241780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29251780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 67:
29261780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
2927eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2928eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29291780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29301780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29311780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 68:
29321780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29331780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    {
2934eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addTernarySelection((yyvsp[-4].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-3]));
293519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2936eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2937894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2938894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29391780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 69:
2940894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2941eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
2942eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2943894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2944894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29451780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 70:
2946894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2947894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
2948eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->lValueErrorCheck((yylsp[-1]), "assign", (yyvsp[-2].interm.intermTypedNode)))
2949894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
2950eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
295119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
2952eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2953894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2954894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29551780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 71:
2956894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2957253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    {                           (yyval.interm).op = EOpAssign; }
2958eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2959894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2960894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29611780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 72:
2962894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2963eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { FRAG_VERT_ONLY("*=", (yylsp[0])); (yyval.interm).op = EOpMulAssign; }
2964eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2965894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2966894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29671780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 73:
2968894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2969eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { FRAG_VERT_ONLY("/=", (yylsp[0])); (yyval.interm).op = EOpDivAssign; }
2970eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2971894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2972894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29731780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 74:
29741780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
2975eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY("%=", (yylsp[0]), "integer modulus operator");
2976eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY("%=", (yylsp[0])); (yyval.interm).op = EOpIModAssign; }
2977eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29781780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29791780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
29801780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 75:
2981894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2982253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    {                           (yyval.interm).op = EOpAddAssign; }
2983eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2984894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2985894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29861780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 76:
2987894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
2988253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu    {                           (yyval.interm).op = EOpSubAssign; }
2989eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
2990894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
2991894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
29921780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 77:
29931780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
2994eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY("<<=", (yylsp[0]), "bit-wise operator");
2995eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY("<<=", (yylsp[0]));
2996253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu                     (yyval.interm).op = EOpBitShiftLeftAssign; }
2997eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
29981780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
29991780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
30001780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 78:
30011780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
3002eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY(">>=", (yylsp[0]), "bit-wise operator");
3003eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY(">>=", (yylsp[0]));
3004253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu                     (yyval.interm).op = EOpBitShiftRightAssign; }
3005eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
30061780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
30071780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
30081780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 79:
30091780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
3010eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY("&=", (yylsp[0]), "bit-wise operator");
3011eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY("&=", (yylsp[0]));
3012253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu                     (yyval.interm).op = EOpBitwiseAndAssign; }
3013eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
30141780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
30151780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
30161780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 80:
30171780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
3018eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY("^=", (yylsp[0]), "bit-wise operator");
3019eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY("^=", (yylsp[0]));
3020253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu                     (yyval.interm).op = EOpBitwiseXorAssign; }
3021eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
30221780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
30231780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
30241780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 81:
30251780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
3026eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { ES3_ONLY("|=", (yylsp[0]), "bit-wise operator");
3027eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                     FRAG_VERT_ONLY("|=", (yylsp[0]));
3028253fdd10c2c3b428302755db0df4ca6fbb60024fAlexis Hetu                     (yyval.interm).op = EOpBitwiseOrAssign; }
3029eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
30301780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu    break;
30311780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu
30321780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 82:
3033894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3034894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3035eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
303619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3037eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3038894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3039894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
30401780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 83:
3041894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3042894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3043eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = context->intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yylsp[-1]));
3044894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        if ((yyval.interm.intermTypedNode) == 0) {
3045eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->binaryOpError((yylsp[-1]), ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
3046894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3047eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
3048894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
304919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3050eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3051894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3052894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
30531780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 84:
3054894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3055894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3056eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->constErrorCheck((yyvsp[0].interm.intermTypedNode)))
3057894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3058eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
305919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3060eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3061894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3062894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
30631780905ed341f3b5df8fd87774ed53d3aaaa280fAlexis Hetu  case 85:
3064894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3065894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3066eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->enterStructDeclaration((yylsp[-1]), *(yyvsp[-1].lex).string))
3067a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu            context->recover();
3068eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.lex) = (yyvsp[-1].lex);
3069a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    }
3070eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3071a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    break;
3072a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3073a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 86:
3074a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3075a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    {
3076407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        (yyval.interm.intermNode) = context->addFunctionPrototypeDeclaration(*((yyvsp[-1].interm).function), (yylsp[-1]));
307719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3078eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3079894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3080894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3081a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 87:
3082894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3083894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3084eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TIntermAggregate *aggNode = (yyvsp[-1].interm).intermAggregate;
3085dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu        if (aggNode && aggNode->getOp() == EOpNull)
3086dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu            aggNode->setOp(EOpDeclaration);
3087dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu        (yyval.interm.intermNode) = aggNode;
308819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3089eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3090894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3091894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3092a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 88:
3093894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3094894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3095eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (!context->symbolTable.setDefaultPrecision( (yyvsp[-1].interm.type), (yyvsp[-2].interm.precision) )) {
3096eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[-3]), "illegal type argument for default precision qualifier", getBasicString((yyvsp[-1].interm.type).type));
3097d4ae863d01d5f448dbbba6be4ecc161971a2324fJohn Bauman            context->recover();
3098d4ae863d01d5f448dbbba6be4ecc161971a2324fJohn Bauman        }
3099894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.intermNode) = 0;
310019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3101eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3102894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3103894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3104a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 89:
3105a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3106a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    {
3107eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY(getQualifierString((yyvsp[-4].interm.type).qualifier), (yylsp[-4]), "interface blocks");
3108eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[-4].interm.type), (yylsp[-3]), *(yyvsp[-3].lex).string, (yyvsp[-2].interm.fieldList), NULL, (yylsp[-4]), NULL, (yylsp[-4]));
3109a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    }
3110eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3111a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    break;
3112a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3113a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 90:
3114a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3115a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    {
3116eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY(getQualifierString((yyvsp[-5].interm.type).qualifier), (yylsp[-5]), "interface blocks");
3117eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[-5].interm.type), (yylsp[-4]), *(yyvsp[-4].lex).string, (yyvsp[-3].interm.fieldList), (yyvsp[-1].lex).string, (yylsp[-1]), NULL, (yylsp[-5]));
3118a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    }
3119eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3120a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    break;
3121a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3122a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 91:
3123a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3124a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    {
3125eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY(getQualifierString((yyvsp[-8].interm.type).qualifier), (yylsp[-8]), "interface blocks");
3126eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[-8].interm.type), (yylsp[-7]), *(yyvsp[-7].lex).string, (yyvsp[-6].interm.fieldList), (yyvsp[-4].lex).string, (yylsp[-4]), (yyvsp[-2].interm.intermTypedNode), (yylsp[-3]));
3127a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    }
3128eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3129a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    break;
3130a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3131a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 92:
3132a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3133a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    {
3134eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        context->parseGlobalLayoutQualifier((yyvsp[-1].interm.type));
3135a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu        (yyval.interm.intermNode) = 0;
3136a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    }
3137eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3138a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu    break;
3139a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu
3140a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 93:
3141894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3142894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3143407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        (yyval.interm).function = context->parseFunctionDeclarator((yylsp[0]), (yyvsp[-1].interm.function));
314419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3145eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3146894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3147894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3148a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 94:
3149894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3150894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3151eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.function) = (yyvsp[0].interm.function);
315219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3153eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3154894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3155894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3156a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 95:
3157894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3158894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3159eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.function) = (yyvsp[0].interm.function);
316019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3161eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3162894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3163894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3164a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 96:
3165894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3166894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3167894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // Add the parameter
3168eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.function) = (yyvsp[-1].interm.function);
3169eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
3170eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
3171894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        else
3172eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            delete (yyvsp[0].interm).param.type;
317319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3174eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3175894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3176894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3177a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 97:
3178894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3179894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3180894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        //
3181894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // Only first parameter of one-parameter functions can be void
3182894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // The check for named parameters not being void is done in parameter_declarator
3183894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        //
3184eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
3185894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            //
3186894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            // This parameter > first is void
3187894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            //
3188eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[-1]), "cannot be an argument type except for '(void)'", "void");
3189894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3190eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            delete (yyvsp[0].interm).param.type;
3191894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        } else {
3192894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            // Add the parameter
3193eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.function) = (yyvsp[-2].interm.function);
3194eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
3195894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
319619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3197eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3198894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3199894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3200a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 98:
3201894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3202894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3203eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[-2].interm.type).qualifier != EvqGlobal && (yyvsp[-2].interm.type).qualifier != EvqTemporary) {
3204eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[-1]), "no qualifiers allowed for function return", getQualifierString((yyvsp[-2].interm.type).qualifier));
3205894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3206894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
3207407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        if (!(yyvsp[-2].interm.type).layoutQualifier.isEmpty())
3208407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        {
3209407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->error((yylsp[-1]), "no qualifiers allowed for function return", "layout");
3210407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->recover();
3211407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        }
3212894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // make sure a sampler is not involved as well...
3213407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        if (context->samplerErrorCheck((yylsp[-1]), (yyvsp[-2].interm.type), "samplers can't be function return values"))
3214894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3215894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3216894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // Add the function as a prototype after parsing it (we do not support recursion)
3217894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TFunction *function;
3218eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TType type((yyvsp[-2].interm.type));
3219eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        function = new TFunction((yyvsp[-1].lex).string, type);
3220894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.function) = function;
3221e97a31e2ecef119a235e3ef474cc8d9e1395a532Alexis Hetu
322266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        context->symbolTable.push();
322319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3224eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3225894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3226894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3227a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 99:
3228894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3229894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3230eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[-1].interm.type).type == EbtVoid) {
3231eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[0]), "illegal use of type 'void'", (yyvsp[0].lex).string->c_str());
3232894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3233894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
3234eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[0]), *(yyvsp[0].lex).string))
3235894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3236eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
3237894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm).param = param;
323819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3239eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3240894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3241894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3242a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 100:
3243894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3244894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3245894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // Check that we can make an array out of this type
3246eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->arrayTypeErrorCheck((yylsp[-2]), (yyvsp[-4].interm.type)))
3247894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3248894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3249eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[-3]), *(yyvsp[-3].lex).string))
3250894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3251894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3252858c0393b51e98025a9d0a4864985aecb4a3d5e5Nicolas Capens        int size = 0;
3253eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->arraySizeErrorCheck((yylsp[-2]), (yyvsp[-1].interm.intermTypedNode), size))
3254894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3255eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyvsp[-4].interm.type).setArray(true, size);
3256894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3257eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TType* type = new TType((yyvsp[-4].interm.type));
3258eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TParameter param = { (yyvsp[-3].lex).string, type };
3259894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm).param = param;
326019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3261eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3262894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3263894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3264a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 101:
3265894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3266894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3267eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
3268eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->paramErrorCheck((yylsp[0]), (yyvsp[-2].interm.qualifier), (yyvsp[-1].interm.qualifier), (yyval.interm).param.type))
3269894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
327019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3271eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3272894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3273894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3274a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 102:
3275894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3276894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3277eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
3278eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->parameterSamplerErrorCheck((yylsp[0]), (yyvsp[-1].interm.qualifier), *(yyvsp[0].interm).param.type))
3279894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3280eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->paramErrorCheck((yylsp[0]), EvqTemporary, (yyvsp[-1].interm.qualifier), (yyval.interm).param.type))
3281894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
328219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3283eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3284894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3285894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3286a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 103:
3287894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3288894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3289eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
3290eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->paramErrorCheck((yylsp[0]), (yyvsp[-2].interm.qualifier), (yyvsp[-1].interm.qualifier), (yyval.interm).param.type))
3291894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
329219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3293eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3294894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3295894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3296a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 104:
3297894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3298894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3299eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
3300eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->parameterSamplerErrorCheck((yylsp[0]), (yyvsp[-1].interm.qualifier), *(yyvsp[0].interm).param.type))
3301894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3302eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->paramErrorCheck((yylsp[0]), EvqTemporary, (yyvsp[-1].interm.qualifier), (yyval.interm).param.type))
3303894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
330419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3305eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3306894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3307894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3308a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 105:
3309894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3310894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3311894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.qualifier) = EvqIn;
331219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3313eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3314894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3315894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3316a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 106:
3317894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3318894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3319894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.qualifier) = EvqIn;
332019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3321eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3322894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3323894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3324a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 107:
3325894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3326894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3327894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.qualifier) = EvqOut;
332819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3329eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3330894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3331894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3332a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 108:
3333894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3334894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3335894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.qualifier) = EvqInOut;
333619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3337eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3338894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3339894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3340a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 109:
3341894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3342894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3343eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
3344894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm).param = param;
334519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3346eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3347894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3348894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3349a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 110:
3350894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3351894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3352eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[0].interm);
335319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3354eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3355894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3356894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3357a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 111:
3358894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3359894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3360eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-2].interm);
3361eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseDeclarator((yyval.interm).type, (yyvsp[-2].interm).intermAggregate, (yylsp[0]), *(yyvsp[0].lex).string);
336219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3363eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3364894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3365894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3366a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 112:
3367894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3368894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3369eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-5].interm);
3370eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseArrayDeclarator((yyval.interm).type, (yyvsp[-5].interm).intermAggregate, (yylsp[-3]), *(yyvsp[-3].lex).string, (yylsp[-2]), (yyvsp[-1].interm.intermTypedNode));
337119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3372eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3373894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3374894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3375a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 113:
3376894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3377894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3378eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("[]", (yylsp[-4]), "implicitly sized array");
3379eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-6].interm);
3380eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseArrayInitDeclarator((yyval.interm).type, (yyvsp[-6].interm).intermAggregate, (yylsp[-4]), *(yyvsp[-4].lex).string, (yylsp[-3]), nullptr, (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
338119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3382eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3383894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3384894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3385a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 114:
3386894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3387894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3388eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("=", (yylsp[-1]), "first-class arrays (array initializer)");
3389eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-7].interm);
3390eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseArrayInitDeclarator((yyval.interm).type, (yyvsp[-7].interm).intermAggregate, (yylsp[-5]), *(yyvsp[-5].lex).string, (yylsp[-4]), (yyvsp[-3].interm.intermTypedNode), (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
339119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3392eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3393894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3394894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3395a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 115:
3396894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3397894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3398eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm) = (yyvsp[-4].interm);
3399eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseInitDeclarator((yyval.interm).type, (yyvsp[-4].interm).intermAggregate, (yylsp[-2]), *(yyvsp[-2].lex).string, (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
340019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3401eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3402894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3403894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3404a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 116:
3405894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3406894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3407eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[0].interm.type);
3408eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleDeclaration((yyval.interm).type, (yylsp[0]), "");
340919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3410eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3411894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3412894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3413a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 117:
3414894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3415894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3416eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[-1].interm.type);
3417eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleDeclaration((yyval.interm).type, (yylsp[0]), *(yyvsp[0].lex).string);
341819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3419eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3420894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3421894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3422a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 118:
3423894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3424894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3425eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[-4].interm.type);
3426eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleArrayDeclaration((yyval.interm).type, (yylsp[-3]), *(yyvsp[-3].lex).string, (yylsp[-2]), (yyvsp[-1].interm.intermTypedNode));
342719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3428eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3429894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3430894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3431a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 119:
3432894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3433894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3434eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("[]", (yylsp[-3]), "implicitly sized array");
3435eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[-5].interm.type);
3436eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleArrayInitDeclaration((yyval.interm).type, (yylsp[-4]), *(yyvsp[-4].lex).string, (yylsp[-3]), nullptr, (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
343719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3438eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3439894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3440894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3441a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 120:
3442894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3443894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3444eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("=", (yylsp[-1]), "first-class arrays (array initializer)");
3445eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[-6].interm.type);
3446eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleArrayInitDeclaration((yyval.interm).type, (yylsp[-5]), *(yyvsp[-5].lex).string, (yylsp[-4]), (yyvsp[-3].interm.intermTypedNode), (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
344719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3448eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3449894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3450894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3451a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 121:
3452894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3453894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3454eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).type = (yyvsp[-3].interm.type);
3455eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseSingleInitDeclaration((yyval.interm).type, (yylsp[-2]), *(yyvsp[-2].lex).string, (yylsp[-1]), (yyvsp[0].interm.intermTypedNode));
3456dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    }
3457eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3458dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    break;
3459894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3460a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 122:
3461dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu
3462dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    {
3463dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu        // $$.type is not used in invariant declarations.
3464eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm).intermAggregate = context->parseInvariantDeclaration((yylsp[-1]), (yylsp[0]), (yyvsp[0].lex).string, (yyvsp[0].lex).symbol);
3465dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    }
3466eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3467dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    break;
3468dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu
3469a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 123:
3470dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu
3471dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu    {
3472eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[0].interm.type);
3473dd7ff7a5695e28d5e1fe156349786639ee0783d7Alexis Hetu
3474eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[0].interm.type).array) {
3475eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            ES3_ONLY("[]", (yylsp[0]), "first-class-array");
347642ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu            if (context->getShaderVersion() != 300) {
3477eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                (yyvsp[0].interm.type).clearArrayness();
347842ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu            }
3479894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
348019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3481eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3482894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3483894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3484a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 124:
3485894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3486894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3487eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = context->addFullySpecifiedType((yyvsp[-1].interm.type).qualifier, (yyvsp[-1].interm.type).invariant, (yyvsp[-1].interm.type).layoutQualifier, (yyvsp[0].interm.type));
348819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3489eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3490894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3491894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3492a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 125:
3493894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3494894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
349555a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu        (yyval.interm.type).qualifier = EvqSmooth;
349619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3497eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3498894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3499894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3500a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 126:
3501894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3502894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
350355a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu        (yyval.interm.type).qualifier = EvqFlat;
350455a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    }
3505eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
350655a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    break;
350755a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
3508a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 127:
350955a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
351055a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    {
351155a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu        (yyval.interm.qualifier) = EvqConstReadOnly;
351255a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    }
3513eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
351455a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    break;
351555a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
3516a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 128:
351755a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
351855a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    {
3519eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        VERTEX_ONLY("attribute", (yylsp[0]));
3520eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES2_ONLY("attribute", (yylsp[0]));
3521eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->globalErrorCheck((yylsp[0]), context->symbolTable.atGlobalLevel(), "attribute"))
3522894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3523eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, EvqAttribute, (yylsp[0]));
352419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3525eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3526894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3527894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3528a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 129:
3529894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3530894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3531eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES2_ONLY("varying", (yylsp[0]));
3532eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->globalErrorCheck((yylsp[0]), context->symbolTable.atGlobalLevel(), "varying"))
3533894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
35340a65584a1529450c476c026f3254d78efc200645Alexis Hetu        if (context->getShaderType() == GL_VERTEX_SHADER)
3535eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.type).setBasic(EbtVoid, EvqVaryingOut, (yylsp[0]));
3536894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        else
3537eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.type).setBasic(EbtVoid, EvqVaryingIn, (yylsp[0]));
353819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3539eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3540894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3541894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3542a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 130:
3543894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3544894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3545eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES2_ONLY("varying", (yylsp[-1]));
3546eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->globalErrorCheck((yylsp[-1]), context->symbolTable.atGlobalLevel(), "invariant varying"))
3547894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
35480a65584a1529450c476c026f3254d78efc200645Alexis Hetu        if (context->getShaderType() == GL_VERTEX_SHADER)
3549eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.type).setBasic(EbtVoid, EvqInvariantVaryingOut, (yylsp[-1]));
3550894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        else
3551eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.type).setBasic(EbtVoid, EvqInvariantVaryingIn, (yylsp[-1]));
355219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3553eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3554894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3555894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3556a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 131:
3557894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3558894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3559407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        if ((yyvsp[0].interm.type).qualifier != EvqConstExpr && !context->symbolTable.atGlobalLevel())
3560407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        {
3561407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->error((yylsp[0]), "Local variables can only use the const storage qualifier.", getQualifierString((yyvsp[0].interm.type).qualifier));
3562407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->recover();
3563407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        }
3564eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, (yyvsp[0].interm.type).qualifier, (yylsp[0]));
3565a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3566eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3567a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3568a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3569a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 132:
357055a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
357155a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    {
3572eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = context->joinInterpolationQualifiers((yylsp[-1]), (yyvsp[-1].interm.type).qualifier, (yylsp[0]), (yyvsp[0].interm.type).qualifier);
357355a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    }
3574eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
357555a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    break;
357655a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
3577a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 133:
357855a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
357955a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    {
3580eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        context->error((yylsp[0]), "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getQualifierString((yyvsp[0].interm.type).qualifier));
358155a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu        context->recover();
3582e97a31e2ecef119a235e3ef474cc8d9e1395a532Alexis Hetu
358355a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3584eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, qual, (yylsp[0]));
358555a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    }
3586eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
358755a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu    break;
358855a2cbc6454aaccaaec43a842602e23c917d8307Alexis Hetu
3589a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 134:
3590a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3591a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
35927d626796531874d308706c46a32942d71c85a7f8Nicolas Capens        (yyval.interm.type).qualifier = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3593eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).layoutQualifier = (yyvsp[0].interm.layoutQualifier);
35947d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3595eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
35967d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
35977d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3598a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 135:
35997d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
36007d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3601eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, (yyvsp[0].interm.type).qualifier, (yylsp[0]));
3602eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).layoutQualifier = (yyvsp[-1].interm.layoutQualifier);
36037d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3604eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
36057d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
36067d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3607a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 136:
36087d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
36097d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3610eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        context->es3InvariantErrorCheck((yyvsp[0].interm.type).qualifier, (yylsp[-1]));
3611eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, (yyvsp[0].interm.type).qualifier, (yylsp[0]));
3612ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu        (yyval.interm.type).invariant = true;
3613a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3614eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3615a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3616a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3617a35d8232a5276bef4eae7230d0ed71ce89aa23e8Alexis Hetu  case 137:
3618a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3619a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
3620eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        context->es3InvariantErrorCheck((yyvsp[0].interm.type).qualifier, (yylsp[-2]));
3621eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = context->joinInterpolationQualifiers((yylsp[-1]), (yyvsp[-1].interm.type).qualifier, (yylsp[0]), (yyvsp[0].interm.type).qualifier);
3622ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu        (yyval.interm.type).invariant = true;
3623ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    }
3624eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3625ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    break;
3626ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu
3627ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 138:
3628ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu
3629ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    {
3630ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu        (yyval.interm.type).qualifier = EvqConstExpr;
3631ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    }
3632eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3633ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    break;
3634ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu
3635ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 139:
3636ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu
3637ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu    {
3638eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("in", (yylsp[0]), "storage qualifier");
36390a65584a1529450c476c026f3254d78efc200645Alexis Hetu        (yyval.interm.type).qualifier = (context->getShaderType() == GL_FRAGMENT_SHADER) ? EvqFragmentIn : EvqVertexIn;
3640a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3641eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3642a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3643a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3644ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 140:
3645a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3646a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
3647eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("out", (yylsp[0]), "storage qualifier");
36480a65584a1529450c476c026f3254d78efc200645Alexis Hetu        (yyval.interm.type).qualifier = (context->getShaderType() == GL_FRAGMENT_SHADER) ? EvqFragmentOut : EvqVertexOut;
3649a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3650eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3651a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3652a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3653ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 141:
3654a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3655a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
3656eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("centroid in", (yylsp[-1]), "storage qualifier");
36570a65584a1529450c476c026f3254d78efc200645Alexis Hetu        if (context->getShaderType() == GL_VERTEX_SHADER)
365842ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu        {
3659eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[-1]), "invalid storage qualifier", "it is an error to use 'centroid in' in the vertex shader");
366042ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu            context->recover();
366142ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu        }
36620a65584a1529450c476c026f3254d78efc200645Alexis Hetu        (yyval.interm.type).qualifier = (context->getShaderType() == GL_FRAGMENT_SHADER) ? EvqCentroidIn : EvqVertexIn;
3663a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3664eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3665a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3666a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3667ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 142:
3668a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3669a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
3670eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("centroid out", (yylsp[-1]), "storage qualifier");
36710a65584a1529450c476c026f3254d78efc200645Alexis Hetu        if (context->getShaderType() == GL_FRAGMENT_SHADER)
367242ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu        {
3673eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[-1]), "invalid storage qualifier", "it is an error to use 'centroid out' in the fragment shader");
367442ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu            context->recover();
367542ff6b15714827bb44869e5f1c41918b461bf4c8Alexis Hetu        }
36760a65584a1529450c476c026f3254d78efc200645Alexis Hetu        (yyval.interm.type).qualifier = (context->getShaderType() == GL_FRAGMENT_SHADER) ? EvqFragmentOut : EvqCentroidOut;
3677a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    }
3678eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3679a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    break;
3680a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3681ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 143:
3682a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens
3683a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens    {
3684eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->globalErrorCheck((yylsp[0]), context->symbolTable.atGlobalLevel(), "uniform"))
3685894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3686a6a79ab0490903fa4dd0d77bc3cf041e48936ecaNicolas Capens        (yyval.interm.type).qualifier = EvqUniform;
368719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3688eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3689894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3690894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3691ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 144:
3692894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3693894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3694eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[0].interm.type);
369566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
369666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        if ((yyval.interm.type).precision == EbpUndefined) {
3697eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.type).precision = context->symbolTable.getDefaultPrecision((yyvsp[0].interm.type).type);
3698eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (context->precisionErrorCheck((yylsp[0]), (yyval.interm.type).precision, (yyvsp[0].interm.type).type)) {
369966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman                context->recover();
370066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman            }
370166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        }
370219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3703eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3704894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3705894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3706ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 145:
3707894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3708894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3709eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[0].interm.type);
3710eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).precision = (yyvsp[-1].interm.precision);
3711407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu
3712407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        if (!SupportsPrecision((yyvsp[0].interm.type).type)) {
3713407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->error((yylsp[-1]), "illegal type for precision qualifier", getBasicString((yyvsp[0].interm.type).type));
3714407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu            context->recover();
3715407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        }
371619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3717eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3718894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3719894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3720ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 146:
3721894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3722894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3723894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.precision) = EbpHigh;
372419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3725eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3726894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3727894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3728ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 147:
3729894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3730894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3731894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.precision) = EbpMedium;
373219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3733eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3734894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3735894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3736ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 148:
3737894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3738894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3739894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.precision) = EbpLow;
374019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3741eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3742894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3743894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3744ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 149:
37457d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37467d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3747eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("layout", (yylsp[-3]), "qualifier");
3748eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = (yyvsp[-1].interm.layoutQualifier);
37497d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3750eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37517d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37527d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3753ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 150:
37547d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37557d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3756eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = (yyvsp[0].interm.layoutQualifier);
37577d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3758eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37597d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37607d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3761ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 151:
37627d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37637d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3764eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = context->joinLayoutQualifiers((yyvsp[-2].interm.layoutQualifier), (yyvsp[0].interm.layoutQualifier));
37657d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3766eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37677d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37687d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3769ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 152:
37707d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37717d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3772eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[0].lex).string, (yylsp[0]));
37737d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3774eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37757d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37767d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3777ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 153:
37787d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37797d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3780eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[-2].lex).string, (yylsp[-2]), *(yyvsp[0].lex).string, (yyvsp[0].lex).i, (yylsp[0]));
37817d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3782eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37837d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37847d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3785ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 154:
37867d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
37877d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    {
3788eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[-2].lex).string, (yylsp[-2]), *(yyvsp[0].lex).string, (yyvsp[0].lex).i, (yylsp[0]));
37897d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    }
3790eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
37917d626796531874d308706c46a32942d71c85a7f8Nicolas Capens    break;
37927d626796531874d308706c46a32942d71c85a7f8Nicolas Capens
3793ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 155:
3794894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3795894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3796eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[0].interm.type);
379719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3798eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3799894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3800894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3801ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 156:
3802894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3803894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3804eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        ES3_ONLY("[]", (yylsp[-1]), "implicitly sized array");
3805eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[-2].interm.type);
3806e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu        (yyval.interm.type).setArray(true, 0);
3807e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu    }
3808eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3809e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu    break;
3810e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu
3811ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 157:
3812e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu
3813e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu    {
3814eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[-3].interm.type);
3815894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3816eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->arrayTypeErrorCheck((yylsp[-2]), (yyvsp[-3].interm.type)))
3817894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
3818894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        else {
3819858c0393b51e98025a9d0a4864985aecb4a3d5e5Nicolas Capens            int size = 0;
3820eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (context->arraySizeErrorCheck((yylsp[-2]), (yyvsp[-1].interm.intermTypedNode), size))
3821894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman                context->recover();
3822894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            (yyval.interm.type).setArray(true, size);
3823894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
382419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3825eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3826894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3827894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3828ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 158:
3829894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3830894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3831894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3832eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtVoid, qual, (yylsp[0]));
383319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3834eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3835894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3836894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3837ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 159:
3838894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3839894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3840894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3841eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
384219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3843eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3844894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3845894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3846ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 160:
3847894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3848894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3849894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3850eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[0]));
385119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3852eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3853894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3854894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3855ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 161:
3856894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3857894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3858894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3859eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[0]));
386019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3861eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3862894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3863894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3864ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 162:
3865894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3866894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3867894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3868eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[0]));
38693c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens    }
3870eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
38713c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens    break;
38723c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens
3873ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 163:
38743c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens
38753c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens    {
38763c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3877eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
3878894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(2);
387919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3880eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3881894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3882894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3883ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 164:
3884894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3885894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3886894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3887eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
3888894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(3);
388919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3890eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3891894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3892894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3893ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 165:
3894894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3895894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3896894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3897eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
3898894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(4);
389919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3900eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3901894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3902894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3903ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 166:
3904894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3905894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3906894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3907eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[0]));
3908894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(2);
390919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3910eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3911894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3912894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3913ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 167:
3914894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3915894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3916894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3917eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[0]));
3918894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(3);
391919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3920eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3921894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3922894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3923ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 168:
3924894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3925894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3926894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3927eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[0]));
3928894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(4);
392919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3930eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3931894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3932894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3933ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 169:
3934894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3935894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3936894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3937eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[0]));
3938894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(2);
393919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3940eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3941894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3942894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3943ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 170:
3944894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3945894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3946894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3947eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[0]));
3948894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(3);
394919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3950eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3951894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3952894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3953ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 171:
3954894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3955894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3956894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3957eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[0]));
3958894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).setAggregate(4);
395919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
3960eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3961894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
3962894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3963ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 172:
3964894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
3965894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
3966e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3967eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[0]));
3968e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        (yyval.interm.type).setAggregate(2);
3969e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    }
3970eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3971e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    break;
3972e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3973ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 173:
3974e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3975e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    {
3976e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3977eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[0]));
3978e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        (yyval.interm.type).setAggregate(3);
3979e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    }
3980eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3981e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    break;
3982e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3983ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 174:
3984e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3985e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    {
3986e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3987eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[0]));
3988e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens        (yyval.interm.type).setAggregate(4);
3989e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    }
3990eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
3991e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    break;
3992e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3993ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 175:
3994e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens
3995e4b1b1d8063673537b113beafff48b58ced93f6fNicolas Capens    {
3996eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat2", (yylsp[0]));
3997894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3998eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
3999b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(2, 2);
400019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4001eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4002894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4003894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4004ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 176:
4005894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4006894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4007eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat3", (yylsp[0]));
4008894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4009eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4010b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(3, 3);
401119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4012eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4013894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4014894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4015ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 177:
4016894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4017894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4018eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat4", (yylsp[0]));
4019894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4020eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4021b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(4, 4);
402219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4023eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4024894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4025894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4026ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 178:
4027894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4028894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4029eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat2x3", (yylsp[0]));
4030b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4031eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4032b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(2, 3);
4033b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4034eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4035b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4036b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4037ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 179:
4038b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4039b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4040eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat3x2", (yylsp[0]));
4041b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4042eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4043b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(3, 2);
4044b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4045eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4046b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4047b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4048ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 180:
4049b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4050b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4051eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat2x4", (yylsp[0]));
4052b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4053eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4054b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(2, 4);
4055b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4056eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4057b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4058b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4059ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 181:
4060b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4061b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4062eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat4x2", (yylsp[0]));
4063b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4064eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4065b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(4, 2);
4066b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4067eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4068b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4069b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4070ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 182:
4071b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4072b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4073eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat3x4", (yylsp[0]));
4074b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4075eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4076b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(3, 4);
4077b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4078eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4079b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4080b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4081ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 183:
4082b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4083b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4084eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("mat4x3", (yylsp[0]));
4085b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4086eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[0]));
4087b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        (yyval.interm.type).setMatrix(4, 3);
4088b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4089eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4090b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4091b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4092ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 184:
4093b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4094b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4095eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("sampler2D", (yylsp[0]));
4096894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4097eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSampler2D, qual, (yylsp[0]));
409819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4099eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4100894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4101894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4102ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 185:
4103894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4104894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4105eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("samplerCube", (yylsp[0]));
4106894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4107eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSamplerCube, qual, (yylsp[0]));
410819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4109eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4110894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4111894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4112ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 186:
4113894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4114894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4115e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens        if (!context->supportsExtension("GL_OES_EGL_image_external")) {
4116eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            context->error((yylsp[0]), "unsupported type", "samplerExternalOES", "");
4117e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens            context->recover();
4118e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens        }
4119eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("samplerExternalOES", (yylsp[0]));
4120e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4121eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSamplerExternalOES, qual, (yylsp[0]));
4122e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens    }
4123eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4124e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens    break;
4125e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens
4126ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 187:
4127e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens
4128e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens    {
41294676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu        if (!context->supportsExtension("GL_ARB_texture_rectangle")) {
41304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu            context->error((yylsp[0]), "unsupported type", "sampler2DRect", "");
41314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu            context->recover();
41324676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu        }
41334676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu        FRAG_VERT_ONLY("sampler2DRect", (yylsp[0]));
41344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
41354676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu        (yyval.interm.type).setBasic(EbtSampler2DRect, qual, (yylsp[0]));
41364676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    }
41374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
41384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    break;
41394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
41404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 188:
41414676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
41424676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    {
4143eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("sampler3D", (yylsp[0]));
4144b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4145eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSampler3D, qual, (yylsp[0]));
4146b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu    }
4147eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4148b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu    break;
4149b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu
41504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 189:
4151b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4152b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4153eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("sampler2DArray", (yylsp[0]));
4154b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4155eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSampler2DArray, qual, (yylsp[0]));
4156b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4157eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4158b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4159b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
41604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 190:
4161b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4162b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4163eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("isampler2D", (yylsp[0]));
4164b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4165eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtISampler2D, qual, (yylsp[0]));
4166b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4167eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4168b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4169b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
41704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 191:
4171b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4172b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4173eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("isampler3D", (yylsp[0]));
4174b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4175eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtISampler3D, qual, (yylsp[0]));
4176b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4177eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4178b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4179b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
41804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 192:
4181b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4182b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4183eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("isamplerCube", (yylsp[0]));
4184b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4185eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtISamplerCube, qual, (yylsp[0]));
4186b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4187eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4188b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4189b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
41904676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 193:
4191b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4192b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4193eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("isampler2DArray", (yylsp[0]));
4194b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4195eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtISampler2DArray, qual, (yylsp[0]));
4196b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4197eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4198b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4199b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42004676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 194:
4201b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4202b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4203eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("usampler2D", (yylsp[0]));
4204b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4205eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUSampler2D, qual, (yylsp[0]));
4206b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4207eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4208b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4209b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 195:
4211b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4212b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4213eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("usampler3D", (yylsp[0]));
4214b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4215eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUSampler3D, qual, (yylsp[0]));
4216b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4217eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4218b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4219b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 196:
4221b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4222b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4223eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("usamplerCube", (yylsp[0]));
4224b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4225eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUSamplerCube, qual, (yylsp[0]));
4226b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4227eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4228b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4229b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 197:
4231b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4232b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4233eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("usampler2DArray", (yylsp[0]));
4234b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4235eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtUSampler2DArray, qual, (yylsp[0]));
4236b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4237eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4238b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4239b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 198:
4241b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4242b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4243eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("sampler2DShadow", (yylsp[0]));
4244b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4245eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSampler2DShadow, qual, (yylsp[0]));
4246b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4247eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4248b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4249b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42504676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 199:
4251b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4252b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4253eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("samplerCubeShadow", (yylsp[0]));
4254b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4255eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSamplerCubeShadow, qual, (yylsp[0]));
4256b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4257eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4258b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4259b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42604676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 200:
4261b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
4262b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    {
4263eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("sampler2DArrayShadow", (yylsp[0]));
4264b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4265eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtSampler2DArrayShadow, qual, (yylsp[0]));
4266b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    }
4267eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4268b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu    break;
4269b14178b68ccb44a1fca9ba4e7db7770c6b6b6fa9Alexis Hetu
42704676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 201:
4271b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu
4272b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu    {
4273eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_VERT_ONLY("struct", (yylsp[0]));
4274eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = (yyvsp[0].interm.type);
4275894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).qualifier = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
427619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4277eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4278894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4279894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
42804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 202:
4281894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4282894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4283894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        //
4284894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // This is for user defined type names.  The lexical phase looked up the
4285894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        // type.
4286894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        //
4287eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        TType& structure = static_cast<TVariable*>((yyvsp[0].lex).symbol)->getType();
4288894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4289eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type).setBasic(EbtStruct, qual, (yylsp[0]));
4290894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.type).userDef = &structure;
429119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4292eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4293894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4294894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
42954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 203:
4296894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4297eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { if (context->enterStructDeclaration((yylsp[-1]), *(yyvsp[-1].lex).string)) context->recover(); }
4298eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
429966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman    break;
430066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
43014676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 204:
430266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
4303894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4304eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = context->addStructure((yylsp[-5]), (yylsp[-4]), (yyvsp[-4].lex).string, (yyvsp[-1].interm.fieldList));
430519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4306eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4307894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4308894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43094676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 205:
431066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
4311eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { if (context->enterStructDeclaration((yylsp[0]), *(yyvsp[0].lex).string)) context->recover(); }
4312eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
431366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman    break;
431466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
43154676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 206:
4316894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4317894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4318eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.type) = context->addStructure((yylsp[-4]), (yylsp[-4]), NewPoolTString(""), (yyvsp[-1].interm.fieldList));
431919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4320eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4321894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4322894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43234676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 207:
4324894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4325894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4326eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList) = (yyvsp[0].interm.fieldList);
432719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4328eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4329894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4330894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43314676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 208:
4332894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4333894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4334eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList) = (yyvsp[-1].interm.fieldList);
4335eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        for (unsigned int i = 0; i < (yyvsp[0].interm.fieldList)->size(); ++i) {
4336eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            TField* field = (*(yyvsp[0].interm.fieldList))[i];
4337a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu            for (unsigned int j = 0; j < (yyval.interm.fieldList)->size(); ++j) {
4338a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu                if ((*(yyval.interm.fieldList))[j]->name() == field->name()) {
4339eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                    context->error((*(yyvsp[0].interm.fieldList))[i]->line(), "duplicate field name in structure:", "struct", field->name().c_str());
4340894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman                    context->recover();
4341894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman                }
4342894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            }
4343eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.fieldList)->push_back((*(yyvsp[0].interm.fieldList))[i]);
4344894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
434519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4346eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4347894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4348894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43494676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 209:
4350894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4351894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4352eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList) = context->addStructDeclaratorList((yyvsp[-2].interm.type), (yyvsp[-1].interm.fieldList));
435319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4354eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4355894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4356894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43574676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 210:
4358894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4359894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4360ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu        // ES3 Only, but errors should be handled elsewhere
4361eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyvsp[-2].interm.type).qualifier = (yyvsp[-3].interm.type).qualifier;
4362eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyvsp[-2].interm.type).layoutQualifier = (yyvsp[-3].interm.type).layoutQualifier;
4363eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList) = context->addStructDeclaratorList((yyvsp[-2].interm.type), (yyvsp[-1].interm.fieldList));
4364ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu    }
4365eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4366ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu    break;
4367ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu
43684676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 211:
4369ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu
4370ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu    {
4371a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu        (yyval.interm.fieldList) = NewPoolTFieldList();
4372eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList)->push_back((yyvsp[0].interm.field));
437319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4374eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4375894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4376894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43774676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 212:
4378894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4379894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4380eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.fieldList)->push_back((yyvsp[0].interm.field));
438119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4382eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4383894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4384894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43854676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 213:
4386894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4387894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4388eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[0]), *(yyvsp[0].lex).string))
4389894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4390894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4391a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu        TType* type = new TType(EbtVoid, EbpUndefined);
4392eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.field) = new TField(type, (yyvsp[0].lex).string, (yylsp[0]));
439319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4394eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4395894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4396894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
43974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 214:
4398894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4399894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4400eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->reservedErrorCheck((yylsp[-3]), *(yyvsp[-3].lex).string))
4401894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4402894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4403a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu        TType* type = new TType(EbtVoid, EbpUndefined);
4404858c0393b51e98025a9d0a4864985aecb4a3d5e5Nicolas Capens        int size = 0;
4405eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->arraySizeErrorCheck((yyvsp[-1].interm.intermTypedNode)->getLine(), (yyvsp[-1].interm.intermTypedNode), size))
4406894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4407a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu        type->setArraySize(size);
4408a8b364b735624da31500d0fe93ae75f8b36a59d1Alexis Hetu
4409eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.field) = new TField(type, (yyvsp[-3].lex).string, (yylsp[-3]));
441019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4411eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4412894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4413894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4414ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 215:
4415894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
44164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4417eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4418894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4419894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4420ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 216:
4421894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
44224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4423eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4424894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4425894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4426ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 217:
4427894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
44284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermAggregate); }
4429eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4430894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4431894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4432ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 218:
4433894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4434eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4435eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4436894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4437894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4438ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 219:
4439894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4440eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4441eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4442894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4443894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4444ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 220:
4445894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4446eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4447eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4448e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens    break;
4449e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens
4450ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 221:
4451e9c5e4f164bda3197b4c69bf6e433e87e9f46d19Nicolas Capens
44524676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4453eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4454b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu    break;
4455b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu
4456ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 222:
4457b027aa91f4b20c5062fbc781d0ff693bf294cbccAlexis Hetu
44584676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermSwitch); }
4459eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
44603c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens    break;
44613c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens
4462ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 223:
44633c20f806dd9b3492c7ab102858f84f7cfd73133eNicolas Capens
44644676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermCase); }
4465eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
44662c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens    break;
44672c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
4468ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 224:
44692c1239f554f88546f0f8abf30dc829bb621dd94bNicolas Capens
4470eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4471eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4472ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu    break;
4473ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu
4474ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 225:
4475ad6b87569fb1d2e1705e6e4b090d209be3f68e68Alexis Hetu
44764676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4477eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
447876a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
447976a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
4480ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 226:
448176a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
44824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { (yyval.interm.intermAggregate) = 0; }
4483eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
448476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
448576a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
4486ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 227:
448776a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
44884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { context->symbolTable.push(); }
4489eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4490e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu    break;
4491e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu
4492ad52775476d367199a4cd3b3b47ff8959e63bd59Alexis Hetu  case 228:
4493e524669863d3a7ce8bf2e77fe05b24da555a6de9Alexis Hetu
44944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    { context->symbolTable.pop(); }
44954676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
44964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu    break;
44974676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
44984676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 229:
44994676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu
4500894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4501eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[-2].interm.intermAggregate) != 0) {
4502eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-2].interm.intermAggregate)->setOp(EOpSequence);
4503eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-2].interm.intermAggregate)->setEndLine((yylsp[0]));
4504894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
4505eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermAggregate) = (yyvsp[-2].interm.intermAggregate);
450619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4507eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4508894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4509894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45104676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 230:
4511894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4512407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermAggregate); }
4513eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4514894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4515894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45164676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 231:
4517894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4518eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4519eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4520894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4521894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 232:
4523894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
452419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    { context->symbolTable.push(); }
4525eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
452619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    break;
452719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
45284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 233:
452919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
4530407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu    { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermAggregate); }
4531eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
453219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    break;
453319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
45344676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 234:
453519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
453619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    { context->symbolTable.push(); }
4537eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
453819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    break;
453919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
45404676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 235:
454119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
4542eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
4543eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
454419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    break;
454519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
45464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 236:
454719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
4548894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4549407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        (yyval.interm.intermAggregate) = 0;
455019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4551eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4552894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4553894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 237:
4555894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4556894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4557eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if ((yyvsp[-1].interm.intermAggregate)) {
4558eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-1].interm.intermAggregate)->setOp(EOpSequence);
4559eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyvsp[-1].interm.intermAggregate)->setEndLine((yylsp[0]));
4560894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
4561407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        (yyval.interm.intermAggregate) = (yyvsp[-1].interm.intermAggregate);
456219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4563eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4564894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4565894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45664676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 238:
4567894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4568894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4569eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[0].interm.intermNode), (yyloc));
457019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4571eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4572894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4573894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45744676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 239:
4575894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4576894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4577eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[-1].interm.intermAggregate), (yyvsp[0].interm.intermNode), (yyloc));
457819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4579eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4580894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4581894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45824676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 240:
4583894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
458419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    { (yyval.interm.intermNode) = 0; }
4585eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4586894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4587894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 241:
4589894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4590eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
4591eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4592894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4593894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
45944676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 242:
4595894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4596894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4597eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->boolErrorCheck((yylsp[-4]), (yyvsp[-2].interm.intermTypedNode)))
4598894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4599eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yylsp[-4]));
460019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4601eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4602894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4603894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 243:
4605894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4606894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4607eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
4608eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
460919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4610eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4611894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4612894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46134676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 244:
4614894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4615894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4616eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
4617894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.nodePair).node2 = 0;
461819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4619eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4620894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4621894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46224676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 245:
462376a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
462476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    { context->incrSwitchNestingLevel(); }
4625eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
462676a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
462776a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
46284676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 246:
462976a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
463076a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    {
4631eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermSwitch) = context->addSwitch((yyvsp[-3].interm.intermTypedNode), (yyvsp[0].interm.intermAggregate), (yylsp[-5]));
463276a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu        context->decrSwitchNestingLevel();
463376a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    }
4634eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
463576a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
463676a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
46374676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 247:
463876a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
463976a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    {
4640eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermCase) = context->addCase((yyvsp[-1].interm.intermTypedNode), (yylsp[-2]));
464176a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    }
4642eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
464376a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
464476a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
46454676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 248:
464676a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
464776a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    {
4648eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermCase) = context->addDefault((yylsp[-1]));
464976a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    }
4650eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
465176a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu    break;
465276a343af4ea1f781a56fec006b5fe67a5615d5f8Alexis Hetu
46534676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 249:
4654894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4655894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4656eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4657eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->boolErrorCheck((yyvsp[0].interm.intermTypedNode)->getLine(), (yyvsp[0].interm.intermTypedNode)))
4658894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
465919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4660eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4661894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4662894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 250:
4664894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4665894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4666407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        TIntermNode *intermNode;
4667eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->boolErrorCheck((yylsp[-2]), (yyvsp[-3].interm.type)))
4668894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4669894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4670eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (!context->executeInitializer((yylsp[-2]), *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), (yyvsp[0].interm.intermTypedNode), &intermNode))
4671eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4672894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        else {
4673894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4674894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            (yyval.interm.intermTypedNode) = 0;
4675894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        }
467619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4677eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4678894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4679894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 251:
4681894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46820a65584a1529450c476c026f3254d78efc200645Alexis Hetu    { context->symbolTable.push(); context->incrLoopNestingLevel(); }
4683eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4684894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4685894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46864676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 252:
4687894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4688894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4689894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        context->symbolTable.pop();
4690eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopWhile, 0, (yyvsp[-2].interm.intermTypedNode), 0, (yyvsp[0].interm.intermNode), (yylsp[-5]));
46910a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->decrLoopNestingLevel();
469219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4693eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4694894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4695894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 253:
4697894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
46980a65584a1529450c476c026f3254d78efc200645Alexis Hetu    { context->incrLoopNestingLevel(); }
4699eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4700894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4701894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47024676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 254:
4703894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4704894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4705eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (context->boolErrorCheck((yylsp[0]), (yyvsp[-2].interm.intermTypedNode)))
4706894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman            context->recover();
4707894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4708eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopDoWhile, 0, (yyvsp[-2].interm.intermTypedNode), 0, (yyvsp[-5].interm.intermNode), (yylsp[-4]));
47090a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->decrLoopNestingLevel();
471019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4711eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4712894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4713894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47144676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 255:
4715894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47160a65584a1529450c476c026f3254d78efc200645Alexis Hetu    { context->symbolTable.push(); context->incrLoopNestingLevel(); }
4717eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4718894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4719894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47204676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 256:
4721894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4722894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4723894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        context->symbolTable.pop();
4724eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopFor, (yyvsp[-3].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), (yyvsp[0].interm.intermNode), (yylsp[-6]));
47250a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->decrLoopNestingLevel();
472619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4727eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4728894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4729894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 257:
4731894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4732894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4733eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
473419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4735eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4736894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4737894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47384676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 258:
4739894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4740894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4741eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
474219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4743eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4744894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4745894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47464676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 259:
4747894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4748894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4749eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
475019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4751eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4752894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4753894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47544676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 260:
4755894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4756894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4757894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.intermTypedNode) = 0;
475819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4759eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4760894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4761894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47624676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 261:
4763894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4764894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4765eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
4766894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman        (yyval.interm.nodePair).node2 = 0;
476719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4768eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4769894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4770894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47714676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 262:
4772894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4773894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4774eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
4775eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
477619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4777eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4778894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4779894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47804676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 263:
4781894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4782894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4783eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addBranch(EOpContinue, (yylsp[-1]));
478419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4785eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4786894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4787894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47884676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 264:
4789894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4790894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4791eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addBranch(EOpBreak, (yylsp[-1]));
479219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4793eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4794894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4795894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
47964676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 265:
4797894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4798894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4799eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yylsp[-1]));
480019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4801eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4802894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4803894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48044676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 266:
4805894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4806894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4807eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yyvsp[-1].interm.intermTypedNode), (yylsp[-2]));
480819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4809eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4810894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4811894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48124676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 267:
4813894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4814894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4815eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        FRAG_ONLY("discard", (yylsp[-1]));
4816eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->addBranch(EOpKill, (yylsp[-1]));
481719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4818eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4819894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4820894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48214676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 268:
4822894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4823894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4824eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
48250a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->setTreeRoot((yyval.interm.intermNode));
482619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4827eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4828894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4829894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48304676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 269:
4831894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4832894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4833eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode), (yyloc));
48340a65584a1529450c476c026f3254d78efc200645Alexis Hetu        context->setTreeRoot((yyval.interm.intermNode));
483519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4836eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4837894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4838894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48394676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 270:
4840894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4841894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4842eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
484319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4844eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4845894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4846894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48474676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 271:
4848894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4849894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4850eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
485119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4852eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4853894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4854894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48554676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 272:
4856894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4857894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4858407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        context->parseFunctionPrototype((yylsp[0]), (yyvsp[0].interm).function, &(yyvsp[0].interm).intermAggregate);
485919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4860eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4861894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4862894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
48634676862e987be2c05ca2825783f2f54cf2f29eb7Alexis Hetu  case 273:
4864894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4865894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4866407813b4c558c92a42831104f32cce0d113db8caAlexis Hetu        (yyval.interm.intermNode) = context->addFunctionDefinition(*((yyvsp[-2].interm).function), (yyvsp[-2].interm).intermAggregate, (yyvsp[0].interm.intermAggregate), (yylsp[-2]));
486719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman    }
4868eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4869894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    break;
4870894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4871894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4872894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4873894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      default: break;
4874894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
4875eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* User semantic actions sometimes alter yychar, and that requires
4876eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     that yytoken be updated with the new translation.  We take the
4877eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     approach of translating immediately before every use of yytoken.
4878eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     One alternative is translating here after every semantic action,
4879eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     but that translation would be missed if the semantic action invokes
4880eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4881eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
4882eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     incorrect destructor might then be invoked immediately.  In the
4883eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     case of YYERROR or YYBACKUP, subsequent parser actions might lead
4884eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     to an incorrect destructor call or verbose syntax error message
4885eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     before the lookahead is translated.  */
4886894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4887894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4888894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYPOPSTACK (yylen);
4889894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yylen = 0;
4890894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_STACK_PRINT (yyss, yyssp);
4891894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4892894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  *++yyvsp = yyval;
489315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  *++yylsp = yyloc;
4894894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4895eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Now 'shift' the result of the reduction.  Determine what state
4896894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     that goes to, based on the state we popped back to and the rule
4897894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     number reduced by.  */
4898894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4899894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyn = yyr1[yyn];
4900894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4901894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4902894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4903894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    yystate = yytable[yystate];
4904894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  else
4905894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    yystate = yydefgoto[yyn - YYNTOKENS];
4906894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4907894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yynewstate;
4908894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4909894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4910eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich/*--------------------------------------.
4911eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich| yyerrlab -- here on detecting error.  |
4912eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich`--------------------------------------*/
4913894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyerrlab:
4914eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Make sure we have latest lookahead translation.  See comments at
4915eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich     user semantic actions for why this is necessary.  */
4916eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4917eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich
4918894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* If not already recovering from an error, report this error.  */
4919894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (!yyerrstatus)
4920894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
4921894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      ++yynerrs;
4922894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if ! YYERROR_VERBOSE
4923eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yyerror (&yylloc, context, yyscanner, YY_("syntax error"));
4924894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#else
4925eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4926eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                                        yyssp, yytoken)
4927894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      {
4928eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        char const *yymsgp = YY_("syntax error");
4929eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        int yysyntax_error_status;
4930eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yysyntax_error_status = YYSYNTAX_ERROR;
4931eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (yysyntax_error_status == 0)
4932eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yymsgp = yymsg;
4933eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        else if (yysyntax_error_status == 1)
4934eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          {
4935eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (yymsg != yymsgbuf)
4936eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              YYSTACK_FREE (yymsg);
4937eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4938eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            if (!yymsg)
4939eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              {
4940eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yymsg = yymsgbuf;
4941eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yymsg_alloc = sizeof yymsgbuf;
4942eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yysyntax_error_status = 2;
4943eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              }
4944eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            else
4945eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              {
4946eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yysyntax_error_status = YYSYNTAX_ERROR;
4947eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                yymsgp = yymsg;
4948eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              }
4949eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          }
4950eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        yyerror (&yylloc, context, yyscanner, yymsgp);
4951eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        if (yysyntax_error_status == 2)
4952eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          goto yyexhaustedlab;
4953894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      }
4954eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich# undef YYSYNTAX_ERROR
4955894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
4956894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
4957894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4958eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyerror_range[1] = yylloc;
4959894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4960894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyerrstatus == 3)
4961894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
496219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman      /* If just tried and failed to reuse lookahead token after an
4963eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich         error, discard it.  */
4964894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4965894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      if (yychar <= YYEOF)
4966eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
4967eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          /* Return failure if at end of input.  */
4968eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          if (yychar == YYEOF)
4969eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            YYABORT;
4970eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
4971894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      else
4972eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
4973eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yydestruct ("Error: discarding",
4974eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                      yytoken, &yylval, &yylloc, context, yyscanner);
4975eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yychar = YYEMPTY;
4976eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
4977894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
4978894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
497919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  /* Else will try to reuse lookahead token after shifting the error
4980894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     token.  */
4981894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yyerrlab1;
4982894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4983894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4984894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*---------------------------------------------------.
4985894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyerrorlab -- error raised explicitly by YYERROR.  |
4986894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`---------------------------------------------------*/
4987894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyerrorlab:
4988894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4989894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* Pacify compilers like GCC when the user code never invokes
4990894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     YYERROR and the label yyerrorlab therefore never appears in user
4991894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     code.  */
4992894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (/*CONSTCOND*/ 0)
4993894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     goto yyerrorlab;
4994894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
4995eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyerror_range[1] = yylsp[1-yylen];
4996eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Do not reclaim the symbols of the rule whose action triggered
4997894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     this YYERROR.  */
4998894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYPOPSTACK (yylen);
4999894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yylen = 0;
5000894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_STACK_PRINT (yyss, yyssp);
5001894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yystate = *yyssp;
5002894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yyerrlab1;
5003894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5004894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5005894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-------------------------------------------------------------.
5006894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyerrlab1 -- common code for both syntax error and YYERROR.  |
5007894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-------------------------------------------------------------*/
5008894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyerrlab1:
5009eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5010894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5011894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  for (;;)
5012894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
5013894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yyn = yypact[yystate];
5014eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      if (!yypact_value_is_default (yyn))
5015eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        {
5016eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          yyn += YYTERROR;
5017eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5018eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            {
5019eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              yyn = yytable[yyn];
5020eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich              if (0 < yyn)
5021eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                break;
5022eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich            }
5023eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        }
5024894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5025894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      /* Pop the current state because it cannot handle the error token.  */
5026894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      if (yyssp == yyss)
5027eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich        YYABORT;
5028894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5029eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yyerror_range[1] = *yylsp;
5030894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yydestruct ("Error: popping",
5031eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  yystos[yystate], yyvsp, yylsp, context, yyscanner);
5032894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYPOPSTACK (1);
5033894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yystate = *yyssp;
5034894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YY_STACK_PRINT (yyss, yyssp);
5035894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
5036894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5037eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5038894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  *++yyvsp = yylval;
5039eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YY_IGNORE_MAYBE_UNINITIALIZED_END
5040894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5041eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyerror_range[2] = yylloc;
504215ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  /* Using YYLLOC is tempting, but would change the location of
504315ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu     the lookahead.  YYLOC is available though.  */
5044eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
504515ae36c448eaebaec09c2e25ac6b5095c0d03606Alexis Hetu  *++yylsp = yyloc;
5046894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5047894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* Shift the error token.  */
5048894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5049894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5050894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yystate = yyn;
5051894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yynewstate;
5052894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5053894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5054894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-------------------------------------.
5055894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyacceptlab -- YYACCEPT comes here.  |
5056894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-------------------------------------*/
5057894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyacceptlab:
5058894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyresult = 0;
5059894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yyreturn;
5060894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5061894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-----------------------------------.
5062894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyabortlab -- YYABORT comes here.  |
5063894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-----------------------------------*/
5064894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyabortlab:
5065894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyresult = 1;
5066894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  goto yyreturn;
5067894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5068eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich#if !defined yyoverflow || YYERROR_VERBOSE
5069894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman/*-------------------------------------------------.
5070894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman| yyexhaustedlab -- memory exhaustion comes here.  |
5071894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman`-------------------------------------------------*/
5072894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyexhaustedlab:
5073eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  yyerror (&yylloc, context, yyscanner, YY_("memory exhausted"));
5074894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  yyresult = 2;
5075894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  /* Fall through.  */
5076894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
5077894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5078894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanyyreturn:
507919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  if (yychar != YYEMPTY)
5080eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    {
5081eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      /* Make sure we have latest lookahead translation.  See comments at
5082eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich         user semantic actions for why this is necessary.  */
5083eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yytoken = YYTRANSLATE (yychar);
5084eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich      yydestruct ("Cleanup: discarding lookahead",
5085eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  yytoken, &yylval, &yylloc, context, yyscanner);
5086eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    }
5087eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  /* Do not reclaim the symbols of the rule whose action triggered
5088894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman     this YYABORT or YYACCEPT.  */
5089894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YYPOPSTACK (yylen);
5090894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  YY_STACK_PRINT (yyss, yyssp);
5091894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  while (yyssp != yyss)
5092894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    {
5093894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      yydestruct ("Cleanup: popping",
5094eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich                  yystos[*yyssp], yyvsp, yylsp, context, yyscanner);
5095894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman      YYPOPSTACK (1);
5096894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    }
5097894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#ifndef yyoverflow
5098894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yyss != yyssa)
5099894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    YYSTACK_FREE (yyss);
5100894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
5101894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#if YYERROR_VERBOSE
5102894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman  if (yymsg != yymsgbuf)
5103894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman    YYSTACK_FREE (yymsg);
5104894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#endif
5105eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich  return yyresult;
5106894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
5107894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5108894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5109894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman
5110894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanint glslang_parse(TParseContext* context) {
5111eced26a12537825c00dcdd8e74e110b3e838a08fVeranika Liaukevich    return yyparse(context, context->getScanner());
5112894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman}
5113