15c55caf3ae7829741cda145b1542d70cea6cb556Jamie Madill/* A Bison parser, made by GNU Bison 2.7.1.  */
2044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Bison implementation for Yacc-like parsers in C
405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
5f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   This program is free software: you can redistribute it and/or modify
8044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   it under the terms of the GNU General Public License as published by
905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   the Free Software Foundation, either version 3 of the License, or
1005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   (at your option) any later version.
1105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
12044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   This program is distributed in the hope that it will be useful,
13044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   but WITHOUT ANY WARRANTY; without even the implied warranty of
14044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   GNU General Public License for more details.
1605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
17044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   You should have received a copy of the GNU General Public License
1805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
20044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* As a special exception, you may create a larger work that contains
21044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   part or all of the Bison parser skeleton and distribute that work
22044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   under terms of your choice, so long as that work isn't itself a
23044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   parser generator using the skeleton or a modified version thereof
24044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   as a parser skeleton.  Alternatively, if you modify or redistribute
25044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   the parser skeleton itself, you may (at your option) remove this
26044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   special exception, which will cause the skeleton and the resulting
27044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   Bison output files to be licensed under the GNU General Public
28044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   License without this special exception.
2905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
30044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   This special exception was added by the Free Software Foundation in
31044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   version 2.2 of Bison.  */
32044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
33044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* C LALR(1) parser skeleton written by Richard Stallman, by
34044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   simplifying the original so-called "semantic" parser.  */
35044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
36044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* All symbols defined below should begin with yy or YY, to avoid
37044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   infringing on user name space.  This should be done even for local
38044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   variables, as they might otherwise be expanded by user macros.
39044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   There are some unavoidable exceptions within include files to
40044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   define necessary library symbols; they are noted "INFRINGES ON
41044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   USER NAME SPACE" below.  */
42044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
43044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Identify Bison output.  */
44044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYBISON 1
45044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Bison version.  */
475c55caf3ae7829741cda145b1542d70cea6cb556Jamie Madill#define YYBISON_VERSION "2.7.1"
48044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
49044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Skeleton name.  */
50044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYSKELETON_NAME "yacc.c"
51044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
52044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Pure parsers.  */
53044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYPURE 1
54044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* Push parsers.  */
5605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#define YYPUSH 0
5705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
5805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* Pull parsers.  */
5905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#define YYPULL 1
6005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
61044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
62044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
63044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
6405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* Copy the first part of user declarations.  */
6505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
6605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
6705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com//
6844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens// Copyright (c) 2002-2014 The ANGLE Project Authors. All rights reserved.
6905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be
7005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com// found in the LICENSE file.
7105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com//
7205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
7305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com// This file is auto-generated by generate_parser.sh. DO NOT EDIT!
7405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
7505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com// Ignore errors in auto-generated code.
7605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#if defined(__GNUC__)
7705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma GCC diagnostic ignored "-Wunused-function"
7805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma GCC diagnostic ignored "-Wunused-variable"
7905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma GCC diagnostic ignored "-Wswitch-enum"
8005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#elif defined(_MSC_VER)
8105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma warning(disable: 4065)
8205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma warning(disable: 4189)
8305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma warning(disable: 4505)
8405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#pragma warning(disable: 4701)
8505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#endif
8605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
8717732823f9c21bdba9cc51ffaceb545ce3857a8cGeoff Lang#include "compiler/translator/SymbolTable.h"
886b9cb25980022d0c792d858bc6f6500c00a6c29dJamie Madill#include "compiler/translator/ParseContext.h"
8905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#include "GLSLANG/ShaderLang.h"
9005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
91b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com#define YYENABLE_NLS 0
92b3077d086b365b1d54c3d755df19c6f8f349a562daniel@transgaming.com
9305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#define YYLEX_PARAM context->scanner
9405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
9505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
9605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
975668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
9898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# ifndef YY_NULL
9998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  if defined __cplusplus && 201103L <= __cplusplus
10098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   define YY_NULL nullptr
10198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  else
10298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   define YY_NULL 0
10398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  endif
10498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# endif
10505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
10605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* Enabling verbose error messages.  */
10705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#ifdef YYERROR_VERBOSE
10805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# undef YYERROR_VERBOSE
10905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# define YYERROR_VERBOSE 1
11005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#else
11105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# define YYERROR_VERBOSE 0
11205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#endif
11305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
11498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* In a future release of Bison, this section will be replaced
11598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   by #include "glslang_tab.h".  */
11698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#ifndef YY_YY_GLSLANG_TAB_H_INCLUDED
11798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_YY_GLSLANG_TAB_H_INCLUDED
11898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Enabling traces.  */
11998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#ifndef YYDEBUG
12098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYDEBUG 0
12198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
12298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if YYDEBUG
12398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgextern int yydebug;
12405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#endif
125075edd84dd682b91279132317d34b09e8028ae6fJamie Madill/* "%code requires" blocks.  */
126075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
127075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
128075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#define YYLTYPE TSourceLoc
129075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#define YYLTYPE_IS_DECLARED 1
130075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
131075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
132075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
13305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
134044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Tokens.  */
135044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef YYTOKENTYPE
136044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYTOKENTYPE
137044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   /* Put the tokens into the symbol table, so that GDB and other debuggers
138044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      know about them.  */
139044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   enum yytokentype {
140044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     INVARIANT = 258,
141044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     HIGH_PRECISION = 259,
142044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     MEDIUM_PRECISION = 260,
143044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     LOW_PRECISION = 261,
144044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     PRECISION = 262,
145044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     ATTRIBUTE = 263,
146044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     CONST_QUAL = 264,
147044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     BOOL_TYPE = 265,
148044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     FLOAT_TYPE = 266,
149044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     INT_TYPE = 267,
1506b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     UINT_TYPE = 268,
1516b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     BREAK = 269,
1526b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     CONTINUE = 270,
1536b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     DO = 271,
1546b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     ELSE = 272,
1556b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     FOR = 273,
1566b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     IF = 274,
1576b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     DISCARD = 275,
1586b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     RETURN = 276,
1596b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     SWITCH = 277,
1606b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     CASE = 278,
1616b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     DEFAULT = 279,
1626b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     BVEC2 = 280,
1636b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     BVEC3 = 281,
1646b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     BVEC4 = 282,
1656b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     IVEC2 = 283,
1666b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     IVEC3 = 284,
1676b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     IVEC4 = 285,
1686b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     VEC2 = 286,
1696b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     VEC3 = 287,
1706b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org     VEC4 = 288,
1718c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     UVEC2 = 289,
1728c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     UVEC3 = 290,
1738c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     UVEC4 = 291,
1748c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX2 = 292,
1758c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX3 = 293,
1768c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX4 = 294,
1778c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     IN_QUAL = 295,
1788c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     OUT_QUAL = 296,
1798c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     INOUT_QUAL = 297,
1808c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     UNIFORM = 298,
1818c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     VARYING = 299,
1828c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX2x3 = 300,
1838c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX3x2 = 301,
1848c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX2x4 = 302,
1858c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX4x2 = 303,
1868c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX3x4 = 304,
1878c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     MATRIX4x3 = 305,
1888c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     CENTROID = 306,
1898c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     FLAT = 307,
1908c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     SMOOTH = 308,
1918c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     STRUCT = 309,
1928c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     VOID_TYPE = 310,
1938c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     WHILE = 311,
1948c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     SAMPLER2D = 312,
1958c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     SAMPLERCUBE = 313,
1968c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     SAMPLER_EXTERNAL_OES = 314,
1978c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org     SAMPLER2DRECT = 315,
198fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     SAMPLER2DARRAY = 316,
199fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     ISAMPLER2D = 317,
200fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     ISAMPLER3D = 318,
201fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     ISAMPLERCUBE = 319,
202fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     ISAMPLER2DARRAY = 320,
203fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     USAMPLER2D = 321,
204fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     USAMPLER3D = 322,
205fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     USAMPLERCUBE = 323,
206fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     USAMPLER2DARRAY = 324,
207fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     SAMPLER3D = 325,
208fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     SAMPLER3DRECT = 326,
209fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     SAMPLER2DSHADOW = 327,
2102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     SAMPLERCUBESHADOW = 328,
2112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     SAMPLER2DARRAYSHADOW = 329,
2122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LAYOUT = 330,
2132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     IDENTIFIER = 331,
2142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     TYPE_NAME = 332,
2152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     FLOATCONSTANT = 333,
2162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     INTCONSTANT = 334,
2172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     UINTCONSTANT = 335,
2182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     BOOLCONSTANT = 336,
2192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     FIELD_SELECTION = 337,
2202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_OP = 338,
2212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_OP = 339,
2222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     INC_OP = 340,
2232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     DEC_OP = 341,
2242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LE_OP = 342,
2252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     GE_OP = 343,
2262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     EQ_OP = 344,
2272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     NE_OP = 345,
2282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     AND_OP = 346,
2292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     OR_OP = 347,
2302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     XOR_OP = 348,
2312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     MUL_ASSIGN = 349,
2322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     DIV_ASSIGN = 350,
2332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     ADD_ASSIGN = 351,
2342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     MOD_ASSIGN = 352,
2352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_ASSIGN = 353,
2362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_ASSIGN = 354,
2372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     AND_ASSIGN = 355,
2382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     XOR_ASSIGN = 356,
2392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     OR_ASSIGN = 357,
2402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     SUB_ASSIGN = 358,
2412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_PAREN = 359,
2422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_PAREN = 360,
2432a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_BRACKET = 361,
2442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_BRACKET = 362,
2452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_BRACE = 363,
2462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_BRACE = 364,
2472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     DOT = 365,
2482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     COMMA = 366,
2492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     COLON = 367,
2502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     EQUAL = 368,
2512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     SEMICOLON = 369,
2522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     BANG = 370,
2532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     DASH = 371,
2542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     TILDE = 372,
2552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     PLUS = 373,
2562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     STAR = 374,
2572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     SLASH = 375,
2582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     PERCENT = 376,
2592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     LEFT_ANGLE = 377,
2602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     RIGHT_ANGLE = 378,
2612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     VERTICAL_BAR = 379,
2622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     CARET = 380,
2632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     AMPERSAND = 381,
2642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     QUESTION = 382
265044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   };
266044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
267044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
268044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
269044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
270044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef union YYSTYPE
271536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org{
27205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
27305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
274044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    struct {
275044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        union {
276044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TString *string;
277044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            float f;
278044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            int i;
279c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org            unsigned int u;
280044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            bool b;
281044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        };
282044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TSymbol* symbol;
283044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    } lex;
284044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    struct {
285044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TOperator op;
286044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        union {
287044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TIntermNode* intermNode;
288044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TIntermNodePair nodePair;
289044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TIntermTyped* intermTypedNode;
290044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TIntermAggregate* intermAggregate;
291044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        };
292044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        union {
293044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TPublicType type;
294044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TPrecision precision;
295a5efff9996aab519def50871a60f77645dd4f51cJamie Madill            TLayoutQualifier layoutQualifier;
296044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TQualifier qualifier;
297044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TFunction* function;
298044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TParameter param;
29998493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill            TField* field;
30098493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill            TFieldList* fieldList;
301044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        };
302044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    } interm;
303044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
30405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
30505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
30605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com} YYSTYPE;
30705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# define YYSTYPE_IS_TRIVIAL 1
308044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define yystype YYSTYPE /* obsolescent; will be withdrawn */
309044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYSTYPE_IS_DECLARED 1
310044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
311044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
312075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
313075edd84dd682b91279132317d34b09e8028ae6fJamie Madilltypedef struct YYLTYPE
314075edd84dd682b91279132317d34b09e8028ae6fJamie Madill{
315075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  int first_line;
316075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  int first_column;
317075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  int last_line;
318075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  int last_column;
319075edd84dd682b91279132317d34b09e8028ae6fJamie Madill} YYLTYPE;
320075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
321075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define YYLTYPE_IS_DECLARED 1
322075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define YYLTYPE_IS_TRIVIAL 1
323075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#endif
324075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
325044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
32698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#ifdef YYPARSE_PARAM
32798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if defined __STDC__ || defined __cplusplus
32898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgint yyparse (void *YYPARSE_PARAM);
32998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#else
33098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgint yyparse ();
33198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
33298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#else /* ! YYPARSE_PARAM */
33398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if defined __STDC__ || defined __cplusplus
33498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgint yyparse (TParseContext* context);
33598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#else
33698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgint yyparse ();
33798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
33898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif /* ! YYPARSE_PARAM */
33998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
34098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif /* !YY_YY_GLSLANG_TAB_H_INCLUDED  */
34198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
342044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Copy the second part of user declarations.  */
343044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
344044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3450b67bfbf4aa27b96e6790fefad40633e7bf289beAlok Priyadarshiextern int yylex(YYSTYPE* yylval, YYLTYPE* yylloc, void* yyscanner);
346075edd84dd682b91279132317d34b09e8028ae6fJamie Madillextern void yyerror(YYLTYPE* yylloc, TParseContext* context, const char* reason);
347075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
348075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#define YYLLOC_DEFAULT(Current, Rhs, N)                      \
349075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  do {                                                       \
350075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      if (YYID(N)) {                                         \
351075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).first_file = YYRHSLOC(Rhs, 1).first_file;  \
352075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).first_line = YYRHSLOC(Rhs, 1).first_line;  \
353075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).last_file = YYRHSLOC(Rhs, N).last_file;    \
354075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).last_line = YYRHSLOC(Rhs, N).last_line;    \
355075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      }                                                      \
356075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      else {                                                 \
357075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).first_file = YYRHSLOC(Rhs, 0).last_file;   \
358075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).first_line = YYRHSLOC(Rhs, 0).last_line;   \
359075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).last_file = YYRHSLOC(Rhs, 0).last_file;    \
360075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (Current).last_line = YYRHSLOC(Rhs, 0).last_line;    \
361075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      }                                                      \
362075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  } while (0)
363044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
364044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define VERTEX_ONLY(S, L) {  \
365044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    if (context->shaderType != SH_VERTEX_SHADER) {  \
366c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com        context->error(L, " supported in vertex shaders only ", S);  \
367044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->recover();  \
368044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }  \
369044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
370044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
371044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define FRAG_ONLY(S, L) {  \
372044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    if (context->shaderType != SH_FRAGMENT_SHADER) {  \
373c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com        context->error(L, " supported in fragment shaders only ", S);  \
374044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->recover();  \
375044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }  \
376044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
377044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3785524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com#define ES2_ONLY(S, L) {  \
3795524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com    if (context->shaderVersion != 100) {  \
3805524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com        context->error(L, " supported in GLSL ES 1.00 only ", S);  \
3815524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com        context->recover();  \
3825524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com    }  \
3835524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com}
3845524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com
3855668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org#define ES3_ONLY(TOKEN, LINE, REASON) {  \
3865524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com    if (context->shaderVersion != 300) {  \
3875668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org        context->error(LINE, REASON " supported in GLSL ES 3.00 only ", TOKEN);  \
3885524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com        context->recover();  \
3895524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com    }  \
3905524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com}
3915524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com
392044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
393044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
394044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef short
395044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# undef short
396044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
397044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
398044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYTYPE_UINT8
399044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef YYTYPE_UINT8 yytype_uint8;
400044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
401044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef unsigned char yytype_uint8;
402044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
403044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
404044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYTYPE_INT8
405044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef YYTYPE_INT8 yytype_int8;
406044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#elif (defined __STDC__ || defined __C99__FUNC__ \
407044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
408044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef signed char yytype_int8;
409044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
410044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef short int yytype_int8;
411044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
412044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
413044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYTYPE_UINT16
414044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef YYTYPE_UINT16 yytype_uint16;
415044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
416044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef unsigned short int yytype_uint16;
417044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
418044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
419044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYTYPE_INT16
420044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef YYTYPE_INT16 yytype_int16;
421044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
422044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgtypedef short int yytype_int16;
423044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
424044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
425044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef YYSIZE_T
426044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifdef __SIZE_TYPE__
427044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSIZE_T __SIZE_TYPE__
428044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# elif defined size_t
429044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSIZE_T size_t
430044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
431044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
432044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
433044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSIZE_T size_t
434044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# else
435044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSIZE_T unsigned int
436044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
437044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
438044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
439044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
440044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
441044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef YY_
44205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# if defined YYENABLE_NLS && YYENABLE_NLS
443044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  if ENABLE_NLS
444044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
44598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
446044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
447044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
448044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef YY_
44998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  define YY_(Msgid) Msgid
450044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
451044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
452044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
453f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill#ifndef __attribute__
454f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill/* This feature is available in gcc versions 2.5 and later.  */
455f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill# if (! defined __GNUC__ || __GNUC__ < 2 \
456f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
457f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill#  define __attribute__(Spec) /* empty */
458f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill# endif
459f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill#endif
460f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill
461044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Suppress unused-variable warnings by "using" E.  */
462044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if ! defined lint || defined __GNUC__
46398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYUSE(E) ((void) (E))
464044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
46598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYUSE(E) /* empty */
466044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
467044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
468f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill
469044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Identity function, used to suppress warnings about constant conditions.  */
470044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef lint
47198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYID(N) (N)
472044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
473044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
474044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
475044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic int
47605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.comYYID (int yyi)
477044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
478044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic int
47905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.comYYID (yyi)
48005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    int yyi;
481044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
482044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
48305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  return yyi;
484044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
485044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
486044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
487044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if ! defined yyoverflow || YYERROR_VERBOSE
488044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
489044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* The parser invokes alloca or malloc; define the necessary symbols.  */
490044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
491044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifdef YYSTACK_USE_ALLOCA
492044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  if YYSTACK_USE_ALLOCA
493044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   ifdef __GNUC__
494044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    define YYSTACK_ALLOC __builtin_alloca
495044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   elif defined __BUILTIN_VA_ARG_INCR
496044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
497044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   elif defined _AIX
498044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    define YYSTACK_ALLOC __alloca
499044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   elif defined _MSC_VER
500044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
501044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    define alloca _alloca
502044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   else
503044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    define YYSTACK_ALLOC alloca
50498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
505044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
506044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
50798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
50898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#     ifndef EXIT_SUCCESS
50998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#      define EXIT_SUCCESS 0
510044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#     endif
511044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#    endif
512044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   endif
513044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
514044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
515044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
516044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifdef YYSTACK_ALLOC
517044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   /* Pacify GCC's `empty if-body' warning.  */
518044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
519044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
520044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    /* The OS might guarantee only one guard page at the bottom of the stack,
521044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       and a page size can be as small as 4096 bytes.  So we cannot safely
522044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
523044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       to allow for a few compiler-allocated temporary stack slots.  */
524044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
525044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
526044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# else
527044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSTACK_ALLOC YYMALLOC
528044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYSTACK_FREE YYFREE
529044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  ifndef YYSTACK_ALLOC_MAXIMUM
530044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
531044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
53298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
533044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       && ! ((defined YYMALLOC || defined malloc) \
534044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	     && (defined YYFREE || defined free)))
535044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
53698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   ifndef EXIT_SUCCESS
53798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#    define EXIT_SUCCESS 0
538044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   endif
539044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
540044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  ifndef YYMALLOC
541044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define YYMALLOC malloc
54298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
543044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
544044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
545044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   endif
546044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
547044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  ifndef YYFREE
548044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define YYFREE free
54998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
550044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
551044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
552044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   endif
553044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
554044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
555044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
556044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
557044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
558044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (! defined yyoverflow \
559044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     && (! defined __cplusplus \
560075edd84dd682b91279132317d34b09e8028ae6fJamie Madill	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
561075edd84dd682b91279132317d34b09e8028ae6fJamie Madill	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
562044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
563044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* A type that is properly aligned for any stack member.  */
564044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgunion yyalloc
565044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
56605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  yytype_int16 yyss_alloc;
56705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  YYSTYPE yyvs_alloc;
568075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYLTYPE yyls_alloc;
56905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com};
570044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
571044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* The size of the maximum gap between one aligned stack and the next.  */
572044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
573044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
574044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* The size of an array large to enough to hold all stacks, each with
575044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   N elements.  */
576044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYSTACK_BYTES(N) \
577075edd84dd682b91279132317d34b09e8028ae6fJamie Madill     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
578075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      + 2 * YYSTACK_GAP_MAXIMUM)
579044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
58098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYCOPY_NEEDED 1
581044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
582044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Relocate STACK from its old location to the new one.  The
583044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   local variables YYSIZE and YYSTACKSIZE give the old and new number of
584044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   elements in the stack, and YYPTR gives the new location of the
585044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   stack.  Advance YYPTR to a properly aligned location for the next
586044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   stack.  */
58705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
588044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    do									\
589044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      {									\
590044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	YYSIZE_T yynewbytes;						\
59105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
59205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com	Stack = &yyptr->Stack_alloc;					\
593044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
594044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yyptr += yynewbytes / sizeof (*yyptr);				\
595044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      }									\
596044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    while (YYID (0))
597044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
598044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
599044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
60098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
60198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Copy COUNT objects from SRC to DST.  The source and destination do
60298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   not overlap.  */
60398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# ifndef YYCOPY
60498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  if defined __GNUC__ && 1 < __GNUC__
60598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   define YYCOPY(Dst, Src, Count) \
60698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
60798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  else
60898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#   define YYCOPY(Dst, Src, Count)              \
60998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      do                                        \
61098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        {                                       \
61198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          YYSIZE_T yyi;                         \
61298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          for (yyi = 0; yyi < (Count); yyi++)   \
61398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            (Dst)[yyi] = (Src)[yyi];            \
61498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        }                                       \
61598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      while (YYID (0))
61698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#  endif
61798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# endif
61898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif /* !YYCOPY_NEEDED */
61998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
620044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYFINAL -- State number of the termination state.  */
6212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYFINAL  114
622044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYLAST -- Last index in YYTABLE.  */
6232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYLAST   2375
624044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
625044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYNTOKENS -- Number of terminals.  */
6262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYNTOKENS  128
627044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYNNTS -- Number of nonterminals.  */
62878eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill#define YYNNTS  91
629044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYNRULES -- Number of rules.  */
6302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYNRULES  250
631044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYNRULES -- Number of states.  */
6322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYNSTATES  373
633044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
634044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
635044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYUNDEFTOK  2
6362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYMAXUTOK   382
637044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
638044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYTRANSLATE(YYX)						\
639044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
640044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
641044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
642044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint8 yytranslate[] =
643044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
644044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
645044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
646044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
647044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
648044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
649044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
650044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
651044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
652044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
653044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
654044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
655044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
656044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
657044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
659044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
660044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
661044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
662044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
665044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
668044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
670044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
671044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
672044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
673044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
674044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
675044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
676044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
677044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
678205fef3389c81637f689585431273cf83af02e94kbr@chromium.org      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
6799bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
680c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
681fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
6822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     125,   126,   127
683044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
684044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
685044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if YYDEBUG
686044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
687044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   YYRHS.  */
688044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint16 yyprhs[] =
689044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
69078eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill       0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
69178eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill      19,    23,    25,    30,    32,    36,    39,    42,    44,    46,
69278eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill      48,    52,    55,    58,    61,    63,    66,    70,    73,    75,
693f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill      77,    79,    82,    85,    88,    90,    92,    94,    96,   100,
694f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill     104,   106,   110,   114,   116,   118,   122,   126,   130,   134,
695f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill     136,   140,   144,   146,   148,   150,   152,   156,   158,   162,
696f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill     164,   168,   170,   176,   178,   182,   184,   186,   188,   190,
697f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill     192,   194,   198,   200,   203,   206,   209,   214,   220,   227,
698a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     237,   240,   243,   245,   247,   250,   254,   258,   261,   267,
699a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     271,   274,   278,   281,   282,   284,   286,   288,   290,   292,
700a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     296,   302,   309,   315,   317,   320,   325,   331,   336,   339,
701a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     341,   344,   346,   348,   350,   352,   354,   357,   359,   362,
702a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     364,   366,   369,   371,   373,   375,   378,   381,   383,   385,
703a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     388,   390,   392,   394,   399,   401,   405,   407,   411,   415,
704a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     417,   422,   424,   426,   428,   430,   432,   434,   436,   438,
705a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     440,   442,   444,   446,   448,   450,   452,   454,   456,   458,
706a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     460,   462,   464,   466,   468,   470,   472,   474,   476,   478,
70728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens     480,   482,   484,   486,   488,   490,   492,   494,   496,   498,
7082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     500,   502,   504,   506,   508,   510,   512,   513,   520,   521,
7092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     527,   529,   532,   536,   541,   543,   547,   549,   554,   556,
7102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     558,   560,   562,   564,   566,   568,   570,   572,   575,   576,
7112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     577,   583,   585,   587,   588,   591,   592,   595,   598,   602,
7122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     604,   607,   609,   612,   618,   622,   624,   626,   631,   632,
7132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     639,   640,   649,   650,   658,   660,   662,   664,   665,   668,
7142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     672,   675,   678,   681,   685,   688,   690,   693,   695,   697,
7152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     698
716044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
717044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
718044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
719044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yyrhs[] =
720044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
7212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     215,     0,    -1,    76,    -1,    77,    -1,    76,    -1,   130,
7222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    79,    -1,    80,    -1,    78,    -1,    81,    -1,   104,
7232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     157,   105,    -1,   131,    -1,   132,   106,   133,   107,    -1,
7242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     134,    -1,   132,   110,   129,    -1,   132,    85,    -1,   132,
7252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      86,    -1,   157,    -1,   135,    -1,   136,    -1,   132,   110,
7262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     136,    -1,   138,   105,    -1,   137,   105,    -1,   139,    55,
7272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   139,    -1,   139,   155,    -1,   138,   111,   155,    -1,
7282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     140,   104,    -1,   182,    -1,    76,    -1,   132,    -1,    85,
7292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     141,    -1,    86,   141,    -1,   142,   141,    -1,   118,    -1,
7302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     116,    -1,   115,    -1,   141,    -1,   143,   119,   141,    -1,
7312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     143,   120,   141,    -1,   143,    -1,   144,   118,   143,    -1,
7322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     144,   116,   143,    -1,   144,    -1,   145,    -1,   146,   122,
7332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     145,    -1,   146,   123,   145,    -1,   146,    87,   145,    -1,
7342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     146,    88,   145,    -1,   146,    -1,   147,    89,   146,    -1,
7352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     147,    90,   146,    -1,   147,    -1,   148,    -1,   149,    -1,
7362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     150,    -1,   151,    91,   150,    -1,   151,    -1,   152,    93,
7372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     151,    -1,   152,    -1,   153,    92,   152,    -1,   153,    -1,
7382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     153,   127,   157,   112,   155,    -1,   154,    -1,   141,   156,
7392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     155,    -1,   113,    -1,    94,    -1,    95,    -1,    96,    -1,
7402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     103,    -1,   155,    -1,   157,   111,   155,    -1,   154,    -1,
7412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,   108,    -1,   161,   114,    -1,   169,   114,    -1,     7,
7422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     177,   181,   114,    -1,   174,   159,   186,   109,   114,    -1,
7432a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     174,   159,   186,   109,    76,   114,    -1,   174,   159,   186,
7442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     109,    76,   106,   158,   107,   114,    -1,   174,   114,    -1,
7452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     162,   105,    -1,   164,    -1,   163,    -1,   164,   166,    -1,
7462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     163,   111,   166,    -1,   171,    76,   104,    -1,   176,   129,
7472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   176,   129,   106,   158,   107,    -1,   173,   167,   165,
7482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   167,   165,    -1,   173,   167,   168,    -1,   167,   168,
7492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    40,    -1,    41,    -1,    42,    -1,   176,    -1,
7502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     170,    -1,   169,   111,   129,    -1,   169,   111,   129,   106,
7512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,    -1,   169,   111,   129,   106,   158,   107,    -1,   169,
7522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     111,   129,   113,   190,    -1,   171,    -1,   171,   129,    -1,
7532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     171,   129,   106,   107,    -1,   171,   129,   106,   158,   107,
7542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   171,   129,   113,   190,    -1,     3,    76,    -1,   176,
7552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   174,   176,    -1,    53,    -1,    52,    -1,     9,    -1,
7562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,    -1,    44,    -1,     3,    44,    -1,   175,    -1,   172,
7572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     175,    -1,   172,    -1,   178,    -1,   178,   175,    -1,     9,
758a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      -1,    40,    -1,    41,    -1,    51,    40,    -1,    51,    41,
7592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    -1,   181,    -1,   177,   181,    -1,     4,    -1,
7602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       5,    -1,     6,    -1,    75,   104,   179,   105,    -1,   180,
7612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   179,   111,   180,    -1,    76,    -1,    76,   113,    79,
7622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    76,   113,    80,    -1,   182,    -1,   182,   106,   158,
7632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,    -1,    55,    -1,    11,    -1,    12,    -1,    13,    -1,
764a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      10,    -1,    31,    -1,    32,    -1,    33,    -1,    25,    -1,
765a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
766a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      34,    -1,    35,    -1,    36,    -1,    37,    -1,    38,    -1,
767a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      39,    -1,    45,    -1,    46,    -1,    47,    -1,    48,    -1,
768fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      49,    -1,    50,    -1,    57,    -1,    70,    -1,    58,    -1,
76928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
7702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      66,    -1,    67,    -1,    68,    -1,    69,    -1,    72,    -1,
7712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      73,    -1,    74,    -1,    59,    -1,    60,    -1,   183,    -1,
7722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,    -1,    -1,    54,   129,   108,   184,   186,   109,    -1,
7732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    54,   108,   185,   186,   109,    -1,   187,    -1,   186,
7742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     187,    -1,   176,   188,   114,    -1,   174,   176,   188,   114,
7752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   189,    -1,   188,   111,   189,    -1,   129,    -1,   129,
7762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     106,   158,   107,    -1,   155,    -1,   160,    -1,   194,    -1,
7772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     193,    -1,   191,    -1,   203,    -1,   204,    -1,   207,    -1,
7782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     214,    -1,   108,   109,    -1,    -1,    -1,   108,   195,   202,
7792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     196,   109,    -1,   201,    -1,   193,    -1,    -1,   199,   201,
7802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   200,   193,    -1,   108,   109,    -1,   108,   202,
7812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     109,    -1,   192,    -1,   202,   192,    -1,   114,    -1,   157,
7822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     114,    -1,    19,   104,   157,   105,   205,    -1,   198,    17,
7832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     198,    -1,   198,    -1,   157,    -1,   171,   129,   113,   190,
7842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    56,   104,   208,   206,   105,   197,    -1,    -1,
7852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      16,   209,   198,    56,   104,   157,   105,   114,    -1,    -1,
7862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      18,   104,   210,   211,   213,   105,   197,    -1,   203,    -1,
7872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     191,    -1,   206,    -1,    -1,   212,   114,    -1,   212,   114,
7882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     157,    -1,    15,   114,    -1,    14,   114,    -1,    21,   114,
7892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    21,   157,   114,    -1,    20,   114,    -1,   216,    -1,
7902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     215,   216,    -1,   217,    -1,   160,    -1,    -1,   161,   218,
7912a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     201,    -1
792044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
793044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
794044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
795044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint16 yyrline[] =
796044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
79744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens       0,   205,   205,   206,   209,   264,   267,   272,   277,   282,
79844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     287,   293,   296,   299,   302,   305,   315,   328,   336,   436,
79944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     439,   447,   450,   456,   460,   467,   473,   482,   490,   493,
80044cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     503,   506,   516,   526,   547,   548,   549,   554,   555,   563,
80144cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     574,   575,   583,   594,   598,   599,   609,   619,   629,   642,
80244cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     643,   653,   666,   670,   674,   678,   679,   692,   693,   706,
80344cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     707,   720,   721,   738,   739,   752,   753,   754,   755,   756,
80444cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     760,   763,   774,   782,   790,   817,   822,   833,   837,   841,
80544cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens     845,   852,   907,   910,   917,   925,   946,   967,   977,  1005,
80644cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens    1010,  1020,  1025,  1035,  1038,  1041,  1044,  1050,  1057,  1060,
80744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens    1064,  1068,  1072,  1079,  1083,  1087,  1094,  1098,  1102,  1123,
80812bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill    1132,  1138,  1141,  1147,  1153,  1160,  1169,  1178,  1186,  1189,
80912bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill    1196,  1200,  1207,  1210,  1214,  1218,  1227,  1236,  1244,  1254,
81074be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1266,  1269,  1272,  1278,  1285,  1288,  1294,  1297,  1300,  1306,
81174be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1309,  1324,  1328,  1332,  1336,  1340,  1344,  1349,  1354,  1359,
81274be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1364,  1369,  1374,  1379,  1384,  1389,  1394,  1399,  1404,  1409,
81374be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1414,  1419,  1424,  1429,  1434,  1439,  1444,  1449,  1453,  1457,
81474be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1461,  1465,  1469,  1473,  1477,  1481,  1485,  1489,  1493,  1497,
81574be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1501,  1505,  1509,  1517,  1525,  1529,  1542,  1542,  1545,  1545,
81674be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1551,  1554,  1570,  1573,  1582,  1586,  1592,  1599,  1614,  1618,
81774be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1622,  1623,  1629,  1630,  1631,  1632,  1633,  1637,  1638,  1638,
81874be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1638,  1648,  1649,  1653,  1653,  1654,  1654,  1659,  1662,  1672,
81974be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1675,  1681,  1682,  1686,  1694,  1698,  1708,  1713,  1730,  1730,
82074be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1735,  1735,  1742,  1742,  1750,  1753,  1759,  1762,  1768,  1772,
82174be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1779,  1786,  1793,  1800,  1811,  1820,  1824,  1831,  1834,  1840,
82274be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill    1840
823044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
824044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
825044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
82698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if YYDEBUG || YYERROR_VERBOSE || 0
827044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
828044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
829044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const char *const yytname[] =
830044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
831044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "$end", "error", "$undefined", "INVARIANT", "HIGH_PRECISION",
832044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "ATTRIBUTE",
8336b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org  "CONST_QUAL", "BOOL_TYPE", "FLOAT_TYPE", "INT_TYPE", "UINT_TYPE",
8346b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org  "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN",
8356b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org  "SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3",
8368c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org  "IVEC4", "VEC2", "VEC3", "VEC4", "UVEC2", "UVEC3", "UVEC4", "MATRIX2",
8378c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org  "MATRIX3", "MATRIX4", "IN_QUAL", "OUT_QUAL", "INOUT_QUAL", "UNIFORM",
8388c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org  "VARYING", "MATRIX2x3", "MATRIX3x2", "MATRIX2x4", "MATRIX4x2",
8398c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org  "MATRIX3x4", "MATRIX4x3", "CENTROID", "FLAT", "SMOOTH", "STRUCT",
8408c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org  "VOID_TYPE", "WHILE", "SAMPLER2D", "SAMPLERCUBE", "SAMPLER_EXTERNAL_OES",
841fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  "SAMPLER2DRECT", "SAMPLER2DARRAY", "ISAMPLER2D", "ISAMPLER3D",
842fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  "ISAMPLERCUBE", "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D",
843fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER3D", "SAMPLER3DRECT",
8442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAYSHADOW", "LAYOUT",
8452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "INTCONSTANT",
8462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
8472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
8482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
8492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
8502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
8512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
8522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
8532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
8542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "AMPERSAND", "QUESTION", "$accept", "identifier", "variable_identifier",
8552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "primary_expression", "postfix_expression", "integer_expression",
8562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "function_call", "function_call_or_method", "function_call_generic",
8572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  "function_call_header_no_parameters",
858044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "function_call_header_with_parameters", "function_call_header",
859044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "function_identifier", "unary_expression", "unary_operator",
860044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "multiplicative_expression", "additive_expression", "shift_expression",
861044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "relational_expression", "equality_expression", "and_expression",
862044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "exclusive_or_expression", "inclusive_or_expression",
863044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "logical_and_expression", "logical_xor_expression",
864044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "logical_or_expression", "conditional_expression",
865044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "assignment_expression", "assignment_operator", "expression",
8665668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "constant_expression", "enter_struct", "declaration",
8675668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "function_prototype", "function_declarator",
8685668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "function_header_with_parameters", "function_header",
8695668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "parameter_declarator", "parameter_declaration", "parameter_qualifier",
8705668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "parameter_type_specifier", "init_declarator_list", "single_declaration",
8715668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "fully_specified_type", "interpolation_qualifier",
8725668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org  "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
873302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org  "type_specifier", "precision_qualifier", "layout_qualifier",
874302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org  "layout_qualifier_id_list", "layout_qualifier_id",
875302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org  "type_specifier_no_prec", "type_specifier_nonarray", "struct_specifier",
876302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org  "$@1", "$@2", "struct_declaration_list", "struct_declaration",
877044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "struct_declarator_list", "struct_declarator", "initializer",
878044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "declaration_statement", "statement", "simple_statement",
87905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  "compound_statement", "$@3", "$@4", "statement_no_new_scope",
88083dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com  "statement_with_scope", "$@5", "$@6", "compound_statement_no_new_scope",
88183dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com  "statement_list", "expression_statement", "selection_statement",
88283dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com  "selection_rest_statement", "condition", "iteration_statement", "$@7",
88383dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com  "$@8", "$@9", "for_init_statement", "conditionopt", "for_rest_statement",
884044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  "jump_statement", "translation_unit", "external_declaration",
88598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  "function_definition", "$@10", YY_NULL
886044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
887044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
888044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
889044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifdef YYPRINT
890044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
891044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   token YYLEX-NUM.  */
892044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint16 yytoknum[] =
893044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
894044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
895044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
896044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
897044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
898044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
899044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
900044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
901044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
902044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
9035524db0c05c8df6002489a077b18dd6fd5746448shannon.woods%transgaming.com@gtempaccount.com     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
9049bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
9059e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
9062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     375,   376,   377,   378,   379,   380,   381,   382
907044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
908044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
909044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
910044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
911044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint8 yyr1[] =
912044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
9132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   128,   129,   129,   130,   131,   131,   131,   131,   131,
9142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     131,   132,   132,   132,   132,   132,   132,   133,   134,   135,
9152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     135,   136,   136,   137,   137,   138,   138,   139,   140,   140,
9162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     141,   141,   141,   141,   142,   142,   142,   143,   143,   143,
9172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     144,   144,   144,   145,   146,   146,   146,   146,   146,   147,
9182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     147,   147,   148,   149,   150,   151,   151,   152,   152,   153,
9192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     153,   154,   154,   155,   155,   156,   156,   156,   156,   156,
9202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     157,   157,   158,   159,   160,   160,   160,   160,   160,   160,
9212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     160,   161,   162,   162,   163,   163,   164,   165,   165,   166,
9222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     166,   166,   166,   167,   167,   167,   167,   168,   169,   169,
9232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     169,   169,   169,   170,   170,   170,   170,   170,   170,   171,
9242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     171,   172,   172,   173,   174,   174,   174,   174,   174,   174,
9252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     174,   174,   175,   175,   175,   175,   175,   175,   176,   176,
9262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     177,   177,   177,   178,   179,   179,   180,   180,   180,   181,
9272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     181,   182,   182,   182,   182,   182,   182,   182,   182,   182,
9282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
9292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
9302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
9312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     182,   182,   182,   182,   182,   182,   184,   183,   185,   183,
9322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     186,   186,   187,   187,   188,   188,   189,   189,   190,   191,
9332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     192,   192,   193,   193,   193,   193,   193,   194,   195,   196,
9342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     194,   197,   197,   199,   198,   200,   198,   201,   201,   202,
9352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     202,   203,   203,   204,   205,   205,   206,   206,   208,   207,
9362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     209,   207,   210,   207,   211,   211,   212,   212,   213,   213,
9372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     214,   214,   214,   214,   214,   215,   215,   216,   216,   218,
9382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     217
939044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
940044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
941044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
942044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint8 yyr2[] =
943044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
94478eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill       0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
94578eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill       3,     1,     4,     1,     3,     2,     2,     1,     1,     1,
94678eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill       3,     2,     2,     2,     1,     2,     3,     2,     1,     1,
947f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill       1,     2,     2,     2,     1,     1,     1,     1,     3,     3,
948f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill       1,     3,     3,     1,     1,     3,     3,     3,     3,     1,
949f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill       3,     3,     1,     1,     1,     1,     3,     1,     3,     1,
950f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill       3,     1,     5,     1,     3,     1,     1,     1,     1,     1,
951f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill       1,     3,     1,     2,     2,     2,     4,     5,     6,     9,
952a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       2,     2,     1,     1,     2,     3,     3,     2,     5,     3,
953a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       2,     3,     2,     0,     1,     1,     1,     1,     1,     3,
954a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       5,     6,     5,     1,     2,     4,     5,     4,     2,     1,
955a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       2,     1,     1,     1,     1,     1,     2,     1,     2,     1,
956a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       1,     2,     1,     1,     1,     2,     2,     1,     1,     2,
957a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       1,     1,     1,     4,     1,     3,     1,     3,     3,     1,
958a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       4,     1,     1,     1,     1,     1,     1,     1,     1,     1,
9595668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
960044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
96128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
9622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       1,     1,     1,     1,     1,     1,     0,     6,     0,     5,
9632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       1,     2,     3,     4,     1,     3,     1,     4,     1,     1,
9642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       1,     1,     1,     1,     1,     1,     1,     2,     0,     0,
9652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       5,     1,     1,     0,     2,     0,     2,     2,     3,     1,
9662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       2,     1,     2,     5,     3,     1,     1,     4,     0,     6,
9672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     8,     0,     7,     1,     1,     1,     0,     2,     3,
9682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       2,     2,     2,     3,     2,     1,     2,     1,     1,     0,
9692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       3
970044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
971044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
97298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
97398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   Performed when YYTABLE doesn't specify something else to do.  Zero
974044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   means the default is an error.  */
975044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint8 yydefact[] =
976044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
977a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       0,     0,   130,   131,   132,     0,   114,   122,   145,   142,
978a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     143,   144,   149,   150,   151,   152,   153,   154,   146,   147,
979a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     148,   155,   156,   157,   158,   159,   160,   123,   124,   127,
980a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill     115,   161,   162,   163,   164,   165,   166,     0,   112,   111,
9812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   141,   167,   169,   182,   183,   170,   171,   172,   173,
9822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     174,   175,   176,   177,   178,   168,   179,   180,   181,     0,
9832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     185,   248,   249,     0,    83,    93,     0,    98,   103,   119,
9842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   117,   109,     0,   120,   128,   139,   184,     0,   245,
9852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     247,   116,   108,     0,   125,   126,     2,     3,   188,     0,
9862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    74,     0,    81,    93,   113,    94,    95,    96,    84,
9872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    93,     0,    75,     2,   104,   118,     0,    80,     0,
9882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     110,   129,   121,     0,     1,   246,     0,     0,   186,   136,
9892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   134,     0,   250,    85,    90,    92,    97,     0,    99,
9902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      86,     0,     0,    73,     0,     0,     0,     0,   190,     4,
9912a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     6,     7,     9,     0,     0,     0,    36,    35,    34,
9922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       5,    11,    30,    13,    18,    19,     0,     0,    24,     0,
9932a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      37,     0,    40,    43,    44,    49,    52,    53,    54,    55,
9942a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      57,    59,    61,    72,     0,    28,    76,     0,     0,     0,
9952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     133,     0,     0,     0,   230,     0,     0,     0,     0,     0,
9962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     208,   217,   221,    37,    63,    70,     0,   199,     0,   139,
9972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     202,   219,   201,   200,     0,   203,   204,   205,   206,    87,
9982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      89,    91,     0,     0,   105,     0,   198,   107,     0,   196,
9992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   194,     0,   191,    31,    32,     0,    15,    16,     0,
10002a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    22,    21,     0,    23,    25,    27,    33,     0,     0,
10012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
10022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   140,   189,     0,   137,   138,   135,   241,   240,
10032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     215,   232,     0,   244,   242,     0,   228,   207,     0,    66,
10042a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      67,    68,    69,    65,     0,     0,   222,   218,   220,     0,
10052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     100,     0,   102,   106,     0,     0,     0,   192,     0,    77,
10062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,     0,    17,     2,     3,    14,    20,    26,    38,    39,
10072a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      42,    41,    47,    48,    45,    46,    50,    51,    56,    58,
10082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,     0,   187,     0,     0,     0,     0,     0,   243,     0,
10092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     209,    64,    71,     0,   101,   193,     0,   195,     0,    78,
10102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,     0,     0,   214,   216,   235,   234,   237,   215,   226,
10112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,    88,   197,     0,    62,     0,   236,
10122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   225,   223,     0,     0,   210,     0,     0,   238,
10132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   215,     0,   212,   229,   211,    79,     0,   239,   233,
10142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     224,   227,   231
1015044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1016044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1017044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYDEFGOTO[NTERM-NUM].  */
1018044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yydefgoto[] =
1019044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
10202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   219,   150,   151,   152,   291,   153,   154,   155,   156,
10212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     157,   158,   159,   193,   161,   162,   163,   164,   165,   166,
10222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     167,   168,   169,   170,   171,   172,   194,   195,   274,   196,
10232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     174,   109,   197,   198,    63,    64,    65,   125,    99,   100,
10242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     126,    66,    67,    68,    69,   101,    70,    71,    72,    73,
10252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      74,   120,   121,    75,   175,    77,   178,   117,   137,   138,
10262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     220,   221,   217,   200,   201,   202,   203,   268,   343,   364,
10272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     313,   314,   315,   365,   204,   205,   206,   353,   342,   207,
10282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     319,   260,   316,   337,   350,   351,   208,    78,    79,    80,
10292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      92
1030044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1031044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1032044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1033044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   STATE-NUM.  */
10342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYPACT_NINF -309
1035044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yypact[] =
1036044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
10372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    2013,   -27,  -309,  -309,  -309,   154,  -309,  -309,  -309,  -309,
10382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,
10392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,
10402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  -309,  -309,  -309,    98,  -309,  -309,
10412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     -40,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,
10422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,   -46,
10432a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,   -42,   -23,     8,     5,   -87,  -309,    91,    14,
10442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    1130,  -309,  -309,  2298,    14,  -309,    -1,  -309,  1938,  -309,
10452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  2298,  -309,  -309,  -309,  -309,  -309,    13,
10462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,  -309,    43,  -309,    39,  -309,  -309,  -309,  -309,  -309,
10472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    2162,   124,    94,  -309,    51,   -14,  -309,    66,  -309,  2088,
10482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  1491,  -309,  -309,    62,  2088,  -309,    48,
10492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     -83,  -309,   358,  -309,  -309,  -309,  -309,    94,  2162,    -9,
10502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  1200,  1491,  -309,   148,  2162,    94,  1683,  -309,    89,
10512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  1491,  1491,  1491,  -309,  -309,  -309,
10522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,    10,  -309,  -309,  -309,    92,    20,  1586,    96,
10532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  1491,    53,   -76,  -309,   -62,    90,  -309,  -309,  -309,
10542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,   101,   -61,  -309,    95,  -309,  -309,  1768,  2088,   103,
10552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,    47,    82,    84,  -309,    97,    99,    93,  1298,   105,
10562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     102,  -309,  -309,   -10,  -309,  -309,   -13,  -309,   -42,     2,
10572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,   474,  -309,  -309,  -309,  -309,   106,
10582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  1393,  1491,  -309,   107,  -309,  -309,    94,   109,
10592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       4,  -309,   -58,  -309,  -309,  -309,    22,  -309,  -309,  1491,
10602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    2230,  -309,  -309,  1491,   112,  -309,  -309,  -309,  1491,  1491,
10612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    1491,  1491,  1491,  1491,  1491,  1491,  1491,  1491,  1491,  1491,
10622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    1491,  1491,  -309,  -309,  1853,  -309,  -309,  -309,  -309,  -309,
10632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     100,  -309,  1491,  -309,  -309,    36,  -309,  -309,   590,  -309,
10642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  1491,  1491,  -309,  -309,  -309,  1491,
10652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,   113,  -309,  -309,    42,  1491,    94,  -309,   -73,  -309,
10662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,   115,   108,    89,   119,  -309,  -309,  -309,  -309,  -309,
10672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      53,    53,  -309,  -309,  -309,  -309,   -62,   -62,  -309,   104,
10682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     101,    73,  -309,   169,    43,   822,   938,    25,  -309,  1035,
10692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     590,  -309,  -309,   120,  -309,  -309,   121,  -309,  1491,  -309,
10702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  1491,   122,  -309,  -309,  -309,  -309,  1035,   100,   108,
10712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      94,  2162,   125,   123,  -309,  -309,   126,  -309,  1491,  -309,
10722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     117,   129,   212,  -309,   139,   706,  -309,   141,    29,  1491,
10732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     706,   100,  1491,  -309,  -309,  -309,  -309,   142,   108,  -309,
10742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309
1075044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1076044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1077044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYPGOTO[NTERM-NUM].  */
1078044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yypgoto[] =
1079044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
10802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,   -39,  -309,  -309,  -309,  -309,  -309,  -309,     7,  -309,
10812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,     1,  -309,   -54,  -309,  -101,   -57,  -309,
10822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,     9,   -11,     3,  -309,  -110,  -126,  -309,  -138,
10832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -122,  -309,    11,    16,  -309,  -309,  -309,   130,   165,   159,
10842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     133,  -309,  -309,  -299,  -309,  -309,  -102,   -30,   -66,   257,
10852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,    83,    -6,     0,  -309,  -309,  -309,  -104,  -125,
10862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      45,   -21,  -208,   -50,  -194,  -296,  -309,  -309,  -309,   -93,
10872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -308,  -309,  -309,   -90,     6,   -47,  -309,  -309,   -67,  -309,
10882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309,  -309,  -309,  -309,  -309,  -309,  -309,  -309,   193,  -309,
10892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    -309
1090044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1091044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1092044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1093044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   positive, shift that token.  If negative, reduce the rule which
109498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   number is the opposite.  If YYTABLE_NINF, syntax error.  */
10952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens#define YYTABLE_NINF -214
1096044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yytable[] =
1097044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
10982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,    89,   123,   173,   110,   282,   216,   135,   226,   215,
10992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     278,    61,   223,   177,    95,   135,    62,    81,   288,   334,
11002a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     340,   173,   180,     7,   102,   242,   243,   103,   181,   105,
11012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     352,   250,   235,   328,   127,   135,    86,    87,   340,   106,
11022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     240,   329,   241,   136,   112,    96,    97,    98,    95,    82,
11032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     265,   136,   223,   370,    27,    28,   289,    29,    90,   363,
11042a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     244,   245,   127,   129,   363,    37,   251,   111,    88,   218,
11052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,   136,    91,    76,   254,   135,   135,   116,    76,    96,
11062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      97,    98,    93,    76,   269,   270,   271,   216,   209,    61,
11072a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     281,   292,   131,   272,    62,   227,   228,   212,   275,   132,
11082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,   276,   173,   273,   213,   113,   -28,   297,   113,    76,
11092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     -82,   136,   136,   311,   160,   286,   229,    76,   287,    94,
11102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     230,   118,   199,   119,   317,   232,   278,   290,    76,   223,
11112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     338,   233,   160,   275,   367,    76,   275,    76,    84,    85,
11122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     275,   302,   303,   304,   305,   224,   225,   275,   321,   322,
11132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     318,   122,   135,   286,   371,   130,   325,   323,     2,     3,
11142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       4,   179,   237,   326,    96,    97,    98,   104,    87,   173,
11152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      86,    87,   238,   239,   133,   173,   176,    76,    76,   246,
11162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     247,   339,   255,   256,   275,   331,   300,   301,   136,   306,
11172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     307,   295,    81,   -29,   249,   248,   258,   231,   259,   339,
11182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     236,   261,   252,   262,   199,   347,   346,   263,  -213,   266,
11192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     358,   267,   279,   160,   283,   285,  -141,   341,   173,   275,
11202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     324,   368,   330,  -185,   333,   332,   348,   344,   345,   361,
11212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     355,   359,   356,   357,   360,   341,   216,   296,   309,   298,
11222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     299,   160,   160,   160,   160,   160,   160,   160,   160,   160,
11232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     160,   160,   362,   310,    76,   366,   372,   308,   210,   124,
11242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     128,   211,    83,   284,   257,   327,   335,   369,   199,   336,
11252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     349,   115,     0,     0,   320,   110,     0,     0,     0,     0,
11262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     160,     0,     0,     0,     0,     0,   160,     0,     0,     0,
11276b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
11292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,   199,   199,     0,     0,   199,
11302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     199,     0,     0,     0,     0,     0,     0,     0,     0,   160,
11312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,   199,     0,     0,
11322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    76,     0,     0,     0,     0,     0,     0,     0,     0,
11332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,   199,     0,     0,     0,     0,
11342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     199,     1,     2,     3,     4,     5,     6,     7,     8,     9,
11352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,   182,   183,   184,     0,   185,   186,   187,   188,
11362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
11372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
11382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
11392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,   189,    42,    43,    44,    45,    46,
11402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,   139,    60,   140,   141,   142,   143,
11422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,   144,   145,     0,     0,     0,     0,     0,
114378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   146,     0,     0,     0,   190,   191,     0,     0,
11452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   192,   147,   148,     0,   149,     1,     2,     3,
11462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       4,     5,     6,     7,     8,     9,    10,    11,   182,   183,
11472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     184,     0,   185,   186,   187,   188,     0,     0,     0,    12,
11482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
11492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      23,    24,    25,    26,    27,    28,     0,    29,    30,    31,
11502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
11512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     189,    42,    43,    44,    45,    46,    47,    48,    49,    50,
11522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      51,    52,    53,    54,    55,     0,    56,    57,    58,    59,
11532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     139,    60,   140,   141,   142,   143,     0,     0,     0,   144,
11542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,   146,     0,
11562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   190,   277,     0,     0,     0,     0,   192,   147,
11572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     148,     0,   149,     1,     2,     3,     4,     5,     6,     7,
11582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     9,    10,    11,   182,   183,   184,     0,   185,   186,
11592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     187,   188,     0,     0,     0,    12,    13,    14,    15,    16,
11602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
11612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      27,    28,     0,    29,    30,    31,    32,    33,    34,    35,
11622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      36,    37,    38,    39,    40,    41,   189,    42,    43,    44,
11632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
11642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      55,     0,    56,    57,    58,    59,   139,    60,   140,   141,
11652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     142,   143,     0,     0,     0,   144,   145,     0,     0,     0,
1166fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,   146,     0,     0,     0,   190,     0,
11682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,   192,   147,   148,     0,   149,     1,
11692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
11702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     182,   183,   184,     0,   185,   186,   187,   188,     0,     0,
11712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    12,    13,    14,    15,    16,    17,    18,    19,    20,
11722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      21,    22,    23,    24,    25,    26,    27,    28,     0,    29,
11732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
11742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      40,    41,   189,    42,    43,    44,    45,    46,    47,    48,
11752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      49,    50,    51,    52,    53,    54,    55,     0,    56,    57,
11762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      58,    59,   139,    60,   140,   141,   142,   143,     0,     0,
11772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   144,   145,     0,     0,     0,     0,     0,     0,     0,
1178a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     146,     0,     0,     0,   122,     0,     0,     0,     0,     0,
11802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     192,   147,   148,     0,   149,     1,     2,     3,     4,     5,
11812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       6,     7,     8,     9,    10,    11,   182,   183,   184,     0,
11822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     185,   186,   187,   188,     0,     0,     0,    12,    13,    14,
11832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
11842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
11852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      34,    35,    36,    37,    38,    39,    40,    41,   189,    42,
11862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
11872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      53,    54,    55,     0,    56,    57,    58,    59,   139,    60,
11882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     140,   141,   142,   143,     0,     0,     0,   144,   145,     0,
118928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
11902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,   146,     0,     0,     0,
11912a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,   192,   147,   148,     0,
11922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     149,     1,     2,     3,     4,     5,     6,     7,     8,     9,
11932a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
11942a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
11952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
11962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
11972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
11982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
11992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,   139,    60,   140,   141,   142,   143,
12002a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,   144,   145,     0,     0,     0,     0,     0,
12012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,   134,     2,
12022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       3,     4,   146,     6,     7,     8,     9,    10,    11,     0,
12032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   192,   147,   148,     0,   149,     0,     0,     0,
1204fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1205fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      22,    23,    24,    25,    26,    27,    28,     0,    29,    30,
1206fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1207fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      41,     0,    42,    43,    44,    45,    46,    47,    48,    49,
12082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      50,    51,    52,    53,    54,    55,     0,    56,    57,    58,
12092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      59,   139,    60,   140,   141,   142,   143,     0,     0,     0,
12102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     144,   145,     0,     0,     0,     0,     0,     0,     0,     0,
12112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     2,     3,     4,     0,     0,   146,
12122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     9,    10,    11,     0,     0,     0,     0,     0,     0,
12132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     147,   148,     0,   149,     0,    12,    13,    14,    15,    16,
1214fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
12152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,    31,    32,    33,    34,    35,
12162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      36,     0,     0,     0,    40,    41,     0,    42,    43,    44,
1217fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
12182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      55,     0,    56,    57,    58,     0,   107,    60,     0,     0,
12192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     9,    10,    11,     0,     0,     0,     0,     0,     0,
12202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
12212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
12222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,   108,    31,    32,    33,    34,    35,
12232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      36,     0,     0,     0,    40,    41,     0,    42,    43,    44,
12242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
12252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      55,     0,    56,    57,    58,     0,   139,    60,   140,   141,
12262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     142,   143,     0,     0,     0,   144,   145,     0,     0,     0,
12272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,   146,     0,     0,   214,     8,     9,
12292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,     0,     0,     0,   147,   148,     0,   149,     0,
12302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
12312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,     0,     0,
12322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,    31,    32,    33,    34,    35,    36,     0,
12332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,    40,    41,     0,    42,    43,    44,    45,    46,
12342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
12352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,     0,   139,    60,   140,   141,   142,   143,
12362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,   144,   145,     0,     0,     0,     0,     0,
12372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   146,     8,     9,    10,    11,     0,     0,     0,
12392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   264,   147,   148,     0,   149,     0,    12,    13,
1240fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1241fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      24,    25,    26,     0,     0,     0,     0,     0,    31,    32,
1242fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      33,    34,    35,    36,     0,     0,     0,    40,    41,     0,
1243fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
12442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,     0,    56,    57,    58,     0,   139,
12452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,   140,   141,   142,   143,     0,     0,     0,   144,   145,
12462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,   146,     0,     0,
12482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     280,     8,     9,    10,    11,     0,     0,     0,   147,   148,
12492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   149,     0,     0,     0,     0,    12,    13,    14,    15,
1250fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
12512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      26,     0,     0,     0,     0,     0,    31,    32,    33,    34,
1252fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      35,    36,     0,     0,     0,    40,    41,     0,    42,    43,
1253fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
12542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      54,    55,     0,    56,    57,    58,     0,   139,    60,   140,
12552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     141,   142,   143,     0,     0,     0,   144,   145,     0,     0,
12569e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,   146,     8,     9,    10,    11,
12582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,   147,   148,     0,   149,
1259fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens       0,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1260fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      21,    22,    23,    24,    25,    26,     0,     0,     0,     0,
1261fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens       0,    31,    32,    33,    34,    35,    36,     0,     0,     0,
12622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      40,   234,     0,    42,    43,    44,    45,    46,    47,    48,
12632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      49,    50,    51,    52,    53,    54,    55,     0,    56,    57,
12642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      58,     0,   139,    60,   140,   141,   142,   143,     0,     0,
12652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   144,   145,     0,     0,     0,     0,     0,     0,     0,
12662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,   134,     2,     3,     4,
12672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     146,     6,     7,     8,     9,    10,    11,     0,     0,     0,
12682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   147,   148,     0,   149,     0,     0,     0,    12,    13,
12692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
12702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
12712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
12722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
12732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
12742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,     0,     0,     0,     0,     0,     0,     0,     0,     0,
12752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,   134,     2,     3,     4,     0,     6,     7,     8,     9,
12762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
12772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   222,    12,    13,    14,    15,    16,    17,    18,
12782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
12792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
12802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
12812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
12822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,     0,    60,     0,     0,     0,     0,
12832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,   134,     2,     3,     4,
12842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     6,     7,     8,     9,    10,    11,     0,     0,     0,
12852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,   253,    12,    13,
12862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
12872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
12882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
12892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
12902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
12912a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,     0,     0,     0,     0,     0,     0,     0,   114,     0,
12922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     1,     2,     3,     4,     5,     6,     7,     8,     9,
12932a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
12942a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,   312,    12,    13,    14,    15,    16,    17,    18,
12952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
12962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
12972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
12982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
12992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,     0,    60,     1,     2,     3,     4,
1300fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens       5,     6,     7,     8,     9,    10,    11,     0,     0,     0,
13012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
1302fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1303fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
1304fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      33,    34,    35,    36,    37,    38,    39,    40,    41,     0,
1305fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
13062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,     0,    56,    57,    58,    59,     0,
13072a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,   134,     2,     3,     4,     0,     6,     7,     8,     9,
13082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
13092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
13102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
13112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
13122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,     0,    42,    43,    44,    45,    46,
13132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
13142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,     0,    60,     2,     3,     4,     0,
13152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     8,     9,    10,    11,     0,     0,     0,     0,
131628043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
131728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1318fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      25,    26,     0,     0,     0,     0,     0,    31,    32,    33,
1319fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      34,    35,    36,     0,     0,     0,    40,    41,     0,    42,
132028043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
13212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      53,    54,    55,     0,    56,    57,    58,     0,     0,    60,
13222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     9,    10,    11,     0,     0,     0,     0,     0,     0,
13232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
13242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
13252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,     0,     0,     0,     0,    31,    32,    33,    34,    35,
13262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      36,     0,     0,     0,    40,    41,     0,    42,    43,    44,
13272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
13282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      55,     0,    56,    57,    58,     0,   293,   294,     8,     9,
132928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
133028043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
133128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      19,    20,    21,    22,    23,    24,    25,    26,     0,     0,
133228043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       0,     0,     0,    31,    32,    33,    34,    35,    36,     0,
133328043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens       0,     0,    40,    41,     0,    42,    43,    44,    45,    46,
1334fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,     0,
13352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,     0,     0,    60
1336044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1337044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
133898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#define yypact_value_is_default(Yystate) \
13392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  (!!((Yystate) == (-309)))
134098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
134198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#define yytable_value_is_error(Yytable_value) \
134298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YYID (0)
134398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
1344044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_int16 yycheck[] =
1345044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
13462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       0,    40,    92,   113,    70,   213,   132,   109,   146,   131,
13472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     204,     0,   137,   117,     9,   117,     0,    44,    76,   315,
13482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     319,   131,   105,     9,   111,    87,    88,   114,   111,    68,
13492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     338,    92,   158,   106,   100,   137,    76,    77,   337,    69,
13502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     116,   114,   118,   109,    74,    40,    41,    42,     9,    76,
13512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     188,   117,   177,   361,    40,    41,   114,    43,   104,   355,
13522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     122,   123,   128,   102,   360,    51,   127,    73,   108,   135,
13532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      70,   137,   114,    73,   178,   177,   178,    83,    78,    40,
13542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      41,    42,   105,    83,    94,    95,    96,   213,   127,    78,
13552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     212,   229,   106,   103,    78,    85,    86,   106,   111,   113,
13562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     100,   114,   212,   113,   113,   106,   104,   233,   106,   109,
13572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,   177,   178,   251,   113,   111,   106,   117,   114,   111,
13582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     110,   108,   122,    76,   262,   105,   320,   105,   128,   254,
13592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,   111,   131,   111,   105,   135,   111,   137,    40,    41,
13602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     111,   242,   243,   244,   245,   144,   145,   111,   274,   275,
13612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     114,   108,   254,   111,   362,   104,   114,   279,     4,     5,
13622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       6,   113,   161,   285,    40,    41,    42,    76,    77,   279,
13632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,    77,   119,   120,   108,   285,   114,   177,   178,    89,
13642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      90,   319,    79,    80,   111,   112,   240,   241,   254,   246,
13652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     247,   230,    44,   104,    93,    91,   114,   105,   114,   337,
13662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,   104,   107,   104,   204,   331,   328,   114,   108,   104,
13672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     348,   109,   106,   212,   107,   106,   104,   319,   328,   111,
13682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,   359,   107,   104,   314,    56,   104,   107,   107,    17,
13692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,   114,   109,   107,   105,   337,   362,   230,   249,   238,
13702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
13712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     249,   250,   113,   250,   254,   114,   114,   248,   128,    94,
13722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     101,   128,     5,   218,   181,   286,   316,   360,   268,   316,
13732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     337,    78,    -1,    -1,   268,   341,    -1,    -1,    -1,    -1,
13742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     279,    -1,    -1,    -1,    -1,    -1,   285,    -1,    -1,    -1,
1375d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   340,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,   315,   316,    -1,    -1,   319,
13782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   328,
13792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,
13802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,
13822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     360,     3,     4,     5,     6,     7,     8,     9,    10,    11,
13832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    14,    15,    16,    -1,    18,    19,    20,    21,
13842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
13852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
13862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
13872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
13882a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
13892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
13902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
1391fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
13922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   104,    -1,    -1,    -1,   108,   109,    -1,    -1,
13932a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   114,   115,   116,    -1,   118,     3,     4,     5,
13942a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
13952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      16,    -1,    18,    19,    20,    21,    -1,    -1,    -1,    25,
13962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
13972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      36,    37,    38,    39,    40,    41,    -1,    43,    44,    45,
13982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
13992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
14002a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
14012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      76,    77,    78,    79,    80,    81,    -1,    -1,    -1,    85,
14022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,
14042a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   108,   109,    -1,    -1,    -1,    -1,   114,   115,
14052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     116,    -1,   118,     3,     4,     5,     6,     7,     8,     9,
14062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,    12,    13,    14,    15,    16,    -1,    18,    19,
14072a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      20,    21,    -1,    -1,    -1,    25,    26,    27,    28,    29,
14082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
14092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
14102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
14112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
14122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
14132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      80,    81,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,
14146b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,   108,    -1,
14162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,   114,   115,   116,    -1,   118,     3,
14172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
14182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      14,    15,    16,    -1,    18,    19,    20,    21,    -1,    -1,
14192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
14202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
14212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
14222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
14232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
14242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      74,    75,    76,    77,    78,    79,    80,    81,    -1,    -1,
14252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1426a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,
14282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     114,   115,   116,    -1,   118,     3,     4,     5,     6,     7,
14292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       8,     9,    10,    11,    12,    13,    14,    15,    16,    -1,
14302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      18,    19,    20,    21,    -1,    -1,    -1,    25,    26,    27,
14312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
14322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      38,    39,    40,    41,    -1,    43,    44,    45,    46,    47,
14332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
14342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
14352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
14362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      78,    79,    80,    81,    -1,    -1,    -1,    85,    86,    -1,
143728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
14392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,   114,   115,   116,    -1,
14402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     118,     3,     4,     5,     6,     7,     8,     9,    10,    11,
14412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
14432a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
14442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
14452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
14462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
14472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
14482a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
14492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
14502a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens       5,     6,   104,     8,     9,    10,    11,    12,    13,    -1,
14512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   114,   115,   116,    -1,   118,    -1,    -1,    -1,
1452fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1453fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      35,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
1454fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1455fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      55,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
14562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
14572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      75,    76,    77,    78,    79,    80,    81,    -1,    -1,    -1,
14582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,     4,     5,     6,    -1,    -1,   104,
14602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
14612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     115,   116,    -1,   118,    -1,    25,    26,    27,    28,    29,
1462fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
14632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
14642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      50,    -1,    -1,    -1,    54,    55,    -1,    57,    58,    59,
14652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
14662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      70,    -1,    72,    73,    74,    -1,    76,    77,    -1,    -1,
14672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
14682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    25,    26,    27,    28,    29,
14692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
14702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,   114,    45,    46,    47,    48,    49,
14712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      50,    -1,    -1,    -1,    54,    55,    -1,    57,    58,    59,
1472fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
14732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      70,    -1,    72,    73,    74,    -1,    76,    77,    78,    79,
14742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      80,    81,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,
14752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,   104,    -1,    -1,   107,    10,    11,
14772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    -1,    -1,    -1,   115,   116,    -1,   118,    -1,
14782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
14792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    -1,    -1,
14802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    -1,
14812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    54,    55,    -1,    57,    58,    59,    60,    61,
14822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
14832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
14842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
14852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   104,    10,    11,    12,    13,    -1,    -1,    -1,
14872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   114,   115,   116,    -1,   118,    -1,    25,    26,
1488fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1489fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      37,    38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
1490fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
1491fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
14922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      67,    68,    69,    70,    -1,    72,    73,    74,    -1,    76,
14932a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,    78,    79,    80,    81,    -1,    -1,    -1,    85,    86,
14942a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
14952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,
14962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,    10,    11,    12,    13,    -1,    -1,    -1,   115,   116,
14972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   118,    -1,    -1,    -1,    -1,    25,    26,    27,    28,
1498fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
14992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
1500fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      49,    50,    -1,    -1,    -1,    54,    55,    -1,    57,    58,
1501fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
15022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      69,    70,    -1,    72,    73,    74,    -1,    76,    77,    78,
15032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      79,    80,    81,    -1,    -1,    -1,    85,    86,    -1,    -1,
1504fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,   104,    10,    11,    12,    13,
15062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,   115,   116,    -1,   118,
1507fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1508fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      34,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
1509fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      -1,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
1510fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      54,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
15112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
15122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      74,    -1,    76,    77,    78,    79,    80,    81,    -1,    -1,
15132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
15152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
15162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,   115,   116,    -1,   118,    -1,    -1,    -1,    25,    26,
15172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
15182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
15192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
15202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
15212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
15222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
15242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   109,    25,    26,    27,    28,    29,    30,    31,
15262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
15272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
15282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
15292a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
15302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    75,    -1,    77,    -1,    -1,    -1,    -1,
15312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
15322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
15332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    25,    26,
15342a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
15352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
15362a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
15372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
15382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
15392a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,
15402a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
15412a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,   109,    25,    26,    27,    28,    29,    30,    31,
15432a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
15442a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
15452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
15462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
15472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    75,    -1,    77,     3,     4,     5,     6,
1548fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
15492a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,
1550fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1551fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
1552fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
1553fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
15542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      67,    68,    69,    70,    -1,    72,    73,    74,    75,    -1,
15552a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
15562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
15572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
15582a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
15592a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
15602a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
15612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
15622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    75,    -1,    77,     4,     5,     6,    -1,
15632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
156428043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,    27,
156528043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1566fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,
1567fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    57,
156828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
15692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      68,    69,    70,    -1,    72,    73,    74,    -1,    -1,    77,
15702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
15712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    25,    26,    27,    28,    29,
15722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
15732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
15742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      50,    -1,    -1,    -1,    54,    55,    -1,    57,    58,    59,
15752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
15762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      70,    -1,    72,    73,    74,    -1,    76,    77,    10,    11,
157728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
157828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
157928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      32,    33,    34,    35,    36,    37,    38,    39,    -1,    -1,
158028043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    -1,
158128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens      -1,    -1,    54,    55,    -1,    57,    58,    59,    60,    61,
1582fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
15832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      72,    73,    74,    -1,    -1,    77
1584044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1585044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1586044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1587044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   symbol of state STATE-NUM.  */
1588044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic const yytype_uint8 yystos[] =
1589044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1590044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
15916b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org      12,    13,    25,    26,    27,    28,    29,    30,    31,    32,
15928c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org      33,    34,    35,    36,    37,    38,    39,    40,    41,    43,
15938c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
15949e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens      54,    55,    57,    58,    59,    60,    61,    62,    63,    64,
15952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      65,    66,    67,    68,    69,    70,    72,    73,    74,    75,
15962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      77,   160,   161,   162,   163,   164,   169,   170,   171,   172,
15972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     174,   175,   176,   177,   178,   181,   182,   183,   215,   216,
15982a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     217,    44,    76,   177,    40,    41,    76,    77,   108,   129,
15992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,   114,   218,   105,   111,     9,    40,    41,    42,   166,
16002a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     167,   173,   111,   114,    76,   129,   175,    76,   114,   159,
16012a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     176,   181,   175,   106,     0,   216,   181,   185,   108,    76,
16022a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     179,   180,   108,   201,   166,   165,   168,   176,   167,   129,
16032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     104,   106,   113,   108,     3,   174,   176,   186,   187,    76,
16042a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      78,    79,    80,    81,    85,    86,   104,   115,   116,   118,
16052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     130,   131,   132,   134,   135,   136,   137,   138,   139,   140,
16062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
16072a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     151,   152,   153,   154,   158,   182,   114,   186,   184,   113,
16082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,   111,    14,    15,    16,    18,    19,    20,    21,    56,
16092a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     108,   109,   114,   141,   154,   155,   157,   160,   161,   182,
16102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     191,   192,   193,   194,   202,   203,   204,   207,   214,   129,
16112a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     165,   168,   106,   113,   107,   158,   155,   190,   176,   129,
16122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     188,   189,   109,   187,   141,   141,   157,    85,    86,   106,
16132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     110,   105,   105,   111,    55,   155,   104,   141,   119,   120,
16142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     116,   118,    87,    88,   122,   123,    89,    90,    91,    93,
16152a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      92,   127,   107,   109,   186,    79,    80,   180,   114,   114,
16162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     209,   104,   104,   114,   114,   157,   104,   109,   195,    94,
16172a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens      95,    96,   103,   113,   156,   111,   114,   109,   192,   106,
16182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,   158,   190,   107,   188,   106,   111,   114,    76,   114,
16192a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,   133,   157,    76,    77,   129,   136,   155,   141,   141,
16202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     143,   143,   145,   145,   145,   145,   146,   146,   150,   151,
16212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     152,   157,   109,   198,   199,   200,   210,   157,   114,   208,
16222a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     202,   155,   155,   158,   107,   114,   158,   189,   106,   114,
16232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     107,   112,    56,   201,   193,   191,   203,   211,   105,   157,
16242a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     171,   174,   206,   196,   107,   107,   158,   155,   104,   206,
16252a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     212,   213,   198,   205,   129,   105,   109,   107,   157,   114,
16262a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     105,    17,   113,   193,   197,   201,   114,   105,   157,   197,
16272a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens     198,   190,   114
1628044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org};
1629044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1630044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define yyerrok		(yyerrstatus = 0)
1631044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define yyclearin	(yychar = YYEMPTY)
1632044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYEMPTY		(-2)
1633044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYEOF		0
1634044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1635044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYACCEPT	goto yyacceptlab
1636044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYABORT		goto yyabortlab
1637044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYERROR		goto yyerrorlab
1638044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1639044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1640044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Like YYERROR except do call yyerror.  This remains here temporarily
1641044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   to ease the transition to the new meaning of YYERROR, for GCC.
164205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   Once GCC version 2 has supplanted version 1, this can go.  However,
164305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
164405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
164505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com   discussed.  */
1646044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1647044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYFAIL		goto yyerrlab
164805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#if defined YYFAIL
164905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* This is here to suppress warnings from the GCC cpp's
165005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com     -Wunused-macros.  Normally we don't worry about that warning, but
165105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com     some users do, and we want to make it easy for users to remove
165205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com     YYFAIL uses, which will produce warnings from Bison 2.5.  */
165305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#endif
1654044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1655044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYRECOVERING()  (!!yyerrstatus)
1656044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
165798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#define YYBACKUP(Token, Value)                                  \
165898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgdo                                                              \
165998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  if (yychar == YYEMPTY)                                        \
166098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {                                                           \
166198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yychar = (Token);                                         \
166298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yylval = (Value);                                         \
166398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYPOPSTACK (yylen);                                       \
166498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yystate = *yyssp;                                         \
166598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      goto yybackup;                                            \
166698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    }                                                           \
166798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  else                                                          \
166898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {                                                           \
1669075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      yyerror (&yylloc, context, YY_("syntax error: cannot back up")); \
1670044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYERROR;							\
1671044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }								\
1672044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgwhile (YYID (0))
1673044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
167498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Error token number */
1675044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYTERROR	1
1676044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#define YYERRCODE	256
1677044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1678044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1679075edd84dd682b91279132317d34b09e8028ae6fJamie Madill/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1680075edd84dd682b91279132317d34b09e8028ae6fJamie Madill   If N is 0, then set CURRENT to the empty location which ends
1681075edd84dd682b91279132317d34b09e8028ae6fJamie Madill   the previous symbol: RHS[0] (always defined).  */
1682075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1683075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#ifndef YYLLOC_DEFAULT
1684075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1685075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    do                                                                  \
1686075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      if (YYID (N))                                                     \
1687075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        {                                                               \
1688075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1689075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1690075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1691075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1692075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        }                                                               \
1693075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      else                                                              \
1694075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        {                                                               \
1695075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).first_line   = (Current).last_line   =              \
1696075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            YYRHSLOC (Rhs, 0).last_line;                                \
1697075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          (Current).first_column = (Current).last_column =              \
1698075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            YYRHSLOC (Rhs, 0).last_column;                              \
1699075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        }                                                               \
1700075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    while (YYID (0))
1701075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#endif
1702075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1703075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1704075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1705075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1706075edd84dd682b91279132317d34b09e8028ae6fJamie Madill/* YY_LOCATION_PRINT -- Print the location on the stream.
1707075edd84dd682b91279132317d34b09e8028ae6fJamie Madill   This macro was not mandated originally: define only if we know
1708075edd84dd682b91279132317d34b09e8028ae6fJamie Madill   we won't break user code: when these are the locations we know.  */
1709075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1710044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef YY_LOCATION_PRINT
1711075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1712075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1713075edd84dd682b91279132317d34b09e8028ae6fJamie Madill/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
1714075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1715075edd84dd682b91279132317d34b09e8028ae6fJamie Madill__attribute__((__unused__))
1716075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#if (defined __STDC__ || defined __C99__FUNC__ \
1717075edd84dd682b91279132317d34b09e8028ae6fJamie Madill     || defined __cplusplus || defined _MSC_VER)
1718075edd84dd682b91279132317d34b09e8028ae6fJamie Madillstatic unsigned
1719075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
1720075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#else
1721075edd84dd682b91279132317d34b09e8028ae6fJamie Madillstatic unsigned
1722075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_location_print_ (yyo, yylocp)
1723075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    FILE *yyo;
1724075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE const * const yylocp;
1725075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#endif
1726075edd84dd682b91279132317d34b09e8028ae6fJamie Madill{
1727075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  unsigned res = 0;
1728075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
1729075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  if (0 <= yylocp->first_line)
1730075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    {
1731075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      res += fprintf (yyo, "%d", yylocp->first_line);
1732075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      if (0 <= yylocp->first_column)
1733075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        res += fprintf (yyo, ".%d", yylocp->first_column);
1734075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    }
1735075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  if (0 <= yylocp->last_line)
1736075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    {
1737075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      if (yylocp->first_line < yylocp->last_line)
1738075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        {
1739075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          res += fprintf (yyo, "-%d", yylocp->last_line);
1740075edd84dd682b91279132317d34b09e8028ae6fJamie Madill          if (0 <= end_col)
1741075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            res += fprintf (yyo, ".%d", end_col);
1742075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        }
1743075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      else if (0 <= end_col && yylocp->first_column < end_col)
1744075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        res += fprintf (yyo, "-%d", end_col);
1745075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    }
1746075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  return res;
1747075edd84dd682b91279132317d34b09e8028ae6fJamie Madill }
1748075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1749075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#  define YY_LOCATION_PRINT(File, Loc)          \
1750075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yy_location_print_ (File, &(Loc))
1751075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
1752075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# else
1753075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1754075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# endif
1755044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1756044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1757044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1758044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYLEX -- calling `yylex' with the right arguments.  */
1759044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYLEX_PARAM
1760075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1761044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1762075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# define YYLEX yylex (&yylval, &yylloc)
1763044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1764044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1765044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Enable debugging if requested.  */
1766044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if YYDEBUG
1767044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1768044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef YYFPRINTF
1769044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1770044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  define YYFPRINTF fprintf
1771044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
1772044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1773044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYDPRINTF(Args)			\
1774044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgdo {						\
1775044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yydebug)					\
1776044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYFPRINTF Args;				\
1777044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org} while (YYID (0))
1778044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1779044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
1780044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgdo {									  \
1781044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yydebug)								  \
1782044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {									  \
1783044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYFPRINTF (stderr, "%s ", Title);					  \
1784044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yy_symbol_print (stderr,						  \
1785075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		  Type, Value, Location, context); \
1786044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYFPRINTF (stderr, "\n");						  \
1787044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }									  \
1788044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org} while (YYID (0))
1789044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1790044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1791044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*--------------------------------.
1792044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| Print this symbol on YYOUTPUT.  |
1793044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`--------------------------------*/
1794044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1795044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*ARGSUSED*/
1796044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1797044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1798044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1799075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, TParseContext* context)
1800044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1801044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1802075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, context)
1803044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    FILE *yyoutput;
1804044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    int yytype;
1805044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTYPE const * const yyvaluep;
1806075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE const * const yylocationp;
1807044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    TParseContext* context;
1808044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1809044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
181098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  FILE *yyo = yyoutput;
181198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YYUSE (yyo);
1812044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (!yyvaluep)
1813044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    return;
1814075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYUSE (yylocationp);
1815044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYUSE (context);
1816044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifdef YYPRINT
1817044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yytype < YYNTOKENS)
1818044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1819044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# else
1820044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYUSE (yyoutput);
1821044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
1822f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill  YYUSE (yytype);
1823044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
1824044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1825044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1826044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*--------------------------------.
1827044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| Print this symbol on YYOUTPUT.  |
1828044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`--------------------------------*/
1829044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1830044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1831044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1832044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1833075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, TParseContext* context)
1834044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1835044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1836075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, context)
1837044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    FILE *yyoutput;
1838044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    int yytype;
1839044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTYPE const * const yyvaluep;
1840075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE const * const yylocationp;
1841044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    TParseContext* context;
1842044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1843044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1844044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yytype < YYNTOKENS)
1845044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1846044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  else
1847044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1848044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1849075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YY_LOCATION_PRINT (yyoutput, *yylocationp);
1850075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYFPRINTF (yyoutput, ": ");
1851075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, context);
1852044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYFPRINTF (yyoutput, ")");
1853044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
1854044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1855044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*------------------------------------------------------------------.
1856044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1857044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| TOP (included).                                                   |
1858044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`------------------------------------------------------------------*/
1859044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1860044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1861044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1862044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
186305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.comyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1864044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1865044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
186605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.comyy_stack_print (yybottom, yytop)
186705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    yytype_int16 *yybottom;
186805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    yytype_int16 *yytop;
1869044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1870044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1871044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYFPRINTF (stderr, "Stack now");
187205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  for (; yybottom <= yytop; yybottom++)
187305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    {
187405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com      int yybot = *yybottom;
187505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com      YYFPRINTF (stderr, " %d", yybot);
187605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
1877044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYFPRINTF (stderr, "\n");
1878044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
1879044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1880044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_STACK_PRINT(Bottom, Top)				\
1881044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgdo {								\
1882044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yydebug)							\
1883044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    yy_stack_print ((Bottom), (Top));				\
1884044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org} while (YYID (0))
1885044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1886044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1887044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*------------------------------------------------.
1888044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| Report that the YYRULE is going to be reduced.  |
1889044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`------------------------------------------------*/
1890044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1891044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1892044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1893044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1894075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, TParseContext* context)
1895044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1896044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
1897075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyy_reduce_print (yyvsp, yylsp, yyrule, context)
1898044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTYPE *yyvsp;
1899075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE *yylsp;
1900044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    int yyrule;
1901044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    TParseContext* context;
1902044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1903044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1904044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  int yynrhs = yyr2[yyrule];
1905044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  int yyi;
1906044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  unsigned long int yylno = yyrline[yyrule];
1907044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1908044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	     yyrule - 1, yylno);
1909044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* The symbols being reduced.  */
1910044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  for (yyi = 0; yyi < yynrhs; yyi++)
1911044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
191205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1913044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1914044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		       &(yyvsp[(yyi + 1) - (yynrhs)])
1915075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , context);
191605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com      YYFPRINTF (stderr, "\n");
1917044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
1918044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
1919044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1920044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_REDUCE_PRINT(Rule)		\
1921044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgdo {					\
1922044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yydebug)				\
1923075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    yy_reduce_print (yyvsp, yylsp, Rule, context); \
1924044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org} while (YYID (0))
1925044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1926044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Nonzero means print parse trace.  It is left uninitialized so that
1927044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   multiple parsers can coexist.  */
1928044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint yydebug;
1929044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else /* !YYDEBUG */
1930044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYDPRINTF(Args)
1931044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1932044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_STACK_PRINT(Bottom, Top)
1933044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YY_REDUCE_PRINT(Rule)
1934044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif /* !YYDEBUG */
1935044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1936044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1937044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYINITDEPTH -- initial size of the parser's stacks.  */
1938044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef	YYINITDEPTH
1939044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYINITDEPTH 200
1940044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1941044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1942044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1943044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   if the built-in stack extension method is used).
1944044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1945044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   Do not make this value too large; the results are undefined if
1946044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1947044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   evaluated with infinite-precision integer arithmetic.  */
1948044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1949044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef YYMAXDEPTH
1950044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# define YYMAXDEPTH 10000
1951044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1952044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1953044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1954044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if YYERROR_VERBOSE
1955044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1956044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef yystrlen
1957044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  if defined __GLIBC__ && defined _STRING_H
1958044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define yystrlen strlen
1959044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  else
1960044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Return the length of YYSTR.  */
1961044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1962044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1963044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic YYSIZE_T
1964044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyystrlen (const char *yystr)
1965044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1966044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic YYSIZE_T
1967044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyystrlen (yystr)
1968044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    const char *yystr;
1969044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1970044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1971044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYSIZE_T yylen;
1972044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  for (yylen = 0; yystr[yylen]; yylen++)
1973044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    continue;
1974044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  return yylen;
1975044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
1976044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
1977044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
1978044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1979044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef yystpcpy
1980044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1981044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#   define yystpcpy stpcpy
1982044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  else
1983044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1984044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   YYDEST.  */
1985044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
1986044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
1987044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic char *
1988044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyystpcpy (char *yydest, const char *yysrc)
1989044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
1990044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic char *
1991044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyystpcpy (yydest, yysrc)
1992044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    char *yydest;
1993044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    const char *yysrc;
1994044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
1995044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
1996044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  char *yyd = yydest;
1997044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  const char *yys = yysrc;
1998044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
1999044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  while ((*yyd++ = *yys++) != '\0')
2000044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    continue;
2001044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2002044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  return yyd - 1;
2003044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
2004044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  endif
2005044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
2006044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2007044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef yytnamerr
2008044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2009044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   quotes and backslashes, so that it's suitable for yyerror.  The
2010044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   heuristic is that double-quoting is unnecessary unless the string
2011044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   contains an apostrophe, a comma, or backslash (other than
2012044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2013044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   null, do not copy; instead, return the length of what the result
2014044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org   would have been.  */
2015044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic YYSIZE_T
2016044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyytnamerr (char *yyres, const char *yystr)
2017044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
2018044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (*yystr == '"')
2019044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2020044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYSIZE_T yyn = 0;
2021044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      char const *yyp = yystr;
2022044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2023044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      for (;;)
2024044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	switch (*++yyp)
2025044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  {
2026044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  case '\'':
2027044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  case ',':
2028044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    goto do_not_strip_quotes;
2029044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2030044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  case '\\':
2031044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    if (*++yyp != '\\')
2032044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	      goto do_not_strip_quotes;
2033044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    /* Fall through.  */
2034044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  default:
2035044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    if (yyres)
2036044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	      yyres[yyn] = *yyp;
2037044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    yyn++;
2038044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    break;
2039044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2040044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  case '"':
2041044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    if (yyres)
2042044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	      yyres[yyn] = '\0';
2043044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    return yyn;
2044044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  }
2045044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    do_not_strip_quotes: ;
2046044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2047044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2048044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (! yyres)
2049044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    return yystrlen (yystr);
2050044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2051044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  return yystpcpy (yyres, yystr) - yyres;
2052044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
2053044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
2054044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
205598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
205698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   about the unexpected token YYTOKEN for the state stack whose top is
205798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   YYSSP.
2058044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
205998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
206098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   not large enough to hold the message.  In that case, also set
206198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
206298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   required number of bytes is too large to store.  */
206398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgstatic int
206498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
206598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yytype_int16 *yyssp, int yytoken)
206698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org{
206798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
206898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YYSIZE_T yysize = yysize0;
206998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
207098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* Internationalized format string. */
207198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  const char *yyformat = YY_NULL;
207298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* Arguments of yyformat. */
207398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
207498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* Number of reported tokens (one for the "unexpected", one per
207598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     "expected"). */
207698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  int yycount = 0;
207798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
207898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* There are many possibilities here to consider:
207998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     - Assume YYFAIL is not used.  It's too flawed to consider.  See
208098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
208198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       for details.  YYERROR is fine as it does not invoke this
208298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       function.
208398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     - If this state is a consistent state with a default action, then
208498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       the only way this function was invoked is if the default action
208598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       is an error action.  In that case, don't check for expected
208698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       tokens because there are none.
208798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     - The only way there can be no lookahead present (in yychar) is if
208898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       this state is a consistent state with a default action.  Thus,
208998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       detecting the absence of a lookahead is sufficient to determine
209098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       that there is no unexpected or expected token to report.  In that
209198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       case, just report a simple "syntax error".
209298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     - Don't assume there isn't a lookahead just because this state is a
209398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       consistent state with a default action.  There might have been a
209498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       previous inconsistent state, consistent state with a non-default
209598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       action, or user semantic action that manipulated yychar.
209698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     - Of course, the expected token list depends on states to have
209798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       correct lookahead information, and it depends on the parser not
209898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       to perform extra reductions after fetching a lookahead from the
209998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       scanner and before detecting a syntax error.  Thus, state merging
210098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       (from LALR or IELR) and default reductions corrupt the expected
210198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       token list.  However, the list is correct for canonical LR with
210298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       one exception: it will still contain any token that will not be
210398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       accepted due to an error action in a later state.
210498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  */
210598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  if (yytoken != YYEMPTY)
210698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {
210798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      int yyn = yypact[*yyssp];
210898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yyarg[yycount++] = yytname[yytoken];
210998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      if (!yypact_value_is_default (yyn))
211098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        {
211198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          /* Start YYX at -YYN if negative to avoid negative indexes in
211298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org             YYCHECK.  In other words, skip the first -YYN actions for
211398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org             this state because they are default actions.  */
211498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          int yyxbegin = yyn < 0 ? -yyn : 0;
211598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          /* Stay within bounds of both yycheck and yytname.  */
211698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          int yychecklim = YYLAST - yyn + 1;
211798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
211898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          int yyx;
211998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
212098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
212198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
212298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                && !yytable_value_is_error (yytable[yyx + yyn]))
212398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              {
212498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
212598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                  {
212698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                    yycount = 1;
212798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                    yysize = yysize0;
212898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                    break;
212998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                  }
213098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yyarg[yycount++] = yytname[yyx];
213198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                {
213298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
213398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                  if (! (yysize <= yysize1
213498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
213598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                    return 2;
213698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                  yysize = yysize1;
213798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                }
213898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              }
213998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        }
2140044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
214198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
214298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  switch (yycount)
214398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {
214498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYCASE_(N, S)                      \
214598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      case N:                               \
214698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        yyformat = S;                       \
214798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      break
214898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(0, YY_("syntax error"));
214998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(1, YY_("syntax error, unexpected %s"));
215098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
215198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
215298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
215398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
215498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# undef YYCASE_
215598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    }
215698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
215798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  {
215898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
215998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
216098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      return 2;
216198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    yysize = yysize1;
216298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  }
216398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
216498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  if (*yymsg_alloc < yysize)
216598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {
216698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      *yymsg_alloc = 2 * yysize;
216798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      if (! (yysize <= *yymsg_alloc
216898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
216998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
217098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      return 1;
217198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    }
217298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
217398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* Avoid sprintf, as that infringes on the user's name space.
217498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     Don't have undefined behavior even if the translation
217598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     produced a string with the wrong number of "%s"s.  */
217698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  {
217798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    char *yyp = *yymsg;
217898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    int yyi = 0;
217998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    while ((*yyp = *yyformat) != '\0')
218098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
218198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        {
218298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          yyp += yytnamerr (yyp, yyarg[yyi++]);
218398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          yyformat += 2;
218498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        }
218598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      else
218698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        {
218798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          yyp++;
218898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          yyformat++;
218998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        }
219098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  }
219198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  return 0;
2192044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
2193044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif /* YYERROR_VERBOSE */
2194044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2195044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-----------------------------------------------.
2196044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| Release the memory associated to this symbol.  |
2197044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-----------------------------------------------*/
2198044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2199044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*ARGSUSED*/
2200044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
2201044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
2202044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
2203075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, TParseContext* context)
2204044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
2205044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgstatic void
2206075edd84dd682b91279132317d34b09e8028ae6fJamie Madillyydestruct (yymsg, yytype, yyvaluep, yylocationp, context)
2207044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    const char *yymsg;
2208044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    int yytype;
2209044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTYPE *yyvaluep;
2210075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE *yylocationp;
2211044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    TParseContext* context;
2212044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
2213044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
2214044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYUSE (yyvaluep);
2215075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYUSE (yylocationp);
2216044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYUSE (context);
2217044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2218044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (!yymsg)
2219044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    yymsg = "Deleting";
2220044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2221044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2222f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill  YYUSE (yytype);
2223044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
2224044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2225044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2226044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2227044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
222898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/*----------.
222998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org| yyparse.  |
223098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org`----------*/
2231044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2232044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef YYPARSE_PARAM
2233044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
2234044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
2235044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint
2236044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyparse (void *YYPARSE_PARAM)
2237044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
2238044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint
2239044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyparse (YYPARSE_PARAM)
2240044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    void *YYPARSE_PARAM;
2241044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
2242044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else /* ! YYPARSE_PARAM */
2243044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if (defined __STDC__ || defined __C99__FUNC__ \
2244044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     || defined __cplusplus || defined _MSC_VER)
2245044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint
2246044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyparse (TParseContext* context)
2247044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
2248044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint
2249044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyparse (context)
2250044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    TParseContext* context;
2251044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
2252044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
2253044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org{
225405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* The lookahead symbol.  */
2255044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint yychar;
2256044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
225798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
225898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
225998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
226098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
226198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    _Pragma ("GCC diagnostic push") \
226298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
226398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
226498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
226598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    _Pragma ("GCC diagnostic pop")
226698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#else
226798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org/* Default value used for initialization, for pacifying older GCCs
226898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org   or non-GCC compilers.  */
226998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgstatic YYSTYPE yyval_default;
227098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_INITIAL_VALUE(Value) = Value
227198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
2272075edd84dd682b91279132317d34b09e8028ae6fJamie Madillstatic YYLTYPE yyloc_default
2273075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2274075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  = { 1, 1, 1, 1 }
2275075edd84dd682b91279132317d34b09e8028ae6fJamie Madill# endif
2276075edd84dd682b91279132317d34b09e8028ae6fJamie Madill;
227798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
227898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
227998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_IGNORE_MAYBE_UNINITIALIZED_END
228098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
228198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#ifndef YY_INITIAL_VALUE
228298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YY_INITIAL_VALUE(Value) /* Nothing. */
228398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#endif
228498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
228505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com/* The semantic value of the lookahead symbol.  */
228698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.orgYYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2287044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2288075edd84dd682b91279132317d34b09e8028ae6fJamie Madill/* Location data for the lookahead symbol.  */
2289075edd84dd682b91279132317d34b09e8028ae6fJamie MadillYYLTYPE yylloc = yyloc_default;
2290075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
2291075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
229205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    /* Number of syntax errors so far.  */
229305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    int yynerrs;
2294536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
229505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    int yystate;
229605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    /* Number of tokens to shift before error messages enabled.  */
229705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    int yyerrstatus;
2298536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
229905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    /* The stacks and their tools:
230005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com       `yyss': related to states.
230105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com       `yyvs': related to semantic values.
2302075edd84dd682b91279132317d34b09e8028ae6fJamie Madill       `yyls': related to locations.
2303536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
230498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org       Refer to the stacks through separate pointers, to allow yyoverflow
230505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com       to reallocate them elsewhere.  */
2306536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
230705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    /* The state stack.  */
230805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    yytype_int16 yyssa[YYINITDEPTH];
230905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    yytype_int16 *yyss;
231005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    yytype_int16 *yyssp;
2311536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
231205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    /* The semantic value stack.  */
231305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    YYSTYPE yyvsa[YYINITDEPTH];
231405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    YYSTYPE *yyvs;
231505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    YYSTYPE *yyvsp;
2316536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
2317075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    /* The location stack.  */
2318075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE yylsa[YYINITDEPTH];
2319075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE *yyls;
2320075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE *yylsp;
2321075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
2322075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    /* The locations where the error started and ended.  */
2323075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    YYLTYPE yyerror_range[3];
2324075edd84dd682b91279132317d34b09e8028ae6fJamie Madill
232505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    YYSIZE_T yystacksize;
2326536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
232705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  int yyn;
232805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  int yyresult;
232905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Lookahead token as an internal (translated) token number.  */
233098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  int yytoken = 0;
2331536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org  /* The variables used to return semantic value and location from the
2332536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org     action routines.  */
2333536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org  YYSTYPE yyval;
2334075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYLTYPE yyloc;
2335536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
233605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#if YYERROR_VERBOSE
233705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Buffer for error messages, and its allocated size.  */
233805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  char yymsgbuf[128];
233905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  char *yymsg = yymsgbuf;
234005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
234105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com#endif
234205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
2343075edd84dd682b91279132317d34b09e8028ae6fJamie Madill#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2344536888b8718e3451e0c5fb964a9c4b682f4950b3apatrick@chromium.org
2345044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* The number of symbols on the RHS of the reduced rule.
2346044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     Keep to zero when no symbol should be popped.  */
2347044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  int yylen = 0;
2348044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
234998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  yyssp = yyss = yyssa;
235098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  yyvsp = yyvs = yyvsa;
2351075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yylsp = yyls = yylsa;
235205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  yystacksize = YYINITDEPTH;
235305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
2354044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYDPRINTF ((stderr, "Starting parse\n"));
2355044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2356044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yystate = 0;
2357044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyerrstatus = 0;
2358044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yynerrs = 0;
235905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  yychar = YYEMPTY; /* Cause a token to be read.  */
2360075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yylsp[0] = yylloc;
2361044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yysetstate;
2362044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2363044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*------------------------------------------------------------.
2364044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yynewstate -- Push a new state, which is found in yystate.  |
2365044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`------------------------------------------------------------*/
2366044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org yynewstate:
2367044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* In all cases, when you get here, the value and location stacks
2368044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     have just been pushed.  So pushing a state here evens the stacks.  */
2369044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyssp++;
2370044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2371044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org yysetstate:
2372044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  *yyssp = yystate;
2373044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2374044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyss + yystacksize - 1 <= yyssp)
2375044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2376044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      /* Get the current used size of the three stacks, in elements.  */
2377044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYSIZE_T yysize = yyssp - yyss + 1;
2378044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2379044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifdef yyoverflow
2380044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      {
2381044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	/* Give user a chance to reallocate the stack.  Use copies of
2382044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	   these so that the &'s don't force the real ones into
2383044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	   memory.  */
2384044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	YYSTYPE *yyvs1 = yyvs;
2385044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yytype_int16 *yyss1 = yyss;
2386075edd84dd682b91279132317d34b09e8028ae6fJamie Madill	YYLTYPE *yyls1 = yyls;
2387044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2388044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	/* Each stack pointer address is followed by the size of the
2389044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	   data in use in that stack, in bytes.  This used to be a
2390044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	   conditional around just the two extra args, but that might
2391044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	   be undefined if yyoverflow is a macro.  */
2392044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yyoverflow (YY_("memory exhausted"),
2393044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		    &yyss1, yysize * sizeof (*yyssp),
2394044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		    &yyvs1, yysize * sizeof (*yyvsp),
2395075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		    &yyls1, yysize * sizeof (*yylsp),
2396044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		    &yystacksize);
2397044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2398075edd84dd682b91279132317d34b09e8028ae6fJamie Madill	yyls = yyls1;
2399044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yyss = yyss1;
2400044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yyvs = yyvs1;
2401044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      }
2402044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else /* no yyoverflow */
2403044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# ifndef YYSTACK_RELOCATE
2404044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      goto yyexhaustedlab;
2405044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# else
2406044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      /* Extend the stack our own way.  */
2407044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      if (YYMAXDEPTH <= yystacksize)
2408044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	goto yyexhaustedlab;
2409044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yystacksize *= 2;
2410044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      if (YYMAXDEPTH < yystacksize)
2411044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yystacksize = YYMAXDEPTH;
2412044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2413044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      {
2414044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	yytype_int16 *yyss1 = yyss;
2415044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	union yyalloc *yyptr =
2416044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2417044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	if (! yyptr)
2418044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  goto yyexhaustedlab;
241905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com	YYSTACK_RELOCATE (yyss_alloc, yyss);
242005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2421075edd84dd682b91279132317d34b09e8028ae6fJamie Madill	YYSTACK_RELOCATE (yyls_alloc, yyls);
2422044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#  undef YYSTACK_RELOCATE
2423044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	if (yyss1 != yyssa)
2424044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  YYSTACK_FREE (yyss1);
2425044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      }
2426044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org# endif
2427044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif /* no yyoverflow */
2428044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2429044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yyssp = yyss + yysize - 1;
2430044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yyvsp = yyvs + yysize - 1;
2431075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      yylsp = yyls + yysize - 1;
2432044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2433044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2434044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		  (unsigned long int) yystacksize));
2435044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2436044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      if (yyss + yystacksize - 1 <= yyssp)
2437044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	YYABORT;
2438044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2439044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2440044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2441044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
244205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  if (yystate == YYFINAL)
244305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    YYACCEPT;
244405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com
2445044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yybackup;
2446044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2447044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-----------.
2448044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yybackup.  |
2449044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-----------*/
2450044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyybackup:
2451044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2452044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Do appropriate processing given the current state.  Read a
245305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com     lookahead token if we need one and don't already have one.  */
2454044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
245505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* First try to decide what to do without reference to lookahead token.  */
2456044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyn = yypact[yystate];
245798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  if (yypact_value_is_default (yyn))
2458044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    goto yydefault;
2459044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
246005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Not known => get a lookahead token if don't already have one.  */
2461044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
246205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2463044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yychar == YYEMPTY)
2464044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2465044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYDPRINTF ((stderr, "Reading a token: "));
2466044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yychar = YYLEX;
2467044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2468044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2469044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yychar <= YYEOF)
2470044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2471044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yychar = yytoken = YYEOF;
2472044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYDPRINTF ((stderr, "Now at end of input.\n"));
2473044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2474044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  else
2475044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2476044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yytoken = YYTRANSLATE (yychar);
2477044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2478044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2479044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2480044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* If the proper action on seeing token YYTOKEN is to reduce or to
2481044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     detect an error, take that action.  */
2482044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyn += yytoken;
2483044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2484044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    goto yydefault;
2485044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyn = yytable[yyn];
2486044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyn <= 0)
2487044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
248898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      if (yytable_value_is_error (yyn))
248998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        goto yyerrlab;
2490044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yyn = -yyn;
2491044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      goto yyreduce;
2492044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
2493044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2494044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Count tokens shifted since error; after three, turn off error
2495044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     status.  */
2496044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyerrstatus)
2497044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    yyerrstatus--;
2498044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
249905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Shift the lookahead token.  */
2500044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2501044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
250205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Discard the shifted token.  */
250305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  yychar = YYEMPTY;
2504044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2505044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yystate = yyn;
250698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2507044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  *++yyvsp = yylval;
250898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_END
2509075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  *++yylsp = yylloc;
2510044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yynewstate;
2511044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2512044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2513044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-----------------------------------------------------------.
2514044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yydefault -- do the default action for the current state.  |
2515044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-----------------------------------------------------------*/
2516044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyydefault:
2517044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyn = yydefact[yystate];
2518044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyn == 0)
2519044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    goto yyerrlab;
2520044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yyreduce;
2521044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2522044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2523044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-----------------------------.
2524044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyreduce -- Do a reduction.  |
2525044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-----------------------------*/
2526044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyreduce:
2527044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* yyn is the number of a rule to reduce with.  */
2528044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yylen = yyr2[yyn];
2529044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2530044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* If YYLEN is nonzero, implement the default value of the action:
2531044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     `$$ = $1'.
2532044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2533044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     Otherwise, the following line sets YYVAL to garbage.
2534044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     This behavior is undocumented and Bison
2535044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     users should not rely upon it.  Assigning to YYVAL
2536044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     unconditionally makes the parser a bit smaller, and it avoids a
2537044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     GCC warning that YYVAL may be used uninitialized.  */
2538044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyval = yyvsp[1-yylen];
2539044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2540075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  /* Default location.  */
2541075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2542044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_REDUCE_PRINT (yyn);
2543044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  switch (yyn)
2544044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
254578eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill        case 4:
2546044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2547044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2548044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // The symbol table search was done in the lexical phase
254944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        const TSymbol *symbol = (yyvsp[(1) - (1)].lex).symbol;
255044cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        const TVariable *variable = 0;
255144cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens
255244cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        if (!symbol)
255344cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
2554075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "undeclared identifier", (yyvsp[(1) - (1)].lex).string->c_str());
2555044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
255644cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        }
255744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        else if (!symbol->isVariable())
255844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
255944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            context->error((yylsp[(1) - (1)]), "variable expected", (yyvsp[(1) - (1)].lex).string->c_str());
256044cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            context->recover();
256144cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        }
256244cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        else
256344cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
2564044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            variable = static_cast<const TVariable*>(symbol);
25652aeb26a4f6e21a923415eb00499795b63a17ef76Jamie Madill
2566aaaec13011abec8ac4cf2b1edddfb558d735f874Nicolas Capens            if (context->symbolTable.findBuiltIn(variable->getName(), context->shaderVersion) &&
25672aeb26a4f6e21a923415eb00499795b63a17ef76Jamie Madill                !variable->getExtension().empty() &&
256844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens                context->extensionErrorCheck((yylsp[(1) - (1)]), variable->getExtension()))
256944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            {
25702aeb26a4f6e21a923415eb00499795b63a17ef76Jamie Madill                context->recover();
25712aeb26a4f6e21a923415eb00499795b63a17ef76Jamie Madill            }
2572044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
2573044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
257444cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        if (!variable)
257544cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
257644cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            TType type(EbtFloat, EbpUndefined);
257744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            TVariable *fakeVariable = new TVariable((yyvsp[(1) - (1)].lex).string, type);
257844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            context->symbolTable.declare(*fakeVariable);
257944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens            variable = fakeVariable;
258044cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        }
2581044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
258244cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        if (variable->getType().getQualifier() == EvqConst)
258344cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
2584044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion* constArray = variable->getConstPointer();
2585044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TType t(variable->getType());
2586075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(constArray, t, (yylsp[(1) - (1)]));
258744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        }
258844cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        else
258944cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        {
2590044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = context->intermediate.addSymbol(variable->getUniqueId(),
259144cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens                                                 variable->getName(),
259244cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens                                                 variable->getType(),
259344cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens                                                 (yylsp[(1) - (1)]));
259444cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        }
259544cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens
259644cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        // don't delete $1.string, it's used by error recovery, and the pool
259744cc79f67183d9bb36a9586c1a4219448453b9edNicolas Capens        // pop will reclaim the memory
259805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2599044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2600044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
260178eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 5:
2602044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2603044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2604044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
260505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2606044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2607044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
260878eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 6:
2609044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2610044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2611044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        ConstantUnion *unionArray = new ConstantUnion[1];
2612044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        unionArray->setIConst((yyvsp[(1) - (1)].lex).i);
2613075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtInt, EbpUndefined, EvqConst), (yylsp[(1) - (1)]));
261405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2615044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2616044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
261778eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 7:
2618044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2619044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2620044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        ConstantUnion *unionArray = new ConstantUnion[1];
2621c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org        unionArray->setUConst((yyvsp[(1) - (1)].lex).u);
2622075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtUInt, EbpUndefined, EvqConst), (yylsp[(1) - (1)]));
2623c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    }
2624c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    break;
2625c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
262678eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 8:
2627c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
2628c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    {
2629c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org        ConstantUnion *unionArray = new ConstantUnion[1];
2630044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        unionArray->setFConst((yyvsp[(1) - (1)].lex).f);
2631075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtFloat, EbpUndefined, EvqConst), (yylsp[(1) - (1)]));
263205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2633044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2634044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
263578eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 9:
2636044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2637044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2638044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        ConstantUnion *unionArray = new ConstantUnion[1];
2639044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        unionArray->setBConst((yyvsp[(1) - (1)].lex).b);
2640075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(1) - (1)]));
264105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2642044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2643044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
264478eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 10:
2645044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2646044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2647044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode);
264805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2649044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2650044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
265178eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 11:
2652044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2653044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2654044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
265505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2656044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2657044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
265878eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 12:
2659044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2660044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2661075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->addIndexExpression((yyvsp[(1) - (4)].interm.intermTypedNode), (yylsp[(2) - (4)]), (yyvsp[(3) - (4)].interm.intermTypedNode));
266205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2663044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2664044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
266578eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 13:
2666044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2667044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2668044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
266905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2670044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2671044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
267278eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 14:
2673044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2674044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2675075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->addFieldSelectionExpression((yyvsp[(1) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]), *(yyvsp[(3) - (3)].lex).string, (yylsp[(3) - (3)]));
267605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2677044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2678044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
267978eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 15:
2680044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2681044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2682075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->lValueErrorCheck((yylsp[(2) - (2)]), "++", (yyvsp[(1) - (2)].interm.intermTypedNode)))
2683044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2684075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath(EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode), (yylsp[(2) - (2)]));
2685044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
2686075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->unaryOpError((yylsp[(2) - (2)]), "++", (yyvsp[(1) - (2)].interm.intermTypedNode)->getCompleteString());
2687044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2688044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (2)].interm.intermTypedNode);
2689044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
269005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2691044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2692044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
269378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 16:
2694044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2695044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2696075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->lValueErrorCheck((yylsp[(2) - (2)]), "--", (yyvsp[(1) - (2)].interm.intermTypedNode)))
2697044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2698075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath(EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode), (yylsp[(2) - (2)]));
2699044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
2700075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->unaryOpError((yylsp[(2) - (2)]), "--", (yyvsp[(1) - (2)].interm.intermTypedNode)->getCompleteString());
2701044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2702044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (2)].interm.intermTypedNode);
2703044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
270405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2705044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2706044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
270778eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 17:
2708044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2709044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2710044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->integerErrorCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"))
2711044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2712044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
271305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2714044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2715044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
271678eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 18:
2717044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2718044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2719044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TFunction* fnCall = (yyvsp[(1) - (1)].interm).function;
2720044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TOperator op = fnCall->getBuiltInOp();
2721044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2722044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (op != EOpNull)
2723044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        {
2724044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
2725044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Then this should be a constructor.
2726044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Don't go through the symbol table for constructors.
2727044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Their parameters will be verified algorithmically.
2728044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
2729044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            TType type(EbtVoid, EbpUndefined);  // use this to get the type back
2730075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            if (context->constructorErrorCheck((yylsp[(1) - (1)]), (yyvsp[(1) - (1)].interm).intermNode, *fnCall, op, &type)) {
2731044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                (yyval.interm.intermTypedNode) = 0;
2732044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            } else {
2733044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
2734044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // It's a constructor, of type 'type'.
2735044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
2736075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                (yyval.interm.intermTypedNode) = context->addConstructor((yyvsp[(1) - (1)].interm).intermNode, &type, op, fnCall, (yylsp[(1) - (1)]));
2737044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
2738044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2739044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if ((yyval.interm.intermTypedNode) == 0) {
2740044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
2741075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                (yyval.interm.intermTypedNode) = context->intermediate.setAggregateOperator(0, op, (yylsp[(1) - (1)]));
2742044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
2743044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode)->setType(type);
2744044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        } else {
2745044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
2746044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Not a constructor.  Find it in the symbol table.
2747044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
2748044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            const TFunction* fnCandidate;
2749044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            bool builtIn;
2750075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            fnCandidate = context->findFunction((yylsp[(1) - (1)]), fnCall, context->shaderVersion, &builtIn);
2751044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (fnCandidate) {
2752044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
2753044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // A declared function.
2754044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
2755044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                if (builtIn && !fnCandidate->getExtension().empty() &&
2756075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                    context->extensionErrorCheck((yylsp[(1) - (1)]), fnCandidate->getExtension())) {
2757044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    context->recover();
2758044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
2759044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                op = fnCandidate->getBuiltInOp();
2760044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                if (builtIn && op != EOpNull) {
2761044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    //
2762044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    // A function call mapped to a built-in operation.
2763044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    //
2764044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    if (fnCandidate->getParamCount() == 1) {
2765044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        //
2766044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        // Treat it like a built-in unary operator.
2767044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        //
2768075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                        (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath(op, (yyvsp[(1) - (1)].interm).intermNode, (yylsp[(1) - (1)]));
2769044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        if ((yyval.interm.intermTypedNode) == 0)  {
2770c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com                            std::stringstream extraInfoStream;
2771c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com                            extraInfoStream << "built in unary operator function.  Type: " << static_cast<TIntermTyped*>((yyvsp[(1) - (1)].interm).intermNode)->getCompleteString();
2772c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com                            std::string extraInfo = extraInfoStream.str();
2773c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com                            context->error((yyvsp[(1) - (1)].interm).intermNode->getLine(), " wrong operand type", "Internal Error", extraInfo.c_str());
2774044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                            YYERROR;
2775044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        }
2776044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    } else {
2777075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                        (yyval.interm.intermTypedNode) = context->intermediate.setAggregateOperator((yyvsp[(1) - (1)].interm).intermAggregate, op, (yylsp[(1) - (1)]));
2778044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    }
2779044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                } else {
2780044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    // This is a real function call
2781044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2782075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                    (yyval.interm.intermTypedNode) = context->intermediate.setAggregateOperator((yyvsp[(1) - (1)].interm).intermAggregate, EOpFunctionCall, (yylsp[(1) - (1)]));
2783044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    (yyval.interm.intermTypedNode)->setType(fnCandidate->getReturnType());
2784044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2785044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    // this is how we know whether the given function is a builtIn function or a user defined function
2786044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    // if builtIn == false, it's a userDefined -> could be an overloaded builtIn function also
2787044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    // if builtIn == true, it's definitely a builtIn function with EOpNull
2788044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    if (!builtIn)
2789044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        (yyval.interm.intermTypedNode)->getAsAggregate()->setUserDefined();
2790044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    (yyval.interm.intermTypedNode)->getAsAggregate()->setName(fnCandidate->getMangledName());
2791044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2792044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    TQualifier qual;
2793d64b3dab06c30da1e5dd9ba12667ff86388540e2shannon.woods@transgaming.com                    for (size_t i = 0; i < fnCandidate->getParamCount(); ++i) {
2794044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        qual = fnCandidate->getParam(i).type->getQualifier();
2795044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        if (qual == EvqOut || qual == EvqInOut) {
2796044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                            if (context->lValueErrorCheck((yyval.interm.intermTypedNode)->getLine(), "assign", (yyval.interm.intermTypedNode)->getAsAggregate()->getSequence()[i]->getAsTyped())) {
2797c6b3b3c74532d218e8d6240ae58bdbc2a2af40admaxvujovic@gmail.com                                context->error((yyvsp[(1) - (1)].interm).intermNode->getLine(), "Constant value cannot be passed for 'out' or 'inout' parameters.", "Error");
2798044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                                context->recover();
2799044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                            }
2800044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                        }
2801044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    }
2802044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
2803044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                (yyval.interm.intermTypedNode)->setType(fnCandidate->getReturnType());
2804044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            } else {
2805044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // error message was put out by PaFindFunction()
2806044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // Put on a dummy node for error recovery
2807044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                ConstantUnion *unionArray = new ConstantUnion[1];
2808044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                unionArray->setFConst(0.0f);
2809075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtFloat, EbpUndefined, EvqConst), (yylsp[(1) - (1)]));
2810044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
2811044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
2812044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
2813044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        delete fnCall;
281405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2815044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2816044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
281778eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 19:
2818044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2819044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2820044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (1)].interm);
282105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2822044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2823044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
282478eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 20:
2825044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2826044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2827075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->error((yylsp[(3) - (3)]), "methods are not supported", "");
2828044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->recover();
2829044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(3) - (3)].interm);
283005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2831044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2832044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
283378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 21:
2834044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2835044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2836044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (2)].interm);
283705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2838044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2839044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
284078eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 22:
2841044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2842044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2843044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (2)].interm);
284405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2845044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2846044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
284778eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 23:
2848044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2849044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2850044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).function = (yyvsp[(1) - (2)].interm.function);
2851044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).intermNode = 0;
285205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2853044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2854044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
285578eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 24:
2856044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2857044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2858044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).function = (yyvsp[(1) - (1)].interm.function);
2859044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).intermNode = 0;
286005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2861044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2862044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
286378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 25:
2864044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2865044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2866044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TParameter param = { 0, new TType((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()) };
2867044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyvsp[(1) - (2)].interm.function)->addParameter(param);
2868044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).function = (yyvsp[(1) - (2)].interm.function);
2869044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode);
287005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2871044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2872044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
287378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 26:
2874044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2875044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2876044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TParameter param = { 0, new TType((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()) };
2877044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyvsp[(1) - (3)].interm).function->addParameter(param);
2878044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).function = (yyvsp[(1) - (3)].interm).function;
2879075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermNode = context->intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
288005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2881044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2882044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
288378eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 27:
2884044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2885044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2886044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function);
288705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2888044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2889044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
289078eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 28:
2891044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2892044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
28931885113c0d96837843804d6eb791fe78f8768437shannonwoods@chromium.org        (yyval.interm.function) = context->addConstructorFunc((yyvsp[(1) - (1)].interm.type));
289405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2895044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2896044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
289778eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 29:
2898044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2899044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2900075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->reservedErrorCheck((yylsp[(1) - (1)]), *(yyvsp[(1) - (1)].lex).string))
2901044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2902044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TType type(EbtVoid, EbpUndefined);
2903044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TFunction *function = new TFunction((yyvsp[(1) - (1)].lex).string, type);
2904044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = function;
290505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2906044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2907044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
290878eb5dfbd88dc39a2b6d54f3f531767f45eca4b2Jamie Madill  case 30:
2909044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2910044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2911044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
291205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2913044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2914044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2915f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 31:
2916044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2917044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2918075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->lValueErrorCheck((yylsp[(1) - (2)]), "++", (yyvsp[(2) - (2)].interm.intermTypedNode)))
2919044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2920075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath(EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode), (yylsp[(1) - (2)]));
2921044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
2922075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->unaryOpError((yylsp[(1) - (2)]), "++", (yyvsp[(2) - (2)].interm.intermTypedNode)->getCompleteString());
2923044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2924044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode);
2925044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
292605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2927044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2928044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2929f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 32:
2930044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2931044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2932075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->lValueErrorCheck((yylsp[(1) - (2)]), "--", (yyvsp[(2) - (2)].interm.intermTypedNode)))
2933044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2934075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath(EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode), (yylsp[(1) - (2)]));
2935044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
2936075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->unaryOpError((yylsp[(1) - (2)]), "--", (yyvsp[(2) - (2)].interm.intermTypedNode)->getCompleteString());
2937044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2938044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode);
2939044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
294005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2941044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2942044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2943f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 33:
2944044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2945044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2946044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(1) - (2)].interm).op != EOpNull) {
2947075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addUnaryMath((yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode), (yylsp[(1) - (2)]));
2948044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if ((yyval.interm.intermTypedNode) == 0) {
2949044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                const char* errorOp = "";
2950044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                switch((yyvsp[(1) - (2)].interm).op) {
2951044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                case EOpNegative:   errorOp = "-"; break;
2952044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                case EOpLogicalNot: errorOp = "!"; break;
2953044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                default: break;
2954044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
2955075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                context->unaryOpError((yylsp[(1) - (2)]), errorOp, (yyvsp[(2) - (2)].interm.intermTypedNode)->getCompleteString());
2956044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
2957044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode);
2958044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
2959044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        } else
2960044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode);
296105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2962044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2963044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2964f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 34:
2965044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2966075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    { (yyval.interm).op = EOpNull; }
2967044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2968044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2969f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 35:
2970044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2971075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    { (yyval.interm).op = EOpNegative; }
2972044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2973044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2974f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 36:
2975044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2976075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    { (yyval.interm).op = EOpLogicalNot; }
2977044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2978044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2979f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 37:
2980044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
298105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
2982044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2983044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2984f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 38:
2985044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2986044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2987075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
2988044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
2989075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "*", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
2990044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
2991044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode);
2992044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
299305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
2994044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
2995044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2996f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 39:
2997044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
2998044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
2999075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3000044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3001075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "/", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3002044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3003044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode);
3004044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
300505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3006044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3007044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3008f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 40:
3009044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
301005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3011044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3012044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3013f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 41:
3014044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3015044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3016075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3017044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3018075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "+", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3019044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3020044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode);
3021044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
302205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3023044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3024044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3025f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 42:
3026044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3027044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3028075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3029044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3030075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "-", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3031044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3032044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode);
3033044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
303405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3035044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3036044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3037f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 43:
3038044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
303905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3040044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3041044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3042f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 44:
3043044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
304405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3045044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3046044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3047f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 45:
3048044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3049044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3050075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3051044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3052075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "<", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3053044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3054044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3055044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3056075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3057044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
305805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3059044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3060044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3061f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 46:
3062044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3063044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3064075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3065044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3066075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), ">", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3067044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3068044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3069044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3070075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3071044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
307205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3073044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3074044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3075f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 47:
3076044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3077044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3078075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3079044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3080075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "<=", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3081044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3082044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3083044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3084075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3085044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
308605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3087044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3088044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3089f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 48:
3090044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3091044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3092075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3093044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3094075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), ">=", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3095044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3096044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3097044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3098075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3099044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
310005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3101044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3102044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3103f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 49:
3104044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
310505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3106044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3107044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3108f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 50:
3109044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3110044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3111075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3112044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3113075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "==", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3114044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3115044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3116044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3117075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3118044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
311905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3120044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3121044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3122f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 51:
3123044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3124044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3125075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3126044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3127075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "!=", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3128044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3129044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3130044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3131075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3132044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
313305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3134044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3135044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3136f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 52:
3137044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
313805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3139044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3140044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3141f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 53:
3142044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
314305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3144044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3145044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3146f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 54:
3147044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
314805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3149044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3150044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3151f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 55:
3152044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3153c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3154c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    break;
3155c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
3156f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 56:
3157c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
3158044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3159075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3160044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3161075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "&&", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3162044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3163044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3164044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3165075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3166044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
316705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3168044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3169044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3170f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 57:
3171044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
317205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3173044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3174044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3175f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 58:
3176044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3177044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3178075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3179044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3180075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "^^", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3181044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3182044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3183044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3184075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3185044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
318605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3187044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3188044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3189f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 59:
3190044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
319105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3192044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3193044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3194f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 60:
3195044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3196044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3197075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3198044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3199075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), "||", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3200044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3201044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            ConstantUnion *unionArray = new ConstantUnion[1];
3202044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            unionArray->setBConst(false);
3203075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yylsp[(2) - (3)]));
3204044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
320505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3206044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3207044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3208f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 61:
3209044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
321005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3211044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3212044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3213f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 62:
3214044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3215044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3216075edd84dd682b91279132317d34b09e8028ae6fJamie Madill       if (context->boolErrorCheck((yylsp[(2) - (5)]), (yyvsp[(1) - (5)].interm.intermTypedNode)))
3217044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3218044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3219075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addSelection((yyvsp[(1) - (5)].interm.intermTypedNode), (yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.intermTypedNode), (yylsp[(2) - (5)]));
3220044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(3) - (5)].interm.intermTypedNode)->getType() != (yyvsp[(5) - (5)].interm.intermTypedNode)->getType())
3221044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = 0;
3222044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3223044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3224075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (5)]), ":", (yyvsp[(3) - (5)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(5) - (5)].interm.intermTypedNode)->getCompleteString());
3225044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3226044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(5) - (5)].interm.intermTypedNode);
3227044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
322805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3229044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3230044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3231f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 63:
3232044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
323305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
3234044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3235044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3236f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 64:
3237044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3238044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3239075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->lValueErrorCheck((yylsp[(2) - (3)]), "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)))
3240044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3241075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3242044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3243075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->assignError((yylsp[(2) - (3)]), "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3244044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3245044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode);
3246044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
324705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3248044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3249044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3250f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 65:
3251044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
325228b974238cac2f4426d3e3a0ac914c86b025a83cJamie Madill    { (yyval.interm).op = EOpAssign; }
3253044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3254044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3255f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 66:
3256044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
325728b974238cac2f4426d3e3a0ac914c86b025a83cJamie Madill    { (yyval.interm).op = EOpMulAssign; }
3258044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3259044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3260f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 67:
3261044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
326228b974238cac2f4426d3e3a0ac914c86b025a83cJamie Madill    { (yyval.interm).op = EOpDivAssign; }
3263044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3264044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3265f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 68:
3266044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
326728b974238cac2f4426d3e3a0ac914c86b025a83cJamie Madill    { (yyval.interm).op = EOpAddAssign; }
3268044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3269044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3270f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 69:
3271044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
327228b974238cac2f4426d3e3a0ac914c86b025a83cJamie Madill    { (yyval.interm).op = EOpSubAssign; }
3273044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3274044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3275f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 70:
3276044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3277044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3278044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
327905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3280044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3281044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3282f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 71:
3283044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3284044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3285075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermTypedNode) = context->intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yylsp[(2) - (3)]));
3286044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyval.interm.intermTypedNode) == 0) {
3287075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->binaryOpError((yylsp[(2) - (3)]), ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
3288044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3289044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode);
3290044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
329105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3292044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3293044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3294f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 72:
3295044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3296044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3297044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->constErrorCheck((yyvsp[(1) - (1)].interm.intermTypedNode)))
3298044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3299044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
330005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3301044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3302044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3303f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 73:
3304044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3305044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3306075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->enterStructDeclaration((yylsp[(1) - (2)]), *(yyvsp[(1) - (2)].lex).string))
33075668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org            context->recover();
33085668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org        (yyval.lex) = (yyvsp[(1) - (2)].lex);
33095668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    }
33105668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    break;
33115668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
3312f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 74:
33135668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
33145668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    {
3315044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TFunction &function = *((yyvsp[(1) - (2)].interm).function);
3316044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3317044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TIntermAggregate *prototype = new TIntermAggregate;
3318044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        prototype->setType(function.getReturnType());
3319044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        prototype->setName(function.getName());
3320044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3321d64b3dab06c30da1e5dd9ba12667ff86388540e2shannon.woods@transgaming.com        for (size_t i = 0; i < function.getParamCount(); i++)
3322044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        {
3323044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            const TParameter &param = function.getParam(i);
3324044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (param.name != 0)
3325044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            {
3326ae829e310ffbe72d52a9475a13774f01907436fdalokp@chromium.org                TVariable variable(param.name, *param.type);
3327044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3328075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                prototype = context->intermediate.growAggregate(prototype, context->intermediate.addSymbol(variable.getUniqueId(), variable.getName(), variable.getType(), (yylsp[(1) - (2)])), (yylsp[(1) - (2)]));
3329044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
3330044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            else
3331044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            {
3332075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                prototype = context->intermediate.growAggregate(prototype, context->intermediate.addSymbol(0, "", *param.type, (yylsp[(1) - (2)])), (yylsp[(1) - (2)]));
3333044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
3334044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
3335044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3336044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        prototype->setOp(EOpPrototype);
3337044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = prototype;
33385dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com
33395dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        context->symbolTable.pop();
334005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3341044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3342044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3343f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 75:
3344044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3345044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3346044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(1) - (2)].interm).intermAggregate)
3347044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(1) - (2)].interm).intermAggregate->setOp(EOpDeclaration);
3348044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermAggregate;
334905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3350044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3351044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3352f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 76:
3353044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3354044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3355cbb6b6a0416552b5e3fa8589194288532558ccb8shannon.woods%transgaming.com@gtempaccount.com        if (((yyvsp[(2) - (4)].interm.precision) == EbpHigh) && (context->shaderType == SH_FRAGMENT_SHADER) && !context->fragmentPrecisionHigh) {
3356075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (4)]), "precision is not supported in fragment shader", "highp");
3357cbb6b6a0416552b5e3fa8589194288532558ccb8shannon.woods%transgaming.com@gtempaccount.com            context->recover();
3358cbb6b6a0416552b5e3fa8589194288532558ccb8shannon.woods%transgaming.com@gtempaccount.com        }
3359d25a6b3699ac031e315eb2f3c7c30abe51f0c018shannon.woods@transgaming.com        if (!context->symbolTable.setDefaultPrecision( (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.precision) )) {
3360075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (4)]), "illegal type argument for default precision qualifier", getBasicString((yyvsp[(3) - (4)].interm.type).type));
3361d25a6b3699ac031e315eb2f3c7c30abe51f0c018shannon.woods@transgaming.com            context->recover();
3362d25a6b3699ac031e315eb2f3c7c30abe51f0c018shannon.woods@transgaming.com        }
3363044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = 0;
336405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3365044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3366044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3367f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 77:
33685668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
33695668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    {
3370075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY(getQualifierString((yyvsp[(1) - (5)].interm.type).qualifier), (yylsp[(1) - (5)]), "interface blocks");
337198493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[(1) - (5)].interm.type), (yylsp[(2) - (5)]), *(yyvsp[(2) - (5)].lex).string, (yyvsp[(3) - (5)].interm.fieldList), NULL, (yyloc), NULL, (yyloc));
33725668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    }
33735668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    break;
33745668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
3375f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 78:
33765668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
33775668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    {
3378075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY(getQualifierString((yyvsp[(1) - (6)].interm.type).qualifier), (yylsp[(1) - (6)]), "interface blocks");
337998493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[(1) - (6)].interm.type), (yylsp[(2) - (6)]), *(yyvsp[(2) - (6)].lex).string, (yyvsp[(3) - (6)].interm.fieldList), (yyvsp[(5) - (6)].lex).string, (yylsp[(5) - (6)]), NULL, (yyloc));
33805668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    }
33815668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    break;
33825668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
3383f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 79:
33845668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
33855668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    {
3386075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY(getQualifierString((yyvsp[(1) - (9)].interm.type).qualifier), (yylsp[(1) - (9)]), "interface blocks");
338798493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.intermNode) = context->addInterfaceBlock((yyvsp[(1) - (9)].interm.type), (yylsp[(2) - (9)]), *(yyvsp[(2) - (9)].lex).string, (yyvsp[(3) - (9)].interm.fieldList), (yyvsp[(5) - (9)].lex).string, (yylsp[(5) - (9)]), (yyvsp[(7) - (9)].interm.intermTypedNode), (yylsp[(6) - (9)]));
33885668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    }
33895668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    break;
33905668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
3391f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill  case 80:
3392044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3393044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3394a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill        context->parseGlobalLayoutQualifier((yyvsp[(1) - (2)].interm.type));
3395a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill        (yyval.interm.intermNode) = 0;
3396a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    }
3397a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    break;
3398a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill
3399a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 81:
3400a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill
3401a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    {
3402044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3403044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Multiple declarations of the same function are allowed.
3404044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3405044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // If this is a definition, the definition production code will check for redefinitions
3406044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // (we don't know at this point if it's a definition or not).
3407044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3408044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Redeclarations are allowed.  But, return types and parameter qualifiers must match.
3409044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
341096e7ba17f417a48c1a6c31f3d9fbd5611219d14dshannonwoods@chromium.org        TFunction* prevDec = static_cast<TFunction*>(context->symbolTable.find((yyvsp[(1) - (2)].interm.function)->getMangledName(), context->shaderVersion));
3411044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (prevDec) {
3412044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (prevDec->getReturnType() != (yyvsp[(1) - (2)].interm.function)->getReturnType()) {
3413075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                context->error((yylsp[(2) - (2)]), "overloaded functions must have the same return type", (yyvsp[(1) - (2)].interm.function)->getReturnType().getBasicString());
3414044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
3415044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
3416d64b3dab06c30da1e5dd9ba12667ff86388540e2shannon.woods@transgaming.com            for (size_t i = 0; i < prevDec->getParamCount(); ++i) {
3417044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                if (prevDec->getParam(i).type->getQualifier() != (yyvsp[(1) - (2)].interm.function)->getParam(i).type->getQualifier()) {
3418075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                    context->error((yylsp[(2) - (2)]), "overloaded functions must have the same parameter qualifiers", (yyvsp[(1) - (2)].interm.function)->getParam(i).type->getQualifierString());
3419044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    context->recover();
3420044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
3421044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
3422044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
3423044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3424044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3425d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        // Check for previously declared variables using the same name.
3426d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        //
3427d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        TSymbol *prevSym = context->symbolTable.find((yyvsp[(1) - (2)].interm.function)->getName(), context->shaderVersion);
3428d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        if (prevSym)
3429d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        {
3430d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens            if (!prevSym->isFunction())
3431d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens            {
3432d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens                context->error((yylsp[(2) - (2)]), "redefinition", (yyvsp[(1) - (2)].interm.function)->getName().c_str(), "function");
3433d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens                context->recover();
3434d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens            }
3435d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        }
3436d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        else
3437d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        {
3438d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens            // Insert the unmangled name to detect potential future redefinition as a variable.
3439d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens            context->symbolTable.getOuterLevel()->insert((yyvsp[(1) - (2)].interm.function)->getName(), *(yyvsp[(1) - (2)].interm.function));
3440d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        }
3441d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens
3442d4a9b8ddcd1aab12343d60610e159ba9efb37280Nicolas Capens        //
3443044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // If this is a redeclaration, it could also be a definition,
3444044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // in which case, we want to use the variable names from this one, and not the one that's
3445044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // being redeclared.  So, pass back up this declaration, not the one in the symbol table.
3446044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3447044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).function = (yyvsp[(1) - (2)].interm.function);
3448044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
34495dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        // We're at the inner scope level of the function's arguments and body statement.
34505dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        // Add the function prototype to the surrounding scope instead.
34515dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        context->symbolTable.getOuterLevel()->insert(*(yyval.interm).function);
345205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3453044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3454044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3455a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 82:
3456044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3457044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3458044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
345905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3460044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3461044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3462a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 83:
3463044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3464044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3465044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
346605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3467044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3468044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3469a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 84:
3470044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3471044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3472044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Add the parameter
3473044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function);
3474044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid)
3475044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param);
3476044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        else
3477044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            delete (yyvsp[(2) - (2)].interm).param.type;
347805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3479044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3480044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3481a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 85:
3482044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3483044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3484044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3485044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Only first parameter of one-parameter functions can be void
3486044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // The check for named parameters not being void is done in parameter_declarator
3487044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
3488044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) {
3489044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
3490044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // This parameter > first is void
3491044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
3492075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(2) - (3)]), "cannot be an argument type except for '(void)'", "void");
3493044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3494044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            delete (yyvsp[(3) - (3)].interm).param.type;
3495044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        } else {
3496044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Add the parameter
3497044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function);
3498044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param);
3499044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
350005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3501044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3502044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3503a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 86:
3504044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3505044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3506044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(1) - (3)].interm.type).qualifier != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier != EvqTemporary) {
3507075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(2) - (3)]), "no qualifiers allowed for function return", getQualifierString((yyvsp[(1) - (3)].interm.type).qualifier));
3508044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3509044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
3510044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // make sure a sampler is not involved as well...
3511075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->structQualifierErrorCheck((yylsp[(2) - (3)]), (yyvsp[(1) - (3)].interm.type)))
3512044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3513044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3514044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Add the function as a prototype after parsing it (we do not support recursion)
3515044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TFunction *function;
3516044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TType type((yyvsp[(1) - (3)].interm.type));
3517044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        function = new TFunction((yyvsp[(2) - (3)].lex).string, type);
3518044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.function) = function;
35195dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com
35205dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        context->symbolTable.push();
352105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3522044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3523044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3524a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 87:
3525044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3526044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3527044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(1) - (2)].interm.type).type == EbtVoid) {
3528075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(2) - (2)]), "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str());
3529044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3530044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
3531075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->reservedErrorCheck((yylsp[(2) - (2)]), *(yyvsp[(2) - (2)].lex).string))
3532044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3533044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))};
3534044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).param = param;
353505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3536044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3537044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3538a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 88:
3539044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3540044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3541044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Check that we can make an array out of this type
3542075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->arrayTypeErrorCheck((yylsp[(3) - (5)]), (yyvsp[(1) - (5)].interm.type)))
3543044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3544044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3545075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->reservedErrorCheck((yylsp[(2) - (5)]), *(yyvsp[(2) - (5)].lex).string))
3546044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3547044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3548044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        int size;
3549075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->arraySizeErrorCheck((yylsp[(3) - (5)]), (yyvsp[(4) - (5)].interm.intermTypedNode), size))
3550044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3551044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyvsp[(1) - (5)].interm.type).setArray(true, size);
3552044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3553044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TType* type = new TType((yyvsp[(1) - (5)].interm.type));
3554044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TParameter param = { (yyvsp[(2) - (5)].lex).string, type };
3555044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).param = param;
355605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3557044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3558044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3559a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 89:
3560044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3561044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3562044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(3) - (3)].interm);
3563075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->paramErrorCheck((yylsp[(3) - (3)]), (yyvsp[(1) - (3)].interm.qualifier), (yyvsp[(2) - (3)].interm.qualifier), (yyval.interm).param.type))
3564044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
356505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3566044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3567044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3568a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 90:
3569044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3570044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3571044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(2) - (2)].interm);
3572075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->parameterSamplerErrorCheck((yylsp[(2) - (2)]), (yyvsp[(1) - (2)].interm.qualifier), *(yyvsp[(2) - (2)].interm).param.type))
3573044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3574075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->paramErrorCheck((yylsp[(2) - (2)]), EvqTemporary, (yyvsp[(1) - (2)].interm.qualifier), (yyval.interm).param.type))
3575044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
357605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3577044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3578044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3579a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 91:
3580044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3581044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3582044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(3) - (3)].interm);
3583075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->paramErrorCheck((yylsp[(3) - (3)]), (yyvsp[(1) - (3)].interm.qualifier), (yyvsp[(2) - (3)].interm.qualifier), (yyval.interm).param.type))
3584044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
358505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3586044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3587044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3588a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 92:
3589044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3590044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3591044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(2) - (2)].interm);
3592075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->parameterSamplerErrorCheck((yylsp[(2) - (2)]), (yyvsp[(1) - (2)].interm.qualifier), *(yyvsp[(2) - (2)].interm).param.type))
3593044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3594075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->paramErrorCheck((yylsp[(2) - (2)]), EvqTemporary, (yyvsp[(1) - (2)].interm.qualifier), (yyval.interm).param.type))
3595044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
359605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3597044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3598044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3599a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 93:
3600044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3601044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3602044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.qualifier) = EvqIn;
360305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3604044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3605044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3606a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 94:
3607044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3608044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3609044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.qualifier) = EvqIn;
361005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3611044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3612044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3613a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 95:
3614044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3615044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3616044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.qualifier) = EvqOut;
361705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3618044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3619044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3620a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 96:
3621044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3622044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3623044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.qualifier) = EvqInOut;
362405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3625044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3626044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3627a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 97:
3628044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3629044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3630044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) };
3631044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).param = param;
363205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3633044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3634044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3635a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 98:
3636044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3637044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3638044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (1)].interm);
363905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3640044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3641044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3642a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 99:
3643044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3644044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3645502d66f6f6a67350a66608ef337d9d884862bd19Jamie Madill        (yyval.interm) = (yyvsp[(1) - (3)].interm);
3646075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseDeclarator((yyval.interm).type, (yyvsp[(1) - (3)].interm).intermAggregate, (yyvsp[(3) - (3)].lex).symbol, (yylsp[(3) - (3)]), *(yyvsp[(3) - (3)].lex).string);
364705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3648044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3649044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3650a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 100:
3651044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3652044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3653044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (5)].interm);
3654075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->parseArrayDeclarator((yyval.interm).type, (yylsp[(3) - (5)]), *(yyvsp[(3) - (5)].lex).string, (yylsp[(4) - (5)]), NULL, NULL);
365505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3656044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3657044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3658a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 101:
3659044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3660044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3661044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (6)].interm);
3662075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseArrayDeclarator((yyval.interm).type, (yylsp[(3) - (6)]), *(yyvsp[(3) - (6)].lex).string, (yylsp[(4) - (6)]), (yyvsp[(1) - (6)].interm).intermNode, (yyvsp[(5) - (6)].interm.intermTypedNode));
366305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3664044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3665044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3666a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 102:
3667044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3668044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3669044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm) = (yyvsp[(1) - (5)].interm);
3670075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseInitDeclarator((yyval.interm).type, (yyvsp[(1) - (5)].interm).intermAggregate, (yylsp[(3) - (5)]), *(yyvsp[(3) - (5)].lex).string, (yylsp[(4) - (5)]), (yyvsp[(5) - (5)].interm.intermTypedNode));
367105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3672044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3673044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3674a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 103:
3675044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3676044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3677044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).type = (yyvsp[(1) - (1)].interm.type);
3678075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseSingleDeclaration((yyval.interm).type, (yylsp[(1) - (1)]), "");
367905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3680044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3681044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3682a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 104:
3683044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3684044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
368560ed98109a61a78ae92a41c72364a236d24ce4b8Jamie Madill        (yyval.interm).type = (yyvsp[(1) - (2)].interm.type);
3686075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseSingleDeclaration((yyval.interm).type, (yylsp[(2) - (2)]), *(yyvsp[(2) - (2)].lex).string);
368705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3688044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3689044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3690a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 105:
3691044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3692044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3693075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->error((yylsp[(2) - (4)]), "unsized array declarations not supported", (yyvsp[(2) - (4)].lex).string->c_str());
369404277b821c8de290be4e5df9e4f3d26cdb2b605dkbr@chromium.org        context->recover();
369504277b821c8de290be4e5df9e4f3d26cdb2b605dkbr@chromium.org
3696044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).type = (yyvsp[(1) - (4)].interm.type);
3697075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseSingleDeclaration((yyval.interm).type, (yylsp[(2) - (4)]), *(yyvsp[(2) - (4)].lex).string);
369805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3699044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3700044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3701a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 106:
3702044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3703044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3704044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).type = (yyvsp[(1) - (5)].interm.type);
3705075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseSingleArrayDeclaration((yyval.interm).type, (yylsp[(2) - (5)]), *(yyvsp[(2) - (5)].lex).string, (yylsp[(3) - (5)]), (yyvsp[(4) - (5)].interm.intermTypedNode));
370605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3707044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3708044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3709a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 107:
3710044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3711044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3712044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm).type = (yyvsp[(1) - (4)].interm.type);
3713075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).intermAggregate = context->parseSingleInitDeclaration((yyval.interm).type, (yylsp[(2) - (4)]), *(yyvsp[(2) - (4)].lex).string, (yylsp[(3) - (4)]), (yyvsp[(4) - (4)].interm.intermTypedNode));
371405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3715044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3716044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3717a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 108:
3718044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3719044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3720075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        VERTEX_ONLY("invariant declaration", (yylsp[(1) - (2)]));
3721075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->globalErrorCheck((yylsp[(1) - (2)]), context->symbolTable.atGlobalLevel(), "invariant varying"))
3722eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com            context->recover();
3723075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm).type.setBasic(EbtInvariant, EvqInvariantVaryingOut, (yylsp[(2) - (2)]));
3724eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        if (!(yyvsp[(2) - (2)].lex).symbol)
3725eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        {
3726075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(2) - (2)]), "undeclared identifier declared as invariant", (yyvsp[(2) - (2)].lex).string->c_str());
3727eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com            context->recover();
3728eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com
3729eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com            (yyval.interm).intermAggregate = 0;
3730eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        }
3731eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        else
3732eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        {
3733075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            TIntermSymbol *symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (2)].lex).string, TType((yyval.interm).type), (yylsp[(2) - (2)]));
3734075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm).intermAggregate = context->intermediate.makeAggregate(symbol, (yylsp[(2) - (2)]));
3735eec8efc374cf6dda7af3ebd57192a09f8838a16edaniel@transgaming.com        }
373605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3737044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3738044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3739a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 109:
3740044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3741044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3742044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
3743044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3744044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if ((yyvsp[(1) - (1)].interm.type).array) {
3745075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "not supported", "first-class array");
3746044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3747044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(1) - (1)].interm.type).setArray(false);
3748044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
374905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3750044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3751044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3752a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 110:
3753044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3754044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3755a5efff9996aab519def50871a60f77645dd4f51cJamie Madill        (yyval.interm.type) = context->addFullySpecifiedType((yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).layoutQualifier, (yyvsp[(2) - (2)].interm.type));
375605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3757044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3758044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3759a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 111:
3760044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3761044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
37626f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com        (yyval.interm.type).qualifier = EvqSmooth;
376305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3764044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3765044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3766a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 112:
3767044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3768044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
37696f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com        (yyval.interm.type).qualifier = EvqFlat;
37706f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    }
37716f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    break;
37726f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
3773a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 113:
37746f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
37756f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    {
37766f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com        (yyval.interm.qualifier) = EvqConst;
37776f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    }
37786f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    break;
37796f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
3780a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 114:
37816f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
37826f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    {
3783075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        VERTEX_ONLY("attribute", (yylsp[(1) - (1)]));
3784075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES2_ONLY("attribute", (yylsp[(1) - (1)]));
3785075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->globalErrorCheck((yylsp[(1) - (1)]), context->symbolTable.atGlobalLevel(), "attribute"))
3786044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3787075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtVoid, EvqAttribute, (yylsp[(1) - (1)]));
378805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3789044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3790044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3791a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 115:
3792044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3793044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3794075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES2_ONLY("varying", (yylsp[(1) - (1)]));
3795075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->globalErrorCheck((yylsp[(1) - (1)]), context->symbolTable.atGlobalLevel(), "varying"))
3796044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3797044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->shaderType == SH_VERTEX_SHADER)
3798075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.type).setBasic(EbtVoid, EvqVaryingOut, (yylsp[(1) - (1)]));
3799044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        else
3800075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.type).setBasic(EbtVoid, EvqVaryingIn, (yylsp[(1) - (1)]));
380105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3802044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3803044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3804a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 116:
3805044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3806044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3807075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES2_ONLY("varying", (yylsp[(1) - (2)]));
3808075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->globalErrorCheck((yylsp[(1) - (2)]), context->symbolTable.atGlobalLevel(), "invariant varying"))
3809044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
3810044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->shaderType == SH_VERTEX_SHADER)
3811075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.type).setBasic(EbtVoid, EvqInvariantVaryingOut, (yylsp[(1) - (2)]));
3812044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        else
3813075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyval.interm.type).setBasic(EbtVoid, EvqInvariantVaryingIn, (yylsp[(1) - (2)]));
381405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3815044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3816044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3817a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 117:
3818044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3819044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
382012bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill        if ((yyvsp[(1) - (1)].interm.type).qualifier != EvqConst && !context->symbolTable.atGlobalLevel()) {
382112bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill            context->error((yylsp[(1) - (1)]), "Local variables can only use the const storage qualifier.", getQualifierString((yyvsp[(1) - (1)].interm.type).qualifier));
382212bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill            context->recover();
382312bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill        } else {
382412bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill            (yyval.interm.type).setBasic(EbtVoid, (yyvsp[(1) - (1)].interm.type).qualifier, (yylsp[(1) - (1)]));
382512bea0a9def2fef211c71d83ef591e249ef8bf38Jamie Madill        }
38262226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
38272226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
38282226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3829a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 118:
38306f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
38316f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    {
3832f2e0f9bb46d44ed1d743ab79da0d06d0c748513dJamie Madill        (yyval.interm.type) = context->joinInterpolationQualifiers((yylsp[(1) - (2)]), (yyvsp[(1) - (2)].interm.type).qualifier, (yylsp[(2) - (2)]), (yyvsp[(2) - (2)].interm.type).qualifier);
38336f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    }
38346f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    break;
38356f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
3836a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 119:
38376f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
38386f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    {
3839075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->error((yylsp[(1) - (1)]), "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getInterpolationString((yyvsp[(1) - (1)].interm.type).qualifier));
38406f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com        context->recover();
38416f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
38426f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3843075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtVoid, qual, (yylsp[(1) - (1)]));
38446f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    }
38456f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com    break;
38466f273e3a08ecbb4e59ae6cd7ea857114464b8e6eshannon.woods%transgaming.com@gtempaccount.com
3847a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 120:
38482226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
38492226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3850302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org        (yyval.interm.type).qualifier = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
3851302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org        (yyval.interm.type).layoutQualifier = (yyvsp[(1) - (1)].interm.layoutQualifier);
3852302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3853302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3854302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3855a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 121:
3856302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3857302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
3858075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtVoid, (yyvsp[(2) - (2)].interm.type).qualifier, (yylsp[(2) - (2)]));
3859302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org        (yyval.interm.type).layoutQualifier = (yyvsp[(1) - (2)].interm.layoutQualifier);
3860302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3861302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3862302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3863a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 122:
3864302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3865302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
38662226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com        (yyval.interm.type).qualifier = EvqConst;
38672226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
38682226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
38692226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3870a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 123:
38712226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
38722226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3873075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY("in", (yylsp[(1) - (1)]), "storage qualifier");
38741957181804a54e227e45122985460232e27622e0Jamie Madill        (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragmentIn : EvqVertexIn;
38752226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
38762226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
38772226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3878a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 124:
38792226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
38802226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3881075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY("out", (yylsp[(1) - (1)]), "storage qualifier");
38821957181804a54e227e45122985460232e27622e0Jamie Madill        (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragmentOut : EvqVertexOut;
38832226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
38842226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
38852226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3886a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 125:
38872226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
38882226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3889075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY("centroid in", (yylsp[(1) - (2)]), "storage qualifier");
38906c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        if (context->shaderType == SH_VERTEX_SHADER)
38916c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        {
3892075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (2)]), "invalid storage qualifier", "it is an error to use 'centroid in' in the vertex shader");
38936c23946c8bf9cf79079340530102c04be21dff7fJamie Madill            context->recover();
38946c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        }
38951957181804a54e227e45122985460232e27622e0Jamie Madill        (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqCentroidIn : EvqVertexIn;
38962226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
38972226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
38982226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3899a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 126:
39002226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
39012226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3902075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY("centroid out", (yylsp[(1) - (2)]), "storage qualifier");
39036c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        if (context->shaderType == SH_FRAGMENT_SHADER)
39046c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        {
3905075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (2)]), "invalid storage qualifier", "it is an error to use 'centroid out' in the fragment shader");
39066c23946c8bf9cf79079340530102c04be21dff7fJamie Madill            context->recover();
39076c23946c8bf9cf79079340530102c04be21dff7fJamie Madill        }
39081957181804a54e227e45122985460232e27622e0Jamie Madill        (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragmentOut : EvqCentroidOut;
39092226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    }
39102226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    break;
39112226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
3912a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 127:
39132226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com
39142226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com    {
3915075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->globalErrorCheck((yylsp[(1) - (1)]), context->symbolTable.atGlobalLevel(), "uniform"))
3916044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
39172226e04f965055c5d6726ff01bcca08512ea0f4fshannon.woods%transgaming.com@gtempaccount.com        (yyval.interm.type).qualifier = EvqUniform;
391805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3919044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3920044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3921a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 128:
3922044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3923044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3924044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
3925dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com
3926dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com        if ((yyval.interm.type).precision == EbpUndefined) {
3927dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com            (yyval.interm.type).precision = context->symbolTable.getDefaultPrecision((yyvsp[(1) - (1)].interm.type).type);
3928075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            if (context->precisionErrorCheck((yylsp[(1) - (1)]), (yyval.interm.type).precision, (yyvsp[(1) - (1)].interm.type).type)) {
3929dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com                context->recover();
3930dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com            }
3931dc4b4f85516fec32b746d1841c1df00865d96214zmo@google.com        }
393205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3933044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3934044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3935a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 129:
3936044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3937044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3938044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type);
3939044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).precision = (yyvsp[(1) - (2)].interm.precision);
3940ed14b79dc8e9ec4f4a831bb5213ab67ef01af196Zhenyao Mo
3941ed14b79dc8e9ec4f4a831bb5213ab67ef01af196Zhenyao Mo        if (!SupportsPrecision((yyvsp[(2) - (2)].interm.type).type)) {
394274be6a846f1b75296444d8f75b337ad4e93e440dJamie Madill            context->error((yylsp[(1) - (2)]), "illegal type for precision qualifier", getBasicString((yyvsp[(2) - (2)].interm.type).type));
3943ed14b79dc8e9ec4f4a831bb5213ab67ef01af196Zhenyao Mo            context->recover();
3944ed14b79dc8e9ec4f4a831bb5213ab67ef01af196Zhenyao Mo        }
394505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3946044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3947044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3948a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 130:
3949044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3950044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3951044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.precision) = EbpHigh;
395205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3953044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3954044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3955a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 131:
3956044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3957044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3958044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.precision) = EbpMedium;
395905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3960044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3961044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3962a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 132:
3963044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3964044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
3965044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.precision) = EbpLow;
396605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
3967044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
3968044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
3969a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 133:
3970302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3971302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
3972075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        ES3_ONLY("layout", (yylsp[(1) - (4)]), "qualifier");
3973302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org        (yyval.interm.layoutQualifier) = (yyvsp[(3) - (4)].interm.layoutQualifier);
3974302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3975302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3976302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3977a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 134:
3978302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3979302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
3980a5efff9996aab519def50871a60f77645dd4f51cJamie Madill        (yyval.interm.layoutQualifier) = (yyvsp[(1) - (1)].interm.layoutQualifier);
3981302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3982302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3983302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3984a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 135:
3985302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3986302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
3987a5efff9996aab519def50871a60f77645dd4f51cJamie Madill        (yyval.interm.layoutQualifier) = context->joinLayoutQualifiers((yyvsp[(1) - (3)].interm.layoutQualifier), (yyvsp[(3) - (3)].interm.layoutQualifier));
3988302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3989302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3990302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3991a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 136:
3992302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3993302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
3994075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (1)].lex).string, (yylsp[(1) - (1)]));
3995302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
3996302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
3997302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
3998a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 137:
3999302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
4000302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
4001075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (3)].lex).string, (yylsp[(1) - (3)]), *(yyvsp[(3) - (3)].lex).string, (yyvsp[(3) - (3)].lex).i, (yylsp[(3) - (3)]));
4002302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
4003302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
4004302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
4005a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 138:
4006302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
4007302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    {
4008075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (3)].lex).string, (yylsp[(1) - (3)]), *(yyvsp[(3) - (3)].lex).string, (yyvsp[(3) - (3)].lex).i, (yylsp[(3) - (3)]));
4009302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    }
4010302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org    break;
4011302adfef44f2a18b5770315408c23087cf5eff04shannonwoods@chromium.org
4012a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 139:
4013044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4014044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4015044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
401605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4017044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4018044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4019a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 140:
4020044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4021044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4022044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(1) - (4)].interm.type);
4023044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4024075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->arrayTypeErrorCheck((yylsp[(2) - (4)]), (yyvsp[(1) - (4)].interm.type)))
4025044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4026044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        else {
4027044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            int size;
4028075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            if (context->arraySizeErrorCheck((yylsp[(2) - (4)]), (yyvsp[(3) - (4)].interm.intermTypedNode), size))
4029044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
4030044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.type).setArray(true, size);
4031044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
403205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4033044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4034044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4035a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 141:
4036044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4037044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4038044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4039075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtVoid, qual, (yylsp[(1) - (1)]));
404005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4041044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4042044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4043a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 142:
4044044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4045044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4046044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4047075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
404805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4049044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4050044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4051a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 143:
4052044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4053044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4054044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4055075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[(1) - (1)]));
405605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4057044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4058044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4059a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 144:
4060044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4061044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4062044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4063075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[(1) - (1)]));
406405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4065044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4066044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4067a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 145:
4068044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4069044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4070044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4071075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[(1) - (1)]));
40726b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org    }
40736b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org    break;
40746b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org
4075a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 146:
40766b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org
40776b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org    {
40786b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4079075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
4080044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(2);
408105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4082044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4083044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4084a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 147:
4085044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4086044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4087044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4088075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
4089044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(3);
409005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4091044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4092044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4093a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 148:
4094044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4095044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4096044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4097075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
4098044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(4);
409905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4100044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4101044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4102a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 149:
4103044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4104044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4105044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4106075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[(1) - (1)]));
4107044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(2);
410805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4109044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4110044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4111a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 150:
4112044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4113044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4114044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4115075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[(1) - (1)]));
4116044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(3);
411705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4118044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4119044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4120a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 151:
4121044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4122044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4123044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4124075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtBool, qual, (yylsp[(1) - (1)]));
4125044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(4);
412605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4127044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4128044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4129a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 152:
4130044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4131044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4132044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4133075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[(1) - (1)]));
4134044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(2);
413505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4136044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4137044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4138a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 153:
4139044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4140044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4141044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4142075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[(1) - (1)]));
4143044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(3);
414405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4145044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4146044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4147a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 154:
4148044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4149044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4150044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4151075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtInt, qual, (yylsp[(1) - (1)]));
4152044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).setAggregate(4);
415305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4154044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4155044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4156a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 155:
4157044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4158044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
41598c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4160075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[(1) - (1)]));
41618c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        (yyval.interm.type).setAggregate(2);
41628c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    }
41638c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    break;
41648c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
4165a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 156:
41668c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
41678c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    {
41688c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4169075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[(1) - (1)]));
41708c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        (yyval.interm.type).setAggregate(3);
41718c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    }
41728c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    break;
41738c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
4174a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 157:
41758c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
41768c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    {
41778c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4178075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUInt, qual, (yylsp[(1) - (1)]));
41798c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org        (yyval.interm.type).setAggregate(4);
41808c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    }
41818c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    break;
41828c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
4183a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 158:
41848c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org
41858c788e8d35ba20ca19afacbcfe4a6f326b8ecb60shannonwoods@chromium.org    {
4186044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4187075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
418809e0988466ea9f3610dfb406f859b634b8e1e188shannonwoods@chromium.org        (yyval.interm.type).setMatrix(2, 2);
418905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4190044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4191044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4192a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 159:
4193044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4194044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4195044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4196075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
419709e0988466ea9f3610dfb406f859b634b8e1e188shannonwoods@chromium.org        (yyval.interm.type).setMatrix(3, 3);
419805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4199044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4200044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4201a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 160:
4202044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4203044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4204044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4205075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
420609e0988466ea9f3610dfb406f859b634b8e1e188shannonwoods@chromium.org        (yyval.interm.type).setMatrix(4, 4);
420705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4208044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4209044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4210a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 161:
4211044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4212044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
42139bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4214075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42159bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(2, 3);
42169bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42179bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42189bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4219a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 162:
42209bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42219bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
42229bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4223075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42249bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(3, 2);
42259bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42269bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42279bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4228a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 163:
42299bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42309bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
42319bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4232075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42339bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(2, 4);
42349bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42359bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42369bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4237a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 164:
42389bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42399bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
42409bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4241075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42429bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(4, 2);
42439bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42449bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42459bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4246a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 165:
42479bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42489bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
42499bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4250075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42519bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(3, 4);
42529bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42539bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42549bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4255a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 166:
42569bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42579bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
42589bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4259075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtFloat, qual, (yylsp[(1) - (1)]));
42609bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org        (yyval.interm.type).setMatrix(4, 3);
42619bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    }
42629bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    break;
42639bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
4264a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 167:
42659bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org
42669bd22fa90f6a16ae279330c802ebdb5e608d9348shannonwoods@chromium.org    {
4267044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4268075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSampler2D, qual, (yylsp[(1) - (1)]));
426905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4270044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4271044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4272a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill  case 168:
4273044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4274044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
427528043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4276075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSampler3D, qual, (yylsp[(1) - (1)]));
427728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    }
427828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    break;
427928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
428028043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 169:
428128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
428228043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    {
4283044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4284075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSamplerCube, qual, (yylsp[(1) - (1)]));
428505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4286044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4287044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
428828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 170:
4289044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4290044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4291d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4292075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSampler2DArray, qual, (yylsp[(1) - (1)]));
4293d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    }
4294d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    break;
4295d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens
429628043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 171:
429728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
429828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    {
429928043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4300075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtISampler2D, qual, (yylsp[(1) - (1)]));
430128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    }
430228043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    break;
430328043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
430428043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 172:
4305d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens
4306d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    {
4307d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4308075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtISampler3D, qual, (yylsp[(1) - (1)]));
4309d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    }
4310d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    break;
4311d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens
431228043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 173:
4313d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens
4314d273c273892366afcf8676094c1fd1dda5bd0de2Nicolas Capens    {
43159e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4316075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtISamplerCube, qual, (yylsp[(1) - (1)]));
43179e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    }
43189e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    break;
43199e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens
432028043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 174:
432128043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
432228043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    {
432328043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4324075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtISampler2DArray, qual, (yylsp[(1) - (1)]));
432528043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    }
432628043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens    break;
432728043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens
432828043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 175:
43299e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens
43309e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    {
43319e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4332075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUSampler2D, qual, (yylsp[(1) - (1)]));
43339e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    }
43349e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    break;
43359e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens
433628043ba73df094e40577a882d91c2ff1c26295b3Nicolas Capens  case 176:
43379e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens
43389e3a3f43967a81cfd3a4e6adb84ddf49a3f9a3b0Nicolas Capens    {
4339fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4340075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUSampler3D, qual, (yylsp[(1) - (1)]));
4341fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    }
4342fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    break;
4343fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4344fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  case 177:
4345fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4346fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    {
4347fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4348075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUSamplerCube, qual, (yylsp[(1) - (1)]));
4349fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    }
4350fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    break;
4351fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4352fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  case 178:
4353fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4354fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    {
4355fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4356075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtUSampler2DArray, qual, (yylsp[(1) - (1)]));
4357fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    }
4358fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    break;
4359fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4360fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens  case 179:
4361fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens
4362fc2e6b90636da03d9472267716cbe307c3c90c81Nicolas Capens    {
43632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
43642a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        (yyval.interm.type).setBasic(EbtSampler2DShadow, qual, (yylsp[(1) - (1)]));
43652a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    }
43662a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    break;
43672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 180:
43692a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    {
43712a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
43722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        (yyval.interm.type).setBasic(EbtSamplerCubeShadow, qual, (yylsp[(1) - (1)]));
43732a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    }
43742a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    break;
43752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 181:
43772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    {
43792a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
43802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens        (yyval.interm.type).setBasic(EbtSampler2DArrayShadow, qual, (yylsp[(1) - (1)]));
43812a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    }
43822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    break;
43832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 182:
43852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens
43862a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens    {
438709c323a40ad0de489eee946bfe171d337616e09czmo@google.com        if (!context->supportsExtension("GL_OES_EGL_image_external")) {
4388075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "unsupported type", "samplerExternalOES");
438909c323a40ad0de489eee946bfe171d337616e09czmo@google.com            context->recover();
439009c323a40ad0de489eee946bfe171d337616e09czmo@google.com        }
439109c323a40ad0de489eee946bfe171d337616e09czmo@google.com        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4392075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSamplerExternalOES, qual, (yylsp[(1) - (1)]));
439305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
439409c323a40ad0de489eee946bfe171d337616e09czmo@google.com    break;
439509c323a40ad0de489eee946bfe171d337616e09czmo@google.com
43962a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 183:
439709c323a40ad0de489eee946bfe171d337616e09czmo@google.com
439809c323a40ad0de489eee946bfe171d337616e09czmo@google.com    {
4399205fef3389c81637f689585431273cf83af02e94kbr@chromium.org        if (!context->supportsExtension("GL_ARB_texture_rectangle")) {
4400075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "unsupported type", "sampler2DRect");
4401205fef3389c81637f689585431273cf83af02e94kbr@chromium.org            context->recover();
4402205fef3389c81637f689585431273cf83af02e94kbr@chromium.org        }
4403205fef3389c81637f689585431273cf83af02e94kbr@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4404075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtSampler2DRect, qual, (yylsp[(1) - (1)]));
440505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4406205fef3389c81637f689585431273cf83af02e94kbr@chromium.org    break;
4407205fef3389c81637f689585431273cf83af02e94kbr@chromium.org
44082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 184:
4409205fef3389c81637f689585431273cf83af02e94kbr@chromium.org
4410205fef3389c81637f689585431273cf83af02e94kbr@chromium.org    {
4411044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
4412044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).qualifier = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
441305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4414044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4415044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44162a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 185:
4417044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4418044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4419044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4420044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // This is for user defined type names.  The lexical phase looked up the
4421044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // type.
4422044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4423044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TType& structure = static_cast<TVariable*>((yyvsp[(1) - (1)].lex).symbol)->getType();
4424044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
4425075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.type).setBasic(EbtStruct, qual, (yylsp[(1) - (1)]));
4426044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.type).userDef = &structure;
442705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4428044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4429044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44302a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 186:
4431044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4432075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    { if (context->enterStructDeclaration((yylsp[(2) - (3)]), *(yyvsp[(2) - (3)].lex).string)) context->recover(); }
4433476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org    break;
4434476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org
44352a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 187:
4436476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org
4437044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
443898493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.type) = context->addStructure((yylsp[(1) - (6)]), (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].lex).string, (yyvsp[(5) - (6)].interm.fieldList));
443905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4440044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4441044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 188:
4443476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org
4444075edd84dd682b91279132317d34b09e8028ae6fJamie Madill    { if (context->enterStructDeclaration((yylsp[(2) - (2)]), *(yyvsp[(2) - (2)].lex).string)) context->recover(); }
4445476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org    break;
4446476541f6351d640deaa0735b7177adda483858c3kbr@chromium.org
44472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 189:
4448044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4449044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
445098493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.type) = context->addStructure((yylsp[(1) - (5)]), (yyloc), NewPoolTString(""), (yyvsp[(4) - (5)].interm.fieldList));
445105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4452044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4453044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44542a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 190:
4455044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4456044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
445798493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList) = (yyvsp[(1) - (1)].interm.fieldList);
445805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4459044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4460044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44612a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 191:
4462044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4463044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
446498493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList) = (yyvsp[(1) - (2)].interm.fieldList);
446598493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        for (size_t i = 0; i < (yyvsp[(2) - (2)].interm.fieldList)->size(); ++i) {
446698493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill            TField* field = (*(yyvsp[(2) - (2)].interm.fieldList))[i];
446798493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill            for (size_t j = 0; j < (yyval.interm.fieldList)->size(); ++j) {
446898493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill                if ((*(yyval.interm.fieldList))[j]->name() == field->name()) {
446998493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill                    context->error((yylsp[(2) - (2)]), "duplicate field name in structure:", "struct", field->name().c_str());
4470044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    context->recover();
4471044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
4472044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
447398493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill            (yyval.interm.fieldList)->push_back(field);
4474044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
447505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4476044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4477044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44782a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 192:
4479044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4480044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
448198493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList) = context->addStructDeclaratorList((yyvsp[(1) - (3)].interm.type), (yyvsp[(2) - (3)].interm.fieldList));
448205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4483044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4484044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
44852a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 193:
44865668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
44875668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    {
44885668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org        // ES3 Only, but errors should be handled elsewhere
44895668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org        (yyvsp[(2) - (4)].interm.type).qualifier = (yyvsp[(1) - (4)].interm.type).qualifier;
4490a5efff9996aab519def50871a60f77645dd4f51cJamie Madill        (yyvsp[(2) - (4)].interm.type).layoutQualifier = (yyvsp[(1) - (4)].interm.type).layoutQualifier;
449198493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList) = context->addStructDeclaratorList((yyvsp[(2) - (4)].interm.type), (yyvsp[(3) - (4)].interm.fieldList));
44925668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    }
44935668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org    break;
44945668c5d7131fa7b1851172a1f02c341f9d1285dcshannonwoods@chromium.org
44952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 194:
4496044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4497044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
449898493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList) = NewPoolTFieldList();
449998493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList)->push_back((yyvsp[(1) - (1)].interm.field));
450005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4501044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4502044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45032a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 195:
4504044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4505044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
450698493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.fieldList)->push_back((yyvsp[(3) - (3)].interm.field));
450705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4508044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4509044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45102a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 196:
4511044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4512044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4513075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->reservedErrorCheck((yylsp[(1) - (1)]), *(yyvsp[(1) - (1)].lex).string))
4514044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4515044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
451698493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        TType* type = new TType(EbtVoid, EbpUndefined);
451798493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.field) = new TField(type, (yyvsp[(1) - (1)].lex).string, (yylsp[(1) - (1)]));
451805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4519044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4520044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45212a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 197:
4522044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4523044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4524075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->reservedErrorCheck((yylsp[(1) - (4)]), *(yyvsp[(1) - (4)].lex).string))
4525044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4526044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
452798493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        TType* type = new TType(EbtVoid, EbpUndefined);
4528044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        int size;
452998493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        if (context->arraySizeErrorCheck((yylsp[(3) - (4)]), (yyvsp[(3) - (4)].interm.intermTypedNode), size))
4530044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
453198493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        type->setArraySize(size);
453298493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill
453398493ddc137922a6ce5c8b22ffde0ed2a1fa2b3dJamie Madill        (yyval.interm.field) = new TField(type, (yyvsp[(1) - (4)].lex).string, (yylsp[(1) - (4)]));
453405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4535044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4536044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 198:
4538044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4539a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
4540044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4541044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 199:
4543044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4544a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4545044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4546044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45472a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 200:
4548f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill
4549a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
4550f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill    break;
4551f8dc4fb66d2ee473b6ba37626f02756422863f6cJamie Madill
45522a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 201:
4553044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
455405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4555044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4556044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45572a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 202:
4558044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
455905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4560044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4561044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 203:
4563044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
456405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4565044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4566044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 204:
4568044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
456905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4570044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4571044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45722a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 205:
4573044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45746b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4575044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4576044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
45772a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 206:
4578044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4579a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4580205fef3389c81637f689585431273cf83af02e94kbr@chromium.org    break;
4581205fef3389c81637f689585431273cf83af02e94kbr@chromium.org
45822a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 207:
4583205fef3389c81637f689585431273cf83af02e94kbr@chromium.org
4584a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { (yyval.interm.intermAggregate) = 0; }
45856b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org    break;
45866b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org
45872a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 208:
45886b7099111f6f00493b24dd05680f60c30b60cb7cshannonwoods@chromium.org
4589a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { context->symbolTable.push(); }
4590c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org    break;
4591c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
45922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 209:
4593c8100b85aa421a38ca3d70a612539d09c3f39192shannonwoods@chromium.org
4594a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    { context->symbolTable.pop(); }
4595a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill    break;
4596a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill
45972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 210:
4598a295edfc008a7cd5a72cb94e9da404c6fa35d2f4Jamie Madill
4599044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
46000f4cefe9462e53627f02f10b34d76f8665c72521apatrick@chromium.org        if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) {
4601044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(3) - (5)].interm.intermAggregate)->setOp(EOpSequence);
4602075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyvsp[(3) - (5)].interm.intermAggregate)->setLine((yyloc));
46030f4cefe9462e53627f02f10b34d76f8665c72521apatrick@chromium.org        }
4604044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermAggregate) = (yyvsp[(3) - (5)].interm.intermAggregate);
460505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4606044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4607044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46082a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 211:
4609044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
461005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4611044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4612044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46132a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 212:
4614044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
461505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
4616044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4617044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46182a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 213:
4619044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
462083dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    { context->symbolTable.push(); }
462183dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    break;
462283dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
46232a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 214:
462483dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
462583dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
462683dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    break;
462783dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
46282a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 215:
462983dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
463083dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    { context->symbolTable.push(); }
463183dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    break;
463283dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
46332a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 216:
463483dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
463583dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
463683dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com    break;
463783dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
46382a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 217:
463983dc5a78b2efb0b7efcf1719c9b4790e6ebc505ddaniel@transgaming.com
4640044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4641044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = 0;
464205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4643044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4644044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46452a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 218:
4646044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4647044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
46480f4cefe9462e53627f02f10b34d76f8665c72521apatrick@chromium.org        if ((yyvsp[(2) - (3)].interm.intermAggregate)) {
4649044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyvsp[(2) - (3)].interm.intermAggregate)->setOp(EOpSequence);
4650075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            (yyvsp[(2) - (3)].interm.intermAggregate)->setLine((yyloc));
46510f4cefe9462e53627f02f10b34d76f8665c72521apatrick@chromium.org        }
4652044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermAggregate);
465305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4654044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4655044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46562a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 219:
4657044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4658044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4659075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), (yyloc));
466005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4661044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4662044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46632a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 220:
4664044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4665044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4666075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), (yyloc));
466705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4668044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4669044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46702a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 221:
4671044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
467205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = 0; }
4673044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4674044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46752a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 222:
4676044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
467705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); }
4678044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4679044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46802a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 223:
4681044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4682044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4683075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->boolErrorCheck((yylsp[(1) - (5)]), (yyvsp[(3) - (5)].interm.intermTypedNode)))
4684044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4685075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yylsp[(1) - (5)]));
468605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4687044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4688044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46892a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 224:
4690044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4691044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4692044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode);
4693044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode);
469405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4695044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4696044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
46972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 225:
4698044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4699044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4700044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode);
4701044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node2 = 0;
470205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4703044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4704044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47052a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 226:
4706044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4707044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4708044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
4709044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->boolErrorCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLine(), (yyvsp[(1) - (1)].interm.intermTypedNode)))
4710044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
471105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4712044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4713044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47142a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 227:
4715044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4716044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4717044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TIntermNode* intermNode;
4718075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->structQualifierErrorCheck((yylsp[(2) - (4)]), (yyvsp[(1) - (4)].interm.type)))
4719044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4720075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->boolErrorCheck((yylsp[(2) - (4)]), (yyvsp[(1) - (4)].interm.type)))
4721044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4722044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4723075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (!context->executeInitializer((yylsp[(2) - (4)]), *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), (yyvsp[(4) - (4)].interm.intermTypedNode), intermNode))
4724044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = (yyvsp[(4) - (4)].interm.intermTypedNode);
4725044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        else {
4726044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4727044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            (yyval.interm.intermTypedNode) = 0;
4728044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
472905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4730044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4731044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47322a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 228:
4733044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
473405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { context->symbolTable.push(); ++context->loopNestingLevel; }
4735044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4736044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47372a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 229:
4738044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4739044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4740044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->symbolTable.pop();
4741075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopWhile, 0, (yyvsp[(4) - (6)].interm.intermTypedNode), 0, (yyvsp[(6) - (6)].interm.intermNode), (yylsp[(1) - (6)]));
4742044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        --context->loopNestingLevel;
474305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4744044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4745044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47462a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 230:
4747044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
474805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { ++context->loopNestingLevel; }
4749044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4750044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47512a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 231:
4752044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4753044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4754075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        if (context->boolErrorCheck((yylsp[(8) - (8)]), (yyvsp[(6) - (8)].interm.intermTypedNode)))
4755044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4756044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4757075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopDoWhile, 0, (yyvsp[(6) - (8)].interm.intermTypedNode), 0, (yyvsp[(3) - (8)].interm.intermNode), (yylsp[(4) - (8)]));
4758044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        --context->loopNestingLevel;
475905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4760044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4761044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47622a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 232:
4763044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
476405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    { context->symbolTable.push(); ++context->loopNestingLevel; }
4765044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4766044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47672a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 233:
4768044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4769044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4770044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->symbolTable.pop();
4771075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addLoop(ELoopFor, (yyvsp[(4) - (7)].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[(5) - (7)].interm.nodePair).node2), (yyvsp[(7) - (7)].interm.intermNode), (yylsp[(1) - (7)]));
4772044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        --context->loopNestingLevel;
477305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4774044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4775044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 234:
4777044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4778044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4779044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
478005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4781044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4782044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47832a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 235:
4784044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4785044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4786044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
478705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4788044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4789044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47902a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 236:
4791044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4792044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4793044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
479405bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4795044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4796044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
47972a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 237:
4798044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4799044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4800044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermTypedNode) = 0;
480105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4802044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4803044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48042a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 238:
4805044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4806044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4807044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode);
4808044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node2 = 0;
480905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4810044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4811044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48122a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 239:
4813044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4814044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4815044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode);
4816044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode);
481705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4818044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4819044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48202a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 240:
4821044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4822044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4823044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->loopNestingLevel <= 0) {
4824075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (2)]), "continue statement only allowed in loops", "");
4825044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4826044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
4827075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addBranch(EOpContinue, (yylsp[(1) - (2)]));
482805bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4829044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4830044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48312a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 241:
4832044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4833044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4834044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->loopNestingLevel <= 0) {
4835075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (2)]), "break statement only allowed in loops", "");
4836044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4837044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
4838075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addBranch(EOpBreak, (yylsp[(1) - (2)]));
483905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4840044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4841044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48422a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 242:
4843044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4844044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4845075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yylsp[(1) - (2)]));
4846044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->currentFunctionType->getBasicType() != EbtVoid) {
4847075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (2)]), "non-void function must return a value", "return");
4848044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4849044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
485005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4851044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4852044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48532a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 243:
4854044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4855044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4856075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yylsp[(1) - (3)]));
4857044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->functionReturnsValue = true;
4858044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->currentFunctionType->getBasicType() == EbtVoid) {
4859075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (3)]), "void function cannot return a value", "return");
4860044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4861044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        } else if (*(context->currentFunctionType) != (yyvsp[(2) - (3)].interm.intermTypedNode)->getType()) {
4862075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (3)]), "function return is not matching type:", "return");
4863044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4864044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
486505bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4866044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4867044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48682a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 244:
4869044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4870044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4871075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        FRAG_ONLY("discard", (yylsp[(1) - (2)]));
4872075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.addBranch(EOpKill, (yylsp[(1) - (2)]));
487305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4874044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4875044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48762a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 245:
4877044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4878044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4879044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
4880044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->treeRoot = (yyval.interm.intermNode);
488105bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4882044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4883044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48842a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 246:
4885044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4886044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4887075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), (yyloc));
4888044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->treeRoot = (yyval.interm.intermNode);
488905bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4890044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4891044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48922a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 247:
4893044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4894044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4895044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
489605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4897044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4898044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
48992a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 248:
4900044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4901044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4902044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
490305bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4904044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4905044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
49062a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 249:
4907044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4908044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4909044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TFunction* function = (yyvsp[(1) - (1)].interm).function;
4910a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com
491196e7ba17f417a48c1a6c31f3d9fbd5611219d14dshannonwoods@chromium.org        const TSymbol *builtIn = context->symbolTable.findBuiltIn(function->getMangledName(), context->shaderVersion);
4912a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com
4913a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com        if (builtIn)
4914a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com        {
4915075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "built-in functions cannot be redefined", function->getName().c_str());
4916a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com            context->recover();
4917a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com        }
4918a8833e91e42724823955c15c7629e75c021c0203daniel@transgaming.com
491996e7ba17f417a48c1a6c31f3d9fbd5611219d14dshannonwoods@chromium.org        TFunction* prevDec = static_cast<TFunction*>(context->symbolTable.find(function->getMangledName(), context->shaderVersion));
4920044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4921044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Note:  'prevDec' could be 'function' if this is the first time we've seen function
4922044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // as it would have just been put in the symbol table.  Otherwise, we're looking up
4923044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // an earlier occurance.
4924044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4925044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (prevDec->isDefined()) {
4926044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
4927044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            // Then this function already has a body.
4928044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            //
4929075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (1)]), "function already has a body", function->getName().c_str());
4930044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
4931044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
4932044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        prevDec->setDefined();
4933044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4934044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4935044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Raise error message if main function takes any parameters or return anything other than void
4936044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4937044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (function->getName() == "main") {
4938044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (function->getParamCount() > 0) {
4939075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                context->error((yylsp[(1) - (1)]), "function cannot take any parameter(s)", function->getName().c_str());
4940044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
4941044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
4942044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (function->getReturnType().getBasicType() != EbtVoid) {
4943075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                context->error((yylsp[(1) - (1)]), "", function->getReturnType().getBasicString(), "main function cannot return a value");
4944044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                context->recover();
4945044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
4946044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
4947044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4948044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4949044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Remember the return type for later checking for RETURN statements.
4950044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4951044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->currentFunctionType = &(prevDec->getReturnType());
4952044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->functionReturnsValue = false;
4953044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4954044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4955044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Insert parameters into the symbol table.
4956044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // If the parameter has no name, it's not an error, just don't insert it
4957044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // (could be used for unused args).
4958044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4959044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // Also, accumulate the list of parameters into the HIL, so lower level code
4960044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // knows where to find parameters.
4961044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //
4962044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        TIntermAggregate* paramNodes = new TIntermAggregate;
49636b04e1b9e8f7034cca0690f3f830e8f29ef2535dshannon.woods@transgaming.com        for (size_t i = 0; i < function->getParamCount(); i++) {
4964044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            const TParameter& param = function->getParam(i);
4965044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            if (param.name != 0) {
4966044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                TVariable *variable = new TVariable(param.name, *param.type);
4967044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
4968044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // Insert the parameters with name in the symbol table.
4969044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
49701c8480963a2373ee44f01417fc0820a31204df3eshannonwoods@chromium.org                if (! context->symbolTable.declare(*variable)) {
4971075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                    context->error((yylsp[(1) - (1)]), "redefinition", variable->getName().c_str());
4972044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    context->recover();
4973044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                    delete variable;
4974044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                }
4975044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4976044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
4977044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                // Add the parameter to the HIL
4978044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                //
4979044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                paramNodes = context->intermediate.growAggregate(
4980044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                                               paramNodes,
4981044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                                               context->intermediate.addSymbol(variable->getUniqueId(),
4982044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org                                                                       variable->getName(),
4983075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                                                                       variable->getType(), (yylsp[(1) - (1)])),
4984075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                                               (yylsp[(1) - (1)]));
4985044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            } else {
4986075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                paramNodes = context->intermediate.growAggregate(paramNodes, context->intermediate.addSymbol(0, "", *param.type, (yylsp[(1) - (1)])), (yylsp[(1) - (1)]));
4987044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            }
4988044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
4989075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->intermediate.setAggregateOperator(paramNodes, EOpParameters, (yylsp[(1) - (1)]));
4990044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyvsp[(1) - (1)].interm).intermAggregate = paramNodes;
4991044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        context->loopNestingLevel = 0;
499205bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
4993044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
4994044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
49952a1d8a381d29b906cb143c5834466d66ee032682Nicolas Capens  case 250:
4996044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
4997044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
4998044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //?? Check that all paths return a value if return type != void ?
4999044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        //   May be best done as post process phase on intermediate code
5000044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        if (context->currentFunctionType->getBasicType() != EbtVoid && ! context->functionReturnsValue) {
5001075edd84dd682b91279132317d34b09e8028ae6fJamie Madill            context->error((yylsp[(1) - (3)]), "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str());
5002044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org            context->recover();
5003044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        }
50045dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com
5005075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermAggregate, (yyvsp[(3) - (3)].interm.intermNode), (yyloc));
5006075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        context->intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yylsp[(1) - (3)]));
5007044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str());
5008044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        (yyval.interm.intermNode)->getAsAggregate()->setType((yyvsp[(1) - (3)].interm).function->getReturnType());
5009044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5010044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // store the pragma information for debug and optimize and other vendor specific
5011044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org        // information. This information can be queried from the parse tree
50128b851c6db4ba79cbd5b658e799076b8e7a908f6dalokp@chromium.org        (yyval.interm.intermNode)->getAsAggregate()->setOptimize(context->pragma().optimize);
50138b851c6db4ba79cbd5b658e799076b8e7a908f6dalokp@chromium.org        (yyval.interm.intermNode)->getAsAggregate()->setDebug(context->pragma().debug);
50140f4cefe9462e53627f02f10b34d76f8665c72521apatrick@chromium.org
50155dd6d09f9c695c77c7b3740f3d8da61831febccfdaniel@transgaming.com        context->symbolTable.pop();
501605bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com    }
5017044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    break;
5018044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5019044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5020044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5021044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      default: break;
5022044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
502398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* User semantic actions sometimes alter yychar, and that requires
502498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     that yytoken be updated with the new translation.  We take the
502598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     approach of translating immediately before every use of yytoken.
502698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     One alternative is translating here after every semantic action,
502798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     but that translation would be missed if the semantic action invokes
502898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
502998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
503098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     incorrect destructor might then be invoked immediately.  In the
503198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     case of YYERROR or YYBACKUP, subsequent parser actions might lead
503298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     to an incorrect destructor call or verbose syntax error message
503398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     before the lookahead is translated.  */
5034044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5035044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5036044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYPOPSTACK (yylen);
5037044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yylen = 0;
5038044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
5039044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5040044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  *++yyvsp = yyval;
5041075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  *++yylsp = yyloc;
5042044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5043044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Now `shift' the result of the reduction.  Determine what state
5044044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     that goes to, based on the state we popped back to and the rule
5045044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     number reduced by.  */
5046044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5047044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyn = yyr1[yyn];
5048044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5049044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5050044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5051044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    yystate = yytable[yystate];
5052044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  else
5053044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    yystate = yydefgoto[yyn - YYNTOKENS];
5054044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5055044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yynewstate;
5056044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5057044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5058044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*------------------------------------.
5059044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyerrlab -- here on detecting error |
5060044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`------------------------------------*/
5061044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyerrlab:
506298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  /* Make sure we have latest lookahead translation.  See comments at
506398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org     user semantic actions for why this is necessary.  */
506498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
506598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org
5066044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* If not already recovering from an error, report this error.  */
5067044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (!yyerrstatus)
5068044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
5069044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      ++yynerrs;
5070044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if ! YYERROR_VERBOSE
5071075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      yyerror (&yylloc, context, YY_("syntax error"));
5072044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#else
507398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
507498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                                        yyssp, yytoken)
5075044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      {
507698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        char const *yymsgp = YY_("syntax error");
507798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        int yysyntax_error_status;
507898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        yysyntax_error_status = YYSYNTAX_ERROR;
507998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        if (yysyntax_error_status == 0)
508098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          yymsgp = yymsg;
508198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        else if (yysyntax_error_status == 1)
508298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          {
508398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            if (yymsg != yymsgbuf)
508498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              YYSTACK_FREE (yymsg);
508598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
508698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            if (!yymsg)
508798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              {
508898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yymsg = yymsgbuf;
508998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yymsg_alloc = sizeof yymsgbuf;
509098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yysyntax_error_status = 2;
509198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              }
509298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org            else
509398c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              {
509498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yysyntax_error_status = YYSYNTAX_ERROR;
509598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org                yymsgp = yymsg;
509698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org              }
509798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          }
5098075edd84dd682b91279132317d34b09e8028ae6fJamie Madill        yyerror (&yylloc, context, yymsgp);
509998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org        if (yysyntax_error_status == 2)
510098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org          goto yyexhaustedlab;
5101044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      }
510298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org# undef YYSYNTAX_ERROR
5103044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
5104044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
5105044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5106075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yyerror_range[1] = yylloc;
5107044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5108044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyerrstatus == 3)
5109044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
511005bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com      /* If just tried and failed to reuse lookahead token after an
5111044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	 error, discard it.  */
5112044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5113044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      if (yychar <= YYEOF)
5114044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	{
5115044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  /* Return failure if at end of input.  */
5116044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  if (yychar == YYEOF)
5117044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    YYABORT;
5118044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	}
5119044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      else
5120044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	{
5121044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  yydestruct ("Error: discarding",
5122075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		      yytoken, &yylval, &yylloc, context);
5123044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  yychar = YYEMPTY;
5124044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	}
5125044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
5126044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
512705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  /* Else will try to reuse lookahead token after shifting the error
5128044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     token.  */
5129044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yyerrlab1;
5130044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5131044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5132044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*---------------------------------------------------.
5133044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyerrorlab -- error raised explicitly by YYERROR.  |
5134044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`---------------------------------------------------*/
5135044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyerrorlab:
5136044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5137044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Pacify compilers like GCC when the user code never invokes
5138044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     YYERROR and the label yyerrorlab therefore never appears in user
5139044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     code.  */
5140044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (/*CONSTCOND*/ 0)
5141044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     goto yyerrorlab;
5142044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5143075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yyerror_range[1] = yylsp[1-yylen];
5144044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Do not reclaim the symbols of the rule which action triggered
5145044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     this YYERROR.  */
5146044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYPOPSTACK (yylen);
5147044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yylen = 0;
5148044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
5149044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yystate = *yyssp;
5150044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yyerrlab1;
5151044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5152044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5153044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-------------------------------------------------------------.
5154044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyerrlab1 -- common code for both syntax error and YYERROR.  |
5155044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-------------------------------------------------------------*/
5156044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyerrlab1:
5157044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
5158044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5159044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  for (;;)
5160044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
5161044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yyn = yypact[yystate];
516298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      if (!yypact_value_is_default (yyn))
5163044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	{
5164044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  yyn += YYTERROR;
5165044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5166044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    {
5167044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	      yyn = yytable[yyn];
5168044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	      if (0 < yyn)
5169044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org		break;
5170044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	    }
5171044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	}
5172044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5173044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      /* Pop the current state because it cannot handle the error token.  */
5174044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      if (yyssp == yyss)
5175044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org	YYABORT;
5176044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5177075edd84dd682b91279132317d34b09e8028ae6fJamie Madill      yyerror_range[1] = *yylsp;
5178044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yydestruct ("Error: popping",
5179075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		  yystos[yystate], yyvsp, yylsp, context);
5180044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYPOPSTACK (1);
5181044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yystate = *yyssp;
5182044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YY_STACK_PRINT (yyss, yyssp);
5183044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
5184044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
518598c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5186044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  *++yyvsp = yylval;
518798c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org  YY_IGNORE_MAYBE_UNINITIALIZED_END
5188044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5189075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yyerror_range[2] = yylloc;
5190075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  /* Using YYLLOC is tempting, but would change the location of
5191075edd84dd682b91279132317d34b09e8028ae6fJamie Madill     the lookahead.  YYLOC is available though.  */
5192075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
5193075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  *++yylsp = yyloc;
5194044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5195044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Shift the error token.  */
5196044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5197044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5198044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yystate = yyn;
5199044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yynewstate;
5200044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5201044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5202044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-------------------------------------.
5203044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyacceptlab -- YYACCEPT comes here.  |
5204044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-------------------------------------*/
5205044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyacceptlab:
5206044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyresult = 0;
5207044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yyreturn;
5208044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5209044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-----------------------------------.
5210044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyabortlab -- YYABORT comes here.  |
5211044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-----------------------------------*/
5212044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyabortlab:
5213044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyresult = 1;
5214044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  goto yyreturn;
5215044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
521698c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org#if !defined yyoverflow || YYERROR_VERBOSE
5217044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org/*-------------------------------------------------.
5218044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org| yyexhaustedlab -- memory exhaustion comes here.  |
5219044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org`-------------------------------------------------*/
5220044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyexhaustedlab:
5221075edd84dd682b91279132317d34b09e8028ae6fJamie Madill  yyerror (&yylloc, context, YY_("memory exhausted"));
5222044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  yyresult = 2;
5223044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Fall through.  */
5224044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
5225044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5226044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgyyreturn:
522705bc204e87484de42708eda3fe71be824962d15fdaniel@transgaming.com  if (yychar != YYEMPTY)
522898c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    {
522998c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      /* Make sure we have latest lookahead translation.  See comments at
523098c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org         user semantic actions for why this is necessary.  */
523198c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yytoken = YYTRANSLATE (yychar);
523298c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org      yydestruct ("Cleanup: discarding lookahead",
5233075edd84dd682b91279132317d34b09e8028ae6fJamie Madill                  yytoken, &yylval, &yylloc, context);
523498c01b6ab84fa71a65d1a9818263189fce9c7222shannonwoods@chromium.org    }
5235044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Do not reclaim the symbols of the rule which action triggered
5236044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org     this YYABORT or YYACCEPT.  */
5237044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YYPOPSTACK (yylen);
5238044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  YY_STACK_PRINT (yyss, yyssp);
5239044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  while (yyssp != yyss)
5240044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    {
5241044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      yydestruct ("Cleanup: popping",
5242075edd84dd682b91279132317d34b09e8028ae6fJamie Madill		  yystos[*yyssp], yyvsp, yylsp, context);
5243044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org      YYPOPSTACK (1);
5244044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    }
5245044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#ifndef yyoverflow
5246044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yyss != yyssa)
5247044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTACK_FREE (yyss);
5248044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
5249044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#if YYERROR_VERBOSE
5250044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  if (yymsg != yymsgbuf)
5251044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    YYSTACK_FREE (yymsg);
5252044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org#endif
5253044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  /* Make sure YYID is used.  */
5254044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org  return YYID (yyresult);
5255044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
5256044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5257044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5258044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5259044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5260044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org
5261044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.orgint glslang_parse(TParseContext* context) {
5262044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org    return yyparse(context);
5263044a5cf8348594de2009331cfc02bd35477caf20alokp@chromium.org}
5264