translator: Scope all classes with "sh".

I was seeing an odd problem with our PoolAlloc conflicting with the
glslang/Vulkan TIntermNode, so the fix was to move everything to a
separate namespace.

The bison grammars are also regenerated. No functional changes.

BUG=angleproject:1576

Change-Id: I959c7afe4c092f0d458432c07b4dcee4d39513f3
Reviewed-on: https://chromium-review.googlesource.com/408267
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/64bit-lexer-safety.patch b/src/compiler/translator/64bit-lexer-safety.patch
index db3b2fa..e7e4037 100644
--- a/src/compiler/translator/64bit-lexer-safety.patch
+++ b/src/compiler/translator/64bit-lexer-safety.patch
@@ -1,6 +1,13 @@
---- a/src/compiler/glslang_lex.cpp
-+++ b/src/compiler/glslang_lex.cpp
-@@ -68,6 +68,7 @@ typedef int16_t flex_int16_t;
+diff --git a/src/compiler/translator/glslang_lex.cpp b/src/compiler/translator/glslang_lex.cpp
+index 1ba63df..2a206ab 100644
+--- a/src/compiler/translator/glslang_lex.cpp
++++ b/src/compiler/translator/glslang_lex.cpp
+@@ -1,4 +1,3 @@
+-#line 17 "./glslang.l"
+ //
+ // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+@@ -149,6 +148,7 @@ typedef int16_t flex_int16_t;
  typedef uint16_t flex_uint16_t;
  typedef int32_t flex_int32_t;
  typedef uint32_t flex_uint32_t;
@@ -8,10 +15,10 @@
  #else
  typedef signed char flex_int8_t;
  typedef short int flex_int16_t;
-@@ -191,6 +192,11 @@ typedef void* yyscan_t;
- typedef struct yy_buffer_state *YY_BUFFER_STATE;
- #endif
-
+@@ -335,6 +335,11 @@ typedef size_t yy_size_t;
+ 
+ 
+ 
 +#ifndef YY_TYPEDEF_YY_SIZE_T
 +#define YY_TYPEDEF_YY_SIZE_T
 +typedef size_t yy_size_t;
@@ -20,21 +27,96 @@
  #define EOB_ACT_CONTINUE_SCAN 0
  #define EOB_ACT_END_OF_FILE 1
  #define EOB_ACT_LAST_MATCH 2
-@@ -204,7 +210,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
+@@ -351,8 +356,8 @@ typedef size_t yy_size_t;
       */
      #define  YY_LESS_LINENO(n) \
              do { \
 -                int yyl;\
+-                for ( yyl = n; yyl < yyleng; ++yyl )\
 +                yy_size_t yyl;\
-                 for ( yyl = n; yyl < yyleng; ++yyl )\
++                for ( yyl = n; yyl < static_cast<yy_site_t>(yyleng); ++yyl )\
                      if ( yytext[yyl] == '\n' )\
                          --yylineno;\
-@@ -378,7 +379,7 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
-  */
- #define YY_DO_BEFORE_ACTION \
- 	yyg->yytext_ptr = yy_bp; \
--	yyleng = (size_t) (yy_cp - yy_bp); \
-+	yyleng = (yy_size_t) (yy_cp - yy_bp); \
- 	yyg->yy_hold_char = *yy_cp; \
- 	*yy_cp = '\0'; \
- 	yyg->yy_c_buf_p = yy_cp;
+             }while(0)
+@@ -1692,7 +1697,7 @@ yy_find_action:
+ 		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+ 			{
+ 			yy_size_t yyl;
+-			for ( yyl = 0; yyl < yyleng; ++yyl )
++			for ( yyl = 0; yyl < static_cast<yy_size_t>(yyleng); ++yyl )
+ 				if ( yytext[yyl] == '\n' )
+ 					   
+     do{ yylineno++;
+@@ -2655,7 +2660,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
+ 	else
+ 		{
+ 			int num_to_read =
+-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
++			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - static_cast<int>(number_to_move) - 1;
+ 
+ 		while ( num_to_read <= 0 )
+ 			{ /* Not enough room in the buffer - grow it. */
+@@ -2690,7 +2695,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
+ 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+ 
+ 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+-						number_to_move - 1;
++						static_cast<int>(number_to_move) - 1;
+ 
+ 			}
+ 
+@@ -2698,8 +2703,10 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
+ 			num_to_read = YY_READ_BUF_SIZE;
+ 
+ 		/* Read in more data. */
++        size_t result = 0;
+ 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+-			yyg->yy_n_chars, num_to_read );
++            result, num_to_read );
++        yyg->yy_n_chars = static_cast<int>(result);
+ 
+ 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
+ 		}
+@@ -2725,13 +2732,13 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
+ 
+ 	if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ 		/* Extend the array by 50%, plus the number we really need. */
+-		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
++		int new_size = yyg->yy_n_chars + static_cast<int>(number_to_move) + (yyg->yy_n_chars >> 1);
+ 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
+ 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+ 	}
+ 
+-	yyg->yy_n_chars += number_to_move;
++	yyg->yy_n_chars += static_cast<int>(number_to_move);
+ 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+ 
+@@ -3158,7 +3165,7 @@ static void yyensure_buffer_stack (yyscan_t yyscanner)
+ 		/* Increase the buffer to prepare for a possible push. */
+ 		yy_size_t grow_size = 8 /* arbitrary grow size */;
+ 
+-		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
++		num_to_alloc = static_cast<int>(yyg->yy_buffer_stack_max + grow_size);
+ 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
+ 								(yyg->yy_buffer_stack,
+ 								num_to_alloc * sizeof(struct yy_buffer_state*)
+@@ -3196,7 +3203,7 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscann
+ 	if ( ! b )
+ 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+ 
+-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
++	b->yy_buf_size = static_cast<int>(size) - 2;	/* "- 2" to take care of EOB's */
+ 	b->yy_buf_pos = b->yy_ch_buf = base;
+ 	b->yy_is_our_buffer = 0;
+ 	b->yy_input_file = NULL;
+@@ -3251,7 +3258,7 @@ YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yysc
+ 	if ( ! buf )
+ 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+ 
+-	for ( i = 0; i < _yybytes_len; ++i )
++	for ( i = 0; i < static_cast<yy_size_t>(_yybytes_len); ++i )
+ 		buf[i] = yybytes[i];
+ 
+ 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
diff --git a/src/compiler/translator/ASTMetadataHLSL.cpp b/src/compiler/translator/ASTMetadataHLSL.cpp
index 2b5e63a..ba991b7 100644
--- a/src/compiler/translator/ASTMetadataHLSL.cpp
+++ b/src/compiler/translator/ASTMetadataHLSL.cpp
@@ -11,6 +11,9 @@
 #include "compiler/translator/CallDAG.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -447,3 +450,5 @@
 
     return metadataList;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ASTMetadataHLSL.h b/src/compiler/translator/ASTMetadataHLSL.h
index 4795bc3..f8ed5af 100644
--- a/src/compiler/translator/ASTMetadataHLSL.h
+++ b/src/compiler/translator/ASTMetadataHLSL.h
@@ -12,6 +12,9 @@
 #include <set>
 #include <vector>
 
+namespace sh
+{
+
 class CallDAG;
 class TIntermNode;
 class TIntermIfElse;
@@ -55,4 +58,6 @@
 // Return the AST analysis result, in the order defined by the call DAG
 MetadataList CreateASTMetadataHLSL(TIntermNode *root, const CallDAG &callDag);
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_ASTMETADATAHLSL_H_
diff --git a/src/compiler/translator/ArrayReturnValueToOutParameter.cpp b/src/compiler/translator/ArrayReturnValueToOutParameter.cpp
index f2891cf..766f700 100644
--- a/src/compiler/translator/ArrayReturnValueToOutParameter.cpp
+++ b/src/compiler/translator/ArrayReturnValueToOutParameter.cpp
@@ -10,6 +10,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -210,3 +213,5 @@
 {
     ArrayReturnValueToOutParameterTraverser::apply(root, temporaryIndex);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ArrayReturnValueToOutParameter.h b/src/compiler/translator/ArrayReturnValueToOutParameter.h
index 983e203..e030f6f 100644
--- a/src/compiler/translator/ArrayReturnValueToOutParameter.h
+++ b/src/compiler/translator/ArrayReturnValueToOutParameter.h
@@ -9,8 +9,11 @@
 #ifndef COMPILER_TRANSLATOR_ARRAYRETURNVALUETOOUTPARAMETER_H_
 #define COMPILER_TRANSLATOR_ARRAYRETURNVALUETOOUTPARAMETER_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void ArrayReturnValueToOutParameter(TIntermNode *root, unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_ARRAYRETURNVALUETOOUTPARAMETER_H_
diff --git a/src/compiler/translator/BaseTypes.h b/src/compiler/translator/BaseTypes.h
index 9afb7d1..f0fc24e 100644
--- a/src/compiler/translator/BaseTypes.h
+++ b/src/compiler/translator/BaseTypes.h
@@ -13,6 +13,9 @@
 #include "common/debug.h"
 #include "GLSLANG/ShaderLang.h"
 
+namespace sh
+{
+
 //
 // Precision qualifiers
 //
@@ -759,4 +762,6 @@
     }
 }
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_BASETYPES_H_
diff --git a/src/compiler/translator/BreakVariableAliasingInInnerLoops.cpp b/src/compiler/translator/BreakVariableAliasingInInnerLoops.cpp
index aada0fa..018e72c 100644
--- a/src/compiler/translator/BreakVariableAliasingInInnerLoops.cpp
+++ b/src/compiler/translator/BreakVariableAliasingInInnerLoops.cpp
@@ -25,6 +25,9 @@
 // the bug only shows up with swizzles, and ternary assignment, whole array or whole structure
 // assignment don't need a workaround.
 
+namespace sh
+{
+
 namespace
 {
 
@@ -94,9 +97,6 @@
 
 }  // anonymous namespace
 
-namespace sh
-{
-
 void BreakVariableAliasingInInnerLoops(TIntermNode *root)
 {
     AliasingBreaker breaker;
diff --git a/src/compiler/translator/BuiltInFunctionEmulator.cpp b/src/compiler/translator/BuiltInFunctionEmulator.cpp
index 483fb44..152251f 100644
--- a/src/compiler/translator/BuiltInFunctionEmulator.cpp
+++ b/src/compiler/translator/BuiltInFunctionEmulator.cpp
@@ -9,6 +9,9 @@
 #include "compiler/translator/SymbolTable.h"
 #include "compiler/translator/Cache.h"
 
+namespace sh
+{
+
 class BuiltInFunctionEmulator::BuiltInFunctionEmulationMarker : public TIntermTraverser
 {
   public:
@@ -242,3 +245,5 @@
 {
     return FunctionId(mOp, new TType(*mParam1), new TType(*mParam2), new TType(*mParam3));
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/BuiltInFunctionEmulator.h b/src/compiler/translator/BuiltInFunctionEmulator.h
index 6976edf..db5c202 100644
--- a/src/compiler/translator/BuiltInFunctionEmulator.h
+++ b/src/compiler/translator/BuiltInFunctionEmulator.h
@@ -10,6 +10,9 @@
 #include "compiler/translator/InfoSink.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 //
 // This class decides which built-in functions need to be replaced with the
 // emulated ones.
@@ -82,4 +85,6 @@
     std::vector<FunctionId> mFunctions;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATOR_H_
diff --git a/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp b/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp
index 0c8e2d9..74397fb 100644
--- a/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp
+++ b/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp
@@ -11,6 +11,9 @@
 #include "compiler/translator/SymbolTable.h"
 #include "compiler/translator/VersionGLSL.h"
 
+namespace sh
+{
+
 void InitBuiltInAbsFunctionEmulatorForGLSLWorkarounds(BuiltInFunctionEmulator *emu,
                                                       sh::GLenum shaderType)
 {
@@ -248,3 +251,5 @@
         // clang-format on
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h b/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h
index 2bc5f2c..09fc85b 100644
--- a/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h
+++ b/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h
@@ -9,6 +9,8 @@
 
 #include "GLSLANG/ShaderLang.h"
 
+namespace sh
+{
 class BuiltInFunctionEmulator;
 
 //
@@ -28,5 +30,6 @@
 //
 void InitBuiltInFunctionEmulatorForGLSLMissingFunctions(BuiltInFunctionEmulator *emu, sh::GLenum shaderType,
                                                         int targetGLSLVersion);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATORGLSL_H_
diff --git a/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp b/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp
index 988f1e2..c51062e 100644
--- a/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp
+++ b/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp
@@ -10,6 +10,9 @@
 #include "compiler/translator/SymbolTable.h"
 #include "compiler/translator/VersionGLSL.h"
 
+namespace sh
+{
+
 void InitBuiltInIsnanFunctionEmulatorForHLSLWorkarounds(BuiltInFunctionEmulator *emu,
                                                         int targetGLSLVersion)
 {
@@ -492,3 +495,5 @@
         "}\n");
 
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h b/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h
index f47449d..48da73f 100644
--- a/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h
+++ b/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h
@@ -9,6 +9,9 @@
 
 #include "GLSLANG/ShaderLang.h"
 
+namespace sh
+{
+
 class BuiltInFunctionEmulator;
 
 void InitBuiltInFunctionEmulatorForHLSL(BuiltInFunctionEmulator *emu);
@@ -19,4 +22,6 @@
 void InitBuiltInIsnanFunctionEmulatorForHLSLWorkarounds(BuiltInFunctionEmulator *emu,
                                                         int targetGLSLVersion);
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATORHLSL_H_
diff --git a/src/compiler/translator/Cache.cpp b/src/compiler/translator/Cache.cpp
index 09c5be4..094e3ff 100644
--- a/src/compiler/translator/Cache.cpp
+++ b/src/compiler/translator/Cache.cpp
@@ -12,6 +12,9 @@
 #include "common/debug.h"
 #include "compiler/translator/Cache.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -97,3 +100,5 @@
 
     return type;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Cache.h b/src/compiler/translator/Cache.h
index 1d2abb7..9a5607f 100644
--- a/src/compiler/translator/Cache.h
+++ b/src/compiler/translator/Cache.h
@@ -16,6 +16,9 @@
 #include "compiler/translator/Types.h"
 #include "compiler/translator/PoolAlloc.h"
 
+namespace sh
+{
+
 class TCache
 {
   public:
@@ -87,4 +90,6 @@
     static TCache *sCache;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_CACHE_H_
diff --git a/src/compiler/translator/CallDAG.cpp b/src/compiler/translator/CallDAG.cpp
index 9810fa9..00aa833 100644
--- a/src/compiler/translator/CallDAG.cpp
+++ b/src/compiler/translator/CallDAG.cpp
@@ -11,6 +11,9 @@
 #include "compiler/translator/CallDAG.h"
 #include "compiler/translator/InfoSink.h"
 
+namespace sh
+{
+
 // The CallDAGCreator does all the processing required to create the CallDAG
 // structure so that the latter contains only the necessary variables.
 class CallDAG::CallDAGCreator : public TIntermTraverser
@@ -341,3 +344,5 @@
     creator.fillDataStructures(&mRecords, &mFunctionIdToIndex);
     return INITDAG_SUCCESS;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/CallDAG.h b/src/compiler/translator/CallDAG.h
index 9bcda07..90c0568 100644
--- a/src/compiler/translator/CallDAG.h
+++ b/src/compiler/translator/CallDAG.h
@@ -16,6 +16,8 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/VariableInfo.h"
 
+namespace sh
+{
 
 // The translator needs to analyze the the graph of the function calls
 // to run checks and analyses; since in GLSL recursion is not allowed
@@ -72,4 +74,6 @@
     class CallDAGCreator;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_CALLDAG_H_
diff --git a/src/compiler/translator/Common.h b/src/compiler/translator/Common.h
index 6022323..8533178 100644
--- a/src/compiler/translator/Common.h
+++ b/src/compiler/translator/Common.h
@@ -18,6 +18,9 @@
 #include "common/debug.h"
 #include "compiler/translator/PoolAlloc.h"
 
+namespace sh
+{
+
 struct TSourceLoc {
     int first_file;
     int first_line;
@@ -92,4 +95,6 @@
     return buffer;
 }
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_COMMON_H_
diff --git a/src/compiler/translator/ConstantUnion.cpp b/src/compiler/translator/ConstantUnion.cpp
index b4074bf..1ee3f64 100644
--- a/src/compiler/translator/ConstantUnion.cpp
+++ b/src/compiler/translator/ConstantUnion.cpp
@@ -11,6 +11,9 @@
 #include "common/mathutil.h"
 #include "compiler/translator/Diagnostics.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -620,3 +623,5 @@
 
     return returnValue;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ConstantUnion.h b/src/compiler/translator/ConstantUnion.h
index eec0f0f..f6222ce 100644
--- a/src/compiler/translator/ConstantUnion.h
+++ b/src/compiler/translator/ConstantUnion.h
@@ -12,6 +12,9 @@
 #include "compiler/translator/Common.h"
 #include "compiler/translator/BaseTypes.h"
 
+namespace sh
+{
+
 class TDiagnostics;
 
 class TConstantUnion
@@ -83,4 +86,6 @@
     TBasicType type;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_CONSTANTUNION_H_
diff --git a/src/compiler/translator/DeferGlobalInitializers.cpp b/src/compiler/translator/DeferGlobalInitializers.cpp
index 5a12238..1c58562 100644
--- a/src/compiler/translator/DeferGlobalInitializers.cpp
+++ b/src/compiler/translator/DeferGlobalInitializers.cpp
@@ -15,6 +15,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -187,3 +190,5 @@
     // Add the function with initialization and the call to that.
     traverser.insertInitFunction(root);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/DeferGlobalInitializers.h b/src/compiler/translator/DeferGlobalInitializers.h
index 85e55d9..261ec90 100644
--- a/src/compiler/translator/DeferGlobalInitializers.h
+++ b/src/compiler/translator/DeferGlobalInitializers.h
@@ -15,6 +15,9 @@
 
 class TIntermBlock;
 
+namespace sh
+{
 void DeferGlobalInitializers(TIntermBlock *root);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_DEFERGLOBALINITIALIZERS_H_
diff --git a/src/compiler/translator/Diagnostics.cpp b/src/compiler/translator/Diagnostics.cpp
index 6ba4679..3b41686 100644
--- a/src/compiler/translator/Diagnostics.cpp
+++ b/src/compiler/translator/Diagnostics.cpp
@@ -11,6 +11,9 @@
 #include "compiler/translator/Common.h"
 #include "compiler/translator/InfoSink.h"
 
+namespace sh
+{
+
 TDiagnostics::TDiagnostics(TInfoSink& infoSink) :
     mInfoSink(infoSink),
     mNumErrors(0),
@@ -79,3 +82,5 @@
 {
     writeInfo(severity(id), loc, message(id), text, "");
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Diagnostics.h b/src/compiler/translator/Diagnostics.h
index bb521da..25a8a3a 100644
--- a/src/compiler/translator/Diagnostics.h
+++ b/src/compiler/translator/Diagnostics.h
@@ -10,6 +10,9 @@
 #include "common/angleutils.h"
 #include "compiler/preprocessor/DiagnosticsBase.h"
 
+namespace sh
+{
+
 class TInfoSink;
 struct TSourceLoc;
 
@@ -45,4 +48,6 @@
     int mNumWarnings;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_DIAGNOSTICS_H_
diff --git a/src/compiler/translator/DirectiveHandler.cpp b/src/compiler/translator/DirectiveHandler.cpp
index f8081ec..073994d 100644
--- a/src/compiler/translator/DirectiveHandler.cpp
+++ b/src/compiler/translator/DirectiveHandler.cpp
@@ -12,6 +12,9 @@
 #include "common/debug.h"
 #include "compiler/translator/Diagnostics.h"
 
+namespace sh
+{
+
 static TBehavior getBehavior(const std::string& str)
 {
     const char kRequire[] = "require";
@@ -195,3 +198,5 @@
                                "version number", str, "not supported");
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/DirectiveHandler.h b/src/compiler/translator/DirectiveHandler.h
index 00eb491..a50b082 100644
--- a/src/compiler/translator/DirectiveHandler.h
+++ b/src/compiler/translator/DirectiveHandler.h
@@ -13,6 +13,8 @@
 #include "compiler/preprocessor/DirectiveHandlerBase.h"
 #include "GLSLANG/ShaderLang.h"
 
+namespace sh
+{
 class TDiagnostics;
 
 class TDirectiveHandler : public pp::DirectiveHandler, angle::NonCopyable
@@ -50,4 +52,6 @@
     bool mDebugShaderPrecisionSupported;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_DIRECTIVEHANDLER_H_
diff --git a/src/compiler/translator/EmulateGLFragColorBroadcast.cpp b/src/compiler/translator/EmulateGLFragColorBroadcast.cpp
index e34e1dc..a4eeb9b 100644
--- a/src/compiler/translator/EmulateGLFragColorBroadcast.cpp
+++ b/src/compiler/translator/EmulateGLFragColorBroadcast.cpp
@@ -14,6 +14,9 @@
 #include "compiler/translator/EmulateGLFragColorBroadcast.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -130,3 +133,5 @@
         }
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/EmulateGLFragColorBroadcast.h b/src/compiler/translator/EmulateGLFragColorBroadcast.h
index 627c4c6..09e8dae 100644
--- a/src/compiler/translator/EmulateGLFragColorBroadcast.h
+++ b/src/compiler/translator/EmulateGLFragColorBroadcast.h
@@ -15,8 +15,6 @@
 namespace sh
 {
 struct OutputVariable;
-}
-
 class TIntermNode;
 
 // Replace all gl_FragColor with gl_FragData[0], and in the end of main() function,
@@ -24,6 +22,7 @@
 // If gl_FragColor is in outputVariables, it is replaced by gl_FragData.
 void EmulateGLFragColorBroadcast(TIntermNode *root,
                                  int maxDrawBuffers,
-                                 std::vector<sh::OutputVariable> *outputVariables);
+                                 std::vector<OutputVariable> *outputVariables);
+}
 
 #endif  // COMPILER_TRANSLATOR_EMULATEGLFRAGCOLORBROADCAST_H_
diff --git a/src/compiler/translator/EmulatePrecision.cpp b/src/compiler/translator/EmulatePrecision.cpp
index 94cdf50..c3c4902 100644
--- a/src/compiler/translator/EmulatePrecision.cpp
+++ b/src/compiler/translator/EmulatePrecision.cpp
@@ -8,6 +8,9 @@
 
 #include <memory>
 
+namespace sh
+{
+
 namespace
 {
 
@@ -719,3 +722,5 @@
                     sh::IsGLSL130OrNewer(outputLanguage));
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/EmulatePrecision.h b/src/compiler/translator/EmulatePrecision.h
index 22ae217..deb49cd 100644
--- a/src/compiler/translator/EmulatePrecision.h
+++ b/src/compiler/translator/EmulatePrecision.h
@@ -18,6 +18,9 @@
 // need to write a huge number of variations of the emulated compound assignment
 // to every translated shader with emulation enabled.
 
+namespace sh
+{
+
 class EmulatePrecision : public TLValueTrackingTraverser
 {
   public:
@@ -64,4 +67,6 @@
     bool mDeclaringVariables;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_EMULATE_PRECISION_H_
diff --git a/src/compiler/translator/ExtensionGLSL.cpp b/src/compiler/translator/ExtensionGLSL.cpp
index d7f45f7..5b5dc58 100644
--- a/src/compiler/translator/ExtensionGLSL.cpp
+++ b/src/compiler/translator/ExtensionGLSL.cpp
@@ -10,6 +10,9 @@
 
 #include "compiler/translator/VersionGLSL.h"
 
+namespace sh
+{
+
 TExtensionGLSL::TExtensionGLSL(ShShaderOutput output)
     : TIntermTraverser(true, false, false), mTargetVersion(ShaderOutputTypeToGLSLVersion(output))
 {
@@ -98,3 +101,5 @@
             break;
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ExtensionGLSL.h b/src/compiler/translator/ExtensionGLSL.h
index 6bb84d6..3c2dbe0 100644
--- a/src/compiler/translator/ExtensionGLSL.h
+++ b/src/compiler/translator/ExtensionGLSL.h
@@ -14,6 +14,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 // Traverses the intermediate tree to determine which GLSL extensions are required
 // to support the shader.
 class TExtensionGLSL : public TIntermTraverser
@@ -36,4 +39,6 @@
     std::set<std::string> mRequiredExtensions;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_EXTENSIONGLSL_H_
diff --git a/src/compiler/translator/ForLoopUnroll.cpp b/src/compiler/translator/ForLoopUnroll.cpp
index 9aa86b4..58cce84 100644
--- a/src/compiler/translator/ForLoopUnroll.cpp
+++ b/src/compiler/translator/ForLoopUnroll.cpp
@@ -9,6 +9,9 @@
 #include "compiler/translator/ValidateLimitations.h"
 #include "angle_gl.h"
 
+namespace sh
+{
+
 bool ForLoopUnrollMarker::visitBinary(Visit, TIntermBinary *node)
 {
     if (mUnrollCondition != kSamplerArrayIndex)
@@ -95,3 +98,5 @@
         }
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ForLoopUnroll.h b/src/compiler/translator/ForLoopUnroll.h
index 9c49eca..cda89b2 100644
--- a/src/compiler/translator/ForLoopUnroll.h
+++ b/src/compiler/translator/ForLoopUnroll.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/LoopInfo.h"
 
+namespace sh
+{
+
 // This class detects for-loops that needs to be unrolled.
 // Currently we support two unroll conditions:
 //   1) kForLoopWithIntegerIndex: unroll if the index type is integer.
@@ -50,4 +53,6 @@
     bool mHasRunLoopValidation;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_FORLOOPUNROLL_H_
diff --git a/src/compiler/translator/InfoSink.cpp b/src/compiler/translator/InfoSink.cpp
index cd59658..e71fe51 100644
--- a/src/compiler/translator/InfoSink.cpp
+++ b/src/compiler/translator/InfoSink.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/InfoSink.h"
 
+namespace sh
+{
+
 void TInfoSinkBase::prefix(TPrefixType p) {
     switch(p) {
         case EPrefixNone:
@@ -52,3 +55,5 @@
     sink.append(m);
     sink.append("\n");
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/InfoSink.h b/src/compiler/translator/InfoSink.h
index f47fafa..b18e586 100644
--- a/src/compiler/translator/InfoSink.h
+++ b/src/compiler/translator/InfoSink.h
@@ -11,6 +11,9 @@
 #include <stdlib.h>
 #include "compiler/translator/Common.h"
 
+namespace sh
+{
+
 // Returns the fractional part of the given floating-point number.
 inline float fractionalPart(float f) {
   float intPart = 0.0f;
@@ -113,4 +116,6 @@
     TInfoSinkBase obj;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_INFOSINK_H_
diff --git a/src/compiler/translator/Initialize.cpp b/src/compiler/translator/Initialize.cpp
index db4ca8e..a0b35f6 100644
--- a/src/compiler/translator/Initialize.cpp
+++ b/src/compiler/translator/Initialize.cpp
@@ -16,6 +16,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "angle_gl.h"
 
+namespace sh
+{
+
 void InsertBuiltInFunctions(sh::GLenum type, ShShaderSpec spec, const ShBuiltInResources &resources, TSymbolTable &symbolTable)
 {
     const TType *voidType = TCache::getType(EbtVoid);
@@ -755,3 +758,5 @@
         ext_iter->second = EBhUndefined;
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Initialize.h b/src/compiler/translator/Initialize.h
index c43ce34..0f1b60b 100644
--- a/src/compiler/translator/Initialize.h
+++ b/src/compiler/translator/Initialize.h
@@ -11,6 +11,9 @@
 #include "compiler/translator/Compiler.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 void InsertBuiltInFunctions(sh::GLenum type, ShShaderSpec spec, const ShBuiltInResources &resources, TSymbolTable &table);
 
 void IdentifyBuiltIns(sh::GLenum type, ShShaderSpec spec,
@@ -26,4 +29,6 @@
 // extensions will remain unsupported.
 void ResetExtensionBehavior(TExtensionBehavior &extensionBehavior);
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_INITIALIZE_H_
diff --git a/src/compiler/translator/InitializeDll.cpp b/src/compiler/translator/InitializeDll.cpp
index 7139653..8990193 100644
--- a/src/compiler/translator/InitializeDll.cpp
+++ b/src/compiler/translator/InitializeDll.cpp
@@ -13,6 +13,9 @@
 
 #include <assert.h>
 
+namespace sh
+{
+
 bool InitProcess()
 {
     if (!InitializePoolIndex()) {
@@ -36,3 +39,5 @@
     FreePoolIndex();
     TCache::destroy();
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/InitializeDll.h b/src/compiler/translator/InitializeDll.h
index 4c40076..b2c787a 100644
--- a/src/compiler/translator/InitializeDll.h
+++ b/src/compiler/translator/InitializeDll.h
@@ -6,8 +6,11 @@
 #ifndef COMPILER_TRANSLATOR_INITIALIZEDLL_H_
 #define COMPILER_TRANSLATOR_INITIALIZEDLL_H_
 
+namespace sh
+{
 bool InitProcess();
 void DetachProcess();
+}  // namespace sh
 
 #endif // COMPILER_TRANSLATOR_INITIALIZEDLL_H_
 
diff --git a/src/compiler/translator/InitializeParseContext.cpp b/src/compiler/translator/InitializeParseContext.cpp
index c35cedb..67a248b 100644
--- a/src/compiler/translator/InitializeParseContext.cpp
+++ b/src/compiler/translator/InitializeParseContext.cpp
@@ -10,6 +10,9 @@
 
 #include <assert.h>
 
+namespace sh
+{
+
 TLSIndex GlobalParseContextIndex = TLS_INVALID_INDEX;
 
 bool InitializeParseContextIndex()
@@ -40,3 +43,4 @@
     return static_cast<TParseContext*>(GetTLSValue(GlobalParseContextIndex));
 }
 
+}  // namespace sh
diff --git a/src/compiler/translator/InitializeParseContext.h b/src/compiler/translator/InitializeParseContext.h
index 70dac70..9c315be 100644
--- a/src/compiler/translator/InitializeParseContext.h
+++ b/src/compiler/translator/InitializeParseContext.h
@@ -7,11 +7,15 @@
 #ifndef COMPILER_TRANSLATOR_INITIALIZEPARSECONTEXT_H_
 #define COMPILER_TRANSLATOR_INITIALIZEPARSECONTEXT_H_
 
+namespace sh
+{
+
 bool InitializeParseContextIndex();
 void FreeParseContextIndex();
 
 class TParseContext;
 extern void SetGlobalParseContext(TParseContext* context);
 extern TParseContext* GetGlobalParseContext();
+}  // namespace sh
 
 #endif // COMPILER_TRANSLATOR_INITIALIZEPARSECONTEXT_H_
diff --git a/src/compiler/translator/InitializeVariables.cpp b/src/compiler/translator/InitializeVariables.cpp
index 2deff0c..576b64c 100644
--- a/src/compiler/translator/InitializeVariables.cpp
+++ b/src/compiler/translator/InitializeVariables.cpp
@@ -11,6 +11,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/util.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -103,3 +106,5 @@
     VariableInitializer initializer(vars);
     root->traverse(&initializer);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/InitializeVariables.h b/src/compiler/translator/InitializeVariables.h
index dce1083..8083577 100644
--- a/src/compiler/translator/InitializeVariables.h
+++ b/src/compiler/translator/InitializeVariables.h
@@ -9,11 +9,14 @@
 
 #include <GLSLANG/ShaderLang.h>
 
+namespace sh
+{
 class TIntermNode;
 
 typedef std::vector<sh::ShaderVariable> InitVariableList;
 
 // This function cannot currently initialize structures containing arrays for an ESSL 1.00 backend.
 void InitializeVariables(TIntermNode *root, const InitVariableList &vars);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_INITIALIZEVARIABLES_H_
diff --git a/src/compiler/translator/IntermNode.cpp b/src/compiler/translator/IntermNode.cpp
index bbcd6a0..b91b43e 100644
--- a/src/compiler/translator/IntermNode.cpp
+++ b/src/compiler/translator/IntermNode.cpp
@@ -23,6 +23,9 @@
 #include "compiler/translator/SymbolTable.h"
 #include "compiler/translator/util.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -2876,3 +2879,5 @@
     bool originalBecomesChild = (originalStatus == OriginalNode::BECOMES_CHILD);
     mReplacements.push_back(NodeUpdateEntry(parent, original, replacement, originalBecomesChild));
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/IntermNode.h b/src/compiler/translator/IntermNode.h
index fcf9999..94811bd 100644
--- a/src/compiler/translator/IntermNode.h
+++ b/src/compiler/translator/IntermNode.h
@@ -27,6 +27,9 @@
 #include "compiler/translator/Operator.h"
 #include "compiler/translator/Types.h"
 
+namespace sh
+{
+
 class TDiagnostics;
 
 class TIntermTraverser;
@@ -1199,4 +1202,6 @@
     int mDepthLimit;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_INTERMNODE_H_
diff --git a/src/compiler/translator/IntermNodePatternMatcher.cpp b/src/compiler/translator/IntermNodePatternMatcher.cpp
index 4177b05..dd2054f 100644
--- a/src/compiler/translator/IntermNodePatternMatcher.cpp
+++ b/src/compiler/translator/IntermNodePatternMatcher.cpp
@@ -12,6 +12,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 IntermNodePatternMatcher::IntermNodePatternMatcher(const unsigned int mask) : mMask(mask)
 {
 }
@@ -102,3 +105,5 @@
     }
     return false;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/IntermNodePatternMatcher.h b/src/compiler/translator/IntermNodePatternMatcher.h
index 3e24f85..10f9657 100644
--- a/src/compiler/translator/IntermNodePatternMatcher.h
+++ b/src/compiler/translator/IntermNodePatternMatcher.h
@@ -11,6 +11,9 @@
 #ifndef COMPILER_TRANSLATOR_INTERMNODEPATTERNMATCHER_H_
 #define COMPILER_TRANSLATOR_INTERMNODEPATTERNMATCHER_H_
 
+namespace sh
+{
+
 class TIntermAggregate;
 class TIntermBinary;
 class TIntermNode;
@@ -50,4 +53,6 @@
     bool matchInternal(TIntermBinary *node, TIntermNode *parentNode);
 };
 
+}  // namespace sh
+
 #endif
diff --git a/src/compiler/translator/IntermTraverse.cpp b/src/compiler/translator/IntermTraverse.cpp
index c6a199e..7f91595 100644
--- a/src/compiler/translator/IntermTraverse.cpp
+++ b/src/compiler/translator/IntermTraverse.cpp
@@ -8,6 +8,9 @@
 #include "compiler/translator/InfoSink.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 void TIntermSymbol::traverse(TIntermTraverser *it)
 {
     it->traverseSymbol(this);
@@ -831,3 +834,5 @@
 {
     visitRaw(node);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Intermediate.cpp b/src/compiler/translator/Intermediate.cpp
index 8e6519d..9e3e455 100644
--- a/src/compiler/translator/Intermediate.cpp
+++ b/src/compiler/translator/Intermediate.cpp
@@ -15,6 +15,9 @@
 #include "compiler/translator/Intermediate.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 ////////////////////////////////////////////////////////////////////////////
 //
 // First set of functions are to help build the intermediate representation.
@@ -380,3 +383,5 @@
             return nullptr;
     }
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Intermediate.h b/src/compiler/translator/Intermediate.h
index a4fb7cc..d712bf9 100644
--- a/src/compiler/translator/Intermediate.h
+++ b/src/compiler/translator/Intermediate.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 struct TVectorFields
 {
     int offsets[4];
@@ -71,4 +74,6 @@
     void operator=(TIntermediate &); // prevent assignments
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_INTERMEDIATE_H_
diff --git a/src/compiler/translator/LoopInfo.cpp b/src/compiler/translator/LoopInfo.cpp
index e53bd4d..48fa244 100644
--- a/src/compiler/translator/LoopInfo.cpp
+++ b/src/compiler/translator/LoopInfo.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/LoopInfo.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -208,3 +211,4 @@
     pop_back();
 }
 
+}  // namespace sh
diff --git a/src/compiler/translator/LoopInfo.h b/src/compiler/translator/LoopInfo.h
index ec73fd0..393aa64 100644
--- a/src/compiler/translator/LoopInfo.h
+++ b/src/compiler/translator/LoopInfo.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 class TLoopIndexInfo
 {
   public:
@@ -76,5 +79,7 @@
     void pop();
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_LOOPINFO_H_
 
diff --git a/src/compiler/translator/OutputESSL.cpp b/src/compiler/translator/OutputESSL.cpp
index b41623a..2223b03 100644
--- a/src/compiler/translator/OutputESSL.cpp
+++ b/src/compiler/translator/OutputESSL.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/OutputESSL.h"
 
+namespace sh
+{
+
 TOutputESSL::TOutputESSL(TInfoSinkBase &objSink,
                          ShArrayIndexClampingStrategy clampingStrategy,
                          ShHashFunction64 hashFunction,
@@ -38,3 +41,5 @@
         out << getPrecisionString(precision);
     return true;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/OutputESSL.h b/src/compiler/translator/OutputESSL.h
index 796b1ec..0ef37ae 100644
--- a/src/compiler/translator/OutputESSL.h
+++ b/src/compiler/translator/OutputESSL.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/OutputGLSLBase.h"
 
+namespace sh
+{
+
 class TOutputESSL : public TOutputGLSLBase
 {
 public:
@@ -28,4 +31,6 @@
     bool mForceHighp;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_OUTPUTESSL_H_
diff --git a/src/compiler/translator/OutputGLSL.cpp b/src/compiler/translator/OutputGLSL.cpp
index 76a0012..6b2d59f 100644
--- a/src/compiler/translator/OutputGLSL.cpp
+++ b/src/compiler/translator/OutputGLSL.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/OutputGLSL.h"
 
+namespace sh
+{
+
 TOutputGLSL::TOutputGLSL(TInfoSinkBase& objSink,
                          ShArrayIndexClampingStrategy clampingStrategy,
                          ShHashFunction64 hashFunction,
@@ -102,3 +105,5 @@
 
     return name;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/OutputGLSL.h b/src/compiler/translator/OutputGLSL.h
index 1dbb759..a825a93 100644
--- a/src/compiler/translator/OutputGLSL.h
+++ b/src/compiler/translator/OutputGLSL.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/OutputGLSLBase.h"
 
+namespace sh
+{
+
 class TOutputGLSL : public TOutputGLSLBase
 {
   public:
@@ -27,4 +30,6 @@
     TString translateTextureFunction(TString &name) override;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_OUTPUTGLSL_H_
diff --git a/src/compiler/translator/OutputGLSLBase.cpp b/src/compiler/translator/OutputGLSLBase.cpp
index 172de43..86eb3d3 100644
--- a/src/compiler/translator/OutputGLSLBase.cpp
+++ b/src/compiler/translator/OutputGLSLBase.cpp
@@ -10,6 +10,9 @@
 
 #include <cfloat>
 
+namespace sh
+{
+
 namespace
 {
 TString arrayBrackets(const TType &type)
@@ -1347,3 +1350,5 @@
     }
     out << "}";
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/OutputGLSLBase.h b/src/compiler/translator/OutputGLSLBase.h
index 760d3c7..1f6ff99 100644
--- a/src/compiler/translator/OutputGLSLBase.h
+++ b/src/compiler/translator/OutputGLSLBase.h
@@ -13,6 +13,9 @@
 #include "compiler/translator/LoopInfo.h"
 #include "compiler/translator/ParseContext.h"
 
+namespace sh
+{
+
 class TOutputGLSLBase : public TIntermTraverser
 {
   public:
@@ -103,4 +106,6 @@
     ShCompileOptions mCompileOptions;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 3b97c42..5ef2e89 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -28,6 +28,9 @@
 #include "compiler/translator/blocklayout.h"
 #include "compiler/translator/util.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -72,9 +75,6 @@
 
 } // namespace
 
-namespace sh
-{
-
 OutputHLSL::OutputHLSL(sh::GLenum shaderType,
                        int shaderVersion,
                        const TExtensionBehavior &extensionBehavior,
@@ -2854,6 +2854,4 @@
     }
 }
 
-
-
-}
+}  // namespace sh
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index eb96d2a..4ca1e53 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -16,6 +16,9 @@
 #include "compiler/translator/ValidateGlobalInitializer.h"
 #include "compiler/translator/util.h"
 
+namespace sh
+{
+
 ///////////////////////////////////////////////////////////////////////
 //
 // Sub- vector and matrix fields
@@ -4454,3 +4457,5 @@
 
     return (error == 0) && (context->numErrors() == 0) ? 0 : 1;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ParseContext.h b/src/compiler/translator/ParseContext.h
index 27b53bb..cdc8075 100644
--- a/src/compiler/translator/ParseContext.h
+++ b/src/compiler/translator/ParseContext.h
@@ -14,6 +14,9 @@
 #include "compiler/translator/QualifierTypes.h"
 #include "compiler/preprocessor/Preprocessor.h"
 
+namespace sh
+{
+
 struct TMatrixFields
 {
     bool wholeRow;
@@ -430,4 +433,6 @@
 int PaParseStrings(
     size_t count, const char *const string[], const int length[], TParseContext *context);
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_PARSECONTEXT_H_
diff --git a/src/compiler/translator/PruneEmptyDeclarations.cpp b/src/compiler/translator/PruneEmptyDeclarations.cpp
index 133130d..7ec4347 100644
--- a/src/compiler/translator/PruneEmptyDeclarations.cpp
+++ b/src/compiler/translator/PruneEmptyDeclarations.cpp
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -106,3 +109,5 @@
 {
     PruneEmptyDeclarationsTraverser::apply(root);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/PruneEmptyDeclarations.h b/src/compiler/translator/PruneEmptyDeclarations.h
index 122e830..f036577 100644
--- a/src/compiler/translator/PruneEmptyDeclarations.h
+++ b/src/compiler/translator/PruneEmptyDeclarations.h
@@ -8,8 +8,11 @@
 #ifndef COMPILER_TRANSLATOR_PRUNEEMPTYDECLARATIONS_H_
 #define COMPILER_TRANSLATOR_PRUNEEMPTYDECLARATIONS_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void PruneEmptyDeclarations(TIntermNode *root);
+}
 
 #endif  // COMPILER_TRANSLATOR_PRUNEEMPTYDECLARATIONS_H_
diff --git a/src/compiler/translator/QualifierTypes.cpp b/src/compiler/translator/QualifierTypes.cpp
index cb62251..7918d1d 100644
--- a/src/compiler/translator/QualifierTypes.cpp
+++ b/src/compiler/translator/QualifierTypes.cpp
@@ -12,50 +12,6 @@
 
 namespace sh
 {
-TLayoutQualifier JoinLayoutQualifiers(TLayoutQualifier leftQualifier,
-                                      TLayoutQualifier rightQualifier,
-                                      const TSourceLoc &rightQualifierLocation,
-                                      TDiagnostics *diagnostics)
-{
-    TLayoutQualifier joinedQualifier = leftQualifier;
-
-    if (rightQualifier.location != -1)
-    {
-        joinedQualifier.location = rightQualifier.location;
-        ++joinedQualifier.locationsSpecified;
-    }
-    if (rightQualifier.matrixPacking != EmpUnspecified)
-    {
-        joinedQualifier.matrixPacking = rightQualifier.matrixPacking;
-    }
-    if (rightQualifier.blockStorage != EbsUnspecified)
-    {
-        joinedQualifier.blockStorage = rightQualifier.blockStorage;
-    }
-
-    for (size_t i = 0u; i < rightQualifier.localSize.size(); ++i)
-    {
-        if (rightQualifier.localSize[i] != -1)
-        {
-            if (joinedQualifier.localSize[i] != -1 &&
-                joinedQualifier.localSize[i] != rightQualifier.localSize[i])
-            {
-                diagnostics->error(rightQualifierLocation,
-                                   "Cannot have multiple different work group size specifiers",
-                                   getWorkGroupSizeString(i), "");
-            }
-            joinedQualifier.localSize[i] = rightQualifier.localSize[i];
-        }
-    }
-
-    if (rightQualifier.imageInternalFormat != EiifUnspecified)
-    {
-        joinedQualifier.imageInternalFormat = rightQualifier.imageInternalFormat;
-    }
-
-    return joinedQualifier;
-}
-}  // namespace sh
 
 namespace
 {
@@ -580,6 +536,50 @@
 }
 }  // namespace
 
+TLayoutQualifier JoinLayoutQualifiers(TLayoutQualifier leftQualifier,
+                                      TLayoutQualifier rightQualifier,
+                                      const TSourceLoc &rightQualifierLocation,
+                                      TDiagnostics *diagnostics)
+{
+    TLayoutQualifier joinedQualifier = leftQualifier;
+
+    if (rightQualifier.location != -1)
+    {
+        joinedQualifier.location = rightQualifier.location;
+        ++joinedQualifier.locationsSpecified;
+    }
+    if (rightQualifier.matrixPacking != EmpUnspecified)
+    {
+        joinedQualifier.matrixPacking = rightQualifier.matrixPacking;
+    }
+    if (rightQualifier.blockStorage != EbsUnspecified)
+    {
+        joinedQualifier.blockStorage = rightQualifier.blockStorage;
+    }
+
+    for (size_t i = 0u; i < rightQualifier.localSize.size(); ++i)
+    {
+        if (rightQualifier.localSize[i] != -1)
+        {
+            if (joinedQualifier.localSize[i] != -1 &&
+                joinedQualifier.localSize[i] != rightQualifier.localSize[i])
+            {
+                diagnostics->error(rightQualifierLocation,
+                                   "Cannot have multiple different work group size specifiers",
+                                   getWorkGroupSizeString(i), "");
+            }
+            joinedQualifier.localSize[i] = rightQualifier.localSize[i];
+        }
+    }
+
+    if (rightQualifier.imageInternalFormat != EiifUnspecified)
+    {
+        joinedQualifier.imageInternalFormat = rightQualifier.imageInternalFormat;
+    }
+
+    return joinedQualifier;
+}
+
 unsigned int TInvariantQualifierWrapper::getRank() const
 {
     return 0u;
@@ -711,3 +711,5 @@
     }
     return GetVariableTypeQualifierFromSortedSequence(mQualifiers, diagnostics);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/QualifierTypes.h b/src/compiler/translator/QualifierTypes.h
index a65b119..10bdeed 100644
--- a/src/compiler/translator/QualifierTypes.h
+++ b/src/compiler/translator/QualifierTypes.h
@@ -11,15 +11,14 @@
 #include "compiler/translator/BaseTypes.h"
 #include "compiler/translator/Types.h"
 
-class TDiagnostics;
-
 namespace sh
 {
+class TDiagnostics;
+
 TLayoutQualifier JoinLayoutQualifiers(TLayoutQualifier leftQualifier,
                                       TLayoutQualifier rightQualifier,
                                       const TSourceLoc &rightQualifierLocation,
                                       TDiagnostics *diagnostics);
-}  // namespace sh
 
 enum TQualifierType
 {
@@ -66,7 +65,7 @@
     ~TInterpolationQualifierWrapper() {}
 
     TQualifierType getType() const { return QtInterpolation; }
-    TString getQualifierString() const { return ::getQualifierString(mInterpolationQualifier); }
+    TString getQualifierString() const { return sh::getQualifierString(mInterpolationQualifier); }
     TQualifier getQualifier() const { return mInterpolationQualifier; }
     unsigned int getRank() const;
 
@@ -102,7 +101,7 @@
     ~TStorageQualifierWrapper() {}
 
     TQualifierType getType() const { return QtStorage; }
-    TString getQualifierString() const { return ::getQualifierString(mStorageQualifier); }
+    TString getQualifierString() const { return sh::getQualifierString(mStorageQualifier); }
     TQualifier getQualifier() const { return mStorageQualifier; }
     unsigned int getRank() const;
 
@@ -120,7 +119,7 @@
     ~TPrecisionQualifierWrapper() {}
 
     TQualifierType getType() const { return QtPrecision; }
-    TString getQualifierString() const { return ::getPrecisionString(mPrecisionQualifier); }
+    TString getQualifierString() const { return sh::getPrecisionString(mPrecisionQualifier); }
     TPrecision getQualifier() const { return mPrecisionQualifier; }
     unsigned int getRank() const;
 
@@ -138,7 +137,7 @@
     ~TMemoryQualifierWrapper() {}
 
     TQualifierType getType() const { return QtMemory; }
-    TString getQualifierString() const { return ::getQualifierString(mMemoryQualifier); }
+    TString getQualifierString() const { return sh::getQualifierString(mMemoryQualifier); }
     TQualifier getQualifier() const { return mMemoryQualifier; }
     unsigned int getRank() const;
 
@@ -187,4 +186,6 @@
     int mShaderVersion;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_QUALIFIER_TYPES_H_
diff --git a/src/compiler/translator/RecordConstantPrecision.cpp b/src/compiler/translator/RecordConstantPrecision.cpp
index 6eca229..6b8515a 100644
--- a/src/compiler/translator/RecordConstantPrecision.cpp
+++ b/src/compiler/translator/RecordConstantPrecision.cpp
@@ -18,6 +18,9 @@
 #include "compiler/translator/InfoSink.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -160,3 +163,5 @@
     }
     while (traverser.foundHigherPrecisionConstant());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RecordConstantPrecision.h b/src/compiler/translator/RecordConstantPrecision.h
index 2cd401b..a62831e 100644
--- a/src/compiler/translator/RecordConstantPrecision.h
+++ b/src/compiler/translator/RecordConstantPrecision.h
@@ -16,8 +16,11 @@
 #ifndef COMPILER_TRANSLATOR_RECORDCONSTANTPRECISION_H_
 #define COMPILER_TRANSLATOR_RECORDCONSTANTPRECISION_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void RecordConstantPrecision(TIntermNode *root, unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif   // COMPILER_TRANSLATOR_RECORDCONSTANTPRECISION_H_
diff --git a/src/compiler/translator/RegenerateStructNames.cpp b/src/compiler/translator/RegenerateStructNames.cpp
index 1a7d8aa..a01d79a 100644
--- a/src/compiler/translator/RegenerateStructNames.cpp
+++ b/src/compiler/translator/RegenerateStructNames.cpp
@@ -7,6 +7,9 @@
 #include "common/debug.h"
 #include "compiler/translator/RegenerateStructNames.h"
 
+namespace sh
+{
+
 void RegenerateStructNames::visitSymbol(TIntermSymbol *symbol)
 {
     ASSERT(symbol);
@@ -69,3 +72,5 @@
     --mScopeDepth;
     return false;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RegenerateStructNames.h b/src/compiler/translator/RegenerateStructNames.h
index a910135..86c5060 100644
--- a/src/compiler/translator/RegenerateStructNames.h
+++ b/src/compiler/translator/RegenerateStructNames.h
@@ -12,6 +12,9 @@
 
 #include <set>
 
+namespace sh
+{
+
 class RegenerateStructNames : public TIntermTraverser
 {
   public:
@@ -38,4 +41,6 @@
     std::set<int> mDeclaredGlobalStructs;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_REGENERATESTRUCTNAMES_H_
diff --git a/src/compiler/translator/RemoveDynamicIndexing.cpp b/src/compiler/translator/RemoveDynamicIndexing.cpp
index ad2d08a..31914dc 100644
--- a/src/compiler/translator/RemoveDynamicIndexing.cpp
+++ b/src/compiler/translator/RemoveDynamicIndexing.cpp
@@ -14,6 +14,9 @@
 #include "compiler/translator/IntermNodePatternMatcher.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -506,3 +509,5 @@
     traverser.insertHelperDefinitions(root);
     traverser.updateTree();
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RemoveDynamicIndexing.h b/src/compiler/translator/RemoveDynamicIndexing.h
index ae3a93c..06305d0 100644
--- a/src/compiler/translator/RemoveDynamicIndexing.h
+++ b/src/compiler/translator/RemoveDynamicIndexing.h
@@ -10,6 +10,9 @@
 #ifndef COMPILER_TRANSLATOR_REMOVEDYNAMICINDEXING_H_
 #define COMPILER_TRANSLATOR_REMOVEDYNAMICINDEXING_H_
 
+namespace sh
+{
+
 class TIntermNode;
 class TSymbolTable;
 
@@ -18,4 +21,6 @@
                            const TSymbolTable &symbolTable,
                            int shaderVersion);
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_REMOVEDYNAMICINDEXING_H_
diff --git a/src/compiler/translator/RemovePow.cpp b/src/compiler/translator/RemovePow.cpp
index 4b0fe69..192084c 100644
--- a/src/compiler/translator/RemovePow.cpp
+++ b/src/compiler/translator/RemovePow.cpp
@@ -13,6 +13,9 @@
 #include "compiler/translator/InfoSink.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -92,3 +95,5 @@
     }
     while (traverser.needAnotherIteration());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RemovePow.h b/src/compiler/translator/RemovePow.h
index 40f9d67..1e2f4e1 100644
--- a/src/compiler/translator/RemovePow.h
+++ b/src/compiler/translator/RemovePow.h
@@ -11,8 +11,11 @@
 #ifndef COMPILER_TRANSLATOR_REMOVEPOW_H_
 #define COMPILER_TRANSLATOR_REMOVEPOW_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void RemovePow(TIntermNode *root);
+}  // namespace sh
 
 #endif   // COMPILER_TRANSLATOR_REMOVEPOW_H_
diff --git a/src/compiler/translator/RemoveSwitchFallThrough.cpp b/src/compiler/translator/RemoveSwitchFallThrough.cpp
index df8ce1e..dd995af 100644
--- a/src/compiler/translator/RemoveSwitchFallThrough.cpp
+++ b/src/compiler/translator/RemoveSwitchFallThrough.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/RemoveSwitchFallThrough.h"
 
+namespace sh
+{
+
 TIntermBlock *RemoveSwitchFallThrough::removeFallThrough(TIntermBlock *statementList)
 {
     RemoveSwitchFallThrough rm(statementList);
@@ -167,3 +170,5 @@
     mLastStatementWasBreak = true;
     return false;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RemoveSwitchFallThrough.h b/src/compiler/translator/RemoveSwitchFallThrough.h
index 171c51b..fd8bf4f 100644
--- a/src/compiler/translator/RemoveSwitchFallThrough.h
+++ b/src/compiler/translator/RemoveSwitchFallThrough.h
@@ -9,6 +9,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 class RemoveSwitchFallThrough : public TIntermTraverser
 {
   public:
@@ -42,4 +45,6 @@
     std::vector<TIntermBlock *> mCasesSharingBreak;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_REMOVESWITCHFALLTHROUGH_H_
diff --git a/src/compiler/translator/RewriteDoWhile.cpp b/src/compiler/translator/RewriteDoWhile.cpp
index 7336e5c..7999cbf 100644
--- a/src/compiler/translator/RewriteDoWhile.cpp
+++ b/src/compiler/translator/RewriteDoWhile.cpp
@@ -11,6 +11,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -152,3 +155,5 @@
 
     root->traverse(&rewriter);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/RewriteDoWhile.h b/src/compiler/translator/RewriteDoWhile.h
index f6ec1ca..91a7958 100644
--- a/src/compiler/translator/RewriteDoWhile.h
+++ b/src/compiler/translator/RewriteDoWhile.h
@@ -10,7 +10,10 @@
 #ifndef COMPILER_TRANSLATOR_REWRITEDOWHILE_H_
 #define COMPILER_TRANSLATOR_REWRITEDOWHILE_H_
 
+namespace sh
+{
 class TIntermNode;
 void RewriteDoWhile(TIntermNode *root, unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_REWRITEDOWHILE_H_
diff --git a/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp b/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp
index b2d33fb..5afa0d3 100644
--- a/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp
+++ b/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp
@@ -17,6 +17,9 @@
 #include "common/angleutils.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -298,4 +301,6 @@
 {
     ScalarizeArgsTraverser scalarizer(shaderType, fragmentPrecisionHigh, temporaryIndex);
     root->traverse(&scalarizer);
-}
\ No newline at end of file
+}
+
+}  // namespace sh
diff --git a/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h b/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h
index a168abf..14bbbe1 100644
--- a/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h
+++ b/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h
@@ -13,11 +13,14 @@
 
 #include "GLSLANG/ShaderLang.h"
 
+namespace sh
+{
 class TIntermBlock;
 
 void ScalarizeVecAndMatConstructorArgs(TIntermBlock *root,
                                        sh::GLenum shaderType,
                                        bool fragmentPrecisionHigh,
                                        unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_SCALARIZEVECANDMATCONSTRUCTORARGS_H_
diff --git a/src/compiler/translator/SeparateArrayInitialization.cpp b/src/compiler/translator/SeparateArrayInitialization.cpp
index 2c853e3..98e010a 100644
--- a/src/compiler/translator/SeparateArrayInitialization.cpp
+++ b/src/compiler/translator/SeparateArrayInitialization.cpp
@@ -20,6 +20,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/OutputHLSL.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -84,3 +87,5 @@
 {
     SeparateArrayInitTraverser::apply(root);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SeparateArrayInitialization.h b/src/compiler/translator/SeparateArrayInitialization.h
index d16357a..038d38a 100644
--- a/src/compiler/translator/SeparateArrayInitialization.h
+++ b/src/compiler/translator/SeparateArrayInitialization.h
@@ -18,8 +18,11 @@
 #ifndef COMPILER_TRANSLATOR_SEPARATEARRAYINITIALIZATION_H_
 #define COMPILER_TRANSLATOR_SEPARATEARRAYINITIALIZATION_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void SeparateArrayInitialization(TIntermNode *root);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_SEPARATEARRAYINITIALIZATION_H_
diff --git a/src/compiler/translator/SeparateDeclarations.cpp b/src/compiler/translator/SeparateDeclarations.cpp
index a6aab22..4d38353 100644
--- a/src/compiler/translator/SeparateDeclarations.cpp
+++ b/src/compiler/translator/SeparateDeclarations.cpp
@@ -17,6 +17,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -71,3 +74,5 @@
 {
     SeparateDeclarationsTraverser::apply(root);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SeparateDeclarations.h b/src/compiler/translator/SeparateDeclarations.h
index 77913ab..2c2611a 100644
--- a/src/compiler/translator/SeparateDeclarations.h
+++ b/src/compiler/translator/SeparateDeclarations.h
@@ -16,8 +16,11 @@
 #ifndef COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_
 #define COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void SeparateDeclarations(TIntermNode *root);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_SEPARATEDECLARATIONS_H_
diff --git a/src/compiler/translator/SeparateExpressionsReturningArrays.cpp b/src/compiler/translator/SeparateExpressionsReturningArrays.cpp
index 44bf554..0f7c404 100644
--- a/src/compiler/translator/SeparateExpressionsReturningArrays.cpp
+++ b/src/compiler/translator/SeparateExpressionsReturningArrays.cpp
@@ -14,6 +14,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/IntermNodePatternMatcher.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -137,3 +140,5 @@
     }
     while (traverser.foundArrayExpression());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SeparateExpressionsReturningArrays.h b/src/compiler/translator/SeparateExpressionsReturningArrays.h
index b178ebb..d0c73dc 100644
--- a/src/compiler/translator/SeparateExpressionsReturningArrays.h
+++ b/src/compiler/translator/SeparateExpressionsReturningArrays.h
@@ -12,8 +12,11 @@
 #ifndef COMPILER_TRANSLATOR_SEPARATEEXPRESSIONSRETURNINGARRAYS_H_
 #define COMPILER_TRANSLATOR_SEPARATEEXPRESSIONSRETURNINGARRAYS_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void SeparateExpressionsReturningArrays(TIntermNode *root, unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif // COMPILER_TRANSLATOR_SEPARATEEXPRESSIONSRETURNINGARRAYS_H_
diff --git a/src/compiler/translator/SimplifyLoopConditions.cpp b/src/compiler/translator/SimplifyLoopConditions.cpp
index b8cc976..399480f 100644
--- a/src/compiler/translator/SimplifyLoopConditions.cpp
+++ b/src/compiler/translator/SimplifyLoopConditions.cpp
@@ -13,6 +13,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/IntermNodePatternMatcher.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -278,3 +281,5 @@
             traverser.updateTree();
     } while (traverser.foundLoopToChange());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SimplifyLoopConditions.h b/src/compiler/translator/SimplifyLoopConditions.h
index b8802aa..968089d 100644
--- a/src/compiler/translator/SimplifyLoopConditions.h
+++ b/src/compiler/translator/SimplifyLoopConditions.h
@@ -11,6 +11,8 @@
 #ifndef COMPILER_TRANSLATOR_SIMPLIFYLOOPCONDITIONS_H_
 #define COMPILER_TRANSLATOR_SIMPLIFYLOOPCONDITIONS_H_
 
+namespace sh
+{
 class TIntermNode;
 class TSymbolTable;
 
@@ -19,5 +21,6 @@
                             unsigned int *temporaryIndex,
                             const TSymbolTable &symbolTable,
                             int shaderVersion);
+}  // namespace sh
 
 #endif  // COMPILER_TRANSLATOR_SIMPLIFYLOOPCONDITIONS_H_
diff --git a/src/compiler/translator/SplitSequenceOperator.cpp b/src/compiler/translator/SplitSequenceOperator.cpp
index e0d28b9..4c63b59 100644
--- a/src/compiler/translator/SplitSequenceOperator.cpp
+++ b/src/compiler/translator/SplitSequenceOperator.cpp
@@ -14,6 +14,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/IntermNodePatternMatcher.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -151,3 +154,5 @@
             traverser.updateTree();
     } while (traverser.foundExpressionToSplit());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SplitSequenceOperator.h b/src/compiler/translator/SplitSequenceOperator.h
index 4a46fe3..6df9d45 100644
--- a/src/compiler/translator/SplitSequenceOperator.h
+++ b/src/compiler/translator/SplitSequenceOperator.h
@@ -12,6 +12,9 @@
 #ifndef COMPILER_TRANSLATOR_SPLITSEQUENCEOPERATOR_H_
 #define COMPILER_TRANSLATOR_SPLITSEQUENCEOPERATOR_H_
 
+namespace sh
+{
+
 class TIntermNode;
 class TSymbolTable;
 
@@ -21,4 +24,6 @@
                            const TSymbolTable &symbolTable,
                            int shaderVersion);
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_SPLITSEQUENCEOPERATOR_H_
diff --git a/src/compiler/translator/SymbolTable.cpp b/src/compiler/translator/SymbolTable.cpp
index 92121e8..34ef025 100644
--- a/src/compiler/translator/SymbolTable.cpp
+++ b/src/compiler/translator/SymbolTable.cpp
@@ -19,6 +19,9 @@
 #include <stdio.h>
 #include <algorithm>
 
+namespace sh
+{
+
 int TSymbolTable::uniqueIdCounter = 0;
 
 TSymbol::TSymbol(const TString *n) : uniqueId(TSymbolTable::nextUniqueId()), name(n)
@@ -358,3 +361,5 @@
     }
     return prec;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/SymbolTable.h b/src/compiler/translator/SymbolTable.h
index 51a82f7..439d6b4 100644
--- a/src/compiler/translator/SymbolTable.h
+++ b/src/compiler/translator/SymbolTable.h
@@ -38,6 +38,9 @@
 #include "compiler/translator/InfoSink.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 // Symbol base class. (Can build functions or variables out of these...)
 class TSymbol : angle::NonCopyable
 {
@@ -538,4 +541,6 @@
     static int uniqueIdCounter;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_SYMBOLTABLE_H_
diff --git a/src/compiler/translator/Types.cpp b/src/compiler/translator/Types.cpp
index 7ae004e..af79d3e 100644
--- a/src/compiler/translator/Types.cpp
+++ b/src/compiler/translator/Types.cpp
@@ -16,6 +16,9 @@
 #include <algorithm>
 #include <climits>
 
+namespace sh
+{
+
 const char* getBasicString(TBasicType t)
 {
     switch (t)
@@ -557,3 +560,5 @@
         maxNesting = std::max(maxNesting, (*mFields)[i]->type()->getDeepestStructNesting());
     return 1 + maxNesting;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/Types.h b/src/compiler/translator/Types.h
index 22751f7..fc26d5f 100644
--- a/src/compiler/translator/Types.h
+++ b/src/compiler/translator/Types.h
@@ -13,6 +13,9 @@
 #include "compiler/translator/BaseTypes.h"
 #include "compiler/translator/Common.h"
 
+namespace sh
+{
+
 struct TPublicType;
 class TType;
 class TSymbol;
@@ -535,16 +538,16 @@
 
     const char *getBasicString() const
     {
-        return ::getBasicString(type);
+        return sh::getBasicString(type);
     }
 
     const char *getPrecisionString() const
     {
-        return ::getPrecisionString(precision);
+        return sh::getPrecisionString(precision);
     }
     const char *getQualifierString() const
     {
-        return ::getQualifierString(qualifier);
+        return sh::getQualifierString(qualifier);
     }
 
     const char *getBuiltInTypeNameString() const;
@@ -765,4 +768,6 @@
     }
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_TYPES_H_
diff --git a/src/compiler/translator/UnfoldShortCircuitAST.cpp b/src/compiler/translator/UnfoldShortCircuitAST.cpp
index e57681e..b6a355a 100644
--- a/src/compiler/translator/UnfoldShortCircuitAST.cpp
+++ b/src/compiler/translator/UnfoldShortCircuitAST.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/UnfoldShortCircuitAST.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -52,3 +55,5 @@
     }
     return true;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/UnfoldShortCircuitAST.h b/src/compiler/translator/UnfoldShortCircuitAST.h
index b92a4e9..ac18bbf 100644
--- a/src/compiler/translator/UnfoldShortCircuitAST.h
+++ b/src/compiler/translator/UnfoldShortCircuitAST.h
@@ -13,6 +13,9 @@
 #include "common/angleutils.h"
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 // This traverser identifies all the short circuit binary  nodes that need to
 // be replaced, and creates the corresponding replacement nodes. However,
 // the actual replacements happen after the traverse through updateTree().
@@ -28,4 +31,6 @@
     bool visitBinary(Visit visit, TIntermBinary *) override;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_UNFOLDSHORTCIRCUITAST_H_
diff --git a/src/compiler/translator/UnfoldShortCircuitToIf.cpp b/src/compiler/translator/UnfoldShortCircuitToIf.cpp
index a221bdf..22fa542 100644
--- a/src/compiler/translator/UnfoldShortCircuitToIf.cpp
+++ b/src/compiler/translator/UnfoldShortCircuitToIf.cpp
@@ -13,6 +13,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/IntermNodePatternMatcher.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -180,3 +183,5 @@
     }
     while (traverser.foundShortCircuit());
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/UnfoldShortCircuitToIf.h b/src/compiler/translator/UnfoldShortCircuitToIf.h
index 0fe37b7..24ff289 100644
--- a/src/compiler/translator/UnfoldShortCircuitToIf.h
+++ b/src/compiler/translator/UnfoldShortCircuitToIf.h
@@ -11,8 +11,11 @@
 #ifndef COMPILER_TRANSLATOR_UNFOLDSHORTCIRCUIT_H_
 #define COMPILER_TRANSLATOR_UNFOLDSHORTCIRCUIT_H_
 
+namespace sh
+{
 class TIntermNode;
 
 void UnfoldShortCircuitToIf(TIntermNode *root, unsigned int *temporaryIndex);
+}  // namespace sh
 
 #endif   // COMPILER_TRANSLATOR_UNFOLDSHORTCIRCUIT_H_
diff --git a/src/compiler/translator/ValidateGlobalInitializer.cpp b/src/compiler/translator/ValidateGlobalInitializer.cpp
index 2461b6a..d5b1b3b 100644
--- a/src/compiler/translator/ValidateGlobalInitializer.cpp
+++ b/src/compiler/translator/ValidateGlobalInitializer.cpp
@@ -8,6 +8,9 @@
 
 #include "compiler/translator/ParseContext.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -110,3 +113,4 @@
     return validate.isValid();
 }
 
+}  // namespace sh
diff --git a/src/compiler/translator/ValidateGlobalInitializer.h b/src/compiler/translator/ValidateGlobalInitializer.h
index c3d2a47..89b4b11 100644
--- a/src/compiler/translator/ValidateGlobalInitializer.h
+++ b/src/compiler/translator/ValidateGlobalInitializer.h
@@ -7,10 +7,15 @@
 #ifndef COMPILER_TRANSLATOR_VALIDATEGLOBALINITIALIZER_H_
 #define COMPILER_TRANSLATOR_VALIDATEGLOBALINITIALIZER_H_
 
+namespace sh
+{
+
 class TIntermTyped;
 class TParseContext;
 
 // Returns true if the initializer is valid.
 bool ValidateGlobalInitializer(TIntermTyped *initializer, const TParseContext *context, bool *warning);
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_VALIDATEGLOBALINITIALIZER_H_
diff --git a/src/compiler/translator/ValidateLimitations.cpp b/src/compiler/translator/ValidateLimitations.cpp
index 660436b..75a0c51 100644
--- a/src/compiler/translator/ValidateLimitations.cpp
+++ b/src/compiler/translator/ValidateLimitations.cpp
@@ -10,6 +10,9 @@
 #include "compiler/translator/ParseContext.h"
 #include "angle_gl.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -496,3 +499,4 @@
     return valid;
 }
 
+}  // namespace sh
diff --git a/src/compiler/translator/ValidateLimitations.h b/src/compiler/translator/ValidateLimitations.h
index 666e38f..4c84f9d 100644
--- a/src/compiler/translator/ValidateLimitations.h
+++ b/src/compiler/translator/ValidateLimitations.h
@@ -10,6 +10,9 @@
 #include "compiler/translator/IntermNode.h"
 #include "compiler/translator/LoopInfo.h"
 
+namespace sh
+{
+
 class TInfoSinkBase;
 
 // Traverses intermediate tree to ensure that the shader does not exceed the
@@ -60,4 +63,6 @@
     bool mValidateInnerLoops;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_VALIDATELIMITATIONS_H_
diff --git a/src/compiler/translator/ValidateMaxParameters.cpp b/src/compiler/translator/ValidateMaxParameters.cpp
index 00b3c9b..f97f7a9 100644
--- a/src/compiler/translator/ValidateMaxParameters.cpp
+++ b/src/compiler/translator/ValidateMaxParameters.cpp
@@ -7,6 +7,9 @@
 
 #include "compiler/translator/ValidateMaxParameters.h"
 
+namespace sh
+{
+
 ValidateMaxParameters::ValidateMaxParameters(unsigned int maxParameters)
     : TIntermTraverser(true, false, false), mMaxParameters(maxParameters), mValid(true)
 {
@@ -33,3 +36,5 @@
     root->traverse(&argsTraverser);
     return argsTraverser.mValid;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ValidateMaxParameters.h b/src/compiler/translator/ValidateMaxParameters.h
index 87916af..fdd0b8d 100644
--- a/src/compiler/translator/ValidateMaxParameters.h
+++ b/src/compiler/translator/ValidateMaxParameters.h
@@ -10,6 +10,9 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
+
 class ValidateMaxParameters : public TIntermTraverser
 {
   public:
@@ -26,4 +29,6 @@
     bool mValid;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_VALIDATEMAXPARAMETERS_H_
diff --git a/src/compiler/translator/ValidateOutputs.cpp b/src/compiler/translator/ValidateOutputs.cpp
index 9f5f8f5..e48da8a 100644
--- a/src/compiler/translator/ValidateOutputs.cpp
+++ b/src/compiler/translator/ValidateOutputs.cpp
@@ -9,6 +9,9 @@
 #include "compiler/translator/InitializeParseContext.h"
 #include "compiler/translator/ParseContext.h"
 
+namespace sh
+{
+
 namespace
 {
 void error(int *errorCount, TInfoSinkBase &sink, const TIntermSymbol &symbol, const char *reason)
@@ -106,3 +109,5 @@
     }
     return errorCount;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ValidateOutputs.h b/src/compiler/translator/ValidateOutputs.h
index 0122ca2..0788f4e 100644
--- a/src/compiler/translator/ValidateOutputs.h
+++ b/src/compiler/translator/ValidateOutputs.h
@@ -12,6 +12,9 @@
 
 #include <set>
 
+namespace sh
+{
+
 class TInfoSinkBase;
 
 class ValidateOutputs : public TIntermTraverser
@@ -33,4 +36,6 @@
     std::set<std::string> mVisitedSymbols;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_VALIDATEOUTPUTS_H_
diff --git a/src/compiler/translator/ValidateSwitch.cpp b/src/compiler/translator/ValidateSwitch.cpp
index 8fbd832..9bcd8f5 100644
--- a/src/compiler/translator/ValidateSwitch.cpp
+++ b/src/compiler/translator/ValidateSwitch.cpp
@@ -8,6 +8,9 @@
 
 #include "compiler/translator/ParseContext.h"
 
+namespace sh
+{
+
 bool ValidateSwitch::validate(TBasicType switchType,
                               TParseContext *context,
                               TIntermBlock *statementList,
@@ -208,3 +211,5 @@
     return !mStatementBeforeCase && !mLastStatementWasCase && !mCaseInsideControlFlow &&
         !mCaseTypeMismatch && mDefaultCount <= 1 && !mDuplicateCases;
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/ValidateSwitch.h b/src/compiler/translator/ValidateSwitch.h
index 9c6dee2..feffbc0 100644
--- a/src/compiler/translator/ValidateSwitch.h
+++ b/src/compiler/translator/ValidateSwitch.h
@@ -9,6 +9,8 @@
 
 #include "compiler/translator/IntermNode.h"
 
+namespace sh
+{
 class TParseContext;
 
 class ValidateSwitch : public TIntermTraverser
@@ -52,4 +54,6 @@
     bool mDuplicateCases;
 };
 
+}  // namespace sh
+
 #endif // COMPILER_TRANSLATOR_VALIDATESWITCH_H_
diff --git a/src/compiler/translator/VersionGLSL.cpp b/src/compiler/translator/VersionGLSL.cpp
index b967065..9e593ac 100644
--- a/src/compiler/translator/VersionGLSL.cpp
+++ b/src/compiler/translator/VersionGLSL.cpp
@@ -6,6 +6,9 @@
 
 #include "compiler/translator/VersionGLSL.h"
 
+namespace sh
+{
+
 int ShaderOutputTypeToGLSLVersion(ShShaderOutput output)
 {
     switch (output)
@@ -135,3 +138,4 @@
     mVersion = std::max(version, mVersion);
 }
 
+}  // namespace sh
diff --git a/src/compiler/translator/VersionGLSL.h b/src/compiler/translator/VersionGLSL.h
index f03a48b..380349b 100644
--- a/src/compiler/translator/VersionGLSL.h
+++ b/src/compiler/translator/VersionGLSL.h
@@ -11,6 +11,9 @@
 
 #include "compiler/translator/Pragma.h"
 
+namespace sh
+{
+
 static const int GLSL_VERSION_110 = 110;
 static const int GLSL_VERSION_120 = 120;
 static const int GLSL_VERSION_130 = 130;
@@ -66,4 +69,6 @@
     int mVersion;
 };
 
+}  // namespace sh
+
 #endif  // COMPILER_TRANSLATOR_VERSIONGLSL_H_
diff --git a/src/compiler/translator/glslang.h b/src/compiler/translator/glslang.h
index 0555e96..aaa5dd1 100644
--- a/src/compiler/translator/glslang.h
+++ b/src/compiler/translator/glslang.h
@@ -7,14 +7,18 @@
 #ifndef COMPILER_TRANSLATOR_GLSLANG_H_
 #define COMPILER_TRANSLATOR_GLSLANG_H_
 
+namespace sh
+{
 class TParseContext;
-extern int glslang_initialize(TParseContext* context);
-extern int glslang_finalize(TParseContext* context);
+}
+
+extern int glslang_initialize(sh::TParseContext *context);
+extern int glslang_finalize(sh::TParseContext *context);
 
 extern int glslang_scan(size_t count,
-                        const char* const string[],
+                        const char *const string[],
                         const int length[],
-                        TParseContext* context);
-extern int glslang_parse(TParseContext* context);
+                        sh::TParseContext *context);
+extern int glslang_parse(sh::TParseContext *context);
 
 #endif // COMPILER_TRANSLATOR_GLSLANG_H_
diff --git a/src/compiler/translator/glslang.l b/src/compiler/translator/glslang.l
index 0924e83..92fddd0 100644
--- a/src/compiler/translator/glslang.l
+++ b/src/compiler/translator/glslang.l
@@ -22,6 +22,8 @@
 
 // This file is auto-generated by generate_parser.sh. DO NOT EDIT!
 
+/* clang-format off */
+
 // Ignore errors in auto-generated code.
 #if defined(__GNUC__)
 #pragma GCC diagnostic ignored "-Wunused-function"
@@ -44,6 +46,9 @@
 #include "compiler/preprocessor/Token.h"
 #include "compiler/translator/util.h"
 #include "compiler/translator/length_limits.h"
+
+using namespace sh;
+
 #include "glslang_tab.h"
 
 /* windows only pragma */
diff --git a/src/compiler/translator/glslang.y b/src/compiler/translator/glslang.y
index cbce715..6afaa0a 100644
--- a/src/compiler/translator/glslang.y
+++ b/src/compiler/translator/glslang.y
@@ -46,6 +46,8 @@
 
 #define YYENABLE_NLS 0
 
+using namespace sh;
+
 %}
 %expect 1 /* One shift reduce conflict because of if | else */
 %parse-param {TParseContext* context}
@@ -72,14 +74,14 @@
     struct {
         TOperator op;
         union {
-            TIntermNode* intermNode;
+            TIntermNode *intermNode;
             TIntermNodePair nodePair;
-            TIntermTyped* intermTypedNode;
-            TIntermAggregate* intermAggregate;
-            TIntermBlock* intermBlock;
-            TIntermDeclaration* intermDeclaration;
-            TIntermSwitch* intermSwitch;
-            TIntermCase* intermCase;
+            TIntermTyped *intermTypedNode;
+            TIntermAggregate *intermAggregate;
+            TIntermBlock *intermBlock;
+            TIntermDeclaration *intermDeclaration;
+            TIntermSwitch *intermSwitch;
+            TIntermCase *intermCase;
         };
         union {
             TTypeSpecifierNonArray typeSpecifierNonArray;
@@ -87,12 +89,12 @@
             TPrecision precision;
             TLayoutQualifier layoutQualifier;
             TQualifier qualifier;
-            TFunction* function;
+            TFunction *function;
             TParameter param;
-            TField* field;
-            TFieldList* fieldList;
-            TQualifierWrapperBase* qualifierWrapper;
-            TTypeQualifierBuilder* typeQualifierBuilder;
+            TField *field;
+            TFieldList *fieldList;
+            TQualifierWrapperBase *qualifierWrapper;
+            TTypeQualifierBuilder *typeQualifierBuilder;
         };
     } interm;
 }
diff --git a/src/compiler/translator/glslang_lex.cpp b/src/compiler/translator/glslang_lex.cpp
index 77f0bea..2a206ab 100644
--- a/src/compiler/translator/glslang_lex.cpp
+++ b/src/compiler/translator/glslang_lex.cpp
@@ -1,4 +1,3 @@
-#line 17 "./glslang.l"
 //
 // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
@@ -7,6 +6,8 @@
 
 // This file is auto-generated by generate_parser.sh. DO NOT EDIT!
 
+/* clang-format off */
+
 // Ignore errors in auto-generated code.
 #if defined(__GNUC__)
 #pragma GCC diagnostic ignored "-Wunused-function"
@@ -24,20 +25,96 @@
 
 
 
-#line 28 "./glslang_lex.cpp"
-
 #define  YY_INT_ALIGNED short int
 
 /* A lexical scanner generated by flex */
 
+
+
+
+
+
+
+
+
+
+
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 39
+#define YY_FLEX_MINOR_VERSION 6
+#define YY_FLEX_SUBMINOR_VERSION 1
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        
+        
+    
+    
+
+
+    
+    
+
+
+
+    
+    
+
+
+
+    
+    
+    
+
+
+
+
+
+
 /* First, we deal with  platform-specific or compiler-specific issues. */
 
 /* begin standard C headers. */
@@ -113,30 +190,27 @@
 
 #endif /* ! FLEXINT_H */
 
-#ifdef __cplusplus
 
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
 
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
+/* TODO: this is always defined, so inline it */
 #define yyconst const
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+#define yynoreturn __attribute__((__noreturn__))
 #else
-#define yyconst
+#define yynoreturn
 #endif
 
+
+    
+
+
+
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
+
+
 /* Promotes a possibly negative, possibly signed char to an unsigned
  * integer for use as an array index.  If the signed char is negative,
  * we want to instead treat it as an 8-bit unsigned char, hence the
@@ -144,12 +218,34 @@
  */
 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 
+
+
+
+
 /* An opaque pointer. */
 #ifndef YY_TYPEDEF_YY_SCANNER_T
 #define YY_TYPEDEF_YY_SCANNER_T
 typedef void* yyscan_t;
 #endif
 
+
+
+
+
+
+
+
+
+    
+    
+
+
+
+
+
+
+
+
 /* For convenience, these vars (plus the bison vars far below)
    are macros in the reentrant scanner. */
 #define yyin yyg->yyin_r
@@ -161,12 +257,29 @@
 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
 #define yy_flex_debug yyg->yy_flex_debug_r
 
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
 /* Enter a start condition.  This macro really ought to take a parameter,
  * but we do it the disgusting crufty way forced on us by the ()-less
  * definition of BEGIN.
  */
 #define BEGIN yyg->yy_start = 1 + 2 *
 
+
+
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
@@ -174,23 +287,41 @@
 #define YY_START ((yyg->yy_start - 1) / 2)
 #define YYSTATE YY_START
 
+
+
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
+
+
 /* Special action meaning "start processing a new file". */
 #define YY_NEW_FILE yyrestart(yyin ,yyscanner )
 
+
+
 #define YY_END_OF_BUFFER_CHAR 0
 
+
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
+
 /* The state buf must be large enough to hold one state per character in the main buffer.
  */
 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
+
+
 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
 #define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
@@ -201,6 +332,9 @@
 typedef size_t yy_size_t;
 #endif
 
+
+
+
 #ifndef YY_TYPEDEF_YY_SIZE_T
 #define YY_TYPEDEF_YY_SIZE_T
 typedef size_t yy_size_t;
@@ -210,6 +344,9 @@
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
+
+
+    
     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
      *       access to the local variable yy_act. Since yyless() is a macro, it would break
      *       existing scanners that call yyless() from OUTSIDE yylex. 
@@ -220,7 +357,7 @@
     #define  YY_LESS_LINENO(n) \
             do { \
                 yy_size_t yyl;\
-                for ( yyl = n; yyl < yyleng; ++yyl )\
+                for ( yyl = n; yyl < static_cast<yy_site_t>(yyleng); ++yyl )\
                     if ( yytext[yyl] == '\n' )\
                         --yylineno;\
             }while(0)
@@ -232,6 +369,9 @@
                         --yylineno;\
             }while(0)
     
+
+
+
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
 	do \
@@ -246,26 +386,31 @@
 		} \
 	while ( 0 )
 
+
+
 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
 
+
 #ifndef YY_STRUCT_YY_BUFFER_STATE
 #define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
 	{
 	FILE *yy_input_file;
 
+
+
 	char *yy_ch_buf;		/* input buffer */
 	char *yy_buf_pos;		/* current position in input buffer */
 
 	/* Size of input buffer in bytes, not including room for EOB
 	 * characters.
 	 */
-	yy_size_t yy_buf_size;
+	int yy_buf_size;
 
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -289,6 +434,7 @@
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
     
+
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
@@ -313,6 +459,10 @@
 	};
 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
+
+
+
+
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
@@ -323,11 +473,18 @@
                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
                           : NULL)
 
+
+
 /* Same as previous macro, but useful when we know that the buffer stack is not
  * NULL or when we need an lvalue. For internal use only.
  */
 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
 
+
+
+
+
+
 void yyrestart (FILE *input_file ,yyscan_t yyscanner );
 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
@@ -336,22 +493,30 @@
 void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
 void yypop_buffer_state (yyscan_t yyscanner );
 
+
 static void yyensure_buffer_stack (yyscan_t yyscanner );
 static void yy_load_buffer_state (yyscan_t yyscanner );
 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
 
+
+
 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
 
+
 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
+
 
 void *yyalloc (yy_size_t ,yyscan_t yyscanner );
 void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
 void yyfree (void * ,yyscan_t yyscanner );
 
+
 #define yy_new_buffer yy_create_buffer
 
+
+
 #define yy_set_interactive(is_interactive) \
 	{ \
 	if ( ! YY_CURRENT_BUFFER ){ \
@@ -362,6 +527,8 @@
 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 	}
 
+
+
 #define yy_set_bol(at_bol) \
 	{ \
 	if ( ! YY_CURRENT_BUFFER ){\
@@ -372,34 +539,50 @@
 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 	}
 
+
+
 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
+
 /* Begin user sect3 */
 
-#define yywrap(yyscanner) 1
+#define yywrap(yyscanner) (/*CONSTCOND*/1)
 #define YY_SKIP_YYWRAP
 
 typedef unsigned char YY_CHAR;
 
+
+
+
 typedef int yy_state_type;
 
 #define yytext_ptr yytext_r
 
+
+
+
+
+
 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
 static int yy_get_next_buffer (yyscan_t yyscanner );
-static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
+static void yynoreturn yy_fatal_error (yyconst char* msg ,yyscan_t yyscanner );
+
+
+
 
 /* Done after the current pattern has been matched and before the
  * corresponding action - sets up yytext.
  */
 #define YY_DO_BEFORE_ACTION \
 	yyg->yytext_ptr = yy_bp; \
-	yyleng = (yy_size_t) (yy_cp - yy_bp); \
+	yyleng = (int) (yy_cp - yy_bp); \
 	yyg->yy_hold_char = *yy_cp; \
 	*yy_cp = '\0'; \
 	yyg->yy_c_buf_p = yy_cp;
 
+
+
 #define YY_NUM_RULES 240
 #define YY_END_OF_BUFFER 241
 /* This struct is not used in this scanner,
@@ -409,420 +592,628 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-        static yyconst flex_int16_t yy_accept[820] = {
-            0,   0,   0,   0,   0,   241, 239, 238, 238, 222, 228, 233, 217, 218, 226, 225, 214,
-            223, 221, 227, 180, 180, 215, 211, 229, 216, 230, 234, 177, 219, 220, 232, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 212, 231, 213, 224, 237, 236, 240, 235, 208, 194, 213, 202, 197, 192, 200, 190,
-            201, 191, 186, 193, 185, 179, 180, 0,   183, 0,   220, 212, 219, 209, 205, 207, 206,
-            210, 177, 198, 204, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
+static yyconst flex_int16_t yy_accept[820] =
+    {   0,
+        0,    0,    0,    0,  241,  239,  238,  238,  222,  228,
+      233,  217,  218,  226,  225,  214,  223,  221,  227,  180,
+      180,  215,  211,  229,  216,  230,  234,  177,  219,  220,
+      232,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  212,  231,  213,  224,  237,  236,  240,  235,  208,
+      194,  213,  202,  197,  192,  200,  190,  201,  191,  186,
+      193,  185,  179,  180,    0,  183,    0,  220,  212,  219,
+      209,  205,  207,  206,  210,  177,  198,  204,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
 
-            12,  177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 15,  177, 177,
-            23,  177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            199, 203, 235, 0,   189, 185, 0,   188, 182, 0,   184, 178, 195, 196, 177, 136, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 13,  177, 177, 177, 177, 177, 177, 177, 177, 177,
+       12,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,   15,  177,  177,   23,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  199,  203,  235,    0,  189,  185,    0,  188,  182,
+        0,  184,  178,  195,  196,  177,  136,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+       13,  177,  177,  177,  177,  177,  177,  177,  177,  177,
 
-            177, 27,  177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 24,  177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 0,   186, 0,
-            185, 187, 181, 177, 177, 177, 30,  177, 177, 18,  174, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 16,  139, 177, 177, 177, 177, 21,  177, 177, 143, 155, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 152, 4,   35,  36,  37,
+      177,   27,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,   24,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,    0,  186,
+        0,  185,  187,  181,  177,  177,  177,   30,  177,  177,
+       18,  174,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,   16,  139,  177,  177,  177,  177,   21,  177,
+      177,  143,  155,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  152,    4,   35,   36,   37,
 
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 142, 31,  177, 177, 28,  177, 177, 177, 177, 177,
-            177, 177, 47,  48,  49,  29,  177, 177, 177, 177, 177, 177, 10,  53,  54,  55,  177,
-            137, 177, 177, 7,   177, 177, 177, 177, 164, 165, 166, 177, 32,  177, 156, 26,  167,
-            168, 169, 2,   161, 162, 163, 177, 177, 177, 25,  159, 177, 177, 177, 50,  51,  52,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 98,  177, 177, 177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  142,   31,  177,  177,   28,  177,
+      177,  177,  177,  177,  177,  177,   47,   48,   49,   29,
+      177,  177,  177,  177,  177,  177,   10,   53,   54,   55,
+      177,  137,  177,  177,    7,  177,  177,  177,  177,  164,
+      165,  166,  177,   32,  177,  156,   26,  167,  168,  169,
+        2,  161,  162,  163,  177,  177,  177,   25,  159,  177,
+      177,  177,   50,   51,   52,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,   98,  177,  177,  177,
 
-            177, 177, 177, 177, 153, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 138,
-            177, 177, 176, 56,  57,  58,  177, 177, 14,  177, 103, 177, 177, 177, 177, 101, 177,
-            177, 177, 154, 149, 104, 177, 177, 177, 177, 177, 177, 144, 177, 177, 177, 78,  38,
-            41,  43,  42,  39,  45,  44,  46,  40,  177, 177, 177, 177, 160, 135, 177, 177, 147,
-            177, 177, 177, 34,  99,  173, 22,  148, 77,  177, 158, 17,  177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 19,  33,  177, 177, 177, 177,
+      177,  177,  177,  177,  153,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  138,  177,  177,  176,
+       56,   57,   58,  177,  177,   14,  177,  103,  177,  177,
+      177,  177,  101,  177,  177,  177,  154,  149,  104,  177,
+      177,  177,  177,  177,  177,  144,  177,  177,  177,   78,
+       38,   41,   43,   42,   39,   45,   44,   46,   40,  177,
+      177,  177,  177,  160,  135,  177,  177,  147,  177,  177,
+      177,   34,   99,  173,   22,  148,   77,  177,  158,   17,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,   19,   33,  177,  177,  177,  177,
 
-            177, 177, 105, 79,  85,  177, 177, 177, 177, 177, 3,   177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 140, 177, 177, 177, 177, 177, 8,   177, 177, 9,   177, 177,
-            177, 177, 20,  93,  11,  150, 106, 80,  87,  177, 177, 177, 177, 177, 177, 177, 177,
-            177, 177, 177, 177, 145, 177, 177, 177, 91,  95,  94,  177, 177, 177, 177, 177, 177,
-            177, 141, 107, 81,  86,  177, 177, 157, 177, 146, 177, 177, 6,   177, 177, 177, 177,
-            177, 177, 177, 177, 177, 90,  151, 1,   177, 177, 177, 177, 177, 175, 177,
+      177,  177,  105,   79,   85,  177,  177,  177,  177,  177,
+        3,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  140,  177,  177,  177,  177,  177,    8,  177,
+      177,    9,  177,  177,  177,  177,   20,   93,   11,  150,
+      106,   80,   87,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  145,  177,  177,  177,   91,
+       95,   94,  177,  177,  177,  177,  177,  177,  177,  141,
+      107,   81,   86,  177,  177,  157,  177,  146,  177,  177,
+        6,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+       90,  151,    1,  177,  177,  177,  177,  177,  175,  177,
 
-            102, 5,   170, 59,  62,  177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-            177, 92,  177, 177, 177, 177, 88,  177, 177, 177, 177, 177, 120, 66,  67,  177, 177,
-            177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 100, 177, 177, 177, 89,  122,
-            70,  71,  177, 177, 96,  177, 177, 177, 177, 177, 177, 177, 115, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 129, 177, 177, 177, 177, 60,  177, 177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 177, 116, 108, 177, 82,  177, 177, 177, 130,
+      102,    5,  170,   59,   62,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,   92,  177,
+      177,  177,  177,   88,  177,  177,  177,  177,  177,  120,
+       66,   67,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  100,  177,  177,  177,   89,
+      122,   70,   71,  177,  177,   96,  177,  177,  177,  177,
+      177,  177,  177,  115,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  129,  177,  177,  177,  177,   60,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  116,  108,  177,   82,  177,  177,  177,  130,
 
-            177, 177, 68,  177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 117,
-            177, 177, 131, 177, 177, 72,  109, 83,  177, 111, 177, 112, 177, 177, 177, 177, 177,
-            97,  177, 177, 177, 177, 64,  177, 63,  126, 177, 177, 110, 84,  177, 177, 177, 177,
-            177, 177, 177, 177, 177, 177, 124, 127, 118, 177, 65,  177, 177, 177, 177, 177, 177,
-            177, 177, 125, 128, 177, 177, 121, 69,  177, 177, 171, 177, 177, 177, 74,  177, 177,
-            123, 73,  177, 177, 177, 177, 177, 177, 132, 177, 177, 177, 177, 177, 177,
+      177,  177,   68,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  117,  177,  177,  131,
+      177,  177,   72,  109,   83,  177,  111,  177,  112,  177,
+      177,  177,  177,  177,   97,  177,  177,  177,  177,   64,
+      177,   63,  126,  177,  177,  110,   84,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  124,  127,  118,
+      177,   65,  177,  177,  177,  177,  177,  177,  177,  177,
+      125,  128,  177,  177,  121,   69,  177,  177,  171,  177,
+      177,  177,   74,  177,  177,  123,   73,  177,  177,  177,
+      177,  177,  177,  132,  177,  177,  177,  177,  177,  177,
 
-            133, 177, 177, 177, 75,  177, 134, 113, 114, 177, 177, 177, 61,  177, 177, 172, 119,
-            76,  0};
+      133,  177,  177,  177,   75,  177,  134,  113,  114,  177,
+      177,  177,   61,  177,  177,  172,  119,   76,    0
+    } ;
 
-        static yyconst flex_int32_t yy_ec[256] = {
-            0,  1,  1,  1,  1,  1,  1,  1,  1,  2,  3,  2,  2,  2,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  4,  1,  1,  1,  5,  6,  1,  7,  8,
-            9,  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, 20, 21, 21, 22, 23, 24, 25, 26,
-            27, 1,  28, 29, 30, 31, 32, 33, 34, 34, 34, 34, 34, 34, 35, 34, 36, 34, 34, 37, 38,
-            34, 39, 34, 34, 40, 34, 34, 41, 1,  42, 43, 44, 1,  45, 46, 47, 48,
+static yyconst YY_CHAR yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    4,    1,    1,    1,    5,    6,    1,    7,
+        8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
+       18,   19,   20,   20,   20,   21,   21,   22,   23,   24,
+       25,   26,   27,    1,   28,   29,   30,   31,   32,   33,
+       34,   34,   34,   34,   34,   34,   35,   34,   36,   34,
+       34,   37,   38,   34,   39,   34,   34,   40,   34,   34,
+       41,    1,   42,   43,   44,    1,   45,   46,   47,   48,
 
-            49, 50, 51, 52, 53, 34, 54, 55, 56, 57, 58, 59, 34, 60, 61, 62, 63, 64, 65, 66, 67,
-            68, 69, 70, 71, 72, 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+       49,   50,   51,   52,   53,   34,   54,   55,   56,   57,
+       58,   59,   34,   60,   61,   62,   63,   64,   65,   66,
+       67,   68,   69,   70,   71,   72,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
-            1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1};
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
 
-        static yyconst flex_int32_t yy_meta[73] = {
-            0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
-            1, 1, 1, 3, 3, 3, 3, 2, 2, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 3, 3, 3, 3, 2,
-            2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1};
+static yyconst YY_CHAR yy_meta[73] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    2,    2,    2,    2,    2,    2,
+        2,    1,    1,    1,    1,    1,    1,    3,    3,    3,
+        3,    2,    2,    4,    4,    4,    4,    4,    4,    4,
+        1,    1,    1,    4,    3,    3,    3,    3,    2,    2,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    1,    1,
+        1,    1
+    } ;
 
-        static yyconst flex_int16_t yy_base[825] = {
-            0,    0,    0,    72,   0,    1016, 1017, 1017, 1017, 990,  120,  141,  1017,
-            1017, 989,  138,  1017, 137,  135,  988,  154,  208,  986,  1017, 154,  986,
-            132,  1017, 0,    1017, 1017, 139,  130,  123,  140,  147,  133,  177,  952,
-            186,  151,  139,  116,  161,  946,  173,  959,  193,  199,  208,  215,  108,
-            1017, 184,  1017, 1017, 1017, 1017, 1017, 0,    1017, 1017, 1017, 1017, 1017,
-            1017, 1017, 1017, 1017, 1017, 230,  1017, 235,  235,  0,    271,  1017, 0,
-            1017, 1017, 1017, 982,  1017, 1017, 1017, 981,  0,    1017, 1017, 943,  948,
-            152,  945,  953,  952,  939,  942,  953,  243,  947,  935,
+static yyconst flex_uint16_t yy_base[825] =
+    {   0,
+        0,    0,   72,    0, 1016, 1017, 1017, 1017,  990,  120,
+      141, 1017, 1017,  989,  138, 1017,  137,  135,  988,  154,
+      208,  986, 1017,  154,  986,  132, 1017,    0, 1017, 1017,
+      139,  130,  123,  140,  147,  133,  177,  952,  186,  151,
+      139,  116,  161,  946,  173,  959,  193,  199,  208,  215,
+      108, 1017,  184, 1017, 1017, 1017, 1017, 1017,    0, 1017,
+     1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,  230,
+     1017,  235,  235,    0,  271, 1017,    0, 1017, 1017, 1017,
+      982, 1017, 1017, 1017,  981,    0, 1017, 1017,  943,  948,
+      152,  945,  953,  952,  939,  942,  953,  243,  947,  935,
 
-            932,  945,  932,  929,  929,  935,  147,  248,  929,  939,  925,  931,  934,
-            935,  0,    927,  937,  249,  936,  931,  912,  177,  916,  929,  920,  184,
-            913,  250,  925,  927,  257,  916,  913,  902,  911,  249,  257,  915,  911,
-            913,  902,  905,  196,  217,  269,  914,  902,  914,  262,  907,  906,  1017,
-            1017, 0,    311,  1017, 292,  328,  1017, 1017, 335,  342,  257,  1017, 1017,
-            905,  0,    901,  896,  900,  909,  906,  315,  890,  890,  901,  893,  215,
-            903,  900,  900,  898,  895,  887,  893,  880,  878,  890,  876,  892,  0,
-            889,  877,  884,  881,  885,  886,  879,  876,  865,
+      932,  945,  932,  929,  929,  935,  147,  248,  929,  939,
+      925,  931,  934,  935,    0,  927,  937,  249,  936,  931,
+      912,  177,  916,  929,  920,  184,  913,  250,  925,  927,
+      257,  916,  913,  902,  911,  249,  257,  915,  911,  913,
+      902,  905,  196,  217,  269,  914,  902,  914,  262,  907,
+      906, 1017, 1017,    0,  311, 1017,  292,  328, 1017, 1017,
+      335,  342,  257, 1017, 1017,  905,    0,  901,  896,  900,
+      909,  906,  315,  890,  890,  901,  893,  215,  903,  900,
+      900,  898,  895,  887,  893,  880,  878,  890,  876,  892,
+        0,  889,  877,  884,  881,  885,  886,  879,  876,  865,
 
-            864,  877,  880,  868,  876,  864,  870,  861,  316,  866,  869,  860,  867,
-            856,  860,  851,  865,  864,  855,  861,  307,  845,  848,  846,  856,  846,
-            841,  839,  841,  851,  837,  839,  836,  847,  846,  849,  831,  316,  839,
-            835,  833,  842,  821,  353,  839,  841,  830,  822,  363,  370,  378,  389,
-            1017, 1017, 819,  829,  828,  0,    826,  383,  0,    0,    819,  817,  817,
-            818,  813,  821,  810,  827,  816,  394,  0,    0,    810,  820,  819,  819,
-            0,    804,  397,  0,    0,    806,  400,  813,  814,  805,  799,  798,  799,
-            798,  798,  406,  793,  0,    0,    789,  788,  787,
+      864,  877,  880,  868,  876,  864,  870,  861,  316,  866,
+      869,  860,  867,  856,  860,  851,  865,  864,  855,  861,
+      307,  845,  848,  846,  856,  846,  841,  839,  841,  851,
+      837,  839,  836,  847,  846,  849,  831,  316,  839,  835,
+      833,  842,  821,  353,  839,  841,  830,  822,  363,  370,
+      378,  389, 1017, 1017,  819,  829,  828,    0,  826,  383,
+        0,    0,  819,  817,  817,  818,  813,  821,  810,  827,
+      816,  394,    0,    0,  810,  820,  819,  819,    0,  804,
+      397,    0,    0,  806,  400,  813,  814,  805,  799,  798,
+      799,  798,  798,  406,  793,    0,    0,  789,  788,  787,
 
-            789,  790,  795,  789,  785,  798,  793,  793,  791,  790,  784,  778,  780,
-            779,  783,  775,  778,  773,  781,  786,  774,  771,  783,  774,  0,    0,
-            780,  776,  0,    768,  768,  773,  764,  771,  409,  768,  0,    0,    0,
-            0,    758,  770,  769,  768,  769,  769,  0,    0,    0,    0,    756,  0,
-            764,  755,  0,    754,  755,  749,  759,  0,    0,    0,    750,  0,    746,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    756,  413,  755,  0,
-            0,    753,  749,  746,  0,    0,    0,    738,  415,  418,  427,  743,  739,
-            744,  735,  733,  746,  731,  0,    731,  744,  733,
+      789,  790,  795,  789,  785,  798,  793,  793,  791,  790,
+      784,  778,  780,  779,  783,  775,  778,  773,  781,  786,
+      774,  771,  783,  774,    0,    0,  780,  776,    0,  768,
+      768,  773,  764,  771,  409,  768,    0,    0,    0,    0,
+      758,  770,  769,  768,  769,  769,    0,    0,    0,    0,
+      756,    0,  764,  755,    0,  754,  755,  749,  759,    0,
+        0,    0,  750,    0,  746,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  756,  413,  755,    0,    0,  753,
+      749,  746,    0,    0,    0,  738,  415,  418,  427,  743,
+      739,  744,  735,  733,  746,  731,    0,  731,  744,  733,
 
-            729,  735,  730,  737,  0,    735,  732,  736,  720,  718,  721,  727,  733,
-            728,  727,  715,  0,    717,  718,  0,    0,    0,    0,    715,  718,  0,
-            712,  0,    725,  705,  714,  709,  0,    702,  702,  715,  0,    717,  0,
-            431,  730,  729,  728,  695,  694,  0,    711,  710,  705,  0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    694,  707,  694,  691,  0,    0,
-            696,  695,  0,    692,  699,  698,  0,    684,  0,    0,    0,    0,    681,
-            0,    0,    680,  691,  434,  684,  690,  689,  686,  681,  678,  671,  671,
-            684,  669,  681,  0,    0,    674,  697,  696,  695,
+      729,  735,  730,  737,    0,  735,  732,  736,  720,  718,
+      721,  727,  733,  728,  727,  715,    0,  717,  718,    0,
+        0,    0,    0,  715,  718,    0,  712,    0,  725,  705,
+      714,  709,    0,  702,  702,  715,    0,  717,    0,  431,
+      730,  729,  728,  695,  694,    0,  711,  710,  705,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  694,
+      707,  694,  691,    0,    0,  696,  695,    0,  692,  699,
+      698,    0,  684,    0,    0,    0,    0,  681,    0,    0,
+      680,  691,  434,  684,  690,  689,  686,  681,  678,  671,
+      671,  684,  669,  681,    0,    0,  674,  697,  696,  695,
 
-            662,  661,  427,  428,  0,    673,  676,  674,  663,  659,  0,    671,  668,
-            667,  657,  656,  646,  663,  649,  441,  657,  660,  0,    677,  676,  675,
-            642,  641,  0,    655,  642,  0,    652,  645,  646,  649,  0,    0,    0,
-            0,    669,  668,  0,    645,  648,  633,  640,  631,  638,  639,  639,  638,
-            624,  451,  636,  0,    637,  626,  625,  0,    0,    0,    650,  649,  648,
-            615,  614,  610,  618,  0,    646,  645,  0,    622,  625,  0,    458,  0,
-            603,  612,  0,    608,  607,  616,  616,  604,  618,  602,  616,  611,  0,
-            0,    0,    628,  627,  626,  593,  592,  0,    592,
+      662,  661,  427,  428,    0,  673,  676,  674,  663,  659,
+        0,  671,  668,  667,  657,  656,  646,  663,  649,  441,
+      657,  660,    0,  677,  676,  675,  642,  641,    0,  655,
+      642,    0,  652,  645,  646,  649,    0,    0,    0,    0,
+      669,  668,    0,  645,  648,  633,  640,  631,  638,  639,
+      639,  638,  624,  451,  636,    0,  637,  626,  625,    0,
+        0,    0,  650,  649,  648,  615,  614,  610,  618,    0,
+      646,  645,    0,  622,  625,    0,  458,    0,  603,  612,
+        0,  608,  607,  616,  616,  604,  618,  602,  616,  611,
+        0,    0,    0,  628,  627,  626,  593,  592,    0,  592,
 
-            0,    0,    434,  454,  616,  602,  605,  588,  600,  588,  587,  596,  596,
-            613,  612,  611,  578,  577,  0,    577,  578,  577,  587,  0,    590,  586,
-            588,  584,  571,  602,  449,  0,    579,  582,  574,  566,  573,  564,  585,
-            573,  569,  571,  569,  569,  568,  0,    556,  555,  565,  0,    585,  462,
-            0,    562,  565,  0,    565,  564,  548,  540,  548,  538,  546,  0,    543,
-            542,  563,  551,  549,  549,  533,  536,  550,  534,  565,  545,  546,  543,
-            540,  550,  527,  541,  540,  524,  523,  522,  543,  531,  529,  529,  510,
-            509,  0,    537,  509,  535,  507,  511,  510,  541,
+        0,    0,  434,  454,  616,  602,  605,  588,  600,  588,
+      587,  596,  596,  613,  612,  611,  578,  577,    0,  577,
+      578,  577,  587,    0,  590,  586,  588,  584,  571,  602,
+      449,    0,  579,  582,  574,  566,  573,  564,  585,  573,
+      569,  571,  569,  569,  568,    0,  556,  555,  565,    0,
+      585,  462,    0,  562,  565,    0,  565,  564,  548,  540,
+      548,  538,  546,    0,  543,  542,  563,  551,  549,  549,
+      533,  536,  550,  534,  565,  545,  546,  543,  540,  550,
+      527,  541,  540,  524,  523,  522,  543,  531,  529,  529,
+      510,  509,    0,  537,  509,  535,  507,  511,  510,  541,
 
-            521,  518,  0,    517,  520,  516,  518,  502,  499,  512,  497,  498,  505,
-            499,  488,  487,  0,    493,  492,  523,  503,  500,  0,    0,    0,    496,
-            0,    495,  0,    501,  500,  484,  481,  482,  0,    474,  482,  472,  478,
-            499,  478,  0,    0,    490,  489,  0,    0,    488,  487,  471,  468,  469,
-            483,  482,  459,  458,  464,  0,    0,    485,  457,  483,  475,  467,  453,
-            132,  161,  177,  215,  245,  0,    0,    288,  289,  0,    0,    294,  315,
-            0,    316,  306,  331,  0,    363,  402,  0,    0,    395,  383,  395,  387,
-            433,  434,  0,    435,  420,  461,  427,  430,  431,
+      521,  518,    0,  517,  520,  516,  518,  502,  499,  512,
+      497,  498,  505,  499,  488,  487,    0,  493,  492,  523,
+      503,  500,    0,    0,    0,  496,    0,  495,    0,  501,
+      500,  484,  481,  482,    0,  474,  482,  472,  478,  499,
+      478,    0,    0,  490,  489,    0,    0,  488,  487,  471,
+      468,  469,  483,  482,  459,  458,  464,    0,    0,  485,
+      457,  483,  475,  467,  453,  132,  161,  177,  215,  245,
+        0,    0,  288,  289,    0,    0,  294,  315,    0,  316,
+      306,  331,    0,  363,  402,    0,    0,  395,  383,  395,
+      387,  433,  434,    0,  435,  420,  461,  427,  430,  431,
 
-            0,    450,  452,  443,  0,    464,  0,    0,    0,    445,  446,  440,  0,
-            441,  442,  0,    0,    0,    1017, 506,  509,  512,  513,  514};
+        0,  450,  452,  443,    0,  464,    0,    0,    0,  445,
+      446,  440,    0,  441,  442,    0,    0,    0, 1017,  506,
+      509,  512,  513,  514
+    } ;
 
-        static yyconst flex_int16_t yy_def[825] = {
-            0,   819, 1,   819, 3,   819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 820, 819, 819, 819, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 819, 819, 819, 819, 819, 819, 819, 821, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 822, 819, 823, 20,  21,  819, 819, 824, 819, 819, 819, 819, 819, 819, 819,
-            819, 820, 819, 819, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+static yyconst flex_int16_t yy_def[825] =
+    {   0,
+      819,    1,  819,    3,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  820,  819,  819,
+      819,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  819,  819,  819,  819,  819,  819,  819,  821,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  822,
+      819,  823,   20,   21,  819,  819,  824,  819,  819,  819,
+      819,  819,  819,  819,  819,  820,  819,  819,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            819, 819, 821, 819, 819, 823, 819, 819, 819, 819, 819, 824, 819, 819, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  819,  819,  821,  819,  819,  823,  819,  819,  819,
+      819,  819,  824,  819,  819,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 819, 819, 819,
-            819, 819, 819, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  819,  819,
+      819,  819,  819,  819,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
 
-            820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
-            820, 0,   819, 819, 819, 819, 819};
+      820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820,    0,  819,
+      819,  819,  819,  819
+    } ;
 
-        static yyconst flex_int16_t yy_nxt[1090] = {
-            0,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,
-            21,  21,  21,  21,  21,  22,  23,  24,  25,  26,  27,  28,  28,  28,  28,  28,  28,
-            28,  28,  28,  28,  28,  28,  28,  29,  30,  31,  28,  32,  33,  34,  35,  36,  37,
-            38,  39,  40,  28,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  28,  28,
-            28,  52,  53,  54,  55,  56,  57,  58,  56,  56,  56,  56,  56,  56,  56,  56,  56,
-            56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  56,  59,
+static yyconst flex_uint16_t yy_nxt[1090] =
+    {   0,
+        6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
+       16,   17,   18,   19,   20,   21,   21,   21,   21,   21,
+       21,   22,   23,   24,   25,   26,   27,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       29,   30,   31,   28,   32,   33,   34,   35,   36,   37,
+       38,   39,   40,   28,   41,   42,   43,   44,   45,   46,
+       47,   48,   49,   50,   51,   28,   28,   28,   52,   53,
+       54,   55,   56,   57,   58,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   59,
 
-            59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  56,  56,  56,  59,  59,
-            59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,  59,
-            59,  59,  59,  59,  59,  59,  56,  56,  56,  56,  61,  62,  63,  66,  68,  70,  70,
-            70,  70,  70,  70,  70,  84,  85,  79,  150, 123, 69,  67,  87,  124, 64,  72,  151,
-            73,  73,  73,  73,  73,  73,  74,  80,  89,  81,  82,  784, 92,  88,  93,  121, 95,
-            75,  94,  103, 96,  104, 90,  91,  76,  77,  97,  99,  122, 98,  105, 100,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   56,   56,   56,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       56,   56,   56,   56,   61,   62,   63,   66,   68,   70,
+       70,   70,   70,   70,   70,   70,   84,   85,   79,  150,
+      123,   69,   67,   87,  124,   64,   72,  151,   73,   73,
+       73,   73,   73,   73,   74,   80,   89,   81,   82,  784,
+       92,   88,   93,  121,   95,   75,   94,  103,   96,  104,
+       90,   91,   76,   77,   97,   99,  122,   98,  105,  100,
 
-            115, 187, 75,  116, 101, 125, 117, 118, 152, 168, 102, 119, 188, 169, 120, 785, 76,
-            128, 126, 77,  72,  106, 74,  74,  74,  74,  74,  74,  74,  107, 112, 108, 129, 207,
-            109, 130, 212, 132, 113, 75,  110, 208, 213, 786, 133, 134, 76,  139, 135, 114, 140,
-            236, 237, 153, 136, 137, 75,  138, 141, 147, 143, 155, 156, 148, 144, 142, 158, 159,
-            145, 238, 76,  146, 149, 160, 819, 267, 268, 239, 155, 156, 161, 787, 161, 158, 159,
-            162, 162, 162, 162, 162, 162, 162, 189, 227, 176, 254, 215, 160, 177, 178,
+      115,  187,   75,  116,  101,  125,  117,  118,  152,  168,
+      102,  119,  188,  169,  120,  785,   76,  128,  126,   77,
+       72,  106,   74,   74,   74,   74,   74,   74,   74,  107,
+      112,  108,  129,  207,  109,  130,  212,  132,  113,   75,
+      110,  208,  213,  786,  133,  134,   76,  139,  135,  114,
+      140,  236,  237,  153,  136,  137,   75,  138,  141,  147,
+      143,  155,  156,  148,  144,  142,  158,  159,  145,  238,
+       76,  146,  149,  160,  819,  267,  268,  239,  155,  156,
+      161,  787,  161,  158,  159,  162,  162,  162,  162,  162,
+      162,  162,  189,  227,  176,  254,  215,  160,  177,  178,
 
-            819, 220, 229, 199, 788, 190, 200, 201, 228, 216, 202, 217, 203, 240, 245, 230, 246,
-            221, 222, 254, 249, 241, 249, 158, 159, 250, 250, 250, 250, 250, 250, 250, 298, 299,
-            300, 789, 790, 251, 791, 251, 158, 159, 252, 252, 252, 252, 252, 252, 252, 162, 162,
-            162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 261, 312, 330, 792, 793,
-            313, 337, 338, 339, 794, 331, 253, 795, 262, 250, 250, 250, 250, 250, 250, 250, 250,
-            250, 250, 250, 250, 250, 250, 253, 252, 252, 252, 252, 252, 252, 252, 348,
+      819,  220,  229,  199,  788,  190,  200,  201,  228,  216,
+      202,  217,  203,  240,  245,  230,  246,  221,  222,  254,
+      249,  241,  249,  158,  159,  250,  250,  250,  250,  250,
+      250,  250,  298,  299,  300,  789,  790,  251,  791,  251,
+      158,  159,  252,  252,  252,  252,  252,  252,  252,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162,  261,  312,  330,  792,  793,  313,  337,
+      338,  339,  794,  331,  253,  795,  262,  250,  250,  250,
+      250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
+      250,  253,  252,  252,  252,  252,  252,  252,  252,  348,
 
-            349, 350, 156, 252, 252, 252, 252, 252, 252, 252, 360, 361, 362, 368, 369, 370, 372,
-            373, 374, 156, 796, 159, 383, 384, 385, 421, 422, 423, 441, 442, 443, 451, 452, 453,
-            454, 455, 456, 797, 159, 798, 799, 444, 445, 457, 458, 459, 498, 499, 500, 524, 525,
-            526, 800, 801, 546, 548, 563, 564, 565, 501, 502, 636, 527, 528, 547, 549, 594, 595,
-            596, 566, 567, 637, 568, 614, 615, 616, 666, 802, 803, 597, 598, 638, 804, 667, 805,
-            668, 617, 618, 639, 686, 640, 641, 806, 807, 808, 809, 687, 810, 688, 811,
+      349,  350,  156,  252,  252,  252,  252,  252,  252,  252,
+      360,  361,  362,  368,  369,  370,  372,  373,  374,  156,
+      796,  159,  383,  384,  385,  421,  422,  423,  441,  442,
+      443,  451,  452,  453,  454,  455,  456,  797,  159,  798,
+      799,  444,  445,  457,  458,  459,  498,  499,  500,  524,
+      525,  526,  800,  801,  546,  548,  563,  564,  565,  501,
+      502,  636,  527,  528,  547,  549,  594,  595,  596,  566,
+      567,  637,  568,  614,  615,  616,  666,  802,  803,  597,
+      598,  638,  804,  667,  805,  668,  617,  618,  639,  686,
+      640,  641,  806,  807,  808,  809,  687,  810,  688,  811,
 
-            812, 813, 814, 815, 816, 817, 818, 86,  86,  86,  154, 154, 154, 70,  157, 163, 163,
-            783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767,
-            766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750,
-            749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733,
-            732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716,
-            715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701,
+      812,  813,  814,  815,  816,  817,  818,   86,   86,   86,
+      154,  154,  154,   70,  157,  163,  163,  783,  782,  781,
+      780,  779,  778,  777,  776,  775,  774,  773,  772,  771,
+      770,  769,  768,  767,  766,  765,  764,  763,  762,  761,
+      760,  759,  758,  757,  756,  755,  754,  753,  752,  751,
+      750,  749,  748,  747,  746,  745,  744,  743,  742,  741,
+      740,  739,  738,  737,  736,  735,  734,  733,  732,  731,
+      730,  729,  728,  727,  726,  725,  724,  723,  722,  721,
+      720,  719,  718,  717,  716,  715,  714,  713,  712,  711,
+      710,  709,  708,  707,  706,  705,  704,  703,  702,  701,
 
-            700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 685, 684, 683, 682, 681,
-            680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 665, 664, 663, 662, 661,
-            660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
-            643, 642, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621,
-            620, 619, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599,
-            593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
+      700,  699,  698,  697,  696,  695,  694,  693,  692,  691,
+      690,  689,  685,  684,  683,  682,  681,  680,  679,  678,
+      677,  676,  675,  674,  673,  672,  671,  670,  669,  665,
+      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
+      654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
+      644,  643,  642,  635,  634,  633,  632,  631,  630,  629,
+      628,  627,  626,  625,  624,  623,  622,  621,  620,  619,
+      613,  612,  611,  610,  609,  608,  607,  606,  605,  604,
+      603,  602,  601,  600,  599,  593,  592,  591,  590,  589,
+      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
 
-            578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 562, 561, 560, 559, 558, 557, 556,
-            555, 554, 553, 552, 551, 550, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535,
-            534, 533, 532, 531, 530, 529, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513,
-            512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 497, 496, 495, 494, 493, 492, 491,
-            490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474,
-            473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 450,
+      578,  577,  576,  575,  574,  573,  572,  571,  570,  569,
+      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
+      552,  551,  550,  545,  544,  543,  542,  541,  540,  539,
+      538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
+      523,  522,  521,  520,  519,  518,  517,  516,  515,  514,
+      513,  512,  511,  510,  509,  508,  507,  506,  505,  504,
+      503,  497,  496,  495,  494,  493,  492,  491,  490,  489,
+      488,  487,  486,  485,  484,  483,  482,  481,  480,  479,
+      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
+      468,  467,  466,  465,  464,  463,  462,  461,  460,  450,
 
-            449, 448, 447, 446, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428,
-            427, 426, 425, 424, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408,
-            407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391,
-            390, 389, 388, 387, 386, 382, 381, 380, 379, 378, 377, 376, 375, 371, 367, 366, 365,
-            364, 363, 359, 358, 357, 356, 355, 354, 353, 352, 351, 347, 346, 345, 344, 343, 342,
-            341, 340, 336, 335, 334, 333, 332, 329, 328, 327, 326, 325, 324, 323, 322,
+      449,  448,  447,  446,  440,  439,  438,  437,  436,  435,
+      434,  433,  432,  431,  430,  429,  428,  427,  426,  425,
+      424,  420,  419,  418,  417,  416,  415,  414,  413,  412,
+      411,  410,  409,  408,  407,  406,  405,  404,  403,  402,
+      401,  400,  399,  398,  397,  396,  395,  394,  393,  392,
+      391,  390,  389,  388,  387,  386,  382,  381,  380,  379,
+      378,  377,  376,  375,  371,  367,  366,  365,  364,  363,
+      359,  358,  357,  356,  355,  354,  353,  352,  351,  347,
+      346,  345,  344,  343,  342,  341,  340,  336,  335,  334,
+      333,  332,  329,  328,  327,  326,  325,  324,  323,  322,
 
-            321, 320, 319, 318, 317, 316, 315, 314, 311, 310, 309, 308, 307, 306, 305, 304, 303,
-            302, 301, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283,
-            282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 266, 265, 264,
-            263, 260, 259, 258, 257, 256, 255, 248, 247, 244, 243, 242, 235, 234, 233, 232, 231,
-            226, 225, 224, 223, 219, 218, 214, 211, 210, 209, 206, 205, 204, 198, 197, 196, 195,
-            194, 193, 192, 191, 186, 185, 184, 183, 182, 181, 180, 179, 175, 174, 173,
+      321,  320,  319,  318,  317,  316,  315,  314,  311,  310,
+      309,  308,  307,  306,  305,  304,  303,  302,  301,  297,
+      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
+      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
+      276,  275,  274,  273,  272,  271,  270,  269,  266,  265,
+      264,  263,  260,  259,  258,  257,  256,  255,  248,  247,
+      244,  243,  242,  235,  234,  233,  232,  231,  226,  225,
+      224,  223,  219,  218,  214,  211,  210,  209,  206,  205,
+      204,  198,  197,  196,  195,  194,  193,  192,  191,  186,
+      185,  184,  183,  182,  181,  180,  179,  175,  174,  173,
 
-            172, 171, 170, 167, 166, 165, 164, 131, 127, 111, 83,  78,  71,  65,  60,  819, 5,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819};
+      172,  171,  170,  167,  166,  165,  164,  131,  127,  111,
+       83,   78,   71,   65,   60,  819,    5,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819
+    } ;
 
-        static yyconst flex_int16_t yy_chk[1090] = {
-            0,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
-            1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
-            1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
-            1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
-            1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
-            3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
+static yyconst flex_int16_t yy_chk[1090] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
-            3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
-            3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
-            3,   3,   3,   3,   3,   3,   3,   3,   3,   3,   10,  10,  11,  15,  17,  18,  18,
-            18,  18,  18,  18,  18,  26,  26,  24,  51,  42,  17,  15,  31,  42,  11,  20,  51,
-            20,  20,  20,  20,  20,  20,  20,  24,  32,  24,  24,  766, 33,  31,  33,  41,  34,
-            20,  33,  36,  34,  36,  32,  32,  20,  20,  34,  35,  41,  34,  36,  35,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,   10,   10,   11,   15,   17,   18,
+       18,   18,   18,   18,   18,   18,   26,   26,   24,   51,
+       42,   17,   15,   31,   42,   11,   20,   51,   20,   20,
+       20,   20,   20,   20,   20,   24,   32,   24,   24,  766,
+       33,   31,   33,   41,   34,   20,   33,   36,   34,   36,
+       32,   32,   20,   20,   34,   35,   41,   34,   36,   35,
 
-            40,  107, 20,  40,  35,  43,  40,  40,  53,  91,  35,  40,  107, 91,  40,  767, 20,
-            45,  43,  20,  21,  37,  21,  21,  21,  21,  21,  21,  21,  37,  39,  37,  45,  122,
-            37,  45,  126, 47,  39,  21,  37,  122, 126, 768, 47,  47,  21,  48,  47,  39,  48,
-            143, 143, 53,  47,  47,  21,  47,  48,  50,  49,  70,  70,  50,  49,  48,  72,  72,
-            49,  144, 21,  49,  50,  73,  73,  178, 178, 144, 70,  70,  75,  769, 75,  72,  72,
-            75,  75,  75,  75,  75,  75,  75,  108, 136, 98,  163, 128, 73,  98,  98,
+       40,  107,   20,   40,   35,   43,   40,   40,   53,   91,
+       35,   40,  107,   91,   40,  767,   20,   45,   43,   20,
+       21,   37,   21,   21,   21,   21,   21,   21,   21,   37,
+       39,   37,   45,  122,   37,   45,  126,   47,   39,   21,
+       37,  122,  126,  768,   47,   47,   21,   48,   47,   39,
+       48,  143,  143,   53,   47,   47,   21,   47,   48,   50,
+       49,   70,   70,   50,   49,   48,   72,   72,   49,  144,
+       21,   49,   50,   73,   73,  178,  178,  144,   70,   70,
+       75,  769,   75,   72,   72,   75,   75,   75,   75,   75,
+       75,   75,  108,  136,   98,  163,  128,   73,   98,   98,
 
-            73,  131, 137, 118, 770, 108, 118, 118, 136, 128, 118, 128, 118, 145, 149, 137, 149,
-            131, 131, 163, 155, 145, 155, 157, 157, 155, 155, 155, 155, 155, 155, 155, 209, 209,
-            209, 773, 774, 158, 777, 158, 157, 157, 158, 158, 158, 158, 158, 158, 158, 161, 161,
-            161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, 173, 221, 238, 778, 780,
-            221, 244, 244, 244, 781, 238, 162, 782, 173, 249, 249, 249, 249, 249, 249, 249, 250,
-            250, 250, 250, 250, 250, 250, 162, 251, 251, 251, 251, 251, 251, 251, 260,
+       73,  131,  137,  118,  770,  108,  118,  118,  136,  128,
+      118,  128,  118,  145,  149,  137,  149,  131,  131,  163,
+      155,  145,  155,  157,  157,  155,  155,  155,  155,  155,
+      155,  155,  209,  209,  209,  773,  774,  158,  777,  158,
+      157,  157,  158,  158,  158,  158,  158,  158,  158,  161,
+      161,  161,  161,  161,  161,  161,  162,  162,  162,  162,
+      162,  162,  162,  173,  221,  238,  778,  780,  221,  244,
+      244,  244,  781,  238,  162,  782,  173,  249,  249,  249,
+      249,  249,  249,  249,  250,  250,  250,  250,  250,  250,
+      250,  162,  251,  251,  251,  251,  251,  251,  251,  260,
 
-            260, 260, 250, 252, 252, 252, 252, 252, 252, 252, 272, 272, 272, 281, 281, 281, 285,
-            285, 285, 250, 784, 252, 294, 294, 294, 335, 335, 335, 376, 376, 376, 387, 387, 387,
-            388, 388, 388, 785, 252, 788, 789, 376, 376, 389, 389, 389, 440, 440, 440, 483, 483,
-            483, 790, 791, 503, 504, 520, 520, 520, 440, 440, 603, 483, 483, 503, 504, 554, 554,
-            554, 520, 520, 603, 520, 577, 577, 577, 631, 792, 793, 554, 554, 604, 795, 631, 796,
-            631, 577, 577, 604, 652, 604, 604, 797, 798, 799, 800, 652, 802, 652, 803,
+      260,  260,  250,  252,  252,  252,  252,  252,  252,  252,
+      272,  272,  272,  281,  281,  281,  285,  285,  285,  250,
+      784,  252,  294,  294,  294,  335,  335,  335,  376,  376,
+      376,  387,  387,  387,  388,  388,  388,  785,  252,  788,
+      789,  376,  376,  389,  389,  389,  440,  440,  440,  483,
+      483,  483,  790,  791,  503,  504,  520,  520,  520,  440,
+      440,  603,  483,  483,  503,  504,  554,  554,  554,  520,
+      520,  603,  520,  577,  577,  577,  631,  792,  793,  554,
+      554,  604,  795,  631,  796,  631,  577,  577,  604,  652,
+      604,  604,  797,  798,  799,  800,  652,  802,  652,  803,
 
-            804, 806, 810, 811, 812, 814, 815, 820, 820, 820, 821, 821, 821, 822, 823, 824, 824,
-            765, 764, 763, 762, 761, 760, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 745,
-            744, 741, 740, 739, 738, 737, 736, 734, 733, 732, 731, 730, 728, 726, 722, 721, 720,
-            719, 718, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 702, 701,
-            700, 699, 698, 697, 696, 695, 694, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683,
-            682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668,
+      804,  806,  810,  811,  812,  814,  815,  820,  820,  820,
+      821,  821,  821,  822,  823,  824,  824,  765,  764,  763,
+      762,  761,  760,  757,  756,  755,  754,  753,  752,  751,
+      750,  749,  748,  745,  744,  741,  740,  739,  738,  737,
+      736,  734,  733,  732,  731,  730,  728,  726,  722,  721,
+      720,  719,  718,  716,  715,  714,  713,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  702,  701,  700,  699,
+      698,  697,  696,  695,  694,  692,  691,  690,  689,  688,
+      687,  686,  685,  684,  683,  682,  681,  680,  679,  678,
+      677,  676,  675,  674,  673,  672,  671,  670,  669,  668,
 
-            667, 666, 665, 663, 662, 661, 660, 659, 658, 657, 655, 654, 651, 649, 648, 647, 645,
-            644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 630, 629, 628, 627, 626,
-            625, 623, 622, 621, 620, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607,
-            606, 605, 600, 598, 597, 596, 595, 594, 590, 589, 588, 587, 586, 585, 584, 583, 582,
-            580, 579, 575, 574, 572, 571, 569, 568, 567, 566, 565, 564, 563, 559, 558, 557, 555,
-            553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 542, 541, 536, 535, 534,
+      667,  666,  665,  663,  662,  661,  660,  659,  658,  657,
+      655,  654,  651,  649,  648,  647,  645,  644,  643,  642,
+      641,  640,  639,  638,  637,  636,  635,  634,  633,  630,
+      629,  628,  627,  626,  625,  623,  622,  621,  620,  618,
+      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
+      607,  606,  605,  600,  598,  597,  596,  595,  594,  590,
+      589,  588,  587,  586,  585,  584,  583,  582,  580,  579,
+      575,  574,  572,  571,  569,  568,  567,  566,  565,  564,
+      563,  559,  558,  557,  555,  553,  552,  551,  550,  549,
+      548,  547,  546,  545,  544,  542,  541,  536,  535,  534,
 
-            533, 531, 530, 528, 527, 526, 525, 524, 522, 521, 519, 518, 517, 516, 515, 514, 513,
-            512, 510, 509, 508, 507, 506, 502, 501, 500, 499, 498, 497, 494, 493, 492, 491, 490,
-            489, 488, 487, 486, 485, 484, 482, 481, 478, 473, 471, 470, 469, 467, 466, 463, 462,
-            461, 460, 449, 448, 447, 445, 444, 443, 442, 441, 438, 436, 435, 434, 432, 431, 430,
-            429, 427, 425, 424, 419, 418, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406,
-            404, 403, 402, 401, 400, 399, 398, 396, 395, 394, 393, 392, 391, 390, 386,
+      533,  531,  530,  528,  527,  526,  525,  524,  522,  521,
+      519,  518,  517,  516,  515,  514,  513,  512,  510,  509,
+      508,  507,  506,  502,  501,  500,  499,  498,  497,  494,
+      493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
+      482,  481,  478,  473,  471,  470,  469,  467,  466,  463,
+      462,  461,  460,  449,  448,  447,  445,  444,  443,  442,
+      441,  438,  436,  435,  434,  432,  431,  430,  429,  427,
+      425,  424,  419,  418,  416,  415,  414,  413,  412,  411,
+      410,  409,  408,  407,  406,  404,  403,  402,  401,  400,
+      399,  398,  396,  395,  394,  393,  392,  391,  390,  386,
 
-            382, 381, 380, 377, 375, 365, 363, 359, 358, 357, 356, 354, 353, 351, 346, 345, 344,
-            343, 342, 341, 336, 334, 333, 332, 331, 330, 328, 327, 324, 323, 322, 321, 320, 319,
-            318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
-            301, 300, 299, 298, 295, 293, 292, 291, 290, 289, 288, 287, 286, 284, 280, 278, 277,
-            276, 275, 271, 270, 269, 268, 267, 266, 265, 264, 263, 259, 257, 256, 255, 248, 247,
-            246, 245, 243, 242, 241, 240, 239, 237, 236, 235, 234, 233, 232, 231, 230,
+      382,  381,  380,  377,  375,  365,  363,  359,  358,  357,
+      356,  354,  353,  351,  346,  345,  344,  343,  342,  341,
+      336,  334,  333,  332,  331,  330,  328,  327,  324,  323,
+      322,  321,  320,  319,  318,  317,  316,  315,  314,  313,
+      312,  311,  310,  309,  308,  307,  306,  305,  304,  303,
+      302,  301,  300,  299,  298,  295,  293,  292,  291,  290,
+      289,  288,  287,  286,  284,  280,  278,  277,  276,  275,
+      271,  270,  269,  268,  267,  266,  265,  264,  263,  259,
+      257,  256,  255,  248,  247,  246,  245,  243,  242,  241,
+      240,  239,  237,  236,  235,  234,  233,  232,  231,  230,
 
-            229, 228, 227, 226, 225, 224, 223, 222, 220, 219, 218, 217, 216, 215, 214, 213, 212,
-            211, 210, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194,
-            193, 192, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 177, 176, 175,
-            174, 172, 171, 170, 169, 168, 166, 151, 150, 148, 147, 146, 142, 141, 140, 139, 138,
-            135, 134, 133, 132, 130, 129, 127, 125, 124, 123, 121, 120, 119, 117, 116, 114, 113,
-            112, 111, 110, 109, 106, 105, 104, 103, 102, 101, 100, 99,  97,  96,  95,
+      229,  228,  227,  226,  225,  224,  223,  222,  220,  219,
+      218,  217,  216,  215,  214,  213,  212,  211,  210,  208,
+      207,  206,  205,  204,  203,  202,  201,  200,  199,  198,
+      197,  196,  195,  194,  193,  192,  190,  189,  188,  187,
+      186,  185,  184,  183,  182,  181,  180,  179,  177,  176,
+      175,  174,  172,  171,  170,  169,  168,  166,  151,  150,
+      148,  147,  146,  142,  141,  140,  139,  138,  135,  134,
+      133,  132,  130,  129,  127,  125,  124,  123,  121,  120,
+      119,  117,  116,  114,  113,  112,  111,  110,  109,  106,
+      105,  104,  103,  102,  101,  100,   99,   97,   96,   95,
 
-            94,  93,  92,  90,  89,  85,  81,  46,  44,  38,  25,  22,  19,  14,  9,   5,   819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
-            819, 819, 819, 819};
+       94,   93,   92,   90,   89,   85,   81,   46,   44,   38,
+       25,   22,   19,   14,    9,    5,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819
+    } ;
 
-        /* Table of booleans, true if rule could match eol. */
-        static yyconst flex_int32_t yy_rule_can_match_eol[241] = {
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-        };
 
-        /* The intent behind this definition is that it'll catch
-         * any uses of REJECT which flex missed.
-         */
+/* Table of booleans, true if rule could match eol. */
+static yyconst flex_int32_t yy_rule_can_match_eol[241] =
+    {   0,
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+    0,     };
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
 #define REJECT reject_used_but_not_detected
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-        /*
-        //
-        // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
-        // Use of this source code is governed by a BSD-style license that can be
-        // found in the LICENSE file.
-        //
+/*
+//
+// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
 
-        This file contains the Lex specification for GLSL ES.
-        Based on ANSI C grammar, Lex specification:
-        http://www.lysator.liu.se/c/ANSI-C-grammar-l.html
+This file contains the Lex specification for GLSL ES.
+Based on ANSI C grammar, Lex specification:
+http://www.lysator.liu.se/c/ANSI-C-grammar-l.html
 
-        IF YOU MODIFY THIS FILE YOU ALSO NEED TO RUN generate_parser.sh,
-        WHICH GENERATES THE GLSL ES LEXER (glslang_lex.cpp).
-        */
+IF YOU MODIFY THIS FILE YOU ALSO NEED TO RUN generate_parser.sh,
+WHICH GENERATES THE GLSL ES LEXER (glslang_lex.cpp).
+*/
 
 #include "compiler/translator/glslang.h"
 #include "compiler/translator/ParseContext.h"
 #include "compiler/preprocessor/Token.h"
 #include "compiler/translator/util.h"
 #include "compiler/translator/length_limits.h"
+
+using namespace sh;
+
 #include "glslang_tab.h"
 
 /* windows only pragma */
@@ -856,11 +1247,22 @@
 static int float_constant(yyscan_t yyscanner);
 static int floatsuffix_check(TParseContext* context);
 
+
+
+
 #define INITIAL 0
 #define FIELDS 1
 
+
+
+
+
+
 #define YY_EXTRA_TYPE TParseContext*
 
+
+
+
 /* Holds the entire state of the reentrant scanner. */
 struct yyguts_t
     {
@@ -874,8 +1276,8 @@
     size_t yy_buffer_stack_max; /**< capacity of stack. */
     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
     char yy_hold_char;
-    yy_size_t yy_n_chars;
-    yy_size_t yyleng_r;
+    int yy_n_chars;
+    int yyleng_r;
     char *yy_c_buf_p;
     int yy_init;
     int yy_start;
@@ -889,69 +1291,132 @@
     int yylineno_r;
     int yy_flex_debug_r;
 
+
+
+
     char *yytext_r;
     int yy_more_flag;
     int yy_more_len;
 
+
+
     YYSTYPE * yylval_r;
 
+
+
     YYLTYPE * yylloc_r;
 
+
     }; /* end struct yyguts_t */
 
+
+
+
 static int yy_init_globals (yyscan_t yyscanner );
 
+
+
+
+    
     /* This must go here because YYSTYPE and YYLTYPE are included
      * from bison output in section 1.*/
     #    define yylval yyg->yylval_r
     
+
+    
     #    define yylloc yyg->yylloc_r
     
+
+
 int yylex_init (yyscan_t* scanner);
 
 int yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
 
+
+
 /* Accessor methods to globals.
    These are made visible to non-reentrant scanners for convenience. */
 
+
 int yylex_destroy (yyscan_t yyscanner );
 
+
+
 int yyget_debug (yyscan_t yyscanner );
 
+
+
 void yyset_debug (int debug_flag ,yyscan_t yyscanner );
 
+
+
 YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner );
 
+
+
 void yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
 
+
+
 FILE *yyget_in (yyscan_t yyscanner );
 
-void yyset_in  (FILE * in_str ,yyscan_t yyscanner );
+
+
+void yyset_in  (FILE * _in_str ,yyscan_t yyscanner );
+
+
 
 FILE *yyget_out (yyscan_t yyscanner );
 
-void yyset_out  (FILE * out_str ,yyscan_t yyscanner );
 
-yy_size_t yyget_leng (yyscan_t yyscanner );
+
+void yyset_out  (FILE * _out_str ,yyscan_t yyscanner );
+
+
+
+			int yyget_leng (yyscan_t yyscanner );
+
+
 
 char *yyget_text (yyscan_t yyscanner );
 
+
+
 int yyget_lineno (yyscan_t yyscanner );
 
-void yyset_lineno (int line_number ,yyscan_t yyscanner );
+
+
+void yyset_lineno (int _line_number ,yyscan_t yyscanner );
+
+
+
 
 int yyget_column  (yyscan_t yyscanner );
 
-void yyset_column (int column_no ,yyscan_t yyscanner );
+
+
+
+
+void yyset_column (int _column_no ,yyscan_t yyscanner );
+
+
+
 
 YYSTYPE * yyget_lval (yyscan_t yyscanner );
 
+
 void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
 
+
+    
        YYLTYPE *yyget_lloc (yyscan_t yyscanner );
     
+
+    
         void yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
     
+
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -964,6 +1429,12 @@
 #endif
 #endif
 
+
+#ifndef YY_NO_UNPUT
+    
+#endif
+
+
 #ifndef yytext_ptr
 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
 #endif
@@ -982,19 +1453,34 @@
 
 #endif
 
+
+
+
+
+
+
+
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
+
 /* Copy whatever the last rule matched to the standard output. */
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
 #endif
 
+
+
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  * is returned in "result".
  */
@@ -1016,7 +1502,7 @@
 	else \
 		{ \
 		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+		while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
 			{ \
 			if( errno != EINTR) \
 				{ \
@@ -1031,6 +1517,8 @@
 
 #endif
 
+
+
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
  * we don't want an extra ';' after the "return" because that will cause
  * some compilers to complain about unreachable statements.
@@ -1039,24 +1527,48 @@
 #define yyterminate() return YY_NULL
 #endif
 
+
 /* Number of entries by which start-condition stack grows. */
 #ifndef YY_START_STACK_INCR
 #define YY_START_STACK_INCR 25
 #endif
 
+
 /* Report a fatal error. */
 #ifndef YY_FATAL_ERROR
 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
 #endif
 
+
+
+
+
 /* end tables serialization structures and prototypes */
 
+
+
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
 #define YY_DECL_IS_OURS 1
 
+
+
+
+
+
+        
+    
+    
+
+
+
+    
+    
+    
+
+
 extern int yylex \
                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
 
@@ -1064,6 +1576,7 @@
                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
 #endif /* !YY_DECL */
 
+
 /* Code executed at the beginning of each rule, after yytext and yyleng
  * have been set up.
  */
@@ -1071,27 +1584,39 @@
 #define YY_USER_ACTION
 #endif
 
+
+
 /* Code executed at the end of each rule. */
 #ifndef YY_BREAK
-#define YY_BREAK break;
+#define YY_BREAK /*LINTED*/break;
 #endif
 
+
+
 #define YY_RULE_SETUP \
 	YY_USER_ACTION
 
+
+
 /** The main scanner function which does all the work.
  */
 YY_DECL
 {
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
+	yy_state_type yy_current_state;
+	char *yy_cp, *yy_bp;
+	int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
+
+
+
     yylval = yylval_param;
 
+
+
     yylloc = yylloc_param;
 
+
 	if ( !yyg->yy_init )
 		{
 		yyg->yy_init = 1;
@@ -1100,6 +1625,8 @@
 		YY_USER_INIT;
 #endif
 
+
+
 		if ( ! yyg->yy_start )
 			yyg->yy_start = 1;	/* first start state */
 
@@ -1120,9 +1647,13 @@
 
 	{
 
+
+
     TParseContext* context = yyextra;
 
-	while ( 1 )		/* loops until end-of-file is reached */
+
+
+	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
 		yy_cp = yyg->yy_c_buf_p;
 
@@ -1138,7 +1669,7 @@
 yy_match:
 		do
 			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
 			if ( yy_accept[yy_current_state] )
 				{
 				yyg->yy_last_accepting_state = yy_current_state;
@@ -1150,7 +1681,7 @@
 				if ( yy_current_state >= 820 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
 			++yy_cp;
 			}
 		while ( yy_current_state != 819 );
@@ -1162,10 +1693,11 @@
 
 		YY_DO_BEFORE_ACTION;
 
+
 		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
 			{
 			yy_size_t yyl;
-			for ( yyl = 0; yyl < yyleng; ++yyl )
+			for ( yyl = 0; yyl < static_cast<yy_size_t>(yyleng); ++yyl )
 				if ( yytext[yyl] == '\n' )
 					   
     do{ yylineno++;
@@ -1174,8 +1706,10 @@
 ;
 			}
 
+
 do_action:	/* This label is used only to access EOF actions. */
 
+
 		switch ( yy_act )
 	{ /* beginning of action switch */
 			case 0: /* must back up */
@@ -1498,47 +2032,61 @@
 { return ES2_ident_ES3_keyword(context, LAYOUT); }
 	YY_BREAK
 case 79:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
+	YY_BREAK
 case 80:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
+	YY_BREAK
 case 81:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
+	YY_BREAK
 case 82:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
+	YY_BREAK
 case 83:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
+	YY_BREAK
 case 84:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
+	YY_BREAK
 case 85:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
+	YY_BREAK
 case 86:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
+	YY_BREAK
 case 87:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
+	YY_BREAK
 case 88:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
+	YY_BREAK
 case 89:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
+	YY_BREAK
 case 90:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
+	YY_BREAK
 case 91:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, READONLY); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, READONLY); }
+	YY_BREAK
 case 92:
-    YY_RULE_SETUP { return ES2_ident_ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
-    YY_BREAK
+YY_RULE_SETUP
+{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
+	YY_BREAK
 /* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
 case 93:
 case 94:
@@ -2052,6 +2600,11 @@
 	} /* end of user's declarations */
 } /* end of yylex */
 
+
+
+
+
+
 /* yy_get_next_buffer - try to read in a new buffer
  *
  * Returns a code representing an action:
@@ -2062,9 +2615,9 @@
 static int yy_get_next_buffer (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = yyg->yytext_ptr;
-	register int number_to_move, i;
+	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	char *source = yyg->yytext_ptr;
+	yy_size_t number_to_move, i;
 	int ret_val;
 
 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
@@ -2093,7 +2646,7 @@
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
+	number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
@@ -2106,8 +2659,8 @@
 
 	else
 		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+			int num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - static_cast<int>(number_to_move) - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
@@ -2120,7 +2673,7 @@
 
 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;
 
 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -2133,7 +2686,7 @@
 				}
 			else
 				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
+				b->yy_ch_buf = NULL;
 
 			if ( ! b->yy_ch_buf )
 				YY_FATAL_ERROR(
@@ -2142,7 +2695,7 @@
 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
+						static_cast<int>(number_to_move) - 1;
 
 			}
 
@@ -2150,8 +2703,10 @@
 			num_to_read = YY_READ_BUF_SIZE;
 
 		/* Read in more data. */
+        size_t result = 0;
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, num_to_read );
+            result, num_to_read );
+        yyg->yy_n_chars = static_cast<int>(result);
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
 		}
@@ -2175,15 +2730,15 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+	if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
+		int new_size = yyg->yy_n_chars + static_cast<int>(number_to_move) + (yyg->yy_n_chars >> 1);
 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
 	}
 
-	yyg->yy_n_chars += number_to_move;
+	yyg->yy_n_chars += static_cast<int>(number_to_move);
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
 
@@ -2192,19 +2747,21 @@
 	return ret_val;
 }
 
+
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
+
     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
 {
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
+	yy_state_type yy_current_state;
+	char *yy_cp;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
 	yy_current_state = yyg->yy_start;
 
 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
 		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 		if ( yy_accept[yy_current_state] )
 			{
 			yyg->yy_last_accepting_state = yy_current_state;
@@ -2216,12 +2773,13 @@
 			if ( yy_current_state >= 820 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
 		}
 
 	return yy_current_state;
 }
 
+
 /* yy_try_NUL_trans - try to make a transition on the NUL character
  *
  * synopsis
@@ -2229,11 +2787,11 @@
  */
     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
 {
-	register int yy_is_jam;
+	int yy_is_jam;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
-	register char *yy_cp = yyg->yy_c_buf_p;
+	char *yy_cp = yyg->yy_c_buf_p;
 
-	register YY_CHAR yy_c = 1;
+	YY_CHAR yy_c = 1;
 	if ( yy_accept[yy_current_state] )
 		{
 		yyg->yy_last_accepting_state = yy_current_state;
@@ -2245,13 +2803,18 @@
 		if ( yy_current_state >= 820 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
 	yy_is_jam = (yy_current_state == 819);
 
 	(void)yyg;
 	return yy_is_jam ? 0 : yy_current_state;
 }
 
+
+#ifndef YY_NO_UNPUT
+
+#endif
+
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
     static int yyinput (yyscan_t yyscanner)
@@ -2277,7 +2840,7 @@
 
 		else
 			{ /* need more input */
-			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
+			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
 			++yyg->yy_c_buf_p;
 
 			switch ( yy_get_next_buffer( yyscanner ) )
@@ -2301,7 +2864,7 @@
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( yywrap(yyscanner ) )
-						return EOF;
+						return 0;
 
 					if ( ! yyg->yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
@@ -2353,6 +2916,7 @@
 	yy_load_buffer_state(yyscanner );
 }
 
+
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
  * @param yyscanner The scanner object.
@@ -2389,6 +2953,7 @@
 	yyg->yy_did_buffer_switch_on_eof = 1;
 }
 
+
 static void yy_load_buffer_state  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
@@ -2412,7 +2977,7 @@
 	if ( ! b )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
-	b->yy_buf_size = size;
+	b->yy_buf_size = (yy_size_t)size;
 
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
@@ -2428,6 +2993,7 @@
 	return b;
 }
 
+
 /** Destroy the buffer.
  * @param b a buffer created with yy_create_buffer()
  * @param yyscanner The scanner object.
@@ -2448,6 +3014,7 @@
 	yyfree((void *) b ,yyscanner );
 }
 
+
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
  * such as during a yyrestart() or at EOF.
@@ -2472,8 +3039,11 @@
         b->yy_bs_column = 0;
     }
 
+
+    
         b->yy_is_interactive = 0;
     
+
 	errno = oerrno;
 }
 
@@ -2538,6 +3108,7 @@
 	yyg->yy_did_buffer_switch_on_eof = 1;
 }
 
+
 /** Removes and deletes the top of the stack, if present.
  *  The next element becomes the new top.
  *  @param yyscanner The scanner object.
@@ -2559,12 +3130,13 @@
 	}
 }
 
+
 /* Allocates the stack if it does not exist.
  *  Guarantees space for at least one push.
  */
 static void yyensure_buffer_stack (yyscan_t yyscanner)
 {
-	yy_size_t num_to_alloc;
+	int num_to_alloc;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
 	if (!yyg->yy_buffer_stack) {
@@ -2573,13 +3145,14 @@
 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 		 * immediate realloc on the next call.
          */
-		num_to_alloc = 1;
+      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
 								(num_to_alloc * sizeof(struct yy_buffer_state*)
 								, yyscanner);
 		if ( ! yyg->yy_buffer_stack )
 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 								  
+		
 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 				
 		yyg->yy_buffer_stack_max = num_to_alloc;
@@ -2590,9 +3163,9 @@
 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
 
 		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
+		yy_size_t grow_size = 8 /* arbitrary grow size */;
 
-		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
+		num_to_alloc = static_cast<int>(yyg->yy_buffer_stack_max + grow_size);
 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
 								(yyg->yy_buffer_stack,
 								num_to_alloc * sizeof(struct yy_buffer_state*)
@@ -2606,6 +3179,10 @@
 	}
 }
 
+
+
+
+
 /** Setup the input buffer state to scan directly from a user-specified character buffer.
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
@@ -2620,16 +3197,16 @@
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
-		return 0;
+		return NULL;
 
 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
 	if ( ! b )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_size = static_cast<int>(size) - 2;	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
 	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
+	b->yy_input_file = NULL;
 	b->yy_n_chars = b->yy_buf_size;
 	b->yy_is_interactive = 0;
 	b->yy_at_bol = 1;
@@ -2641,6 +3218,9 @@
 	return b;
 }
 
+
+
+
 /** Setup the input buffer state to scan a string. The next call to yylex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
@@ -2652,9 +3232,12 @@
 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
 {
     
-	return yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
+	return yy_scan_bytes(yystr,(int) strlen(yystr) ,yyscanner);
 }
 
+
+
+
 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
@@ -2662,7 +3245,7 @@
  * @param yyscanner The scanner object.
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
 {
 	YY_BUFFER_STATE b;
 	char *buf;
@@ -2670,12 +3253,12 @@
 	yy_size_t i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
+	n = (yy_size_t) _yybytes_len + 2;
 	buf = (char *) yyalloc(n ,yyscanner );
 	if ( ! buf )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
-	for ( i = 0; i < _yybytes_len; ++i )
+	for ( i = 0; i < static_cast<yy_size_t>(_yybytes_len); ++i )
 		buf[i] = yybytes[i];
 
 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
@@ -2692,13 +3275,25 @@
 	return b;
 }
 
+
+
+
+
+
+
+
+
+
+
 #ifndef YY_EXIT_FAILURE
 #define YY_EXIT_FAILURE 2
 #endif
 
-static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
+static void yynoreturn yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
 {
-    	(void) fprintf( stderr, "%s\n", msg );
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	(void)yyg;
+	(void) fprintf( stderr, "%s\n", msg );
 	exit( YY_EXIT_FAILURE );
 }
 
@@ -2719,8 +3314,11 @@
 		} \
 	while ( 0 )
 
+
+
 /* Accessor  methods (get/set functions) to struct members. */
 
+
 /** Get the user-defined data for this scanner.
  * @param yyscanner The scanner object.
  */
@@ -2730,6 +3328,8 @@
     return yyextra;
 }
 
+
+
 /** Get the current line number.
  * @param yyscanner The scanner object.
  */
@@ -2737,12 +3337,16 @@
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     
+    
         if (! YY_CURRENT_BUFFER)
             return 0;
     
     return yylineno;
 }
 
+
+
+
 /** Get the current column number.
  * @param yyscanner The scanner object.
  */
@@ -2750,12 +3354,16 @@
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     
+    
         if (! YY_CURRENT_BUFFER)
             return 0;
     
     return yycolumn;
 }
 
+
+
+
 /** Get the input stream.
  * @param yyscanner The scanner object.
  */
@@ -2765,6 +3373,8 @@
     return yyin;
 }
 
+
+
 /** Get the output stream.
  * @param yyscanner The scanner object.
  */
@@ -2774,15 +3384,18 @@
     return yyout;
 }
 
+
+
 /** Get the length of the current token.
  * @param yyscanner The scanner object.
  */
-yy_size_t yyget_leng  (yyscan_t yyscanner)
+int yyget_leng  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     return yyleng;
 }
 
+
 /** Get the current token.
  * @param yyscanner The scanner object.
  */
@@ -2793,6 +3406,8 @@
     return yytext;
 }
 
+
+
 /** Set the user-defined data. This data is never touched by the scanner.
  * @param user_defined The data to be associated with this scanner.
  * @param yyscanner The scanner object.
@@ -2803,92 +3418,123 @@
     yyextra = user_defined ;
 }
 
+
+
 /** Set the current line number.
- * @param line_number
+ * @param _line_number line number
  * @param yyscanner The scanner object.
  */
-void yyset_lineno (int  line_number , yyscan_t yyscanner)
+void yyset_lineno (int  _line_number , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
+    
         /* lineno is only valid if an input buffer exists. */
         if (! YY_CURRENT_BUFFER )
            YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
     
-    yylineno = line_number;
+    yylineno = _line_number;
 }
 
+
+
+
 /** Set the current column.
- * @param line_number
+ * @param _column_no column number
  * @param yyscanner The scanner object.
  */
-void yyset_column (int  column_no , yyscan_t yyscanner)
+void yyset_column (int  _column_no , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
+    
         /* column is only valid if an input buffer exists. */
         if (! YY_CURRENT_BUFFER )
            YY_FATAL_ERROR( "yyset_column called with no buffer" );
     
-    yycolumn = column_no;
+    yycolumn = _column_no;
 }
 
+
+
+
+
 /** Set the input stream. This does not discard the current
  * input buffer.
- * @param in_str A readable stream.
+ * @param _in_str A readable stream.
  * @param yyscanner The scanner object.
  * @see yy_switch_to_buffer
  */
-void yyset_in (FILE *  in_str , yyscan_t yyscanner)
+void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = in_str ;
+    yyin = _in_str ;
 }
 
-void yyset_out (FILE *  out_str , yyscan_t yyscanner)
+
+
+void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyout = out_str ;
+    yyout = _out_str ;
 }
 
+
+
+
 int yyget_debug  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     return yy_flex_debug;
 }
 
-void yyset_debug (int  bdebug , yyscan_t yyscanner)
+
+
+void yyset_debug (int  _bdebug , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yy_flex_debug = bdebug ;
+    yy_flex_debug = _bdebug ;
 }
 
+
 /* Accessor methods for yylval and yylloc */
 
+
 YYSTYPE * yyget_lval  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     return yylval;
 }
 
+
+
 void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     yylval = yylval_param;
 }
 
+
+
+    
 YYLTYPE *yyget_lloc  (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     return yylloc;
 }
     
+
+    
 void yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
     yylloc = yylloc_param;
 }
     
+
+
+
+
 /* User-visible API */
 
 /* yylex_init is special because it creates the scanner itself, so it is
@@ -2917,6 +3563,7 @@
     return yy_init_globals ( *ptr_yy_globals );
 }
 
+
 /* yylex_init_extra has the same functionality as yylex_init, but follows the
  * convention of taking the scanner as the last argument. Note however, that
  * this is a *pointer* to a scanner, as it will be allocated by this call (and
@@ -2953,6 +3600,7 @@
     return yy_init_globals ( *ptr_yy_globals );
 }
 
+
 static int yy_init_globals (yyscan_t yyscanner)
 {
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
@@ -2960,24 +3608,33 @@
      * This function is called from yylex_destroy(), so don't allocate here.
      */
 
-    yyg->yy_buffer_stack = 0;
+
+    
+
+    yyg->yy_buffer_stack = NULL;
     yyg->yy_buffer_stack_top = 0;
     yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = (char *) 0;
+    yyg->yy_c_buf_p = NULL;
     yyg->yy_init = 0;
     yyg->yy_start = 0;
 
+
     yyg->yy_start_stack_ptr = 0;
     yyg->yy_start_stack_depth = 0;
     yyg->yy_start_stack =  NULL;
 
+
+
+
+
+
 /* Defined in main.c */
 #ifdef YY_STDINIT
     yyin = stdin;
     yyout = stdout;
 #else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
+    yyin = NULL;
+    yyout = NULL;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
@@ -2986,6 +3643,7 @@
     return 0;
 }
 
+
 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
 int yylex_destroy  (yyscan_t yyscanner)
 {
@@ -3002,10 +3660,14 @@
 	yyfree(yyg->yy_buffer_stack ,yyscanner);
 	yyg->yy_buffer_stack = NULL;
 
+
     /* Destroy the start condition stack. */
         yyfree(yyg->yy_start_stack ,yyscanner );
         yyg->yy_start_stack = NULL;
 
+
+
+
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
      * yylex() is called, initialization will occur. */
     yy_init_globals( yyscanner);
@@ -3016,23 +3678,32 @@
     return 0;
 }
 
+
+
 /*
  * Internal utility routines.
  */
 
+
+
 #ifndef yytext_ptr
 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
 {
-	register int i;
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	(void)yyg;
+
+	int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
 }
 #endif
 
+
+
 #ifdef YY_NEED_STRLEN
 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
 {
-	register int n;
+	int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
@@ -3040,13 +3711,22 @@
 }
 #endif
 
+
+
 void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
 {
-	return (void *) malloc( size );
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	(void)yyg;
+	return malloc(size);
 }
 
+
+
 void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
 {
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	(void)yyg;
+
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -3054,16 +3734,29 @@
 	 * any pointer type to void*, and deal with argument conversions
 	 * as though doing an assignment.
 	 */
-	return (void *) realloc( (char *) ptr, size );
+	return realloc(ptr, size);
 }
 
+
+
 void yyfree (void * ptr , yyscan_t yyscanner)
 {
+	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+	(void)yyg;
 	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
 }
 
+
 #define YYTABLES_NAME "yytables"
 
+
+
+
+
+
+
+
+
 yy_size_t string_input(char* buf, yy_size_t max_size, yyscan_t yyscanner) {
     pp::Token token;
     yyget_extra(yyscanner)->getPreprocessor().lex(&token);
@@ -3128,8 +3821,8 @@
 
 int ES2_ident_ES3_reserved_ES3_1_keyword(TParseContext *context, int token)
 {
-    struct yyguts_t *yyg = (struct yyguts_t *)context->getScanner();
-    yyscan_t yyscanner   = (yyscan_t)context->getScanner();
+    struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
+    yyscan_t yyscanner = (yyscan_t) context->getScanner();
 
     if (context->getShaderVersion() < 300)
     {
@@ -3265,3 +3958,4 @@
     return 0;
 }
 
+
diff --git a/src/compiler/translator/glslang_tab.cpp b/src/compiler/translator/glslang_tab.cpp
index f51283a..7181d79 100644
--- a/src/compiler/translator/glslang_tab.cpp
+++ b/src/compiler/translator/glslang_tab.cpp
@@ -96,6 +96,8 @@
 
 #define YYENABLE_NLS 0
 
+using namespace sh;
+
 
 
 
@@ -301,14 +303,14 @@
     struct {
         TOperator op;
         union {
-            TIntermNode* intermNode;
+            TIntermNode *intermNode;
             TIntermNodePair nodePair;
-            TIntermTyped* intermTypedNode;
-            TIntermAggregate* intermAggregate;
-            TIntermBlock* intermBlock;
-            TIntermDeclaration* intermDeclaration;
-            TIntermSwitch* intermSwitch;
-            TIntermCase* intermCase;
+            TIntermTyped *intermTypedNode;
+            TIntermAggregate *intermAggregate;
+            TIntermBlock *intermBlock;
+            TIntermDeclaration *intermDeclaration;
+            TIntermSwitch *intermSwitch;
+            TIntermCase *intermCase;
         };
         union {
             TTypeSpecifierNonArray typeSpecifierNonArray;
@@ -316,12 +318,12 @@
             TPrecision precision;
             TLayoutQualifier layoutQualifier;
             TQualifier qualifier;
-            TFunction* function;
+            TFunction *function;
             TParameter param;
-            TField* field;
-            TFieldList* fieldList;
-            TQualifierWrapperBase* qualifierWrapper;
-            TTypeQualifierBuilder* typeQualifierBuilder;
+            TField *field;
+            TFieldList *fieldList;
+            TQualifierWrapperBase *qualifierWrapper;
+            TTypeQualifierBuilder *typeQualifierBuilder;
         };
     } interm;
 
@@ -730,35 +732,35 @@
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   241,   241,   242,   245,   255,   258,   263,   268,   273,
-     278,   284,   287,   290,   293,   296,   299,   305,   312,   323,
-     327,   335,   338,   344,   348,   355,   361,   370,   378,   384,
-     390,   399,   402,   405,   408,   418,   419,   420,   421,   429,
-     430,   433,   436,   443,   444,   447,   453,   454,   458,   465,
-     466,   469,   472,   475,   481,   482,   485,   491,   492,   499,
-     500,   507,   508,   515,   516,   522,   523,   529,   530,   536,
-     537,   543,   544,   551,   552,   553,   554,   558,   559,   560,
-     564,   568,   572,   576,   583,   586,   592,   599,   606,   609,
-     612,   621,   625,   629,   633,   637,   644,   651,   654,   661,
-     669,   689,   699,   707,   732,   736,   740,   744,   751,   758,
-     761,   765,   769,   774,   779,   786,   790,   794,   798,   803,
-     808,   815,   819,   825,   828,   834,   838,   845,   851,   855,
-     859,   862,   865,   874,   880,   888,   891,   911,   930,   937,
-     941,   945,   948,   954,   961,   964,   967,   973,   980,   983,
-     989,   992,   995,  1001,  1004,  1009,  1020,  1023,  1026,  1029,
-    1032,  1035,  1039,  1043,  1047,  1051,  1055,  1059,  1063,  1067,
-    1071,  1075,  1079,  1083,  1087,  1091,  1095,  1099,  1103,  1107,
-    1111,  1115,  1119,  1122,  1125,  1128,  1131,  1134,  1137,  1140,
-    1143,  1146,  1149,  1152,  1155,  1158,  1161,  1164,  1171,  1177,
-    1180,  1183,  1186,  1189,  1192,  1195,  1198,  1201,  1204,  1207,
-    1210,  1213,  1216,  1228,  1228,  1231,  1231,  1237,  1240,  1255,
-    1258,  1265,  1269,  1275,  1281,  1293,  1297,  1301,  1302,  1308,
-    1309,  1310,  1311,  1312,  1313,  1314,  1318,  1319,  1319,  1319,
-    1328,  1329,  1333,  1333,  1334,  1334,  1339,  1342,  1351,  1356,
-    1363,  1364,  1368,  1375,  1379,  1386,  1386,  1393,  1396,  1403,
-    1407,  1420,  1420,  1425,  1425,  1431,  1431,  1439,  1442,  1448,
-    1451,  1457,  1461,  1468,  1471,  1474,  1477,  1480,  1489,  1495,
-    1501,  1504,  1510,  1510
+       0,   243,   243,   244,   247,   257,   260,   265,   270,   275,
+     280,   286,   289,   292,   295,   298,   301,   307,   314,   325,
+     329,   337,   340,   346,   350,   357,   363,   372,   380,   386,
+     392,   401,   404,   407,   410,   420,   421,   422,   423,   431,
+     432,   435,   438,   445,   446,   449,   455,   456,   460,   467,
+     468,   471,   474,   477,   483,   484,   487,   493,   494,   501,
+     502,   509,   510,   517,   518,   524,   525,   531,   532,   538,
+     539,   545,   546,   553,   554,   555,   556,   560,   561,   562,
+     566,   570,   574,   578,   585,   588,   594,   601,   608,   611,
+     614,   623,   627,   631,   635,   639,   646,   653,   656,   663,
+     671,   691,   701,   709,   734,   738,   742,   746,   753,   760,
+     763,   767,   771,   776,   781,   788,   792,   796,   800,   805,
+     810,   817,   821,   827,   830,   836,   840,   847,   853,   857,
+     861,   864,   867,   876,   882,   890,   893,   913,   932,   939,
+     943,   947,   950,   956,   963,   966,   969,   975,   982,   985,
+     991,   994,   997,  1003,  1006,  1011,  1022,  1025,  1028,  1031,
+    1034,  1037,  1041,  1045,  1049,  1053,  1057,  1061,  1065,  1069,
+    1073,  1077,  1081,  1085,  1089,  1093,  1097,  1101,  1105,  1109,
+    1113,  1117,  1121,  1124,  1127,  1130,  1133,  1136,  1139,  1142,
+    1145,  1148,  1151,  1154,  1157,  1160,  1163,  1166,  1173,  1179,
+    1182,  1185,  1188,  1191,  1194,  1197,  1200,  1203,  1206,  1209,
+    1212,  1215,  1218,  1230,  1230,  1233,  1233,  1239,  1242,  1257,
+    1260,  1267,  1271,  1277,  1283,  1295,  1299,  1303,  1304,  1310,
+    1311,  1312,  1313,  1314,  1315,  1316,  1320,  1321,  1321,  1321,
+    1330,  1331,  1335,  1335,  1336,  1336,  1341,  1344,  1353,  1358,
+    1365,  1366,  1370,  1377,  1381,  1388,  1388,  1395,  1398,  1405,
+    1409,  1422,  1422,  1427,  1427,  1433,  1433,  1441,  1444,  1450,
+    1453,  1459,  1463,  1470,  1473,  1476,  1479,  1482,  1491,  1497,
+    1503,  1506,  1512,  1512
 };
 #endif
 
diff --git a/src/compiler/translator/glslang_tab.h b/src/compiler/translator/glslang_tab.h
index 707d946..11eb9fa 100644
--- a/src/compiler/translator/glslang_tab.h
+++ b/src/compiler/translator/glslang_tab.h
@@ -214,14 +214,14 @@
     struct {
         TOperator op;
         union {
-            TIntermNode* intermNode;
+            TIntermNode *intermNode;
             TIntermNodePair nodePair;
-            TIntermTyped* intermTypedNode;
-            TIntermAggregate* intermAggregate;
+            TIntermTyped *intermTypedNode;
+            TIntermAggregate *intermAggregate;
             TIntermBlock *intermBlock;
             TIntermDeclaration *intermDeclaration;
-            TIntermSwitch* intermSwitch;
-            TIntermCase* intermCase;
+            TIntermSwitch *intermSwitch;
+            TIntermCase *intermCase;
         };
         union {
             TTypeSpecifierNonArray typeSpecifierNonArray;
@@ -229,10 +229,10 @@
             TPrecision precision;
             TLayoutQualifier layoutQualifier;
             TQualifier qualifier;
-            TFunction* function;
+            TFunction *function;
             TParameter param;
-            TField* field;
-            TFieldList* fieldList;
+            TField *field;
+            TFieldList *fieldList;
             TQualifierWrapperBase *qualifierWrapper;
             TTypeQualifierBuilder *typeQualifierBuilder;
         };
diff --git a/src/compiler/translator/intermOut.cpp b/src/compiler/translator/intermOut.cpp
index 9767c9f..53ee1d0 100644
--- a/src/compiler/translator/intermOut.cpp
+++ b/src/compiler/translator/intermOut.cpp
@@ -7,6 +7,9 @@
 #include "compiler/translator/Intermediate.h"
 #include "compiler/translator/SymbolTable.h"
 
+namespace sh
+{
+
 namespace
 {
 
@@ -731,3 +734,5 @@
 
     root->traverse(&it);
 }
+
+}  // namespace sh
diff --git a/src/compiler/translator/util.h b/src/compiler/translator/util.h
index b526891..ce8bd9d 100644
--- a/src/compiler/translator/util.h
+++ b/src/compiler/translator/util.h
@@ -25,10 +25,9 @@
 // Return false if overflow happens.
 bool atoi_clamp(const char *str, unsigned int *value);
 
-class TSymbolTable;
-
 namespace sh
 {
+class TSymbolTable;
 
 GLenum GLVariableType(const TType &type);
 GLenum GLVariablePrecision(const TType &type);
@@ -71,6 +70,6 @@
 bool IsBuiltinFragmentInputVariable(TQualifier qualifier);
 bool CanBeInvariantESSL1(TQualifier qualifier);
 bool CanBeInvariantESSL3OrGreater(TQualifier qualifier);
-}
+}  // namespace sh
 
 #endif // COMPILER_TRANSLATOR_UTIL_H_