Преглед изворни кода

removed shader files to get rid of conflics

Carlos Marti пре 9 година
родитељ
комит
34a583e5a7

+ 0 - 357
Source/BansheeSL/Include/BsLexerFX.h

@@ -1,357 +0,0 @@
-#ifndef yyHEADER_H
-#define yyHEADER_H 1
-#define yyIN_HEADER 1
-
-#line 6 "BsLexerFX.h"
-
-#line 8 "BsLexerFX.h"
-
-#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 37
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! C99 */
-
-#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
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* 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
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#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;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t 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
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    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.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-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 );
-void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-void yypop_buffer_state (yyscan_t 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 );
-
-void *yyalloc (yy_size_t ,yyscan_t yyscanner );
-void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
-void yyfree (void * ,yyscan_t yyscanner );
-
-/* Begin user sect3 */
-
-#define yywrap(yyscanner) 1
-#define YY_SKIP_YYWRAP
-
-#define yytext_ptr yytext_r
-
-#ifdef YY_HEADER_EXPORT_START_CONDITIONS
-#define INITIAL 0
-#define INCLUDE 1
-#define CODEBLOCK_HEADER 2
-#define CODEBLOCK_EQUALS 3
-#define CODEBLOCK 4
-#define CODEBLOCK_END 5
-#define DEFINE_COND 6
-#define DEFINE_COND_EXPR 7
-#define UNDEF_COND 8
-#define CONDITIONAL_IF 9
-#define CONDITIONAL_IFN 10
-#define CONDITIONAL_ELIF 11
-#define CONDITIONAL_IGNORE 12
-
-#endif
-
-/*windows compatibility case*/
-#include <io.h>
-#define isatty _isatty
-#define fileno _fileno
-    
-#define YY_EXTRA_TYPE struct tagParseState *
-
-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 );
-
-FILE *yyget_out (yyscan_t yyscanner );
-
-void yyset_out  (FILE * out_str ,yyscan_t yyscanner );
-
-yy_size_t 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 );
-
-int yyget_column  (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.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap (yyscan_t yyscanner );
-#else
-extern int yywrap (yyscan_t yyscanner );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* 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);
-
-#define YY_DECL int yylex \
-               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-
-#line 398 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-
-
-#line 356 "BsLexerFX.h"
-#undef yyIN_HEADER
-#endif /* yyHEADER_H */

+ 0 - 271
Source/BansheeSL/Include/BsParserFX.h

@@ -1,271 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.7.  */
-
-/* Skeleton interface for Bison GLR parsers in C
-   
-      Copyright (C) 2002-2012 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-#ifndef YY_YY_BSPARSERFX_H_INCLUDED
-# define YY_YY_BSPARSERFX_H_INCLUDED
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-/* "%code requires" blocks.  */
-/* Line 2579 of glr.c  */
-#line 9 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-
-#include "BsMMAlloc.h"
-#include "BsASTFX.h"
-#include "BsIncludeHandler.h"
-
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-	typedef void* yyscan_t;
-#endif
-
-typedef struct YYLTYPE {
-	int first_line;
-	int first_column;
-	int last_line;
-	int last_column;
-	char *filename;
-} YYLTYPE;
-#define YYLTYPE_IS_DECLARED 1
-
-#define YYLLOC_DEFAULT(Current, Rhs, N)																\
-	do																								\
-		if (N)																						\
-		{																							\
-			(Current).first_line = YYRHSLOC (Rhs, 1).first_line;									\
-			(Current).first_column = YYRHSLOC (Rhs, 1).first_column;								\
-			(Current).last_line = YYRHSLOC (Rhs, N).last_line;										\
-			(Current).last_column = YYRHSLOC (Rhs, N).last_column;									\
-			(Current).filename = YYRHSLOC (Rhs, 1).filename;										\
-		}																							\
-		else																						\
-		{																							\
-			(Current).first_line = (Current).last_line = YYRHSLOC (Rhs, 0).last_line;				\
-			(Current).first_column = (Current).last_column = YYRHSLOC (Rhs, 0).last_column;			\
-			(Current).filename = NULL;																\
-		}																							\
-	while (0)
-
-#define ADD_PARAMETER(OUTPUT, TYPE, NAME)															\
-			OUTPUT = nodeCreate(parse_state->memContext, NT_Parameter);								\
-			nodePush(parse_state, OUTPUT);															\
-																									\
-			NodeOption paramType;																	\
-			paramType.type = OT_ParamType;															\
-			paramType.value.intValue = TYPE;														\
-																									\
-			NodeOption paramName;																	\
-			paramName.type = OT_Identifier;															\
-			paramName.value.strValue = NAME;														\
-																									\
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &paramType);		\
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &paramName);		\
-
-
-
-/* Line 2579 of glr.c  */
-#line 101 "BsParserFX.h"
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     TOKEN_INTEGER = 258,
-     TOKEN_FLOAT = 259,
-     TOKEN_BOOLEAN = 260,
-     TOKEN_STRING = 261,
-     TOKEN_IDENTIFIER = 262,
-     TOKEN_FILLMODEVALUE = 263,
-     TOKEN_CULLMODEVALUE = 264,
-     TOKEN_COMPFUNCVALUE = 265,
-     TOKEN_OPVALUE = 266,
-     TOKEN_COLORMASK = 267,
-     TOKEN_ADDRMODEVALUE = 268,
-     TOKEN_FILTERVALUE = 269,
-     TOKEN_BLENDOPVALUE = 270,
-     TOKEN_BUFFERUSAGE = 271,
-     TOKEN_QUEUETYPE = 272,
-     TOKEN_FLOATTYPE = 273,
-     TOKEN_FLOAT2TYPE = 274,
-     TOKEN_FLOAT3TYPE = 275,
-     TOKEN_FLOAT4TYPE = 276,
-     TOKEN_INTTYPE = 277,
-     TOKEN_INT2TYPE = 278,
-     TOKEN_INT3TYPE = 279,
-     TOKEN_INT4TYPE = 280,
-     TOKEN_COLORTYPE = 281,
-     TOKEN_MAT2x2TYPE = 282,
-     TOKEN_MAT2x3TYPE = 283,
-     TOKEN_MAT2x4TYPE = 284,
-     TOKEN_MAT3x2TYPE = 285,
-     TOKEN_MAT3x3TYPE = 286,
-     TOKEN_MAT3x4TYPE = 287,
-     TOKEN_MAT4x2TYPE = 288,
-     TOKEN_MAT4x3TYPE = 289,
-     TOKEN_MAT4x4TYPE = 290,
-     TOKEN_SAMPLER1D = 291,
-     TOKEN_SAMPLER2D = 292,
-     TOKEN_SAMPLER3D = 293,
-     TOKEN_SAMPLERCUBE = 294,
-     TOKEN_SAMPLER2DMS = 295,
-     TOKEN_TEXTURE1D = 296,
-     TOKEN_TEXTURE2D = 297,
-     TOKEN_TEXTURE3D = 298,
-     TOKEN_TEXTURECUBE = 299,
-     TOKEN_TEXTURE2DMS = 300,
-     TOKEN_RWTEXTURE1D = 301,
-     TOKEN_RWTEXTURE2D = 302,
-     TOKEN_RWTEXTURE3D = 303,
-     TOKEN_RWTEXTURE2DMS = 304,
-     TOKEN_BYTEBUFFER = 305,
-     TOKEN_STRUCTBUFFER = 306,
-     TOKEN_RWTYPEDBUFFER = 307,
-     TOKEN_RWBYTEBUFFER = 308,
-     TOKEN_RWSTRUCTBUFFER = 309,
-     TOKEN_RWAPPENDBUFFER = 310,
-     TOKEN_RWCONSUMEBUFFER = 311,
-     TOKEN_PARAMSBLOCK = 312,
-     TOKEN_AUTO = 313,
-     TOKEN_ALIAS = 314,
-     TOKEN_SHARED = 315,
-     TOKEN_USAGE = 316,
-     TOKEN_BASE = 317,
-     TOKEN_INHERITS = 318,
-     TOKEN_SEPARABLE = 319,
-     TOKEN_SORT = 320,
-     TOKEN_PRIORITY = 321,
-     TOKEN_TRANSPARENT = 322,
-     TOKEN_PARAMETERS = 323,
-     TOKEN_BLOCKS = 324,
-     TOKEN_TECHNIQUE = 325,
-     TOKEN_RENDERER = 326,
-     TOKEN_LANGUAGE = 327,
-     TOKEN_PASS = 328,
-     TOKEN_TAGS = 329,
-     TOKEN_VERTEX = 330,
-     TOKEN_FRAGMENT = 331,
-     TOKEN_GEOMETRY = 332,
-     TOKEN_HULL = 333,
-     TOKEN_DOMAIN = 334,
-     TOKEN_COMPUTE = 335,
-     TOKEN_COMMON = 336,
-     TOKEN_STENCILREF = 337,
-     TOKEN_FILLMODE = 338,
-     TOKEN_CULLMODE = 339,
-     TOKEN_DEPTHBIAS = 340,
-     TOKEN_SDEPTHBIAS = 341,
-     TOKEN_DEPTHCLIP = 342,
-     TOKEN_SCISSOR = 343,
-     TOKEN_MULTISAMPLE = 344,
-     TOKEN_AALINE = 345,
-     TOKEN_DEPTHREAD = 346,
-     TOKEN_DEPTHWRITE = 347,
-     TOKEN_COMPAREFUNC = 348,
-     TOKEN_STENCIL = 349,
-     TOKEN_STENCILREADMASK = 350,
-     TOKEN_STENCILWRITEMASK = 351,
-     TOKEN_STENCILOPFRONT = 352,
-     TOKEN_STENCILOPBACK = 353,
-     TOKEN_FAIL = 354,
-     TOKEN_ZFAIL = 355,
-     TOKEN_ALPHATOCOVERAGE = 356,
-     TOKEN_INDEPENDANTBLEND = 357,
-     TOKEN_TARGET = 358,
-     TOKEN_INDEX = 359,
-     TOKEN_BLEND = 360,
-     TOKEN_COLOR = 361,
-     TOKEN_ALPHA = 362,
-     TOKEN_WRITEMASK = 363,
-     TOKEN_SOURCE = 364,
-     TOKEN_DEST = 365,
-     TOKEN_OP = 366,
-     TOKEN_ADDRMODE = 367,
-     TOKEN_MINFILTER = 368,
-     TOKEN_MAGFILTER = 369,
-     TOKEN_MIPFILTER = 370,
-     TOKEN_MAXANISO = 371,
-     TOKEN_MIPBIAS = 372,
-     TOKEN_MIPMIN = 373,
-     TOKEN_MIPMAX = 374,
-     TOKEN_BORDERCOLOR = 375,
-     TOKEN_U = 376,
-     TOKEN_V = 377,
-     TOKEN_W = 378
-   };
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-/* Line 2579 of glr.c  */
-#line 73 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-
-	int intValue;
-	float floatValue;
-	float matrixValue[16];
-	int intVectorValue[4];
-	const char* strValue;
-	ASTFXNode* nodePtr;
-	NodeOption nodeOption;
-
-
-/* Line 2579 of glr.c  */
-#line 249 "BsParserFX.h"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE
-{
-  int first_line;
-  int first_column;
-  int last_line;
-  int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
-# define YYLTYPE_IS_DECLARED 1
-# define YYLTYPE_IS_TRIVIAL 1
-#endif
-
-
-int yyparse (ParseState* parse_state, yyscan_t scanner);
-
-#endif /* !YY_YY_BSPARSERFX_H_INCLUDED  */

+ 0 - 3910
Source/BansheeSL/Source/BsLexerFX.c

@@ -1,3910 +0,0 @@
-#line 2 "BsLexerFX.c"
-
-#line 4 "BsLexerFX.c"
-
-#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 37
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! C99 */
-
-#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
-#define yyconst const
-#else
-#define yyconst
-#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
- * double cast.
- */
-#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
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#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.
- */
-#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
-#define YY_BUF_SIZE 16384
-#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;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#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. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < yyleng; ++yyl )\
-                    if ( yytext[yyl] == '\n' )\
-                        --yylineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = yyg->yy_hold_char; \
-		YY_RESTORE_YY_MORE_OFFSET \
-		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-		} \
-	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;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t 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
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    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.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#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".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
-                          ? 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 );
-void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-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 );
-
-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 ){ \
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	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 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 );
-
-/* 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 = (size_t) (yy_cp - yy_bp); \
-	yyg->yy_hold_char = *yy_cp; \
-	*yy_cp = '\0'; \
-	yyg->yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 235
-#define YY_END_OF_BUFFER 236
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[904] =
-    {   0,
-        1,    1,  175,  175,  218,  218,  221,  221,    0,    0,
-      231,  231,    0,    0,  183,  183,  186,  186,  190,  190,
-      194,  194,  207,  207,  200,  200,  236,  234,    1,    1,
-      234,  234,  234,  234,    2,    2,  146,  145,  233,  233,
-      233,  233,  144,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  143,  233,  233,   98,   99,  100,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  177,  175,
-      175,  177,  219,  218,  218,  217,  222,  221,  221,  220,
-      225,  225,  223,  224,  231,  231,  226,  227,  228,  229,
-      230,  182,  179,  181,  181,  180,  183,  184,  188,  186,
-
-      186,  187,  192,  190,  190,  191,  196,  194,  194,  195,
-      209,  207,  207,  208,  206,  200,  200,  206,    1,    0,
-        5,    0,    0,    0,    0,    2,  232,    0,    2,    0,
-      233,  233,  233,  233,  233,  233,  233,  152,  233,  233,
-      233,  233,  233,  233,  110,  233,  233,  233,  233,  233,
-      233,  233,  116,  233,  233,  233,  233,  233,  151,  150,
-      119,  233,  233,  233,  233,  233,  233,  114,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,   88,  233,  233,
-      233,  233,  149,  148,  233,  147,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  175,    0,
-      176,  218,  221,  231,  180,  183,  186,  187,  190,  191,
-      194,  195,  207,  208,  200,    0,    0,    0,    0,    0,
-        0,    0,    0,    2,  232,    4,    3,  233,  137,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  111,
-      233,  233,  233,  233,  233,  124,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  156,  118,  233,  233,
-      123,  127,  233,  233,  233,  115,  233,  141,  140,  233,
-      233,  233,  233,  233,  233,  117,  233,  233,  233,  128,
-
-      233,  233,  233,  233,  233,  155,  233,  154,  153,  233,
-      233,  233,  233,  233,  233,  233,  233,  138,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,    8,  233,  233,  233,  233,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    4,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,   61,  233,
-      133,  233,  233,  233,  233,   87,  233,  112,  233,   76,
-       60,  233,  233,  213,  233,  233,  120,  233,  233,  233,
-
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  113,  233,  233,   58,  233,  233,  157,  139,  233,
-      233,  233,  233,  233,  233,  134,  233,  233,  233,  233,
-      233,  233,  233,   49,  233,  233,  233,   57,  233,  233,
-      233,  233,  233,  107,  158,  233,  121,  233,  233,  101,
-      105,  233,  233,  233,  233,    9,   10,   11,  233,  233,
-      233,  233,    6,  233,    0,    0,    0,    0,    0,    0,
-      198,  197,    0,    0,    0,    0,    0,    0,    4,  233,
-      165,  233,   84,  233,  233,  233,   82,   47,  233,  233,
-      160,   83,  233,  233,  233,  233,  233,  135,  233,  233,
-
-      233,  233,  233,  233,  233,  233,  233,  233,   81,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  163,  233,  233,  233,  233,  233,
-      233,  233,  233,  108,  136,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,   77,  102,   16,    7,   12,  233,  233,  233,  233,
-      233,  104,  204,  203,    0,    0,    0,    0,  199,  189,
-        0,    0,  185,   67,  168,  233,  233,  233,  233,  161,
-       54,  233,  233,  216,  233,  233,  233,  233,  233,  129,
-      233,  233,  233,  233,  233,  214,  233,  233,  233,  233,
-
-      233,  164,  233,  159,  233,  233,  233,  233,   96,   95,
-      233,  233,  233,  109,  233,  173,  166,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  130,  169,  233,  233,
-      233,  233,   86,  233,  233,   80,  233,  233,  233,  210,
-      233,   13,   14,   15,  233,   17,   18,   19,   20,   21,
-       22,   23,   24,   25,  103,  205,  201,    0,  178,  193,
-        0,  233,  233,  233,  233,  233,  233,  233,  215,  233,
-      126,  131,  170,  233,  233,  233,  233,  233,  233,  233,
-      125,  233,  167,  233,  233,  233,  233,  233,  233,  233,
-      142,  233,  233,  233,  122,  233,  233,  233,  233,  233,
-
-      132,  233,  233,   65,  233,   71,  233,  233,  233,  233,
-      233,  233,  202,  174,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  211,  212,  233,
-       56,  233,   93,  233,  233,  233,  233,  162,  233,   50,
-      233,  233,  233,  233,   55,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  106,  233,  233,  233,  233,  233,  233,  233,
-      233,   62,   64,   68,  233,  233,  233,   91,   90,   92,
-      233,  233,  233,  233,  233,  233,  233,   26,   27,   28,
-      233,  233,   48,  233,  233,  233,  233,   52,   31,   32,
-
-       33,  233,  233,   85,  233,  233,  233,  233,  233,   40,
-      233,  233,   69,  233,  233,   94,  233,   53,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-       59,  233,  233,  233,  233,  233,   89,  233,  233,  172,
-       97,   70,  233,  171,  233,   66,  233,  233,   36,   37,
-       38,  233,   30,   29,  233,  233,  233,  233,  233,  233,
-       35,   34,   51,  233,   45,  233,  233,   43,  233,  233,
-      233,  233,  233,  233,  233,  233,   41,  233,   46,  233,
-      233,   39,   42,  233,   75,  233,  233,  233,  233,  233,
-       44,  233,   74,  233,  233,   78,  233,   63,   72,  233,
-
-       79,   73,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
-        1,    1,    7,    1,    8,    9,   10,   11,   12,   13,
-       14,   15,   16,   16,   16,   16,   16,    1,    1,    1,
-       17,    1,    1,    1,   18,   19,   20,   21,   22,   23,
-       24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
-       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
-        1,    1,    1,    1,   27,    1,   44,   45,   46,   47,
-
-       48,   49,   50,   51,   52,   27,   53,   54,   55,   56,
-       57,   58,   59,   60,   61,   62,   63,   64,   27,   65,
-       66,   27,   67,    1,   68,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    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[69] =
-    {   0,
-        1,    1,    2,    3,    1,    1,    1,    1,    1,    1,
-        4,    4,    4,    4,    4,    4,    1,    4,    4,    4,
-        4,    4,    4,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    4,    4,    4,    4,    4,    4,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[927] =
-    {   0,
-        0,    0,   67,   71,   75,   78,   81,   84,   87,   92,
-       95,  100,  160,  228,   97,  113,  296,  364,  432,  500,
-      568,  636,  704,  772,  116,  121, 1328, 1329,  126,  129,
-     1322,   87,  129, 1316,  181,  169,  229,  260,  228,  164,
-     1291,  297,  170, 1261,   90,    0, 1301,  112,  161,  104,
-      167,  233,  234,  290,  155,    0, 1274,  228,  130,  147,
-     1277, 1263,   93, 1263, 1274, 1266, 1256, 1254, 1329,  269,
-      277, 1309, 1329,  316,  327, 1329, 1329,  340,  351, 1329,
-     1329, 1329, 1329, 1329, 1329,  356, 1329, 1329, 1329, 1329,
-     1329, 1329, 1329, 1329, 1329,    0,    0, 1329, 1329,  380,
-
-      383,    0, 1329,  386,  389,    0, 1329,  392,  395,    0,
-     1329,  398,  401,    0, 1329,  404,  407,  156,  410, 1308,
-     1329, 1264,  155,  167, 1255,  404,    0,  410,  441,    0,
-        0, 1281, 1288, 1282, 1260, 1248, 1247, 1284, 1268,  169,
-     1242, 1239, 1260, 1281,    0,  373, 1244, 1277, 1259, 1264,
-       32, 1239,    0, 1267, 1260, 1239, 1236, 1245,    0, 1270,
-     1265, 1229, 1231,  247, 1237, 1261, 1251, 1259, 1224, 1238,
-      224,  199,  265, 1224, 1243,  325, 1254,    0, 1239, 1248,
-       97, 1221,    0, 1254, 1238,  201, 1232,  314, 1213, 1239,
-     1247, 1248, 1246, 1209,  217, 1205,  277,  154,  234,  270,
-
-     1218, 1201, 1225, 1241, 1206, 1222, 1212, 1203, 1192, 1192,
-     1198, 1197, 1193,  400, 1187, 1204, 1184, 1202,  456, 1240,
-     1329,  461,  464,  467,    0,    0,  470,    0,  473,    0,
-      476,    0,  479,    0,  482,  433, 1195, 1194,  214, 1195,
-      441, 1195, 1193,  479,    0,  507,    0, 1187,    0, 1202,
-     1177, 1185, 1187, 1206, 1212, 1176, 1185, 1183, 1181,    0,
-     1198, 1170,  469, 1165, 1171, 1184,  507, 1205, 1160, 1159,
-     1176, 1190, 1187, 1163, 1162, 1165,    0,    0, 1159, 1159,
-     1172,    0, 1163, 1177, 1187,    0, 1158,    0,    0, 1172,
-     1183, 1187, 1181,  505, 1141,    0,  324, 1176, 1169,    0,
-
-     1164, 1168, 1154, 1136, 1139,    0, 1166,    0, 1176, 1174,
-     1126, 1129,  478, 1143, 1163,  513, 1151,    0, 1129, 1132,
-     1124, 1140, 1121, 1122, 1125, 1117, 1118, 1128, 1126, 1114,
-     1119, 1112, 1151, 1139, 1109, 1138, 1117, 1124, 1110, 1118,
-     1108, 1103, 1119, 1114,  523,  532, 1101, 1112, 1109,  480,
-     1111,  487, 1105, 1107, 1107, 1102, 1105, 1105, 1097, 1102,
-      550, 1329, 1093, 1116, 1099, 1102, 1089, 1107, 1121, 1095,
-     1088, 1092, 1120, 1105, 1077, 1079,  496, 1072,    0, 1099,
-        0,  568, 1109, 1102, 1080,    0, 1078,    0, 1092,    0,
-        0, 1073, 1079,    0, 1091,  281,    0, 1107, 1061, 1091,
-
-     1070, 1065, 1068, 1067,  543, 1074, 1065, 1087, 1086, 1085,
-     1078,    0, 1075, 1056,    0, 1050, 1091,    0,    0, 1046,
-     1047, 1041, 1047, 1056, 1082,    0,  570, 1078, 1075, 1046,
-     1051, 1037, 1037,    0, 1050, 1049, 1048,    0, 1045, 1036,
-     1028, 1029, 1041,    0,    0, 1040,    0, 1033, 1025,    0,
-        0, 1025, 1036, 1021, 1022,    0,    0,    0, 1016, 1015,
-     1014, 1030,    0, 1029, 1027, 1027, 1022, 1025, 1025, 1015,
-     1329, 1329, 1021, 1020, 1020, 1004, 1017,  538,  578, 1017,
-     1044, 1002, 1025, 1014, 1028, 1024,    0,  997,  997,  993,
-        0,    0,  999,  994,  991,  997, 1033,    0, 1026, 1030,
-
-     1022,  577,  991, 1009,  997,  982, 1025,  994,    0, 1006,
-      996, 1004,  984,  985,  982,  981,  969,  977,  974,  970,
-      998, 1000,  991,  990, 1006,  977,  972, 1003,  974,  958,
-      958,  971,  958,    0,    0,  993,  997,  995,  966,  966,
-      955,  967,  962,  957,  946,  945,  954,  945,  946,  938,
-      972,    0,    0,    0,    0,  585,  949,  593,  596,  600,
-      953,    0, 1329, 1329,  950,  949,  949,  948, 1329, 1329,
-      946,  947, 1329,    0,    0,  932,  935,  972,  967,    0,
-        0,  969,  939,    0,  939,  938,  937,  951,  964,    0,
-      962,  929,  926,  931,  918,    0,  945,  920,  915,  941,
-
-      917,  952,  921,    0,  908,  908,  906,  905,    0,    0,
-      947,  921,  929,    0,  941,    0,    0,  900,  899,  938,
-      940,  912,  894,  909,  907,  935,    0,    0,  893,  931,
-      891,  905,    0,  895,  929,    0,  888,  898,  901,    0,
-      900,    0,    0,    0,  881,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0, 1329, 1329,  893, 1329, 1329,
-      893,  910,  919,  875,  902,  879,  886,  911,    0,  914,
-        0,    0,    0,  885,  865,  872,  857,  883,  776,  771,
-        0,  789,    0,  787,  786,  776,  784,  783,  778,  774,
-        0,  793,  779,  760,    0,  762,  762,  763,  803,  761,
-
-        0,  606,  772,    0,  765,  589,  755,  754,  642,  756,
-      754,  753, 1329, 1329,  756,  755,  762,  778,  755,  760,
-      744,  743,  744,  746,  756,  740,  783,    0,    0,  756,
-        0,  739,    0,  738,  737,  752,  737,    0,  734,    0,
-      744,  773,  743,  727,    0,  749,  748,  747,  729,  708,
-      717,  706,  715,  702,  712,  712,  738,  737,  736,  718,
-      707,  701,    0,  706,  688,  702,  719,  692,  688,  691,
-      697,    0,    0,    0,  697,  724,  687,    0,    0,    0,
-      681,  687,  679,  690,  675,  618,  688,    0,  706,    0,
-      716,  672,    0,  638,  579,  681,  683,    0,    0,  701,
-
-        0,  711,  673,    0,  680,  679,  678,  688,  664,    0,
-      677,  673,    0,   77,  129,    0,  214,    0,  241,  241,
-      303,  409,  440,  447,  462,  580,  553,  572,  562,  578,
-        0,  571,  586,  622,  637,  598,    0,  603,  604,    0,
-        0,    0,  617,    0,  647,    0,  607,  619,    0,  639,
-        0,  622,    0,    0,  652,  626,  616,  644,  627,  616,
-        0,    0,    0,  633,    0,  618,  625,    0,  632,  645,
-      622,  631,  631,  629,  642,  657,    0,  638,    0,  641,
-      630,    0,    0,  647,    0,  630,  632,  650,  647,  640,
-        0,  636,    0,  645,  638,    0,  653,    0,    0,  648,
-
-        0,    0, 1329,  840,  845,  850,  855,  860,  865,  870,
-      875,  880,  885,  890,  895,  900,  902,  907,  909,  914,
-      916,  918,  920,  922,  927,  698
-    } ;
-
-static yyconst flex_int16_t yy_def[927] =
-    {   0,
-      903,    1,  904,  904,  905,  905,  906,  906,  907,  907,
-      908,  908,  909,  909,  910,  910,  911,  911,  912,  912,
-      913,  913,  914,  914,  915,  915,  903,  903,  903,  903,
-      916,  903,  903,  903,  903,  903,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  903,  903,
-      903,  918,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  919,  920,  903,  903,  903,
-
-      903,  921,  903,  903,  903,  922,  903,  903,  903,  923,
-      903,  903,  903,  924,  903,  903,  903,  903,  903,  916,
-      903,  903,  903,  903,  903,  903,  925,  903,  903,  926,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  903,  918,
-      903,  903,  903,  903,  919,  920,  903,  921,  903,  922,
-      903,  923,  903,  924,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  925,  903,  926,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  903,  903,  903,  903,  903,
-      903,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  903,  903,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-      917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
-
-      917,  917,    0,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903
-    } ;
-
-static yyconst flex_int16_t yy_nxt[1398] =
-    {   0,
-       28,   29,   30,   29,   31,   32,   28,   33,   28,   34,
-       35,   36,   36,   36,   36,   36,   28,   37,   38,   39,
-       40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
-       50,   51,   52,   46,   53,   54,   55,   56,   57,   58,
-       46,   46,   59,   60,   61,   62,   46,   46,   63,   46,
-       46,   64,   46,   46,   65,   46,   46,   46,   46,   46,
-       66,   67,   68,   46,   46,   46,   28,   28,   70,   71,
-       70,   72,   70,   71,   70,   72,   74,   75,   74,   74,
-       75,   74,   78,   79,   78,   78,   79,   78,   82,  269,
-       82,   76,  270,   82,   76,   82,   86,   86,   86,   98,
-
-       98,   86,   86,   86,  844,   87,   88,   89,   90,   91,
-       87,   88,   89,   90,   91,   98,   98,  116,  117,  116,
-      164,  118,  116,  117,  116,  175,  118,  119,  119,  119,
-      119,  119,  119,  122,  123,  176,  212,  167,  124,  126,
-      126,  126,  126,  126,  126,  165,  213,   80,  168,  125,
-       80,  206,  207,   83,   84,  169,  303,  304,   83,   84,
-       92,   93,   94,   95,   92,   92,   92,   92,   92,   92,
-       92,   92,   92,   92,   92,   92,   92,  128,  170,  129,
-      129,  129,  129,  129,  129,  148,  171,  159,  160,  128,
-      845,  129,  129,  129,  129,  129,  129,  177,  199,  149,
-
-      208,  325,  200,  236,  172,  150,  161,  237,  239,  209,
-      240,  151,  173,  326,  201,  241,  256,  162,  308,  309,
-      152,  130,  242,  174,  178,  257,   92,   92,   92,   93,
-       94,   95,   92,   92,   92,   92,   92,   92,   92,   92,
-       92,   92,   92,   92,   92,  130,  132,  143,  291,  133,
-      179,  183,  184,  203,  289,  185,  144,  186,  290,  134,
-      320,  846,  204,  292,  180,  354,  281,  145,  321,  187,
-      219,  219,  219,  188,  355,  135,  181,  138,  219,  219,
-      219,  189,  136,  327,  146,  282,  137,  205,  847,  848,
-      147,  139,  182,  328,   92,   92,   99,  100,  101,  100,
-
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,  140,  154,  329,  141,  222,  222,  222,
-      293,  190,  294,  849,  191,  142,  192,  193,  222,  222,
-      222,  155,  311,  194,  330,  195,  323,  196,  508,  324,
-      156,  223,  223,  223,  297,  509,  197,  298,  157,  312,
-      313,  198,  223,  223,  223,  408,  158,  224,  224,  224,
-      299,  409,   99,   99,   99,  100,  101,  100,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,  227,  227,  227,  227,  227,  227,  229,  229,  229,
-      229,  229,  229,  231,  231,  231,  231,  231,  231,  233,
-
-      233,  233,  233,  233,  233,  235,  235,  235,  235,  235,
-      235,  119,  119,  119,  244,  244,  244,  244,  244,  244,
-      246,  246,  246,  246,  246,  246,  262,  263,  264,  850,
-       99,   99,  103,  104,  105,  104,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  128,
-      344,  129,  129,  129,  129,  129,  129,  219,  219,  219,
-      851,  345,  222,  222,  222,  223,  223,  223,  224,  224,
-      224,  227,  227,  227,  229,  229,  229,  231,  231,  231,
-      233,  233,  233,  235,  235,  235,  350,  357,  351,  244,
-      244,  244,  244,  244,  244,  852,  358,  853,  103,  103,
-
-      103,  104,  105,  104,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  246,  246,  246,
-      246,  246,  246,  376,  381,  422,  377,  404,  361,  362,
-      426,  465,  382,  468,  405,  456,  457,  458,  427,  494,
-      466,  383,  469,  423,  459,  460,  461,  428,  479,  479,
-      479,  479,  479,  479,  361,  362,  478,  478,  495,  406,
-      479,  479,  479,  479,  479,  479,  103,  103,  107,  108,
-      109,  108,  107,  107,  107,  107,  107,  107,  107,  107,
-      107,  107,  107,  107,  107,  498,  517,  535,  479,  479,
-      479,  479,  479,  479,  518,  592,  593,  642,  643,  644,
-
-      362,  854,  499,  855,  536,  646,  647,  648,  649,  650,
-      651,  594,  652,  653,  654,  856,  595,  746,  747,  748,
-      752,  857,  830,  753,  858,  749,  362,  831,  754,  821,
-      822,  823,  859,  860,  107,  107,  107,  108,  109,  108,
-      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
-      107,  107,  107,  757,  758,  759,  828,  861,  862,  863,
-      829,  760,  864,  865,  866,  867,  868,  869,  870,  871,
-      872,  873,  874,  875,  876,  877,  878,  879,  880,  881,
-      882,  883,  884,  885,  886,  887,  888,  889,  890,  891,
-      892,  893,  894,  895,  896,  897,  898,  899,  900,  901,
-
-      902,  247,  107,  107,  111,  112,  113,  112,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  843,  842,  841,  840,  839,  838,  837,  836,  835,
-      834,  833,  832,  827,  826,  825,  824,  820,  819,  818,
-      817,  816,  815,  814,  813,  812,  811,  810,  809,  808,
-      807,  806,  805,  804,  803,  802,  801,  800,  799,  798,
-      797,  796,  795,  794,  793,  792,  791,  790,  789,  788,
-      111,  111,  111,  112,  113,  112,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  787,
-      786,  785,  784,  783,  782,  781,  780,  779,  778,  777,
-
-      776,  775,  774,  773,  772,  771,  770,  769,  768,  767,
-      766,  765,  764,  763,  762,  761,  756,  755,  751,  750,
-      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
-      735,  734,  733,  732,  731,  730,  729,  728,  111,  111,
-       69,   69,   69,   69,   69,   73,   73,   73,   73,   73,
-       77,   77,   77,   77,   77,   81,   81,   81,   81,   81,
-       85,   85,   85,   85,   85,   96,   96,   96,   96,   96,
-       97,   97,   97,   97,   97,  102,  102,  102,  102,  102,
-      106,  106,  106,  106,  106,  110,  110,  110,  110,  110,
-      114,  114,  114,  114,  114,  115,  115,  115,  115,  115,
-
-      120,  727,  120,  120,  120,  131,  131,  220,  726,  220,
-      220,  220,  225,  225,  226,  725,  724,  226,  226,  228,
-      228,  230,  230,  232,  232,  234,  234,  245,  723,  245,
-      245,  245,  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,  688,  687,  686,  685,
-      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
-      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
-      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
-
-      645,  641,  640,  639,  638,  637,  636,  635,  634,  633,
-      632,  631,  630,  629,  628,  627,  626,  625,  624,  623,
-      622,  621,  620,  619,  618,  617,  616,  615,  614,  613,
-      612,  611,  610,  609,  608,  607,  606,  605,  604,  603,
-      602,  601,  600,  599,  598,  597,  596,  591,  590,  589,
-      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
-      578,  577,  576,  575,  574,  573,  572,  571,  570,  569,
-      568,  567,  566,  565,  564,  563,  562,  561,  560,  559,
-      558,  557,  556,  555,  554,  553,  552,  551,  550,  549,
-      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
-
-      538,  537,  534,  533,  532,  531,  530,  529,  528,  527,
-      526,  525,  524,  523,  522,  521,  520,  519,  516,  515,
-      514,  513,  512,  511,  510,  507,  506,  505,  504,  503,
-      502,  501,  500,  497,  496,  493,  492,  491,  490,  489,
-      488,  487,  486,  485,  484,  483,  482,  481,  480,  477,
-      476,  475,  474,  473,  472,  471,  470,  467,  464,  463,
-      462,  455,  454,  453,  452,  451,  450,  449,  448,  447,
-      446,  445,  444,  443,  442,  441,  440,  439,  438,  437,
-      436,  435,  434,  433,  432,  431,  430,  429,  425,  424,
-      421,  420,  419,  418,  417,  416,  415,  414,  413,  412,
-
-      411,  410,  407,  403,  402,  401,  400,  399,  398,  397,
-      396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
-      386,  385,  384,  380,  379,  378,  375,  374,  373,  372,
-      371,  370,  369,  368,  367,  366,  365,  364,  363,  360,
-      359,  356,  353,  352,  221,  349,  348,  347,  346,  343,
-      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
-      332,  331,  322,  319,  318,  317,  316,  315,  314,  310,
-      307,  306,  305,  302,  301,  300,  296,  295,  288,  287,
-      286,  285,  284,  283,  280,  279,  278,  277,  276,  275,
-      274,  273,  272,  271,  268,  267,  266,  265,  261,  260,
-
-      259,  258,  255,  254,  253,  252,  251,  250,  249,  248,
-      243,  238,  121,  221,  218,  217,  216,  215,  214,  211,
-      210,  202,  166,  163,  153,  127,  121,  903,   27,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903
-
-    } ;
-
-static yyconst flex_int16_t yy_chk[1398] =
-    {   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,    3,    3,
-        3,    3,    4,    4,    4,    4,    5,    5,    5,    6,
-        6,    6,    7,    7,    7,    8,    8,    8,    9,  151,
-        9,    5,  151,   10,    6,   10,   11,   11,   11,   15,
-
-       15,   12,   12,   12,  814,   11,   11,   11,   11,   11,
-       12,   12,   12,   12,   12,   16,   16,   25,   25,   25,
-       45,   25,   26,   26,   26,   50,   26,   29,   29,   29,
-       30,   30,   30,   32,   32,   50,   63,   48,   32,   33,
-       33,   33,   33,   33,   33,   45,   63,    7,   48,   32,
-        8,   59,   59,    9,    9,   48,  181,  181,   10,   10,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   36,   49,   36,
-       36,   36,   36,   36,   36,   40,   49,   43,   43,   35,
-      815,   35,   35,   35,   35,   35,   35,   51,   55,   40,
-
-       60,  198,   55,  118,   49,   40,   43,  118,  123,   60,
-      123,   40,   49,  198,   55,  124,  140,   43,  186,  186,
-       40,   35,  124,   49,   51,  140,   13,   13,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   35,   37,   39,  172,   37,
-       52,   53,   53,   58,  171,   53,   39,   53,  171,   37,
-      195,  817,   58,  172,   52,  239,  164,   39,  195,   53,
-       70,   70,   70,   53,  239,   37,   52,   38,   71,   71,
-       71,   53,   37,  199,   39,  164,   37,   58,  819,  820,
-       39,   38,   52,  199,   14,   14,   17,   17,   17,   17,
-
-       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   38,   42,  200,   38,   74,   74,   74,
-      173,   54,  173,  821,   54,   38,   54,   54,   75,   75,
-       75,   42,  188,   54,  200,   54,  197,   54,  396,  197,
-       42,   78,   78,   78,  176,  396,   54,  176,   42,  188,
-      188,   54,   79,   79,   79,  297,   42,   86,   86,   86,
-      176,  297,   17,   17,   18,   18,   18,   18,   18,   18,
-       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
-       18,  100,  100,  100,  101,  101,  101,  104,  104,  104,
-      105,  105,  105,  108,  108,  108,  109,  109,  109,  112,
-
-      112,  112,  113,  113,  113,  116,  116,  116,  117,  117,
-      117,  119,  119,  119,  126,  126,  126,  126,  126,  126,
-      128,  128,  128,  128,  128,  128,  146,  146,  146,  822,
-       18,   18,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,  129,
-      214,  129,  129,  129,  129,  129,  129,  219,  219,  219,
-      823,  214,  222,  222,  222,  223,  223,  223,  224,  224,
-      224,  227,  227,  227,  229,  229,  229,  231,  231,  231,
-      233,  233,  233,  235,  235,  235,  236,  241,  236,  244,
-      244,  244,  244,  244,  244,  824,  241,  825,   19,   19,
-
-       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
-       20,   20,   20,   20,   20,   20,   20,  246,  246,  246,
-      246,  246,  246,  263,  267,  313,  263,  294,  246,  246,
-      316,  350,  267,  352,  294,  345,  345,  345,  316,  377,
-      350,  267,  352,  313,  346,  346,  346,  316,  478,  478,
-      478,  478,  478,  478,  246,  246,  361,  361,  377,  294,
-      361,  361,  361,  361,  361,  361,   20,   20,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,   21,   21,  382,  405,  427,  479,  479,
-      479,  479,  479,  479,  405,  502,  502,  556,  556,  556,
-
-      479,  826,  382,  827,  427,  558,  558,  558,  559,  559,
-      559,  502,  560,  560,  560,  828,  502,  702,  702,  702,
-      706,  829,  795,  706,  830,  702,  479,  795,  706,  786,
-      786,  786,  832,  833,   21,   21,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,  709,  709,  709,  794,  834,  835,  836,
-      794,  709,  838,  839,  843,  845,  847,  848,  850,  852,
-      855,  856,  857,  858,  859,  860,  864,  866,  867,  869,
-      870,  871,  872,  873,  874,  875,  876,  878,  880,  881,
-      884,  886,  887,  888,  889,  890,  892,  894,  895,  897,
-
-      900,  926,   22,   22,   23,   23,   23,   23,   23,   23,
-       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
-       23,  812,  811,  809,  808,  807,  806,  805,  803,  802,
-      800,  797,  796,  792,  791,  789,  787,  785,  784,  783,
-      782,  781,  777,  776,  775,  771,  770,  769,  768,  767,
-      766,  765,  764,  762,  761,  760,  759,  758,  757,  756,
-      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
-       23,   23,   24,   24,   24,   24,   24,   24,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,   24,  744,
-      743,  742,  741,  739,  737,  736,  735,  734,  732,  730,
-
-      727,  726,  725,  724,  723,  722,  721,  720,  719,  718,
-      717,  716,  715,  712,  711,  710,  708,  707,  705,  703,
-      700,  699,  698,  697,  696,  694,  693,  692,  690,  689,
-      688,  687,  686,  685,  684,  682,  680,  679,   24,   24,
-      904,  904,  904,  904,  904,  905,  905,  905,  905,  905,
-      906,  906,  906,  906,  906,  907,  907,  907,  907,  907,
-      908,  908,  908,  908,  908,  909,  909,  909,  909,  909,
-      910,  910,  910,  910,  910,  911,  911,  911,  911,  911,
-      912,  912,  912,  912,  912,  913,  913,  913,  913,  913,
-      914,  914,  914,  914,  914,  915,  915,  915,  915,  915,
-
-      916,  678,  916,  916,  916,  917,  917,  918,  677,  918,
-      918,  918,  919,  919,  920,  676,  675,  920,  920,  921,
-      921,  922,  922,  923,  923,  924,  924,  925,  674,  925,
-      925,  925,  670,  668,  667,  666,  665,  664,  663,  662,
-      661,  658,  645,  641,  639,  638,  637,  635,  634,  632,
-      631,  630,  629,  626,  625,  624,  623,  622,  621,  620,
-      619,  618,  615,  613,  612,  611,  608,  607,  606,  605,
-      603,  602,  601,  600,  599,  598,  597,  595,  594,  593,
-      592,  591,  589,  588,  587,  586,  585,  583,  582,  579,
-      578,  577,  576,  572,  571,  568,  567,  566,  565,  561,
-
-      557,  551,  550,  549,  548,  547,  546,  545,  544,  543,
-      542,  541,  540,  539,  538,  537,  536,  533,  532,  531,
-      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
-      520,  519,  518,  517,  516,  515,  514,  513,  512,  511,
-      510,  508,  507,  506,  505,  504,  503,  501,  500,  499,
-      497,  496,  495,  494,  493,  490,  489,  488,  486,  485,
-      484,  483,  482,  481,  480,  477,  476,  475,  474,  473,
-      470,  469,  468,  467,  466,  465,  464,  462,  461,  460,
-      459,  455,  454,  453,  452,  449,  448,  446,  443,  442,
-      441,  440,  439,  437,  436,  435,  433,  432,  431,  430,
-
-      429,  428,  425,  424,  423,  422,  421,  420,  417,  416,
-      414,  413,  411,  410,  409,  408,  407,  406,  404,  403,
-      402,  401,  400,  399,  398,  395,  393,  392,  389,  387,
-      385,  384,  383,  380,  378,  376,  375,  374,  373,  372,
-      371,  370,  369,  368,  367,  366,  365,  364,  363,  360,
-      359,  358,  357,  356,  355,  354,  353,  351,  349,  348,
-      347,  344,  343,  342,  341,  340,  339,  338,  337,  336,
-      335,  334,  333,  332,  331,  330,  329,  328,  327,  326,
-      325,  324,  323,  322,  321,  320,  319,  317,  315,  314,
-      312,  311,  310,  309,  307,  305,  304,  303,  302,  301,
-
-      299,  298,  295,  293,  292,  291,  290,  287,  285,  284,
-      283,  281,  280,  279,  276,  275,  274,  273,  272,  271,
-      270,  269,  268,  266,  265,  264,  262,  261,  259,  258,
-      257,  256,  255,  254,  253,  252,  251,  250,  248,  243,
-      242,  240,  238,  237,  220,  218,  217,  216,  215,  213,
-      212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
-      202,  201,  196,  194,  193,  192,  191,  190,  189,  187,
-      185,  184,  182,  180,  179,  177,  175,  174,  170,  169,
-      168,  167,  166,  165,  163,  162,  161,  160,  158,  157,
-      156,  155,  154,  152,  150,  149,  148,  147,  144,  143,
-
-      142,  141,  139,  138,  137,  136,  135,  134,  133,  132,
-      125,  122,  120,   72,   68,   67,   66,   65,   64,   62,
-       61,   57,   47,   44,   41,   34,   31,   27,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
-      903,  903,  903,  903,  903,  903,  903
-
-    } ;
-
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[236] =
-    {   0,
-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 
-    0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
-    1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
-    0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 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
-#line 1 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-#line 2 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-#include "BsParserFX.h"
-
-#define YY_USER_ACTION yylloc->first_column = yycolumn + 1; yylloc->first_line = yylineno + 1; yycolumn += (int)yyleng; yylloc->filename = getCurrentFilename(yyextra);
-#define YY_USER_INIT yylineno = 0; yycolumn = 0;
-#define YY_NO_UNISTD_H 1
-/* Start conditions */
-
-
-
-
-
-
-
-
-
-
-
-
-#line 1094 "BsLexerFX.c"
-
-#define INITIAL 0
-#define INCLUDE 1
-#define CODEBLOCK_HEADER 2
-#define CODEBLOCK_EQUALS 3
-#define CODEBLOCK 4
-#define CODEBLOCK_END 5
-#define DEFINE_COND 6
-#define DEFINE_COND_EXPR 7
-#define UNDEF_COND 8
-#define CONDITIONAL_IF 9
-#define CONDITIONAL_IFN 10
-#define CONDITIONAL_ELIF 11
-#define CONDITIONAL_IGNORE 12
-
-/*windows compatibility case*/
-#include <io.h>
-#define isatty _isatty
-#define fileno _fileno
-    
-#define YY_EXTRA_TYPE struct tagParseState *
-
-/* Holds the entire state of the reentrant scanner. */
-struct yyguts_t
-    {
-
-    /* User-defined. Not touched by flex. */
-    YY_EXTRA_TYPE yyextra_r;
-
-    /* The rest are the same as the globals declared in the non-reentrant scanner. */
-    FILE *yyin_r, *yyout_r;
-    size_t yy_buffer_stack_top; /**< index of top of stack. */
-    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;
-    char *yy_c_buf_p;
-    int yy_init;
-    int yy_start;
-    int yy_did_buffer_switch_on_eof;
-    int yy_start_stack_ptr;
-    int yy_start_stack_depth;
-    int *yy_start_stack;
-    yy_state_type yy_last_accepting_state;
-    char* yy_last_accepting_cpos;
-
-    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 );
-
-FILE *yyget_out (yyscan_t yyscanner );
-
-void yyset_out  (FILE * out_str ,yyscan_t yyscanner );
-
-yy_size_t 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 );
-
-int yyget_column  (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.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap (yyscan_t yyscanner );
-#else
-extern int yywrap (yyscan_t yyscanner );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
-    
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (yyscan_t yyscanner );
-#else
-static int input (yyscan_t yyscanner );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#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)
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(yyin); \
-			} \
-		}\
-\
-
-#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.
- */
-#ifndef yyterminate
-#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);
-
-#define YY_DECL int yylex \
-               (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.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK 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;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-#line 38 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-
-
-#line 1349 "BsLexerFX.c"
-
-    yylval = yylval_param;
-
-    yylloc = yylloc_param;
-
-	if ( !yyg->yy_init )
-		{
-		yyg->yy_init = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! yyg->yy_start )
-			yyg->yy_start = 1;	/* first start state */
-
-		if ( ! yyin )
-			yyin = stdin;
-
-		if ( ! yyout )
-			yyout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			yyensure_buffer_stack (yyscanner);
-			YY_CURRENT_BUFFER_LVALUE =
-				yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-		}
-
-		yy_load_buffer_state(yyscanner );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = yyg->yy_c_buf_p;
-
-		/* Support of yytext. */
-		*yy_cp = yyg->yy_hold_char;
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = yyg->yy_start;
-yy_match:
-		do
-			{
-			register 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;
-				yyg->yy_last_accepting_cpos = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 904 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_current_state != 903 );
-		yy_cp = yyg->yy_last_accepting_cpos;
-		yy_current_state = yyg->yy_last_accepting_state;
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-
-		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 )
-				if ( yytext[yyl] == '\n' )
-					   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-			}
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = yyg->yy_hold_char;
-			yy_cp = yyg->yy_last_accepting_cpos;
-			yy_current_state = yyg->yy_last_accepting_state;
-			goto yy_find_action;
-
-case 1:
-/* rule 1 can match eol */
-YY_RULE_SETUP
-#line 40 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 41 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = atoi(yytext); return TOKEN_INTEGER; }
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 42 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = (int)strtol(yytext, 0, 0); return TOKEN_INTEGER; }
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 43 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->floatValue = (float)atof(yytext); return TOKEN_FLOAT; }
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 44 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->strValue = mmalloc_strdup(yyextra->memContext, yytext); return TOKEN_STRING; }
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 45 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 1; return TOKEN_BOOLEAN; }
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 46 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0; return TOKEN_BOOLEAN; }
-	YY_BREAK
-/* Value types */
-case 8:
-YY_RULE_SETUP
-#line 50 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Int; return TOKEN_INTTYPE; } 
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 51 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Int2; return TOKEN_INT2TYPE; } 
-	YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 52 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Int3; return TOKEN_INT3TYPE; } 
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 53 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Int4; return TOKEN_INT4TYPE; }
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 55 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Float; return TOKEN_FLOATTYPE; } 
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 56 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Float2; return TOKEN_FLOAT2TYPE; } 
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 57 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Float3; return TOKEN_FLOAT3TYPE; } 
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 58 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Float4; return TOKEN_FLOAT4TYPE; }
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 59 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Color; return TOKEN_COLORTYPE; }
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 61 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat2x2; return TOKEN_MAT2x2TYPE; } 
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 62 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat2x3; return TOKEN_MAT2x3TYPE; } 
-	YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 63 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat2x4; return TOKEN_MAT2x4TYPE; }
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 65 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat3x2; return TOKEN_MAT3x2TYPE; } 
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 66 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat3x3; return TOKEN_MAT3x3TYPE; } 
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 67 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat3x4; return TOKEN_MAT3x4TYPE; }
-	YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 69 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat4x2; return TOKEN_MAT4x2TYPE; } 
-	YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 70 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat4x3; return TOKEN_MAT4x3TYPE; } 
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 71 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Mat4x4; return TOKEN_MAT4x4TYPE; }
-	YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 73 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Sampler1D; return TOKEN_SAMPLER1D; } 
-	YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 74 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Sampler2D; return TOKEN_SAMPLER2D; } 
-	YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 75 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Sampler3D; return TOKEN_SAMPLER3D; } 
-	YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 76 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_SamplerCUBE; return TOKEN_SAMPLERCUBE; } 
-	YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 77 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Sampler2DMS; return TOKEN_SAMPLER2DMS; }
-	YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 79 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Texture1D; return TOKEN_TEXTURE1D; } 
-	YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 80 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Texture2D; return TOKEN_TEXTURE2D; } 
-	YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 81 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Texture3D; return TOKEN_TEXTURE3D; } 
-	YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 82 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_TextureCUBE; return TOKEN_TEXTURECUBE; } 
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 83 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_Texture2DMS; return TOKEN_TEXTURE2DMS; }
-	YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 85 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_RWTexture1D; return TOKEN_RWTEXTURE1D; } 
-	YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 86 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_RWTexture2D; return TOKEN_RWTEXTURE2D; } 
-	YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 87 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_RWTexture3D; return TOKEN_RWTEXTURE3D; } 
-	YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 88 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_RWTexture2DMS; return TOKEN_RWTEXTURE2DMS; }
-	YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 90 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_ByteBuffer; return TOKEN_BYTEBUFFER; } 
-	YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 91 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_StructBuffer; return TOKEN_STRUCTBUFFER; } 
-	YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 93 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_TypedBufferRW; return TOKEN_RWTYPEDBUFFER; } 
-	YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 94 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_ByteBufferRW; return TOKEN_RWBYTEBUFFER; }
-	YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 95 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_StructBufferRW; return TOKEN_RWSTRUCTBUFFER; } 
-	YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 96 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_AppendBuffer; return TOKEN_RWAPPENDBUFFER; } 
-	YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 97 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = PT_ConsumeBuffer; return TOKEN_RWCONSUMEBUFFER; }
-	YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 99 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_PARAMSBLOCK; }
-	YY_BREAK
-/* Shader keywords */
-case 48:
-YY_RULE_SETUP
-#line 102 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SEPARABLE; }
-	YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 103 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SORT; }
-	YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 104 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_PRIORITY; }
-	YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 105 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_TRANSPARENT; }
-	YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 106 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_TECHNIQUE; }
-	YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 107 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_PARAMETERS; }
-	YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 108 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_BLOCKS; }
-	YY_BREAK
-/* Technique keywords */
-case 55:
-YY_RULE_SETUP
-#line 111 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_RENDERER; }
-	YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 112 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_LANGUAGE; }
-	YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 113 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_TAGS; }
-	YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 114 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_PASS; }
-	YY_BREAK
-/* Pass keywords */
-case 59:
-YY_RULE_SETUP
-#line 117 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCILREF; }
-	YY_BREAK
-/* Rasterizer state keywords */
-case 60:
-YY_RULE_SETUP
-#line 120 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_FILLMODE; }
-	YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 121 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_CULLMODE; }
-	YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 122 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_DEPTHBIAS; }
-	YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 123 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SDEPTHBIAS; }
-	YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 124 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_DEPTHCLIP; }
-	YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 125 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SCISSOR; }
-	YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 126 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MULTISAMPLE; }
-	YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 127 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_AALINE; }
-	YY_BREAK
-/* Depth-stencil state keywords */
-case 68:
-YY_RULE_SETUP
-#line 130 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_DEPTHREAD; }
-	YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 131 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_DEPTHWRITE; }
-	YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 132 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_COMPAREFUNC; }
-	YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 133 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCIL; }
-	YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 134 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCILREADMASK; }
-	YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 135 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCILWRITEMASK; }
-	YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 136 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCILOPFRONT; }
-	YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 137 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_STENCILOPBACK; }
-	YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 138 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_FAIL; }
-	YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 139 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_ZFAIL; }
-	YY_BREAK
-/* Blend state keywords */
-case 78:
-YY_RULE_SETUP
-#line 142 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_ALPHATOCOVERAGE; }
-	YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 143 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_INDEPENDANTBLEND; }
-	YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 144 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_TARGET; }
-	YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 145 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_INDEX; }
-	YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 146 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_BLEND; }
-	YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 147 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_COLOR; }
-	YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 148 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_ALPHA; }
-	YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 149 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_WRITEMASK; }
-	YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 150 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SOURCE; }
-	YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 151 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_DEST; }
-	YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 152 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_OP; }
-	YY_BREAK
-/* Sampler state keywords */
-case 89:
-YY_RULE_SETUP
-#line 155 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_ADDRMODE; }
-	YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 156 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MINFILTER; }
-	YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 157 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MAGFILTER; }
-	YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 158 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MIPFILTER; }
-	YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 159 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MAXANISO; }
-	YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 160 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MIPBIAS; }
-	YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 161 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MIPMIN; }
-	YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 162 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_MIPMAX; }
-	YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 163 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_BORDERCOLOR; }
-	YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 164 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_U; }
-	YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 165 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_V; }
-	YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 166 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_W; }
-	YY_BREAK
-/* Qualifiers */
-case 101:
-YY_RULE_SETUP
-#line 169 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_AUTO; }
-	YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 170 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_ALIAS; }
-	YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 171 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_SHARED; }
-	YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 172 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_USAGE; }
-	YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 173 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_BASE; }
-	YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 174 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return TOKEN_INHERITS; }
-	YY_BREAK
-/* State values */
-case 107:
-YY_RULE_SETUP
-#line 177 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FMV_Wire; return TOKEN_FILLMODEVALUE; }
-	YY_BREAK
-case 108:
-YY_RULE_SETUP
-#line 178 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FMV_Solid; return TOKEN_FILLMODEVALUE; }
-	YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 180 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CMV_None; return TOKEN_CULLMODEVALUE; }
-	YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 181 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CMV_CW; return TOKEN_CULLMODEVALUE; }
-	YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 182 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CMV_CCW; return TOKEN_CULLMODEVALUE; }
-	YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 184 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_Fail; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 185 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_Pass; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 186 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_LT; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 115:
-YY_RULE_SETUP
-#line 187 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_LTE; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 116:
-YY_RULE_SETUP
-#line 188 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_EQ; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 189 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_NEQ; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 190 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_GTE; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 191 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = CFV_GT; return TOKEN_COMPFUNCVALUE; }
-	YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 193 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Keep; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 194 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Zero; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 195 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Replace; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 196 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Incr; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 197 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Decr; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 198 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_IncrWrap; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 199 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_DecrWrap; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 127:
-YY_RULE_SETUP
-#line 200 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_Invert; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 201 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_One; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 202 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_DestColor; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 130:
-YY_RULE_SETUP
-#line 203 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_SrcColor; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 131:
-YY_RULE_SETUP
-#line 204 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_InvDestColor; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 205 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_InvSrcColor; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 206 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_DestAlpha; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 207 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_SrcAlpha; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 208 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_InvDestAlpha; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 209 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = OV_InvSrcAlpha; return TOKEN_OPVALUE; }
-	YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 211 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BOV_Add; return TOKEN_BLENDOPVALUE; }
-	YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 212 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BOV_Subtract; return TOKEN_BLENDOPVALUE; }
-	YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 213 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BOV_RevSubtract; return TOKEN_BLENDOPVALUE; }
-	YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 214 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BOV_Min; return TOKEN_BLENDOPVALUE; }
-	YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 215 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BOV_Max; return TOKEN_BLENDOPVALUE; }
-	YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 217 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x0; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 218 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x1; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 219 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x2; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 220 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x4; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 221 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x8; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 222 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x3; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 223 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x5; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 224 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x9; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 225 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x6; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 226 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xA; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 227 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xC; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 228 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0x7; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 229 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xB; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 155:
-YY_RULE_SETUP
-#line 230 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xD; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 156:
-YY_RULE_SETUP
-#line 231 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xE; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 232 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = 0xF; return TOKEN_COLORMASK; }
-	YY_BREAK
-case 158:
-YY_RULE_SETUP
-#line 234 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = AMV_Wrap; return TOKEN_ADDRMODEVALUE; }
-	YY_BREAK
-case 159:
-YY_RULE_SETUP
-#line 235 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = AMV_Mirror; return TOKEN_ADDRMODEVALUE; }
-	YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 236 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = AMV_Clamp; return TOKEN_ADDRMODEVALUE; }
-	YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 237 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = AMV_Border; return TOKEN_ADDRMODEVALUE; }
-	YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 239 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_None; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 240 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_Point; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 164:
-YY_RULE_SETUP
-#line 241 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_Linear; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 242 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_Anisotropic; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 166:
-YY_RULE_SETUP
-#line 243 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_PointCmp; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 167:
-YY_RULE_SETUP
-#line 244 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_LinearCmp; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 168:
-YY_RULE_SETUP
-#line 245 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = FV_AnisotropicCmp; return TOKEN_FILTERVALUE; }
-	YY_BREAK
-case 169:
-YY_RULE_SETUP
-#line 247 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BUV_Static; return TOKEN_BUFFERUSAGE; }
-	YY_BREAK
-case 170:
-YY_RULE_SETUP
-#line 248 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = BUV_Dynamic; return TOKEN_BUFFERUSAGE; }
-	YY_BREAK
-case 171:
-YY_RULE_SETUP
-#line 250 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = QST_FrontToBack; return TOKEN_QUEUETYPE; }
-	YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 251 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = QST_BackToFront; return TOKEN_QUEUETYPE; }
-	YY_BREAK
-case 173:
-YY_RULE_SETUP
-#line 252 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = QST_None; return TOKEN_QUEUETYPE; }
-	YY_BREAK
-/* Preprocessor */
-case 174:
-YY_RULE_SETUP
-#line 255 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(INCLUDE); }
-	YY_BREAK
-case 175:
-/* rule 175 can match eol */
-YY_RULE_SETUP
-#line 257 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 176:
-YY_RULE_SETUP
-#line 258 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{
-	int size = 0;
-	char* includeBuffer = includePush(yyextra, yytext, yylineno, yycolumn, &size);
-	if(!includeBuffer)
-		yyterminate();
-
-	YY_BUFFER_STATE currentBuffer = YY_CURRENT_BUFFER;
-	YY_BUFFER_STATE newBuffer = yy_scan_buffer(includeBuffer,size,yyscanner);
-
-	yy_switch_to_buffer(currentBuffer,yyscanner);
-	yypush_buffer_state(newBuffer,yyscanner);
-
-	yylineno = 0; 
-	yycolumn = 0;
-
-	BEGIN(INITIAL);
-	}
-	YY_BREAK
-case 177:
-YY_RULE_SETUP
-#line 275 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(INCLUDE):
-case YY_STATE_EOF(CODEBLOCK_HEADER):
-case YY_STATE_EOF(CODEBLOCK_EQUALS):
-case YY_STATE_EOF(CODEBLOCK):
-case YY_STATE_EOF(CODEBLOCK_END):
-case YY_STATE_EOF(DEFINE_COND):
-case YY_STATE_EOF(DEFINE_COND_EXPR):
-case YY_STATE_EOF(UNDEF_COND):
-case YY_STATE_EOF(CONDITIONAL_IF):
-case YY_STATE_EOF(CONDITIONAL_IFN):
-case YY_STATE_EOF(CONDITIONAL_ELIF):
-case YY_STATE_EOF(CONDITIONAL_IGNORE):
-#line 277 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{
-	if(!yyextra->includeStack)
-		yyterminate();
-
-	yypop_buffer_state(yyscanner);
-	includePop(yyextra);
-}
-	YY_BREAK
-case 178:
-YY_RULE_SETUP
-#line 285 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(DEFINE_COND); }
-	YY_BREAK
-case 179:
-YY_RULE_SETUP
-#line 286 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 180:
-YY_RULE_SETUP
-#line 287 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ addDefine(yyextra, yytext); BEGIN(DEFINE_COND_EXPR); }
-	YY_BREAK
-case 181:
-/* rule 181 can match eol */
-YY_RULE_SETUP
-#line 288 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(INITIAL); }
-	YY_BREAK
-case 182:
-YY_RULE_SETUP
-#line 289 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 183:
-YY_RULE_SETUP
-#line 291 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ addDefineExpr(yyextra, yytext); BEGIN(INITIAL); }
-	YY_BREAK
-case 184:
-/* rule 184 can match eol */
-YY_RULE_SETUP
-#line 292 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(INITIAL); }
-	YY_BREAK
-case 185:
-YY_RULE_SETUP
-#line 294 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(UNDEF_COND); }
-	YY_BREAK
-case 186:
-/* rule 186 can match eol */
-YY_RULE_SETUP
-#line 295 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 187:
-YY_RULE_SETUP
-#line 296 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ removeDefine(yyextra, yytext); BEGIN(INITIAL); }
-	YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 297 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 189:
-YY_RULE_SETUP
-#line 299 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CONDITIONAL_IF); }
-	YY_BREAK
-case 190:
-/* rule 190 can match eol */
-YY_RULE_SETUP
-#line 300 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 191:
-YY_RULE_SETUP
-#line 301 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	int isEnabled = pushConditional(yyextra, hasDefine(yyextra, yytext));
-	if(!isEnabled)
-		BEGIN(CONDITIONAL_IGNORE);
-	else
-		BEGIN(INITIAL);
-}
-	YY_BREAK
-case 192:
-YY_RULE_SETUP
-#line 308 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 193:
-YY_RULE_SETUP
-#line 310 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CONDITIONAL_IFN); }
-	YY_BREAK
-case 194:
-/* rule 194 can match eol */
-YY_RULE_SETUP
-#line 311 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 195:
-YY_RULE_SETUP
-#line 312 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	int isEnabled = pushConditional(yyextra, !hasDefine(yyextra, yytext));
-	if(!isEnabled)
-		BEGIN(CONDITIONAL_IGNORE);
-	else
-		BEGIN(INITIAL);
-}
-	YY_BREAK
-case 196:
-YY_RULE_SETUP
-#line 319 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 197:
-YY_RULE_SETUP
-#line 321 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CONDITIONAL_IGNORE); }
-	YY_BREAK
-case 198:
-YY_RULE_SETUP
-#line 322 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CONDITIONAL_IGNORE); }
-	YY_BREAK
-case 199:
-YY_RULE_SETUP
-#line 324 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ popConditional(yyextra); }
-	YY_BREAK
-case 200:
-/* rule 200 can match eol */
-YY_RULE_SETUP
-#line 326 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip */ }
-	YY_BREAK
-case 201:
-YY_RULE_SETUP
-#line 327 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ pushConditional(yyextra, 0); }
-	YY_BREAK
-case 202:
-YY_RULE_SETUP
-#line 328 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ pushConditional(yyextra, 0); }
-	YY_BREAK
-case 203:
-YY_RULE_SETUP
-#line 329 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	if(switchConditional(yyextra))
-		BEGIN(INITIAL);
-}
-	YY_BREAK
-case 204:
-YY_RULE_SETUP
-#line 333 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CONDITIONAL_ELIF); }
-	YY_BREAK
-case 205:
-YY_RULE_SETUP
-#line 334 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	if(popConditional(yyextra))
-		BEGIN(INITIAL);
-}
-	YY_BREAK
-case 206:
-YY_RULE_SETUP
-#line 338 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip */ }
-	YY_BREAK
-case 207:
-/* rule 207 can match eol */
-YY_RULE_SETUP
-#line 340 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 208:
-YY_RULE_SETUP
-#line 341 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	int isEnabled = setConditional(yyextra, hasDefine(yyextra, yytext));
-	if(!isEnabled)
-		BEGIN(CONDITIONAL_IGNORE);
-	else
-		BEGIN(INITIAL);
-}
-	YY_BREAK
-case 209:
-YY_RULE_SETUP
-#line 348 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-/* Code blocks */
-case 210:
-YY_RULE_SETUP
-#line 351 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_VERTEX; }
-	YY_BREAK
-case 211:
-YY_RULE_SETUP
-#line 352 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_FRAGMENT; }
-	YY_BREAK
-case 212:
-YY_RULE_SETUP
-#line 353 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_GEOMETRY; }
-	YY_BREAK
-case 213:
-YY_RULE_SETUP
-#line 354 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_HULL; }
-	YY_BREAK
-case 214:
-YY_RULE_SETUP
-#line 355 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_DOMAIN; }
-	YY_BREAK
-case 215:
-YY_RULE_SETUP
-#line 356 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_COMPUTE; }
-	YY_BREAK
-case 216:
-YY_RULE_SETUP
-#line 357 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_HEADER); return TOKEN_COMMON; }
-	YY_BREAK
-/* Track when the code block begins, insert all code block characters into our own buffer, record a sequential index */
-/* of all code blocks in the text, and track bracket open/closed state so we know when we're done with the code block. */
-/* And finally output a sequential code block index to the parser (it shouldn't be aware of anything else in the block). */
-case 217:
-YY_RULE_SETUP
-#line 362 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK_EQUALS); return yytext[0]; }
-	YY_BREAK
-case 218:
-/* rule 218 can match eol */
-YY_RULE_SETUP
-#line 363 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 219:
-YY_RULE_SETUP
-#line 364 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 220:
-YY_RULE_SETUP
-#line 366 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(CODEBLOCK); beginCodeBlock(yyextra); yyextra->numOpenBrackets = 1; return yytext[0]; }
-	YY_BREAK
-case 221:
-/* rule 221 can match eol */
-YY_RULE_SETUP
-#line 367 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Skip blank */ }
-	YY_BREAK
-case 222:
-YY_RULE_SETUP
-#line 368 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 223:
-YY_RULE_SETUP
-#line 370 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yyextra->numOpenBrackets++; appendCodeBlock(yyextra, yytext, 1); }
-	YY_BREAK
-case 224:
-YY_RULE_SETUP
-#line 371 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ 
-	yyextra->numOpenBrackets--; 
-
-	if(yyextra->numOpenBrackets == 0)
-	{
-		BEGIN(CODEBLOCK_END);
-		unput('0');
-	}
-	else
-		appendCodeBlock(yyextra, yytext, 1);
-}
-	YY_BREAK
-case 225:
-/* rule 225 can match eol */
-YY_RULE_SETUP
-#line 382 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ appendCodeBlock(yyextra, yytext, 1); }
-	YY_BREAK
-/* Logic for manually inserting "Index = codeBlockIndex;". We insert arbitrary numbers which allows us to sequentially */
-/* output all the tokens we need. We use only single-character values so we don't override anything in the text buffer */
-/* (since the starting value was also a single character "{"). */
-case 226:
-YY_RULE_SETUP
-#line 387 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ unput('1'); return TOKEN_INDEX; }
-	YY_BREAK
-case 227:
-YY_RULE_SETUP
-#line 388 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ unput('2'); return '='; }
-	YY_BREAK
-case 228:
-YY_RULE_SETUP
-#line 389 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->intValue = getCodeBlockIndex(yyextra); unput('3'); return TOKEN_INTEGER; }
-	YY_BREAK
-case 229:
-YY_RULE_SETUP
-#line 390 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ unput('4'); return ';'; }
-	YY_BREAK
-case 230:
-YY_RULE_SETUP
-#line 391 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ BEGIN(INITIAL); return '}'; }
-	YY_BREAK
-case 231:
-/* rule 231 can match eol */
-YY_RULE_SETUP
-#line 392 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ /* Never reached */ }
-	YY_BREAK
-/* Catch all rules */
-case 232:
-YY_RULE_SETUP
-#line 395 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ }
-	YY_BREAK
-case 233:
-YY_RULE_SETUP
-#line 396 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ yylval->strValue = mmalloc_strdup(yyextra->memContext, yytext); return TOKEN_IDENTIFIER; }
-	YY_BREAK
-case 234:
-YY_RULE_SETUP
-#line 397 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-{ return yytext[0]; }
-	YY_BREAK
-case 235:
-YY_RULE_SETUP
-#line 399 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-YY_FATAL_ERROR( "flex scanner jammed" );
-	YY_BREAK
-#line 2723 "BsLexerFX.c"
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yyg->yy_hold_char;
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state( yyscanner );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
-
-			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++yyg->yy_c_buf_p;
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = yyg->yy_last_accepting_cpos;
-				yy_current_state = yyg->yy_last_accepting_state;
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer( yyscanner ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				yyg->yy_did_buffer_switch_on_eof = 0;
-
-				if ( yywrap(yyscanner ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				yyg->yy_c_buf_p =
-					yyg->yytext_ptr + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				yyg->yy_c_buf_p =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-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;
-	int ret_val;
-
-	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* 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;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
-
-	else
-		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
-
-			int yy_c_buf_p_offset =
-				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			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;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	if ( yyg->yy_n_chars == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart(yyin  ,yyscanner);
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	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) {
-		/* 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);
-		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;
-	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;
-
-	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	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;
-    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);
-		if ( yy_accept[yy_current_state] )
-			{
-			yyg->yy_last_accepting_state = yy_current_state;
-			yyg->yy_last_accepting_cpos = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 904 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
-{
-	register 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;
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		yyg->yy_last_accepting_state = yy_current_state;
-		yyg->yy_last_accepting_cpos = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 904 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 903);
-
-	(void)yyg;
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
-{
-	register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    yy_cp = yyg->yy_c_buf_p;
-
-	/* undo effects of setting up yytext */
-	*yy_cp = yyg->yy_hold_char;
-
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-		{ /* need to shift things up to make room */
-		/* +2 for EOB chars. */
-		register yy_size_t number_to_move = yyg->yy_n_chars + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			*--dest = *--source;
-
-		yy_cp += (int) (dest - source);
-		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-			YY_FATAL_ERROR( "flex scanner push-back overflow" );
-		}
-
-	*--yy_cp = (char) c;
-
-    if ( c == '\n' ){
-        --yylineno;
-    }
-
-	yyg->yytext_ptr = yy_bp;
-	yyg->yy_hold_char = *yy_cp;
-	yyg->yy_c_buf_p = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (yyscan_t yyscanner)
-#else
-    static int input  (yyscan_t yyscanner)
-#endif
-
-{
-	int c;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	*yyg->yy_c_buf_p = yyg->yy_hold_char;
-
-	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			/* This was really a NUL. */
-			*yyg->yy_c_buf_p = '\0';
-
-		else
-			{ /* need more input */
-			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
-			++yyg->yy_c_buf_p;
-
-			switch ( yy_get_next_buffer( yyscanner ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					yyrestart(yyin ,yyscanner);
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( yywrap(yyscanner ) )
-						return EOF;
-
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput(yyscanner);
-#else
-					return input(yyscanner);
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
-	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
-	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
-
-	if ( c == '\n' )
-		   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * @param yyscanner The scanner object.
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack (yyscanner);
-		YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-	}
-
-	yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
-	yy_load_buffer_state(yyscanner );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * @param yyscanner The scanner object.
- */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		yypop_buffer_state();
-	 *		yypush_buffer_state(new_buffer);
-     */
-	yyensure_buffer_stack (yyscanner);
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	yy_load_buffer_state(yyscanner );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	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;
-	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	yyg->yy_hold_char = *yyg->yy_c_buf_p;
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * @param yyscanner The scanner object.
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_buf_size = 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.
-	 */
-	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ,yyscanner );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	yy_init_buffer(b,file ,yyscanner);
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- * @param yyscanner The scanner object.
- */
-    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		yyfree((void *) b->yy_ch_buf ,yyscanner );
-
-	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.
- */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
-
-{
-	int oerrno = errno;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_flush_buffer(b ,yyscanner);
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * @param yyscanner The scanner object.
- */
-    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		yy_load_buffer_state(yyscanner );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  @param yyscanner The scanner object.
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (new_buffer == NULL)
-		return;
-
-	yyensure_buffer_stack(yyscanner);
-
-	/* This block is copied from yy_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		yyg->yy_buffer_stack_top++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from yy_switch_to_buffer. */
-	yy_load_buffer_state(yyscanner );
-	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.
- */
-void yypop_buffer_state (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (!YY_CURRENT_BUFFER)
-		return;
-
-	yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if (yyg->yy_buffer_stack_top > 0)
-		--yyg->yy_buffer_stack_top;
-
-	if (YY_CURRENT_BUFFER) {
-		yy_load_buffer_state(yyscanner );
-		yyg->yy_did_buffer_switch_on_eof = 1;
-	}
-}
-
-/* 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;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if (!yyg->yy_buffer_stack) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * 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;
-		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;
-		yyg->yy_buffer_stack_top = 0;
-		return;
-	}
-
-	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 */;
-
-		num_to_alloc = 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*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
-		yyg->yy_buffer_stack_max = num_to_alloc;
-	}
-}
-
-/** 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
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     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;
-
-	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_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	yy_switch_to_buffer(b ,yyscanner );
-
-	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
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
-{
-    
-	return yy_scan_bytes(yystr,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
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- * @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 b;
-	char *buf;
-	yy_size_t n;
-	yy_size_t i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _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 )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = yy_scan_buffer(buf,n ,yyscanner);
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		yytext[yyleng] = yyg->yy_hold_char; \
-		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
-		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
-		*yyg->yy_c_buf_p = '\0'; \
-		yyleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the user-defined data for this scanner.
- * @param yyscanner The scanner object.
- */
-YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyextra;
-}
-
-/** Get the current line number.
- * @param yyscanner The scanner object.
- */
-int yyget_lineno  (yyscan_t yyscanner)
-{
-    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.
- */
-int yyget_column  (yyscan_t yyscanner)
-{
-    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.
- */
-FILE *yyget_in  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyin;
-}
-
-/** Get the output stream.
- * @param yyscanner The scanner object.
- */
-FILE *yyget_out  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyout;
-}
-
-/** Get the length of the current token.
- * @param yyscanner The scanner object.
- */
-yy_size_t yyget_leng  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyleng;
-}
-
-/** Get the current token.
- * @param yyscanner The scanner object.
- */
-
-char *yyget_text  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    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.
- */
-void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyextra = user_defined ;
-}
-
-/** Set the current line number.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-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;
-}
-
-/** Set the current column.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-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;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @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)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = in_str ;
-}
-
-void yyset_out (FILE *  out_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    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)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    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
- * the ONLY reentrant function that doesn't take the scanner as the last argument.
- * That's why we explicitly handle the declaration, instead of using our macros.
- */
-
-int yylex_init(yyscan_t* ptr_yy_globals)
-
-{
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    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
- * is the reason, too, why this function also must handle its own declaration).
- * The user defined value in the first argument will be available to yyalloc in
- * the yyextra field.
- */
-
-int yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
-
-{
-    struct yyguts_t dummy_yyguts;
-
-    yyset_extra (yy_user_defined, &dummy_yyguts);
-
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-	
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-	
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-    
-    /* By setting to 0xAA, we expose bugs in
-    yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-    
-    yyset_extra (yy_user_defined, *ptr_yy_globals);
-    
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-static int yy_init_globals (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
-     */
-
-    yyg->yy_buffer_stack = 0;
-    yyg->yy_buffer_stack_top = 0;
-    yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = (char *) 0;
-    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;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
-     */
-    return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		yypop_buffer_state(yyscanner);
-	}
-
-	/* Destroy the stack itself. */
-	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);
-
-    /* Destroy the main struct (reentrant only). */
-    yyfree ( yyscanner , yyscanner );
-    yyscanner = NULL;
-    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;
-	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;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
-{
-	return (void *) malloc( size );
-}
-
-void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
-{
-	/* 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
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void yyfree (void * ptr , yyscan_t yyscanner)
-{
-	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 398 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsLexerFX.l"
-
-

+ 0 - 4829
Source/BansheeSL/Source/BsParserFX.c

@@ -1,4829 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.7.  */
-
-/* Skeleton implementation for Bison GLR parsers in C
-   
-      Copyright (C) 2002-2012 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C GLR parser skeleton written by Paul Hilfinger.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "2.7"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "glr.c"
-
-/* Pure parsers.  */
-#define YYPURE 1
-
-
-
-
-
-
-/* Copy the first part of user declarations.  */
-/* Line 207 of glr.c  */
-#line 1 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-
-#include "BsParserFX.h"
-#include "BsLexerFX.h"
-#define inline
-
-void yyerror(YYLTYPE *locp, ParseState* parse_state, yyscan_t scanner, const char *msg);
-
-/* Line 207 of glr.c  */
-#line 64 "BsParserFX.c"
-
-# ifndef YY_NULL
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULL nullptr
-#  else
-#   define YY_NULL 0
-#  endif
-# endif
-
-#include "BsParserFX.h"
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Default (constant) value used for initialization for null
-   right-hand sides.  Unlike the standard yacc.c template, here we set
-   the default value of $$ to a zeroed-out value.  Since the default
-   value is undefined, this behavior is technically correct.  */
-static YYSTYPE yyval_default;
-static YYLTYPE yyloc_default
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-  = { 1, 1, 1, 1 }
-# endif
-;
-
-/* Copy the second part of user declarations.  */
-
-/* Line 230 of glr.c  */
-#line 98 "BsParserFX.c"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(N) (N)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
-    int i;
-#endif
-{
-  return i;
-}
-#endif
-
-#ifndef YYFREE
-# define YYFREE free
-#endif
-#ifndef YYMALLOC
-# define YYMALLOC malloc
-#endif
-#ifndef YYREALLOC
-# define YYREALLOC realloc
-#endif
-
-#define YYSIZEMAX ((size_t) -1)
-
-#ifdef __cplusplus
-   typedef bool yybool;
-#else
-   typedef unsigned char yybool;
-#endif
-#define yytrue 1
-#define yyfalse 0
-
-#ifndef YYSETJMP
-# include <setjmp.h>
-# define YYJMP_BUF jmp_buf
-# define YYSETJMP(Env) setjmp (Env)
-/* Pacify clang.  */
-# define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
-#endif
-
-/*-----------------.
-| GCC extensions.  |
-`-----------------*/
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
-      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-#  define __attribute__(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YYASSERT
-# define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
-#endif
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  23
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   703
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  132
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  102
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  236
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  734
-/* YYMAXRHS -- Maximum number of symbols on right-hand side of rule.  */
-#define YYMAXRHS 33
-/* YYMAXLEFT -- Maximum number of symbols to the left of a handle
-   accessed by $0, $-1, etc., in any rule.  */
-#define YYMAXLEFT 0
-
-/* YYTRANSLATE(X) -- Bison symbol number corresponding to X.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   378
-
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     130,   131,     2,     2,   128,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   129,   125,
-       2,   124,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   126,     2,   127,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const unsigned short int yyprhs[] =
-{
-       0,     0,     3,     4,     7,     9,    11,    13,    15,    20,
-      25,    30,    35,    43,    45,    46,    49,    51,    53,    55,
-      57,    62,    67,    69,    75,    78,    79,    81,    85,    86,
-      89,    95,   101,   107,   110,   111,   114,   116,   118,   123,
-     128,   133,   138,   143,   148,   153,   158,   163,   168,   173,
-     178,   183,   188,   193,   199,   205,   211,   217,   222,   227,
-     229,   234,   243,   246,   249,   252,   255,   258,   261,   264,
-     267,   270,   278,   279,   282,   287,   292,   297,   302,   308,
-     311,   312,   315,   317,   322,   327,   333,   339,   345,   351,
-     356,   359,   362,   363,   366,   372,   377,   382,   387,   388,
-     391,   393,   398,   403,   408,   413,   418,   423,   428,   433,
-     438,   444,   450,   453,   459,   460,   463,   468,   473,   478,
-     484,   492,   502,   508,   516,   526,   540,   558,   578,   604,
-     638,   644,   647,   648,   651,   656,   661,   666,   671,   676,
-     681,   686,   691,   696,   701,   706,   711,   716,   721,   726,
-     731,   736,   741,   746,   750,   754,   757,   760,   763,   766,
-     769,   772,   775,   778,   781,   784,   787,   790,   793,   796,
-     799,   802,   805,   808,   811,   814,   817,   820,   823,   826,
-     829,   832,   835,   838,   841,   844,   847,   850,   853,   856,
-     859,   862,   865,   868,   871,   874,   875,   878,   879,   882,
-     883,   886,   887,   890,   891,   894,   895,   898,   899,   902,
-     903,   906,   907,   910,   911,   914,   915,   918,   919,   922,
-     923,   926,   927,   932,   933,   936,   942,   945,   946,   949,
-     953,   956,   957,   960,   966,   972,   978
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const short int yyrhs[] =
-{
-     133,     0,    -1,    -1,   134,   133,    -1,   135,    -1,   136,
-      -1,   186,    -1,   227,    -1,    64,   124,     5,   125,    -1,
-      65,   124,    17,   125,    -1,    66,   124,     3,   125,    -1,
-      67,   124,     5,   125,    -1,   137,   144,   124,   126,   138,
-     127,   125,    -1,    70,    -1,    -1,   139,   138,    -1,   140,
-      -1,   146,    -1,   150,    -1,   151,    -1,    71,   124,     6,
-     125,    -1,    72,   124,     6,   125,    -1,   141,    -1,   142,
-     126,   143,   127,   125,    -1,    74,   124,    -1,    -1,     6,
-      -1,     6,   128,   143,    -1,    -1,   145,   144,    -1,   129,
-      62,   130,     6,   131,    -1,   129,    63,   130,     6,   131,
-      -1,   147,   126,   148,   127,   125,    -1,    73,   124,    -1,
-      -1,   149,   148,    -1,   150,    -1,   151,    -1,   104,   124,
-       3,   125,    -1,    83,   124,     8,   125,    -1,    84,   124,
-       9,   125,    -1,    85,   124,     4,   125,    -1,    86,   124,
-       4,   125,    -1,    87,   124,     5,   125,    -1,    88,   124,
-       5,   125,    -1,    89,   124,     5,   125,    -1,    90,   124,
-       5,   125,    -1,    91,   124,     5,   125,    -1,    92,   124,
-       5,   125,    -1,    93,   124,    10,   125,    -1,    94,   124,
-       5,   125,    -1,    95,   124,     3,   125,    -1,    96,   124,
-       3,   125,    -1,   153,   126,   156,   127,   125,    -1,   154,
-     126,   156,   127,   125,    -1,   153,   126,   155,   127,   125,
-      -1,   154,   126,   155,   127,   125,    -1,   101,   124,     5,
-     125,    -1,   102,   124,     5,   125,    -1,   158,    -1,    82,
-     124,     3,   125,    -1,   152,   126,   104,   124,     3,   125,
-     127,   125,    -1,    75,   124,    -1,    76,   124,    -1,    77,
-     124,    -1,    78,   124,    -1,    79,   124,    -1,    80,   124,
-      -1,    81,   124,    -1,    97,   124,    -1,    98,   124,    -1,
-      11,   128,    11,   128,    11,   128,    10,    -1,    -1,   157,
-     156,    -1,    99,   124,    11,   125,    -1,   100,   124,    11,
-     125,    -1,    73,   124,    11,   125,    -1,    93,   124,    10,
-     125,    -1,   159,   126,   160,   127,   125,    -1,   103,   124,
-      -1,    -1,   161,   160,    -1,   162,    -1,   104,   124,     3,
-     125,    -1,   105,   124,     5,   125,    -1,   163,   126,   165,
-     127,   125,    -1,   164,   126,   165,   127,   125,    -1,   163,
-     126,   166,   127,   125,    -1,   164,   126,   166,   127,   125,
-      -1,   108,   124,    12,   125,    -1,   106,   124,    -1,   107,
-     124,    -1,    -1,   167,   165,    -1,    11,   128,    11,   128,
-      15,    -1,   109,   124,    11,   125,    -1,   110,   124,    11,
-     125,    -1,   111,   124,    15,   125,    -1,    -1,   169,   168,
-      -1,   170,    -1,   113,   124,    14,   125,    -1,   114,   124,
-      14,   125,    -1,   115,   124,    14,   125,    -1,   116,   124,
-       3,   125,    -1,   117,   124,     4,   125,    -1,   118,   124,
-       4,   125,    -1,   119,   124,     4,   125,    -1,   120,   124,
-     177,   125,    -1,    93,   124,    10,   125,    -1,   171,   126,
-     173,   127,   125,    -1,   171,   126,   172,   127,   125,    -1,
-     112,   124,    -1,    13,   128,    13,   128,    13,    -1,    -1,
-     174,   173,    -1,   121,   124,    13,   125,    -1,   122,   124,
-      13,   125,    -1,   123,   124,    13,   125,    -1,   126,     4,
-     128,     4,   127,    -1,   126,     4,   128,     4,   128,     4,
-     127,    -1,   126,     4,   128,     4,   128,     4,   128,     4,
-     127,    -1,   126,     3,   128,     3,   127,    -1,   126,     3,
-     128,     3,   128,     3,   127,    -1,   126,     3,   128,     3,
-     128,     3,   128,     3,   127,    -1,   126,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   127,    -1,
-     126,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   127,    -1,   126,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   127,    -1,   126,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   127,    -1,   126,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   128,     4,   128,     4,
-     128,     4,   128,     4,   128,     4,   127,    -1,   187,   126,
-     188,   127,   125,    -1,    68,   124,    -1,    -1,   189,   188,
-      -1,   190,   232,   212,   125,    -1,   191,   232,   213,   125,
-      -1,   192,   232,   214,   125,    -1,   193,   232,   215,   125,
-      -1,   194,   232,   216,   125,    -1,   195,   232,   217,   125,
-      -1,   196,   232,   218,   125,    -1,   197,   232,   219,   125,
-      -1,   198,   232,   215,   125,    -1,   199,   232,   215,   125,
-      -1,   200,   232,   220,   125,    -1,   201,   232,   221,   125,
-      -1,   202,   232,   220,   125,    -1,   203,   232,   222,   125,
-      -1,   204,   232,   223,   125,    -1,   205,   232,   221,   125,
-      -1,   206,   232,   223,   125,    -1,   207,   232,   224,   125,
-      -1,   209,   232,   226,   125,    -1,   210,   232,   125,    -1,
-     211,   225,   125,    -1,    18,     7,    -1,    19,     7,    -1,
-      20,     7,    -1,    21,     7,    -1,    22,     7,    -1,    23,
-       7,    -1,    24,     7,    -1,    25,     7,    -1,    26,     7,
-      -1,    27,     7,    -1,    28,     7,    -1,    29,     7,    -1,
-      30,     7,    -1,    31,     7,    -1,    32,     7,    -1,    33,
-       7,    -1,    34,     7,    -1,    35,     7,    -1,    36,     7,
-      -1,    37,     7,    -1,    38,     7,    -1,    39,     7,    -1,
-      40,     7,    -1,    41,     7,    -1,    42,     7,    -1,    43,
-       7,    -1,    44,     7,    -1,    45,     7,    -1,    46,     7,
-      -1,    47,     7,    -1,    48,     7,    -1,    49,     7,    -1,
-      50,     7,    -1,    51,     7,    -1,    52,     7,    -1,    53,
-       7,    -1,    54,     7,    -1,    55,     7,    -1,    56,     7,
-      -1,   208,   232,    -1,    -1,   124,     4,    -1,    -1,   124,
-     175,    -1,    -1,   124,   176,    -1,    -1,   124,   177,    -1,
-      -1,   124,     3,    -1,    -1,   124,   178,    -1,    -1,   124,
-     179,    -1,    -1,   124,   180,    -1,    -1,   124,   181,    -1,
-      -1,   124,   182,    -1,    -1,   124,   183,    -1,    -1,   124,
-     184,    -1,    -1,   124,   185,    -1,    -1,   124,   126,   168,
-     127,    -1,    -1,   124,     6,    -1,   228,   126,   229,   127,
-     125,    -1,    69,   124,    -1,    -1,   230,   229,    -1,   231,
-     232,   125,    -1,    57,     7,    -1,    -1,   233,   232,    -1,
-     129,    59,   130,     6,   131,    -1,   129,    58,   130,     6,
-     131,    -1,   129,    60,   130,     5,   131,    -1,   129,    61,
-     130,    16,   131,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short int yyrline[] =
-{
-       0,   286,   286,   287,   291,   292,   293,   294,   298,   299,
-     300,   301,   307,   311,   318,   320,   324,   325,   326,   327,
-     331,   332,   333,   338,   342,   349,   351,   356,   364,   366,
-     370,   371,   377,   381,   388,   390,   394,   395,   399,   400,
-     401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
-     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
-     421,   427,   441,   446,   451,   456,   461,   466,   471,   481,
-     489,   497,   511,   513,   517,   518,   519,   520,   525,   529,
-     536,   538,   542,   546,   547,   548,   549,   550,   551,   552,
-     557,   565,   572,   574,   578,   591,   592,   593,   598,   600,
-     604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
-     618,   619,   623,   631,   643,   645,   649,   650,   651,   656,
-     660,   664,   668,   672,   676,   680,   689,   700,   711,   722,
-     736,   740,   747,   749,   753,   754,   755,   756,   757,   758,
-     759,   760,   761,   762,   763,   764,   765,   766,   767,   768,
-     769,   770,   771,   772,   773,   789,   793,   797,   801,   805,
-     809,   813,   817,   821,   825,   829,   833,   837,   841,   845,
-     849,   853,   857,   861,   862,   863,   864,   865,   869,   870,
-     871,   872,   873,   874,   875,   876,   877,   881,   882,   883,
-     884,   885,   886,   887,   891,   899,   900,   904,   905,   909,
-     910,   914,   915,   919,   920,   924,   925,   929,   930,   934,
-     935,   939,   940,   944,   945,   949,   950,   954,   955,   959,
-     960,   964,   965,   969,   970,   975,   979,   986,   988,   992,
-     996,  1010,  1012,  1016,  1017,  1018,  1019
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "TOKEN_INTEGER", "TOKEN_FLOAT",
-  "TOKEN_BOOLEAN", "TOKEN_STRING", "TOKEN_IDENTIFIER",
-  "TOKEN_FILLMODEVALUE", "TOKEN_CULLMODEVALUE", "TOKEN_COMPFUNCVALUE",
-  "TOKEN_OPVALUE", "TOKEN_COLORMASK", "TOKEN_ADDRMODEVALUE",
-  "TOKEN_FILTERVALUE", "TOKEN_BLENDOPVALUE", "TOKEN_BUFFERUSAGE",
-  "TOKEN_QUEUETYPE", "TOKEN_FLOATTYPE", "TOKEN_FLOAT2TYPE",
-  "TOKEN_FLOAT3TYPE", "TOKEN_FLOAT4TYPE", "TOKEN_INTTYPE",
-  "TOKEN_INT2TYPE", "TOKEN_INT3TYPE", "TOKEN_INT4TYPE", "TOKEN_COLORTYPE",
-  "TOKEN_MAT2x2TYPE", "TOKEN_MAT2x3TYPE", "TOKEN_MAT2x4TYPE",
-  "TOKEN_MAT3x2TYPE", "TOKEN_MAT3x3TYPE", "TOKEN_MAT3x4TYPE",
-  "TOKEN_MAT4x2TYPE", "TOKEN_MAT4x3TYPE", "TOKEN_MAT4x4TYPE",
-  "TOKEN_SAMPLER1D", "TOKEN_SAMPLER2D", "TOKEN_SAMPLER3D",
-  "TOKEN_SAMPLERCUBE", "TOKEN_SAMPLER2DMS", "TOKEN_TEXTURE1D",
-  "TOKEN_TEXTURE2D", "TOKEN_TEXTURE3D", "TOKEN_TEXTURECUBE",
-  "TOKEN_TEXTURE2DMS", "TOKEN_RWTEXTURE1D", "TOKEN_RWTEXTURE2D",
-  "TOKEN_RWTEXTURE3D", "TOKEN_RWTEXTURE2DMS", "TOKEN_BYTEBUFFER",
-  "TOKEN_STRUCTBUFFER", "TOKEN_RWTYPEDBUFFER", "TOKEN_RWBYTEBUFFER",
-  "TOKEN_RWSTRUCTBUFFER", "TOKEN_RWAPPENDBUFFER", "TOKEN_RWCONSUMEBUFFER",
-  "TOKEN_PARAMSBLOCK", "TOKEN_AUTO", "TOKEN_ALIAS", "TOKEN_SHARED",
-  "TOKEN_USAGE", "TOKEN_BASE", "TOKEN_INHERITS", "TOKEN_SEPARABLE",
-  "TOKEN_SORT", "TOKEN_PRIORITY", "TOKEN_TRANSPARENT", "TOKEN_PARAMETERS",
-  "TOKEN_BLOCKS", "TOKEN_TECHNIQUE", "TOKEN_RENDERER", "TOKEN_LANGUAGE",
-  "TOKEN_PASS", "TOKEN_TAGS", "TOKEN_VERTEX", "TOKEN_FRAGMENT",
-  "TOKEN_GEOMETRY", "TOKEN_HULL", "TOKEN_DOMAIN", "TOKEN_COMPUTE",
-  "TOKEN_COMMON", "TOKEN_STENCILREF", "TOKEN_FILLMODE", "TOKEN_CULLMODE",
-  "TOKEN_DEPTHBIAS", "TOKEN_SDEPTHBIAS", "TOKEN_DEPTHCLIP",
-  "TOKEN_SCISSOR", "TOKEN_MULTISAMPLE", "TOKEN_AALINE", "TOKEN_DEPTHREAD",
-  "TOKEN_DEPTHWRITE", "TOKEN_COMPAREFUNC", "TOKEN_STENCIL",
-  "TOKEN_STENCILREADMASK", "TOKEN_STENCILWRITEMASK",
-  "TOKEN_STENCILOPFRONT", "TOKEN_STENCILOPBACK", "TOKEN_FAIL",
-  "TOKEN_ZFAIL", "TOKEN_ALPHATOCOVERAGE", "TOKEN_INDEPENDANTBLEND",
-  "TOKEN_TARGET", "TOKEN_INDEX", "TOKEN_BLEND", "TOKEN_COLOR",
-  "TOKEN_ALPHA", "TOKEN_WRITEMASK", "TOKEN_SOURCE", "TOKEN_DEST",
-  "TOKEN_OP", "TOKEN_ADDRMODE", "TOKEN_MINFILTER", "TOKEN_MAGFILTER",
-  "TOKEN_MIPFILTER", "TOKEN_MAXANISO", "TOKEN_MIPBIAS", "TOKEN_MIPMIN",
-  "TOKEN_MIPMAX", "TOKEN_BORDERCOLOR", "TOKEN_U", "TOKEN_V", "TOKEN_W",
-  "'='", "';'", "'{'", "'}'", "','", "':'", "'('", "')'", "$accept",
-  "shader", "shader_statement", "shader_option", "technique",
-  "technique_header", "technique_body", "technique_statement",
-  "technique_option", "tags", "tags_header", "tags_body",
-  "technique_qualifier_list", "technique_qualifier", "pass", "pass_header",
-  "pass_body", "pass_statement", "pass_option", "code", "code_header",
-  "stencil_op_front_header", "stencil_op_back_header",
-  "stencil_op_body_init", "stencil_op_body", "stencil_op_option", "target",
-  "target_header", "target_body", "target_statement", "target_option",
-  "blend_color_header", "blend_alpha_header", "blenddef_body",
-  "blenddef_body_init", "blenddef_option", "sampler_state_body",
-  "sampler_state_option", "addr_mode", "addr_mode_header",
-  "addr_mode_body_init", "addr_mode_body", "addr_mode_option", "float2",
-  "float3", "float4", "int2", "int3", "int4", "mat6", "mat8", "mat9",
-  "mat12", "mat16", "parameters", "parameters_header", "parameters_body",
-  "parameter", "param_header_float", "param_header_float2",
-  "param_header_float3", "param_header_float4", "param_header_int",
-  "param_header_int2", "param_header_int3", "param_header_int4",
-  "param_header_color", "param_header_mat2x2", "param_header_mat2x3",
-  "param_header_mat2x4", "param_header_mat3x2", "param_header_mat3x3",
-  "param_header_mat3x4", "param_header_mat4x2", "param_header_mat4x3",
-  "param_header_mat4x4", "param_header_sampler", "param_header_texture",
-  "param_header_buffer", "param_header_qualified_sampler",
-  "param_body_float", "param_body_float2", "param_body_float3",
-  "param_body_float4", "param_body_int", "param_body_int2",
-  "param_body_int3", "param_body_int4", "param_body_mat6",
-  "param_body_mat8", "param_body_mat9", "param_body_mat12",
-  "param_body_mat16", "param_body_sampler", "param_body_tex", "blocks",
-  "blocks_header", "blocks_body", "block", "block_header",
-  "qualifier_list", "qualifier", YY_NULL
-};
-#endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
-{
-       0,   132,   133,   133,   134,   134,   134,   134,   135,   135,
-     135,   135,   136,   137,   138,   138,   139,   139,   139,   139,
-     140,   140,   140,   141,   142,   143,   143,   143,   144,   144,
-     145,   145,   146,   147,   148,   148,   149,   149,   150,   150,
-     150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
-     150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
-     150,   151,   152,   152,   152,   152,   152,   152,   152,   153,
-     154,   155,   156,   156,   157,   157,   157,   157,   158,   159,
-     160,   160,   161,   162,   162,   162,   162,   162,   162,   162,
-     163,   164,   165,   165,   166,   167,   167,   167,   168,   168,
-     169,   169,   169,   169,   169,   169,   169,   169,   169,   169,
-     170,   170,   171,   172,   173,   173,   174,   174,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   188,   189,   189,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   208,   208,   208,   208,   209,   209,
-     209,   209,   209,   209,   209,   209,   209,   210,   210,   210,
-     210,   210,   210,   210,   211,   212,   212,   213,   213,   214,
-     214,   215,   215,   216,   216,   217,   217,   218,   218,   219,
-     219,   220,   220,   221,   221,   222,   222,   223,   223,   224,
-     224,   225,   225,   226,   226,   227,   228,   229,   229,   230,
-     231,   232,   232,   233,   233,   233,   233
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     0,     2,     1,     1,     1,     1,     4,     4,
-       4,     4,     7,     1,     0,     2,     1,     1,     1,     1,
-       4,     4,     1,     5,     2,     0,     1,     3,     0,     2,
-       5,     5,     5,     2,     0,     2,     1,     1,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     5,     5,     5,     5,     4,     4,     1,
-       4,     8,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     7,     0,     2,     4,     4,     4,     4,     5,     2,
-       0,     2,     1,     4,     4,     5,     5,     5,     5,     4,
-       2,     2,     0,     2,     5,     4,     4,     4,     0,     2,
-       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       5,     5,     2,     5,     0,     2,     4,     4,     4,     5,
-       7,     9,     5,     7,     9,    13,    17,    19,    25,    33,
-       5,     2,     0,     2,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     3,     3,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     0,     2,     0,     2,     0,
-       2,     0,     2,     0,     2,     0,     2,     0,     2,     0,
-       2,     0,     2,     0,     2,     0,     2,     0,     2,     0,
-       2,     0,     4,     0,     2,     5,     2,     0,     2,     3,
-       2,     0,     2,     5,     5,     5,     5
-};
-
-/* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none).  */
-static const unsigned char yydprec[] =
-{
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0
-};
-
-/* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM.  */
-static const unsigned char yymerger[] =
-{
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0
-};
-
-/* YYDEFACT[S] -- default reduction number in state S.  Performed when
-   YYTABLE doesn't specify something else to do.  Zero means the default
-   is an error.  */
-static const unsigned char yydefact[] =
-{
-       2,     0,     0,     0,     0,     0,     0,    13,     0,     2,
-       4,     5,    28,     6,     0,     7,     0,     0,     0,     0,
-       0,   131,   226,     1,     3,     0,     0,    28,   132,   227,
-       0,     0,     0,     0,     0,     0,     0,    29,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   132,   231,
-     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
-     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
-     221,     0,     0,   227,   231,     8,     9,    10,    11,     0,
-       0,    14,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,     0,   133,     0,   195,   231,   197,   199,   201,   203,
-     205,   207,   209,   201,   201,   211,   213,   211,   215,   217,
-     213,   217,   219,   194,   223,     0,     0,     0,   230,     0,
-     228,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    14,    16,    22,
-       0,    17,     0,    18,    19,     0,     0,     0,    59,     0,
-     130,     0,     0,     0,     0,     0,     0,   232,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   153,
-      98,   154,   225,   229,    30,    31,     0,     0,    33,    24,
-      62,    63,    64,    65,    66,    67,    68,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    69,    70,     0,     0,    79,     0,     0,    15,
-      25,    34,     0,    72,    72,    80,     0,     0,     0,     0,
-     196,   134,     0,   198,   135,     0,   200,   136,     0,   202,
-     137,   204,   138,     0,   206,   139,     0,   208,   140,     0,
-     210,   141,   142,   143,     0,   212,   144,     0,   214,   145,
-     146,     0,   216,   147,     0,   218,   148,   149,   150,     0,
-     220,   151,   224,   152,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    98,   100,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    12,    26,
-       0,     0,    34,    36,    37,     0,     0,     0,     0,     0,
-       0,     0,     0,    72,     0,     0,     0,     0,     0,     0,
-       0,     0,    80,    82,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   112,     0,     0,     0,     0,     0,     0,     0,
-       0,   222,    99,   114,    20,    21,    60,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    57,    58,    38,    25,     0,     0,    35,     0,     0,
-       0,     0,     0,     0,     0,     0,    73,     0,     0,     0,
-       0,    90,    91,     0,     0,    81,    92,    92,   234,   233,
-     235,   236,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   114,    27,
-      23,    32,     0,     0,     0,     0,     0,     0,    55,    53,
-      56,    54,     0,     0,     0,    78,     0,     0,     0,     0,
-       0,     0,    92,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   109,   101,   102,   103,
-     104,   105,   106,   107,   108,     0,     0,     0,     0,     0,
-       0,   115,     0,     0,    76,    77,    74,    75,    83,    84,
-      89,     0,     0,     0,     0,     0,     0,    93,     0,     0,
-     119,     0,     0,   122,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   111,   110,     0,     0,     0,
-       0,     0,     0,    85,    87,    86,    88,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   116,   117,   118,
-      61,     0,     0,    95,    96,    97,   120,     0,   123,     0,
-       0,     0,     0,     0,     0,   113,    71,    94,     0,     0,
-       0,     0,     0,     0,     0,   121,   124,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   125,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   126,     0,     0,     0,     0,     0,
-       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   128,     0,     0,     0,     0,     0,
-       0,     0,     0,   129
-};
-
-/* YYPDEFGOTO[NTERM-NUM].  */
-static const short int yydefgoto[] =
-{
-      -1,     8,     9,    10,    11,    12,   216,   217,   218,   219,
-     220,   400,    26,    27,   221,   222,   401,   402,   223,   224,
-     225,   226,   227,   411,   412,   413,   228,   229,   421,   422,
-     423,   424,   425,   550,   551,   552,   374,   375,   376,   377,
-     526,   527,   528,   323,   326,   329,   334,   337,   340,   345,
-     348,   352,   355,   360,    13,    14,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     236,   239,   241,   243,   245,   247,   249,   251,   255,   257,
-     260,   262,   266,   177,   268,    15,    16,   102,   103,   104,
-     154,   155
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -493
-static const short int yypact[] =
-{
-       7,   -90,   -46,   -30,   -26,   -21,   -20,  -493,    83,     7,
-    -493,  -493,   -24,  -493,   -19,  -493,    53,   101,   167,   182,
-     181,  -493,  -493,  -493,  -493,   -56,    63,   -24,    93,   131,
-      64,    65,    66,    67,    76,    77,    68,  -493,   186,   188,
-     189,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   117,    93,   116,
-     116,   116,   116,   116,   116,   116,   116,   116,   116,   116,
-     116,   116,   116,   116,   116,   116,   116,   116,   116,   116,
-     122,   240,   121,   131,   116,  -493,  -493,  -493,  -493,   243,
-     244,    79,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,   126,  -493,   -29,   128,   116,   129,   130,   132,   133,
-     134,   135,   136,   132,   132,   137,   138,   137,   139,   140,
-     138,   140,   141,  -493,   142,   143,   144,   146,  -493,   147,
-    -493,   148,   124,   145,   150,   151,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-     178,   179,   180,   183,   184,   185,   187,    79,  -493,  -493,
-     190,  -493,   191,  -493,  -493,   192,   193,   194,  -493,   195,
-    -493,   196,   197,   198,   199,   263,   200,  -493,   237,   239,
-     241,   245,   242,   246,   266,   247,   248,   250,   251,   253,
-     254,   256,   257,   258,   259,   261,   262,   264,   265,   267,
-     269,   270,   272,   273,   274,   275,   277,   285,   278,  -493,
-      85,  -493,  -493,  -493,  -493,  -493,   299,   300,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,   307,   303,   304,
-     308,   311,   317,   318,   319,   325,   326,   327,   323,   329,
-     332,   333,  -493,  -493,   334,   335,  -493,   338,   279,  -493,
-     331,   -40,   238,    -3,    -3,   -39,   337,   339,   341,   322,
-    -493,  -493,   340,  -493,  -493,   343,  -493,  -493,   344,  -493,
-    -493,  -493,  -493,   346,  -493,  -493,   347,  -493,  -493,   348,
-    -493,  -493,  -493,  -493,   349,  -493,  -493,   350,  -493,  -493,
-    -493,   351,  -493,  -493,   352,  -493,  -493,  -493,  -493,   353,
-    -493,  -493,  -493,  -493,   249,   252,   255,   260,   268,   271,
-     276,   281,   282,   283,   284,    85,  -493,   286,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   301,
-     302,   305,   306,   309,   310,   312,   313,   314,  -493,   280,
-     315,   316,   -40,  -493,  -493,   320,   321,   324,   328,   330,
-     336,   342,   345,   -14,   354,   355,   356,   359,   360,   361,
-     362,   363,   -39,  -493,   365,   366,   357,   358,   364,   367,
-     368,   369,   371,   372,   373,   374,   375,   376,   377,   378,
-     379,   381,  -493,   395,   396,   410,   384,   421,   424,   425,
-     242,  -493,  -493,   -13,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,   331,   383,   385,  -493,   429,   422,
-     430,   426,   434,   435,   386,   387,  -493,   388,   389,   437,
-     442,  -493,  -493,   438,   390,  -493,   -10,   -10,  -493,  -493,
-    -493,  -493,   447,   449,   451,   453,   454,   455,   457,   458,
-     459,   460,   461,   391,   392,   393,   394,   397,   398,   399,
-     400,   401,   402,   370,   403,   404,   382,   405,   -41,  -493,
-    -493,  -493,   406,   407,   408,   409,   411,   412,  -493,  -493,
-    -493,  -493,   413,   414,   415,  -493,   416,   417,   418,   419,
-     420,   423,   -22,   427,   428,   431,   432,   433,   436,   439,
-     440,   441,   443,   444,   445,   446,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,   462,   463,   464,   465,   450,
-     452,  -493,   456,   448,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,   468,   476,   482,   505,   466,   467,  -493,   469,   470,
-    -493,   517,   525,  -493,   471,   542,   544,   545,   547,   548,
-     549,   472,   473,   474,   477,  -493,  -493,   478,   479,   480,
-     481,   484,   485,  -493,  -493,  -493,  -493,   486,   483,   487,
-     488,   489,   490,   491,   492,   493,   533,  -493,  -493,  -493,
-    -493,   546,   550,  -493,  -493,  -493,  -493,   553,  -493,   556,
-     558,   560,   562,   566,   572,  -493,  -493,  -493,   495,   496,
-     497,   498,   499,   500,   501,  -493,  -493,   574,   575,   576,
-     577,   578,   502,   503,   504,   506,   507,   580,   581,   582,
-     583,   584,   509,   510,   511,   512,   513,  -493,   585,   586,
-     589,   592,   514,   515,   516,   518,   593,   597,   600,   601,
-     520,   521,   522,   523,  -493,   608,   611,   620,   526,   524,
-     527,  -493,   629,   633,   528,   529,   641,   644,   530,   531,
-     650,   656,   534,   535,  -493,   658,   536,   661,   538,   663,
-     540,   665,   543,  -493
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const short int yypgoto[] =
-{
-    -493,   662,  -493,  -493,  -493,  -493,   149,  -493,  -493,  -493,
-    -493,  -122,   645,  -493,  -493,  -493,   -44,  -493,  -309,  -307,
-    -493,  -493,  -493,    45,  -311,  -493,  -493,  -493,   -62,  -493,
-    -493,  -493,  -493,  -492,  -136,  -493,    -6,  -493,  -493,  -493,
-    -493,  -166,  -493,  -493,  -493,   -85,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,   595,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,  -493,
-    -493,  -493,  -493,   -72,  -493,  -493,  -493,  -493,   508,   519,
-    -493,   532,  -493,  -493,  -493,  -493,  -493,   571,  -493,  -493,
-     -71,  -493
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -1
-static const unsigned short int yytable[] =
-{
-     522,   546,   403,   415,   404,   553,    34,    35,   406,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   175,   231,
-     232,   233,   234,   181,    17,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   407,
-     597,   212,   213,   214,   215,   416,   417,   418,   419,   420,
-     407,     1,     2,     3,     4,     5,     6,     7,    18,   408,
-     523,   524,   525,    23,   237,   409,   410,   547,   548,   549,
-     408,   252,   253,   403,    19,   404,   409,   410,    20,   547,
-     548,   549,   486,    21,    22,    25,    30,    28,   523,   524,
-     525,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,   364,    29,
-     212,   213,   214,   215,    31,    32,    33,    36,   101,   105,
-     106,   107,   108,   112,   111,   113,   114,   365,   366,   367,
-     368,   369,   370,   371,   372,   373,   109,   110,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   153,   176,   178,   179,   182,
-     183,   230,   235,   238,   240,   274,   242,   244,   246,   248,
-     250,   254,   256,   259,   261,   265,   267,   320,   269,   331,
-     270,   271,   272,   273,   276,   277,   275,   278,   279,   280,
-     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   362,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   378,   379,   305,   306,   307,
-     380,   381,   383,   382,   308,   384,   310,   311,   312,   313,
-     314,   315,   385,   386,   387,   321,   316,   317,   318,   319,
-     388,   389,   390,   391,   392,   393,   394,   399,   429,   395,
-     396,   397,   405,   426,   430,   427,   428,   431,   432,   433,
-     434,   435,   529,   436,   437,   438,   439,   440,   477,   414,
-     495,   554,   581,   322,   324,   521,   309,   325,   328,   452,
-     327,   330,   332,   441,   333,   335,   442,   336,   338,   443,
-     339,   341,   342,   343,   444,   344,   346,   517,   347,   349,
-     350,   513,   445,   351,   353,   446,   354,   356,   357,   358,
-     447,   359,   361,   363,   398,   448,   449,   450,   474,   514,
-     515,   451,   453,   454,   455,   456,   457,   458,   459,   460,
-     461,   462,   463,   464,   516,   518,   465,   466,   519,   520,
-     467,   468,   532,   533,   469,   470,   535,   471,   472,   473,
-     542,   534,   475,   476,   478,   536,   537,   543,   480,   479,
-     544,   555,   481,   556,   482,   557,   558,   559,   560,   618,
-     483,   561,   562,   563,   564,   565,     0,     0,     0,   484,
-       0,     0,   485,     0,   629,   611,   612,   613,   614,   619,
-     489,   487,   488,   490,   491,   492,   493,   620,   498,   499,
-     494,   496,   497,   621,   576,   500,   502,   503,   501,   504,
-     505,   506,   507,   508,   509,   510,   511,   512,   530,   579,
-     531,   538,   539,   540,   541,   545,   566,   567,   568,   569,
-     622,   627,   570,   571,   572,   573,   574,   577,   578,   628,
-     575,   582,   580,   584,   585,   583,   586,   587,   588,   589,
-     590,   592,   593,   594,   591,   630,   655,   595,   631,   632,
-     596,   633,   634,   635,   598,   599,   656,   658,   600,   659,
-     601,   602,   660,   603,   661,   657,   662,   604,   605,   606,
-     663,   607,   608,   609,   610,   615,   664,   616,   672,   673,
-     674,   675,   676,   617,   682,   683,   684,   685,   686,   692,
-     693,   623,   624,   694,   625,   626,   695,   700,   637,   638,
-     636,   701,   639,   640,   702,   703,   643,   641,   642,   644,
-     645,   647,   708,   646,   648,   709,   649,   650,   651,   652,
-     653,   654,   665,   666,   710,   667,   668,   669,   670,   671,
-     677,   678,   679,   714,   680,   681,   687,   715,   688,   689,
-     690,   691,   696,   697,   698,   718,   699,   704,   719,   705,
-     706,   707,   712,   711,   722,   713,   716,   717,   720,   721,
-     723,   724,   726,   725,   727,   728,   729,   730,   731,   732,
-     733,    24,    37,   152,   180,   258,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   263,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   264
-};
-
-/* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
-   list of conflicting reductions corresponding to action entry for
-   state STATE-NUM in yytable.  0 means no conflicts.  The list in
-   yyconfl is terminated by a rule number of 0.  */
-static const unsigned char yyconflp[] =
-{
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0
-};
-
-/* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
-   0, pointed into by YYCONFLP.  */
-static const short int yyconfl[] =
-{
-       0
-};
-
-static const short int yycheck[] =
-{
-      13,    11,   311,   314,   311,   497,    62,    63,    11,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,    58,
-      59,    60,    61,   104,   124,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    73,
-     552,   101,   102,   103,   104,   104,   105,   106,   107,   108,
-      73,    64,    65,    66,    67,    68,    69,    70,   124,    93,
-     121,   122,   123,     0,   155,    99,   100,   109,   110,   111,
-      93,   163,   164,   402,   124,   402,    99,   100,   124,   109,
-     110,   111,   413,   124,   124,   129,     5,   126,   121,   122,
-     123,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    93,   126,
-     101,   102,   103,   104,    17,     3,     5,   124,    57,   125,
-     125,   125,   125,     7,   126,     7,     7,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   130,   130,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,   127,   129,   124,     7,   127,     6,
-       6,   125,   124,   124,   124,   131,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,     4,   125,     3,
-     126,   125,   125,   125,   124,   124,   131,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,     6,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,     6,     6,   124,   124,   124,
-       3,     8,     4,     9,   127,     4,   126,   126,   126,   126,
-     126,   126,     5,     5,     5,   125,   130,   130,   130,   130,
-       5,     5,     5,    10,     5,     3,     3,     6,    16,     5,
-       5,     3,   104,     6,     4,     6,     5,     4,     4,     3,
-       3,     3,   474,     4,     4,     4,     4,     4,   402,   314,
-     422,   497,   528,   126,   125,   450,   217,   126,   126,   375,
-     125,   125,   125,   124,   126,   125,   124,   126,   125,   124,
-     126,   125,   125,   125,   124,   126,   125,     3,   126,   125,
-     125,    10,   124,   126,   125,   124,   126,   125,   125,   125,
-     124,   126,   125,   125,   125,   124,   124,   124,   128,    14,
-      14,   127,   126,   125,   125,   125,   125,   125,   125,   125,
-     125,   125,   125,   125,    14,     4,   125,   125,     4,     4,
-     125,   125,     3,    11,   125,   125,    10,   125,   125,   125,
-       3,    11,   127,   127,   124,    11,    11,     5,   124,   128,
-      12,     4,   124,     4,   124,     4,     3,     3,     3,    11,
-     124,     4,     4,     4,     4,     4,    -1,    -1,    -1,   127,
-      -1,    -1,   127,    -1,     3,    13,    13,    13,    13,    11,
-     124,   127,   127,   124,   124,   124,   124,    11,   131,   131,
-     127,   126,   126,    11,   124,   131,   128,   128,   131,   128,
-     128,   128,   128,   128,   128,   128,   128,   128,   125,   127,
-     125,   125,   125,   125,   125,   125,   125,   125,   125,   125,
-      15,     4,   125,   125,   125,   125,   125,   124,   124,     4,
-     128,   125,   127,   125,   125,   128,   125,   125,   125,   125,
-     125,   124,   124,   124,   128,     3,    13,   127,     4,     4,
-     127,     4,     4,     4,   127,   127,    10,     4,   127,     3,
-     128,   128,     4,   127,     4,    15,     4,   128,   128,   128,
-       4,   128,   128,   128,   128,   125,     4,   125,     4,     4,
-       4,     4,     4,   127,     4,     4,     4,     4,     4,     4,
-       4,   125,   125,     4,   125,   125,     4,     4,   125,   125,
-     128,     4,   125,   125,     4,     4,   125,   128,   128,   125,
-     125,   128,     4,   127,   127,     4,   128,   128,   128,   128,
-     128,   128,   127,   127,     4,   128,   128,   128,   128,   128,
-     128,   128,   128,     4,   128,   128,   127,     4,   128,   128,
-     128,   128,   128,   128,   128,     4,   128,   127,     4,   128,
-     128,   128,   128,   127,     4,   128,   128,   128,   128,   128,
-       4,   127,     4,   128,   128,     4,   128,     4,   128,     4,
-     127,     9,    27,    78,   103,   167,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   170,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   171
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
-{
-       0,    64,    65,    66,    67,    68,    69,    70,   133,   134,
-     135,   136,   137,   186,   187,   227,   228,   124,   124,   124,
-     124,   124,   124,     0,   133,   129,   144,   145,   126,   126,
-       5,    17,     3,     5,    62,    63,   124,   144,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,   188,   189,   190,
-     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
-     211,    57,   229,   230,   231,   125,   125,   125,   125,   130,
-     130,   126,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,   127,   188,   129,   232,   233,   232,   232,   232,   232,
-     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
-     232,   232,   232,   232,   232,   232,   124,   225,     7,   127,
-     229,   232,     6,     6,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,   101,   102,   103,   104,   138,   139,   140,   141,
-     142,   146,   147,   150,   151,   152,   153,   154,   158,   159,
-     125,    58,    59,    60,    61,   124,   212,   232,   124,   213,
-     124,   214,   124,   215,   124,   216,   124,   217,   124,   218,
-     124,   219,   215,   215,   124,   220,   124,   221,   220,   124,
-     222,   124,   223,   221,   223,   124,   224,   124,   226,   125,
-     126,   125,   125,   125,   131,   131,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   127,   138,
-     126,   126,   126,   126,   126,   126,   130,   130,   130,   130,
-       4,   125,   126,   175,   125,   126,   176,   125,   126,   177,
-     125,     3,   125,   126,   178,   125,   126,   179,   125,   126,
-     180,   125,   125,   125,   126,   181,   125,   126,   182,   125,
-     125,   126,   183,   125,   126,   184,   125,   125,   125,   126,
-     185,   125,     6,   125,    93,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   168,   169,   170,   171,     6,     6,
-       3,     8,     9,     4,     4,     5,     5,     5,     5,     5,
-       5,    10,     5,     3,     3,     5,     5,     3,   125,     6,
-     143,   148,   149,   150,   151,   104,    11,    73,    93,    99,
-     100,   155,   156,   157,   155,   156,   104,   105,   106,   107,
-     108,   160,   161,   162,   163,   164,     6,     6,     5,    16,
-       4,     4,     4,     3,     3,     3,     4,     4,     4,     4,
-       4,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   127,   168,   126,   125,   125,   125,   125,   125,   125,
-     125,   125,   125,   125,   125,   125,   125,   125,   125,   125,
-     125,   125,   125,   125,   128,   127,   127,   148,   124,   128,
-     124,   124,   124,   124,   127,   127,   156,   127,   127,   124,
-     124,   124,   124,   124,   127,   160,   126,   126,   131,   131,
-     131,   131,   128,   128,   128,   128,   128,   128,   128,   128,
-     128,   128,   128,    10,    14,    14,    14,     3,     4,     4,
-       4,   177,    13,   121,   122,   123,   172,   173,   174,   143,
-     125,   125,     3,    11,    11,    10,    11,    11,   125,   125,
-     125,   125,     3,     5,    12,   125,    11,   109,   110,   111,
-     165,   166,   167,   165,   166,     4,     4,     4,     3,     3,
-       3,     4,     4,     4,     4,     4,   125,   125,   125,   125,
-     125,   125,   125,   125,   125,   128,   124,   124,   124,   127,
-     127,   173,   125,   128,   125,   125,   125,   125,   125,   125,
-     125,   128,   124,   124,   124,   127,   127,   165,   127,   127,
-     127,   128,   128,   127,   128,   128,   128,   128,   128,   128,
-     128,    13,    13,    13,    13,   125,   125,   127,    11,    11,
-      11,    11,    15,   125,   125,   125,   125,     4,     4,     3,
-       3,     4,     4,     4,     4,     4,   128,   125,   125,   125,
-     125,   128,   128,   125,   125,   125,   127,   128,   127,   128,
-     128,   128,   128,   128,   128,    13,    10,    15,     4,     3,
-       4,     4,     4,     4,     4,   127,   127,   128,   128,   128,
-     128,   128,     4,     4,     4,     4,     4,   128,   128,   128,
-     128,   128,     4,     4,     4,     4,     4,   127,   128,   128,
-     128,   128,     4,     4,     4,     4,   128,   128,   128,   128,
-       4,     4,     4,     4,   127,   128,   128,   128,     4,     4,
-       4,   127,   128,   128,     4,     4,   128,   128,     4,     4,
-     128,   128,     4,     4,   127,   128,     4,   128,     4,   128,
-       4,   128,     4,   127
-};
-
-/* Error token number */
-#define YYTERROR 1
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
-    do                                                                  \
-      if (YYID (N))                                                     \
-        {                                                               \
-          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
-          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
-          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
-          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
-        }                                                               \
-      else                                                              \
-        {                                                               \
-          (Current).first_line   = (Current).last_line   =              \
-            YYRHSLOC (Rhs, 0).last_line;                                \
-          (Current).first_column = (Current).last_column =              \
-            YYRHSLOC (Rhs, 0).last_column;                              \
-        }                                                               \
-    while (YYID (0))
-#endif
-
-# define YYRHSLOC(Rhs, K) ((Rhs)[K].yystate.yyloc)
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
-   This macro was not mandated originally: define only if we know
-   we won't break user code: when these are the locations we know.  */
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
-      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-#  define __attribute__(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-
-/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
-
-__attribute__((__unused__))
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static unsigned
-yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
-#else
-static unsigned
-yy_location_print_ (yyo, yylocp)
-    FILE *yyo;
-    YYLTYPE const * const yylocp;
-#endif
-{
-  unsigned res = 0;
-  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
-  if (0 <= yylocp->first_line)
-    {
-      res += fprintf (yyo, "%d", yylocp->first_line);
-      if (0 <= yylocp->first_column)
-        res += fprintf (yyo, ".%d", yylocp->first_column);
-    }
-  if (0 <= yylocp->last_line)
-    {
-      if (yylocp->first_line < yylocp->last_line)
-        {
-          res += fprintf (yyo, "-%d", yylocp->last_line);
-          if (0 <= end_col)
-            res += fprintf (yyo, ".%d", end_col);
-        }
-      else if (0 <= end_col && yylocp->first_column < end_col)
-        res += fprintf (yyo, "-%d", end_col);
-    }
-  return res;
- }
-
-#  define YY_LOCATION_PRINT(File, Loc)          \
-  yy_location_print_ (File, &(Loc))
-
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-#define YYLEX yylex (&yylval, &yylloc, scanner)
-
-
-#undef yynerrs
-#define yynerrs (yystackp->yyerrcnt)
-#undef yychar
-#define yychar (yystackp->yyrawchar)
-#undef yylval
-#define yylval (yystackp->yyval)
-#undef yylloc
-#define yylloc (yystackp->yyloc)
-
-
-static const int YYEOF = 0;
-static const int YYEMPTY = -2;
-
-typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
-
-#define YYCHK(YYE)                                                           \
-   do { YYRESULTTAG yyflag = YYE; if (yyflag != yyok) return yyflag; }       \
-   while (YYID (0))
-
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParseState* parse_state, yyscan_t scanner)
-{
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
-  if (!yyvaluep)
-    return;
-  YYUSE (yylocationp);
-  YYUSE (parse_state);
-  YYUSE (scanner);
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParseState* parse_state, yyscan_t scanner)
-{
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  YY_LOCATION_PRINT (yyoutput, *yylocationp);
-  YYFPRINTF (yyoutput, ": ");
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parse_state, scanner);
-  YYFPRINTF (yyoutput, ")");
-}
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \
-do {                                                            \
-  if (yydebug)                                                  \
-    {                                                           \
-      YYFPRINTF (stderr, "%s ", Title);                         \
-      yy_symbol_print (stderr, Type, Value, Location, parse_state, scanner);        \
-      YYFPRINTF (stderr, "\n");                                 \
-    }                                                           \
-} while (YYID (0))
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-
-#else /* !YYDEBUG */
-
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-
-#endif /* !YYDEBUG */
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-/* Minimum number of free items on the stack allowed after an
-   allocation.  This is to allow allocation and initialization
-   to be completed by functions that call yyexpandGLRStack before the
-   stack is expanded, thus insuring that all necessary pointers get
-   properly redirected to new data.  */
-#define YYHEADROOM 2
-
-#ifndef YYSTACKEXPANDABLE
-# if (! defined __cplusplus \
-      || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
-          && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))
-#  define YYSTACKEXPANDABLE 1
-# else
-#  define YYSTACKEXPANDABLE 0
-# endif
-#endif
-
-#if YYSTACKEXPANDABLE
-# define YY_RESERVE_GLRSTACK(Yystack)                   \
-  do {                                                  \
-    if (Yystack->yyspaceLeft < YYHEADROOM)              \
-      yyexpandGLRStack (Yystack);                       \
-  } while (YYID (0))
-#else
-# define YY_RESERVE_GLRSTACK(Yystack)                   \
-  do {                                                  \
-    if (Yystack->yyspaceLeft < YYHEADROOM)              \
-      yyMemoryExhausted (Yystack);                      \
-  } while (YYID (0))
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static size_t
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      size_t yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return strlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-/** State numbers, as in LALR(1) machine */
-typedef int yyStateNum;
-
-/** Rule numbers, as in LALR(1) machine */
-typedef int yyRuleNum;
-
-/** Grammar symbol */
-typedef short int yySymbol;
-
-/** Item references, as in LALR(1) machine */
-typedef short int yyItemNum;
-
-typedef struct yyGLRState yyGLRState;
-typedef struct yyGLRStateSet yyGLRStateSet;
-typedef struct yySemanticOption yySemanticOption;
-typedef union yyGLRStackItem yyGLRStackItem;
-typedef struct yyGLRStack yyGLRStack;
-
-struct yyGLRState {
-  /** Type tag: always true.  */
-  yybool yyisState;
-  /** Type tag for yysemantics.  If true, yysval applies, otherwise
-   *  yyfirstVal applies.  */
-  yybool yyresolved;
-  /** Number of corresponding LALR(1) machine state.  */
-  yyStateNum yylrState;
-  /** Preceding state in this stack */
-  yyGLRState* yypred;
-  /** Source position of the first token produced by my symbol */
-  size_t yyposn;
-  union {
-    /** First in a chain of alternative reductions producing the
-     *  non-terminal corresponding to this state, threaded through
-     *  yynext.  */
-    yySemanticOption* yyfirstVal;
-    /** Semantic value for this state.  */
-    YYSTYPE yysval;
-  } yysemantics;
-  /** Source location for this state.  */
-  YYLTYPE yyloc;
-};
-
-struct yyGLRStateSet {
-  yyGLRState** yystates;
-  /** During nondeterministic operation, yylookaheadNeeds tracks which
-   *  stacks have actually needed the current lookahead.  During deterministic
-   *  operation, yylookaheadNeeds[0] is not maintained since it would merely
-   *  duplicate yychar != YYEMPTY.  */
-  yybool* yylookaheadNeeds;
-  size_t yysize, yycapacity;
-};
-
-struct yySemanticOption {
-  /** Type tag: always false.  */
-  yybool yyisState;
-  /** Rule number for this reduction */
-  yyRuleNum yyrule;
-  /** The last RHS state in the list of states to be reduced.  */
-  yyGLRState* yystate;
-  /** The lookahead for this reduction.  */
-  int yyrawchar;
-  YYSTYPE yyval;
-  YYLTYPE yyloc;
-  /** Next sibling in chain of options.  To facilitate merging,
-   *  options are chained in decreasing order by address.  */
-  yySemanticOption* yynext;
-};
-
-/** Type of the items in the GLR stack.  The yyisState field
- *  indicates which item of the union is valid.  */
-union yyGLRStackItem {
-  yyGLRState yystate;
-  yySemanticOption yyoption;
-};
-
-struct yyGLRStack {
-  int yyerrState;
-  /* To compute the location of the error token.  */
-  yyGLRStackItem yyerror_range[3];
-
-  int yyerrcnt;
-  int yyrawchar;
-  YYSTYPE yyval;
-  YYLTYPE yyloc;
-
-  YYJMP_BUF yyexception_buffer;
-  yyGLRStackItem* yyitems;
-  yyGLRStackItem* yynextFree;
-  size_t yyspaceLeft;
-  yyGLRState* yysplitPoint;
-  yyGLRState* yylastDeleted;
-  yyGLRStateSet yytops;
-};
-
-#if YYSTACKEXPANDABLE
-static void yyexpandGLRStack (yyGLRStack* yystackp);
-#endif
-
-static void yyFail (yyGLRStack* yystackp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner, const char* yymsg)
-  __attribute__ ((__noreturn__));
-static void
-yyFail (yyGLRStack* yystackp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner, const char* yymsg)
-{
-  if (yymsg != YY_NULL)
-    yyerror (yylocp, parse_state, scanner, yymsg);
-  YYLONGJMP (yystackp->yyexception_buffer, 1);
-}
-
-static void yyMemoryExhausted (yyGLRStack* yystackp)
-  __attribute__ ((__noreturn__));
-static void
-yyMemoryExhausted (yyGLRStack* yystackp)
-{
-  YYLONGJMP (yystackp->yyexception_buffer, 2);
-}
-
-#if YYDEBUG || YYERROR_VERBOSE
-/** A printable representation of TOKEN.  */
-static inline const char*
-yytokenName (yySymbol yytoken)
-{
-  if (yytoken == YYEMPTY)
-    return "";
-
-  return yytname[yytoken];
-}
-#endif
-
-/** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
- *  at YYVSP[YYLOW0].yystate.yypred.  Leaves YYVSP[YYLOW1].yystate.yypred
- *  containing the pointer to the next state in the chain.  */
-static void yyfillin (yyGLRStackItem *, int, int) __attribute__ ((__unused__));
-static void
-yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
-{
-  int i;
-  yyGLRState *s = yyvsp[yylow0].yystate.yypred;
-  for (i = yylow0-1; i >= yylow1; i -= 1)
-    {
-      YYASSERT (s->yyresolved);
-      yyvsp[i].yystate.yyresolved = yytrue;
-      yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
-      yyvsp[i].yystate.yyloc = s->yyloc;
-      s = yyvsp[i].yystate.yypred = s->yypred;
-    }
-}
-
-/* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1.  Otherwise, fill in
- * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
- * For convenience, always return YYLOW1.  */
-static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
-     __attribute__ ((__unused__));
-static inline int
-yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
-{
-  if (!yynormal && yylow1 < *yylow)
-    {
-      yyfillin (yyvsp, *yylow, yylow1);
-      *yylow = yylow1;
-    }
-  return yylow1;
-}
-
-/** Perform user action for rule number YYN, with RHS length YYRHSLEN,
- *  and top stack item YYVSP.  YYLVALP points to place to put semantic
- *  value ($$), and yylocp points to place for location information
- *  (@$).  Returns yyok for normal return, yyaccept for YYACCEPT,
- *  yyerr for YYERROR, yyabort for YYABORT.  */
-/*ARGSUSED*/ static YYRESULTTAG
-yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
-              yyGLRStack* yystackp,
-              YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  yybool yynormal __attribute__ ((__unused__)) =
-    (yystackp->yysplitPoint == YY_NULL);
-  int yylow;
-  YYUSE (parse_state);
-  YYUSE (scanner);
-# undef yyerrok
-# define yyerrok (yystackp->yyerrState = 0)
-# undef YYACCEPT
-# define YYACCEPT return yyaccept
-# undef YYABORT
-# define YYABORT return yyabort
-# undef YYERROR
-# define YYERROR return yyerrok, yyerr
-# undef YYRECOVERING
-# define YYRECOVERING() (yystackp->yyerrState != 0)
-# undef yyclearin
-# define yyclearin (yychar = YYEMPTY)
-# undef YYFILL
-# define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
-# undef YYBACKUP
-# define YYBACKUP(Token, Value)                                              \
-  return yyerror (yylocp, parse_state, scanner, YY_("syntax error: cannot back up")),     \
-         yyerrok, yyerr
-
-  yylow = 1;
-  if (yyrhslen == 0)
-    *yyvalp = yyval_default;
-  else
-    *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
-  YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen);
-  yystackp->yyerror_range[1].yystate.yyloc = *yylocp;
-
-  switch (yyn)
-    {
-        case 2:
-/* Line 868 of glr.c  */
-#line 286 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { }
-    break;
-
-  case 3:
-/* Line 868 of glr.c  */
-#line 287 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 5:
-/* Line 868 of glr.c  */
-#line 292 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Technique; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 6:
-/* Line 868 of glr.c  */
-#line 293 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Parameters; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 7:
-/* Line 868 of glr.c  */
-#line 294 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Blocks; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 8:
-/* Line 868 of glr.c  */
-#line 298 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Separable; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 9:
-/* Line 868 of glr.c  */
-#line 299 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Sort; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 10:
-/* Line 868 of glr.c  */
-#line 300 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Priority; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 11:
-/* Line 868 of glr.c  */
-#line 301 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Transparent; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 12:
-/* Line 868 of glr.c  */
-#line 307 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (7))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 13:
-/* Line 868 of glr.c  */
-#line 312 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Technique); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 15:
-/* Line 868 of glr.c  */
-#line 320 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 17:
-/* Line 868 of glr.c  */
-#line 325 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Pass; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 19:
-/* Line 868 of glr.c  */
-#line 327 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Code; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 20:
-/* Line 868 of glr.c  */
-#line 331 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Renderer; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 21:
-/* Line 868 of glr.c  */
-#line 332 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Language; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 22:
-/* Line 868 of glr.c  */
-#line 333 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Tags; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 23:
-/* Line 868 of glr.c  */
-#line 338 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 24:
-/* Line 868 of glr.c  */
-#line 343 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Tags); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 26:
-/* Line 868 of glr.c  */
-#line 352 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			NodeOption entry; entry.type = OT_TagValue; entry.value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.strValue);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &entry); 
-		}
-    break;
-
-  case 27:
-/* Line 868 of glr.c  */
-#line 357 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			NodeOption entry; entry.type = OT_TagValue; entry.value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.strValue);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &entry); 
-		}
-    break;
-
-  case 29:
-/* Line 868 of glr.c  */
-#line 366 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 30:
-/* Line 868 of glr.c  */
-#line 370 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Base; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 31:
-/* Line 868 of glr.c  */
-#line 371 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Inherits; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 32:
-/* Line 868 of glr.c  */
-#line 377 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 33:
-/* Line 868 of glr.c  */
-#line 382 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Pass); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 35:
-/* Line 868 of glr.c  */
-#line 390 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 37:
-/* Line 868 of glr.c  */
-#line 395 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Code; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 38:
-/* Line 868 of glr.c  */
-#line 399 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Index; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 39:
-/* Line 868 of glr.c  */
-#line 400 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_FillMode; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 40:
-/* Line 868 of glr.c  */
-#line 401 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_CullMode; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 41:
-/* Line 868 of glr.c  */
-#line 402 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_DepthBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 42:
-/* Line 868 of glr.c  */
-#line 403 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_SDepthBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 43:
-/* Line 868 of glr.c  */
-#line 404 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_DepthClip; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 44:
-/* Line 868 of glr.c  */
-#line 405 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Scissor; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 45:
-/* Line 868 of glr.c  */
-#line 406 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Multisample; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 46:
-/* Line 868 of glr.c  */
-#line 407 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_AALine; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 47:
-/* Line 868 of glr.c  */
-#line 408 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_DepthRead; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 48:
-/* Line 868 of glr.c  */
-#line 409 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_DepthWrite; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 49:
-/* Line 868 of glr.c  */
-#line 410 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 50:
-/* Line 868 of glr.c  */
-#line 411 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Stencil; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 51:
-/* Line 868 of glr.c  */
-#line 412 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_StencilReadMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 52:
-/* Line 868 of glr.c  */
-#line 413 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_StencilWriteMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 53:
-/* Line 868 of glr.c  */
-#line 414 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpFront; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 54:
-/* Line 868 of glr.c  */
-#line 415 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpBack; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 55:
-/* Line 868 of glr.c  */
-#line 416 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpFront; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 56:
-/* Line 868 of glr.c  */
-#line 417 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpBack; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 57:
-/* Line 868 of glr.c  */
-#line 418 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_AlphaToCoverage; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 58:
-/* Line 868 of glr.c  */
-#line 419 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_IndependantBlend; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 59:
-/* Line 868 of glr.c  */
-#line 420 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Target; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 60:
-/* Line 868 of glr.c  */
-#line 421 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_StencilRef; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 61:
-/* Line 868 of glr.c  */
-#line 428 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    {
-		NodeOption index;
-		index.type = OT_Index; 
-		index.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (8))].yystate.yysemantics.yysval.intValue);
-
-		nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &index);
-
-		nodePop(parse_state); 
-		((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (8))].yystate.yysemantics.yysval.nodePtr);
-	}
-    break;
-
-  case 62:
-/* Line 868 of glr.c  */
-#line 442 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeVertex); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 63:
-/* Line 868 of glr.c  */
-#line 447 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeFragment); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 64:
-/* Line 868 of glr.c  */
-#line 452 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeGeometry); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 65:
-/* Line 868 of glr.c  */
-#line 457 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeHull); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 66:
-/* Line 868 of glr.c  */
-#line 462 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeDomain); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 67:
-/* Line 868 of glr.c  */
-#line 467 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeCompute); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 68:
-/* Line 868 of glr.c  */
-#line 472 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_CodeCommon); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 69:
-/* Line 868 of glr.c  */
-#line 482 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_StencilOp); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 70:
-/* Line 868 of glr.c  */
-#line 490 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_StencilOp); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 71:
-/* Line 868 of glr.c  */
-#line 498 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    {
-			NodeOption fail; fail.type = OT_Fail; fail.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (7))].yystate.yysemantics.yysval.intValue);
-			NodeOption zfail; zfail.type = OT_ZFail; zfail.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (7))].yystate.yysemantics.yysval.intValue);
-			NodeOption pass; pass.type = OT_PassOp; pass.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (7))].yystate.yysemantics.yysval.intValue);
-			NodeOption cmp; cmp.type = OT_CompareFunc; cmp.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((7) - (7))].yystate.yysemantics.yysval.intValue);
-
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &fail);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &zfail);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &pass);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &cmp);
-		}
-    break;
-
-  case 73:
-/* Line 868 of glr.c  */
-#line 513 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 74:
-/* Line 868 of glr.c  */
-#line 517 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Fail; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 75:
-/* Line 868 of glr.c  */
-#line 518 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ZFail; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 76:
-/* Line 868 of glr.c  */
-#line 519 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_PassOp; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 77:
-/* Line 868 of glr.c  */
-#line 520 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 78:
-/* Line 868 of glr.c  */
-#line 525 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 79:
-/* Line 868 of glr.c  */
-#line 530 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Target); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 81:
-/* Line 868 of glr.c  */
-#line 538 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 83:
-/* Line 868 of glr.c  */
-#line 546 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Index; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 84:
-/* Line 868 of glr.c  */
-#line 547 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Blend; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 85:
-/* Line 868 of glr.c  */
-#line 548 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Color; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 86:
-/* Line 868 of glr.c  */
-#line 549 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Alpha; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 87:
-/* Line 868 of glr.c  */
-#line 550 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Color; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 88:
-/* Line 868 of glr.c  */
-#line 551 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Alpha; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 89:
-/* Line 868 of glr.c  */
-#line 552 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_WriteMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 90:
-/* Line 868 of glr.c  */
-#line 558 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_BlendDef); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 91:
-/* Line 868 of glr.c  */
-#line 566 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_BlendDef); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 93:
-/* Line 868 of glr.c  */
-#line 574 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 94:
-/* Line 868 of glr.c  */
-#line 579 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    {
-			NodeOption src; src.type = OT_Source; src.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.intValue);
-			NodeOption dst; dst.type = OT_Dest; dst.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (5))].yystate.yysemantics.yysval.intValue);
-			NodeOption op; op.type = OT_Op; op.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (5))].yystate.yysemantics.yysval.intValue);
-
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &src);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &dst);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &op);
-		}
-    break;
-
-  case 95:
-/* Line 868 of glr.c  */
-#line 591 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Source; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 96:
-/* Line 868 of glr.c  */
-#line 592 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Dest; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 97:
-/* Line 868 of glr.c  */
-#line 593 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Op; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 99:
-/* Line 868 of glr.c  */
-#line 600 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 100:
-/* Line 868 of glr.c  */
-#line 604 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_AddrMode; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 101:
-/* Line 868 of glr.c  */
-#line 605 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MinFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 102:
-/* Line 868 of glr.c  */
-#line 606 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MagFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 103:
-/* Line 868 of glr.c  */
-#line 607 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MipFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 104:
-/* Line 868 of glr.c  */
-#line 608 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MaxAniso; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 105:
-/* Line 868 of glr.c  */
-#line 609 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MipBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 106:
-/* Line 868 of glr.c  */
-#line 610 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MipMin; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 107:
-/* Line 868 of glr.c  */
-#line 611 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_MipMax; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 108:
-/* Line 868 of glr.c  */
-#line 612 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_BorderColor; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 109:
-/* Line 868 of glr.c  */
-#line 613 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 110:
-/* Line 868 of glr.c  */
-#line 618 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 111:
-/* Line 868 of glr.c  */
-#line 619 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 112:
-/* Line 868 of glr.c  */
-#line 624 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_AddrMode); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 113:
-/* Line 868 of glr.c  */
-#line 632 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    {
-			NodeOption u; u.type = OT_U; u.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.intValue);
-			NodeOption v; v.type = OT_V; v.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (5))].yystate.yysemantics.yysval.intValue);
-			NodeOption w; w.type = OT_W; w.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (5))].yystate.yysemantics.yysval.intValue);
-
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &u);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &v);
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &w);
-		}
-    break;
-
-  case 115:
-/* Line 868 of glr.c  */
-#line 645 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 116:
-/* Line 868 of glr.c  */
-#line 649 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_U; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 117:
-/* Line 868 of glr.c  */
-#line 650 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_V; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 118:
-/* Line 868 of glr.c  */
-#line 651 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_W; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 119:
-/* Line 868 of glr.c  */
-#line 656 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (5))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 120:
-/* Line 868 of glr.c  */
-#line 660 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (7))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (7))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (7))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 121:
-/* Line 868 of glr.c  */
-#line 664 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (9))].yystate.yysemantics.yysval.floatValue);}
-    break;
-
-  case 122:
-/* Line 868 of glr.c  */
-#line 668 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).intVectorValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (5))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 123:
-/* Line 868 of glr.c  */
-#line 672 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).intVectorValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (7))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (7))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (7))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 124:
-/* Line 868 of glr.c  */
-#line 676 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).intVectorValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (9))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (9))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (9))].yystate.yysemantics.yysval.intValue); ((*yyvalp).intVectorValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (9))].yystate.yysemantics.yysval.intValue);}
-    break;
-
-  case 125:
-/* Line 868 of glr.c  */
-#line 682 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (13))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (13))].yystate.yysemantics.yysval.floatValue);
-		}
-    break;
-
-  case 126:
-/* Line 868 of glr.c  */
-#line 692 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (17))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (17))].yystate.yysemantics.yysval.floatValue);
-			((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (17))].yystate.yysemantics.yysval.floatValue);
-		}
-    break;
-
-  case 127:
-/* Line 868 of glr.c  */
-#line 703 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (19))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (19))].yystate.yysemantics.yysval.floatValue);
-			((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (19))].yystate.yysemantics.yysval.floatValue);
-		}
-    break;
-
-  case 128:
-/* Line 868 of glr.c  */
-#line 714 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (25))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (25))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[9] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((20) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[10] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((22) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[11] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((24) - (25))].yystate.yysemantics.yysval.floatValue);
-		}
-    break;
-
-  case 129:
-/* Line 868 of glr.c  */
-#line 726 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (33))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (33))].yystate.yysemantics.yysval.floatValue); 
-			((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[9] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((20) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[10] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((22) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[11] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((24) - (33))].yystate.yysemantics.yysval.floatValue);
-			((*yyvalp).matrixValue)[12] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((26) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[13] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((28) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[14] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((30) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[15] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((32) - (33))].yystate.yysemantics.yysval.floatValue);
-		}
-    break;
-
-  case 130:
-/* Line 868 of glr.c  */
-#line 736 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 131:
-/* Line 868 of glr.c  */
-#line 741 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Parameters); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 133:
-/* Line 868 of glr.c  */
-#line 749 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 134:
-/* Line 868 of glr.c  */
-#line 753 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 135:
-/* Line 868 of glr.c  */
-#line 754 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 136:
-/* Line 868 of glr.c  */
-#line 755 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 137:
-/* Line 868 of glr.c  */
-#line 756 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 138:
-/* Line 868 of glr.c  */
-#line 757 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 139:
-/* Line 868 of glr.c  */
-#line 758 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 140:
-/* Line 868 of glr.c  */
-#line 759 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 141:
-/* Line 868 of glr.c  */
-#line 760 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 142:
-/* Line 868 of glr.c  */
-#line 761 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 143:
-/* Line 868 of glr.c  */
-#line 762 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 144:
-/* Line 868 of glr.c  */
-#line 763 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 145:
-/* Line 868 of glr.c  */
-#line 764 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 146:
-/* Line 868 of glr.c  */
-#line 765 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 147:
-/* Line 868 of glr.c  */
-#line 766 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 148:
-/* Line 868 of glr.c  */
-#line 767 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 149:
-/* Line 868 of glr.c  */
-#line 768 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 150:
-/* Line 868 of glr.c  */
-#line 769 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 151:
-/* Line 868 of glr.c  */
-#line 770 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 152:
-/* Line 868 of glr.c  */
-#line 771 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 153:
-/* Line 868 of glr.c  */
-#line 772 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 154:
-/* Line 868 of glr.c  */
-#line 774 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			nodePop(parse_state);
-
-			NodeOption samplerState;
-			samplerState.type = OT_SamplerState;
-			samplerState.value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr);
-
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &samplerState); 
-
-			((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = parse_state->topNode; 
-			nodePop(parse_state); 
-		}
-    break;
-
-  case 155:
-/* Line 868 of glr.c  */
-#line 789 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 156:
-/* Line 868 of glr.c  */
-#line 793 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 157:
-/* Line 868 of glr.c  */
-#line 797 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 158:
-/* Line 868 of glr.c  */
-#line 801 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 159:
-/* Line 868 of glr.c  */
-#line 805 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 160:
-/* Line 868 of glr.c  */
-#line 809 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 161:
-/* Line 868 of glr.c  */
-#line 813 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 162:
-/* Line 868 of glr.c  */
-#line 817 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 163:
-/* Line 868 of glr.c  */
-#line 821 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 164:
-/* Line 868 of glr.c  */
-#line 825 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 165:
-/* Line 868 of glr.c  */
-#line 829 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 166:
-/* Line 868 of glr.c  */
-#line 833 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 167:
-/* Line 868 of glr.c  */
-#line 837 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 168:
-/* Line 868 of glr.c  */
-#line 841 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 169:
-/* Line 868 of glr.c  */
-#line 845 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 170:
-/* Line 868 of glr.c  */
-#line 849 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 171:
-/* Line 868 of glr.c  */
-#line 853 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 172:
-/* Line 868 of glr.c  */
-#line 857 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 173:
-/* Line 868 of glr.c  */
-#line 861 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 174:
-/* Line 868 of glr.c  */
-#line 862 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 175:
-/* Line 868 of glr.c  */
-#line 863 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 176:
-/* Line 868 of glr.c  */
-#line 864 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 177:
-/* Line 868 of glr.c  */
-#line 865 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 178:
-/* Line 868 of glr.c  */
-#line 869 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 179:
-/* Line 868 of glr.c  */
-#line 870 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 180:
-/* Line 868 of glr.c  */
-#line 871 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 181:
-/* Line 868 of glr.c  */
-#line 872 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 182:
-/* Line 868 of glr.c  */
-#line 873 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 183:
-/* Line 868 of glr.c  */
-#line 874 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 184:
-/* Line 868 of glr.c  */
-#line 875 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 185:
-/* Line 868 of glr.c  */
-#line 876 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 186:
-/* Line 868 of glr.c  */
-#line 877 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 187:
-/* Line 868 of glr.c  */
-#line 881 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 188:
-/* Line 868 of glr.c  */
-#line 882 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 189:
-/* Line 868 of glr.c  */
-#line 883 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 190:
-/* Line 868 of glr.c  */
-#line 884 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 191:
-/* Line 868 of glr.c  */
-#line 885 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 192:
-/* Line 868 of glr.c  */
-#line 886 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 193:
-/* Line 868 of glr.c  */
-#line 887 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
-    break;
-
-  case 194:
-/* Line 868 of glr.c  */
-#line 892 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_SamplerState); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 195:
-/* Line 868 of glr.c  */
-#line 899 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 196:
-/* Line 868 of glr.c  */
-#line 900 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.floatValue); }
-    break;
-
-  case 197:
-/* Line 868 of glr.c  */
-#line 904 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 198:
-/* Line 868 of glr.c  */
-#line 905 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 199:
-/* Line 868 of glr.c  */
-#line 909 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 200:
-/* Line 868 of glr.c  */
-#line 910 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 201:
-/* Line 868 of glr.c  */
-#line 914 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 202:
-/* Line 868 of glr.c  */
-#line 915 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 203:
-/* Line 868 of glr.c  */
-#line 919 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 204:
-/* Line 868 of glr.c  */
-#line 920 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 205:
-/* Line 868 of glr.c  */
-#line 924 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 206:
-/* Line 868 of glr.c  */
-#line 925 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.intVectorValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue))); }
-    break;
-
-  case 207:
-/* Line 868 of glr.c  */
-#line 929 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 208:
-/* Line 868 of glr.c  */
-#line 930 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.intVectorValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue))); }
-    break;
-
-  case 209:
-/* Line 868 of glr.c  */
-#line 934 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 210:
-/* Line 868 of glr.c  */
-#line 935 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.intVectorValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.intVectorValue))); }
-    break;
-
-  case 211:
-/* Line 868 of glr.c  */
-#line 939 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 212:
-/* Line 868 of glr.c  */
-#line 940 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 213:
-/* Line 868 of glr.c  */
-#line 944 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 214:
-/* Line 868 of glr.c  */
-#line 945 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 215:
-/* Line 868 of glr.c  */
-#line 949 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 216:
-/* Line 868 of glr.c  */
-#line 950 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 217:
-/* Line 868 of glr.c  */
-#line 954 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 218:
-/* Line 868 of glr.c  */
-#line 955 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 219:
-/* Line 868 of glr.c  */
-#line 959 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 220:
-/* Line 868 of glr.c  */
-#line 960 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
-    break;
-
-  case 221:
-/* Line 868 of glr.c  */
-#line 964 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 222:
-/* Line 868 of glr.c  */
-#line 965 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { }
-    break;
-
-  case 223:
-/* Line 868 of glr.c  */
-#line 969 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_None; }
-    break;
-
-  case 224:
-/* Line 868 of glr.c  */
-#line 970 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_ParamStrValue; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 225:
-/* Line 868 of glr.c  */
-#line 975 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 226:
-/* Line 868 of glr.c  */
-#line 980 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { 
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Blocks); 
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-		}
-    break;
-
-  case 228:
-/* Line 868 of glr.c  */
-#line 988 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 229:
-/* Line 868 of glr.c  */
-#line 992 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Block; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr); }
-    break;
-
-  case 230:
-/* Line 868 of glr.c  */
-#line 997 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    {
-			((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Block);
-			nodePush(parse_state, ((*yyvalp).nodePtr));
-
-			NodeOption blockName;
-			blockName.type = OT_Identifier;
-			blockName.value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue);
-
-			nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &blockName);
-		}
-    break;
-
-  case 232:
-/* Line 868 of glr.c  */
-#line 1012 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
-    break;
-
-  case 233:
-/* Line 868 of glr.c  */
-#line 1016 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Alias; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 234:
-/* Line 868 of glr.c  */
-#line 1017 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Auto; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
-    break;
-
-  case 235:
-/* Line 868 of glr.c  */
-#line 1018 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Shared; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-  case 236:
-/* Line 868 of glr.c  */
-#line 1019 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-    { ((*yyvalp).nodeOption).type = OT_Usage; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.intValue); }
-    break;
-
-
-/* Line 868 of glr.c  */
-#line 3093 "BsParserFX.c"
-      default: break;
-    }
-
-  return yyok;
-# undef yyerrok
-# undef YYABORT
-# undef YYACCEPT
-# undef YYERROR
-# undef YYBACKUP
-# undef yyclearin
-# undef YYRECOVERING
-}
-
-
-/*ARGSUSED*/ static void
-yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
-{
-  YYUSE (yy0);
-  YYUSE (yy1);
-
-  switch (yyn)
-    {
-      
-      default: break;
-    }
-}
-
-                              /* Bison grammar-table manipulation.  */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, ParseState* parse_state, yyscan_t scanner)
-{
-  YYUSE (yyvaluep);
-  YYUSE (yylocationp);
-  YYUSE (parse_state);
-  YYUSE (scanner);
-
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
-
-      default:
-        break;
-    }
-}
-
-/** Number of symbols composing the right hand side of rule #RULE.  */
-static inline int
-yyrhsLength (yyRuleNum yyrule)
-{
-  return yyr2[yyrule];
-}
-
-static void
-yydestroyGLRState (char const *yymsg, yyGLRState *yys, ParseState* parse_state, yyscan_t scanner)
-{
-  if (yys->yyresolved)
-    yydestruct (yymsg, yystos[yys->yylrState],
-                &yys->yysemantics.yysval, &yys->yyloc, parse_state, scanner);
-  else
-    {
-#if YYDEBUG
-      if (yydebug)
-        {
-          if (yys->yysemantics.yyfirstVal)
-            YYFPRINTF (stderr, "%s unresolved ", yymsg);
-          else
-            YYFPRINTF (stderr, "%s incomplete ", yymsg);
-          yy_symbol_print (stderr, yystos[yys->yylrState],
-                           YY_NULL, &yys->yyloc, parse_state, scanner);
-          YYFPRINTF (stderr, "\n");
-        }
-#endif
-
-      if (yys->yysemantics.yyfirstVal)
-        {
-          yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
-          yyGLRState *yyrh;
-          int yyn;
-          for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
-               yyn > 0;
-               yyrh = yyrh->yypred, yyn -= 1)
-            yydestroyGLRState (yymsg, yyrh, parse_state, scanner);
-        }
-    }
-}
-
-/** Left-hand-side symbol for rule #RULE.  */
-static inline yySymbol
-yylhsNonterm (yyRuleNum yyrule)
-{
-  return yyr1[yyrule];
-}
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-493)))
-
-/** True iff LR state STATE has only a default reduction (regardless
- *  of token).  */
-static inline yybool
-yyisDefaultedState (yyStateNum yystate)
-{
-  return yypact_value_is_default (yypact[yystate]);
-}
-
-/** The default reduction for STATE, assuming it has one.  */
-static inline yyRuleNum
-yydefaultAction (yyStateNum yystate)
-{
-  return yydefact[yystate];
-}
-
-#define yytable_value_is_error(Yytable_value) \
-  YYID (0)
-
-/** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
- *  Result R means
- *    R < 0:  Reduce on rule -R.
- *    R = 0:  Error.
- *    R > 0:  Shift to state R.
- *  Set *CONFLICTS to a pointer into yyconfl to 0-terminated list of
- *  conflicting reductions.
- */
-static inline void
-yygetLRActions (yyStateNum yystate, int yytoken,
-                int* yyaction, const short int** yyconflicts)
-{
-  int yyindex = yypact[yystate] + yytoken;
-  if (yypact_value_is_default (yypact[yystate])
-      || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
-    {
-      *yyaction = -yydefact[yystate];
-      *yyconflicts = yyconfl;
-    }
-  else if (! yytable_value_is_error (yytable[yyindex]))
-    {
-      *yyaction = yytable[yyindex];
-      *yyconflicts = yyconfl + yyconflp[yyindex];
-    }
-  else
-    {
-      *yyaction = 0;
-      *yyconflicts = yyconfl + yyconflp[yyindex];
-    }
-}
-
-static inline yyStateNum
-yyLRgotoState (yyStateNum yystate, yySymbol yylhs)
-{
-  int yyr;
-  yyr = yypgoto[yylhs - YYNTOKENS] + yystate;
-  if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
-    return yytable[yyr];
-  else
-    return yydefgoto[yylhs - YYNTOKENS];
-}
-
-static inline yybool
-yyisShiftAction (int yyaction)
-{
-  return 0 < yyaction;
-}
-
-static inline yybool
-yyisErrorAction (int yyaction)
-{
-  return yyaction == 0;
-}
-
-                                /* GLRStates */
-
-/** Return a fresh GLRStackItem.  Callers should call
- * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
- * headroom.  */
-
-static inline yyGLRStackItem*
-yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
-{
-  yyGLRStackItem* yynewItem = yystackp->yynextFree;
-  yystackp->yyspaceLeft -= 1;
-  yystackp->yynextFree += 1;
-  yynewItem->yystate.yyisState = yyisState;
-  return yynewItem;
-}
-
-/** Add a new semantic action that will execute the action for rule
- *  RULENUM on the semantic values in RHS to the list of
- *  alternative actions for STATE.  Assumes that RHS comes from
- *  stack #K of *STACKP. */
-static void
-yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
-                     yyGLRState* rhs, yyRuleNum yyrule)
-{
-  yySemanticOption* yynewOption =
-    &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
-  yynewOption->yystate = rhs;
-  yynewOption->yyrule = yyrule;
-  if (yystackp->yytops.yylookaheadNeeds[yyk])
-    {
-      yynewOption->yyrawchar = yychar;
-      yynewOption->yyval = yylval;
-      yynewOption->yyloc = yylloc;
-    }
-  else
-    yynewOption->yyrawchar = YYEMPTY;
-  yynewOption->yynext = yystate->yysemantics.yyfirstVal;
-  yystate->yysemantics.yyfirstVal = yynewOption;
-
-  YY_RESERVE_GLRSTACK (yystackp);
-}
-
-                                /* GLRStacks */
-
-/** Initialize SET to a singleton set containing an empty stack.  */
-static yybool
-yyinitStateSet (yyGLRStateSet* yyset)
-{
-  yyset->yysize = 1;
-  yyset->yycapacity = 16;
-  yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
-  if (! yyset->yystates)
-    return yyfalse;
-  yyset->yystates[0] = YY_NULL;
-  yyset->yylookaheadNeeds =
-    (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
-  if (! yyset->yylookaheadNeeds)
-    {
-      YYFREE (yyset->yystates);
-      return yyfalse;
-    }
-  return yytrue;
-}
-
-static void yyfreeStateSet (yyGLRStateSet* yyset)
-{
-  YYFREE (yyset->yystates);
-  YYFREE (yyset->yylookaheadNeeds);
-}
-
-/** Initialize STACK to a single empty stack, with total maximum
- *  capacity for all stacks of SIZE.  */
-static yybool
-yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
-{
-  yystackp->yyerrState = 0;
-  yynerrs = 0;
-  yystackp->yyspaceLeft = yysize;
-  yystackp->yyitems =
-    (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
-  if (!yystackp->yyitems)
-    return yyfalse;
-  yystackp->yynextFree = yystackp->yyitems;
-  yystackp->yysplitPoint = YY_NULL;
-  yystackp->yylastDeleted = YY_NULL;
-  return yyinitStateSet (&yystackp->yytops);
-}
-
-
-#if YYSTACKEXPANDABLE
-# define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
-  &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
-
-/** If STACK is expandable, extend it.  WARNING: Pointers into the
-    stack from outside should be considered invalid after this call.
-    We always expand when there are 1 or fewer items left AFTER an
-    allocation, so that we can avoid having external pointers exist
-    across an allocation.  */
-static void
-yyexpandGLRStack (yyGLRStack* yystackp)
-{
-  yyGLRStackItem* yynewItems;
-  yyGLRStackItem* yyp0, *yyp1;
-  size_t yynewSize;
-  size_t yyn;
-  size_t yysize = yystackp->yynextFree - yystackp->yyitems;
-  if (YYMAXDEPTH - YYHEADROOM < yysize)
-    yyMemoryExhausted (yystackp);
-  yynewSize = 2*yysize;
-  if (YYMAXDEPTH < yynewSize)
-    yynewSize = YYMAXDEPTH;
-  yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
-  if (! yynewItems)
-    yyMemoryExhausted (yystackp);
-  for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
-       0 < yyn;
-       yyn -= 1, yyp0 += 1, yyp1 += 1)
-    {
-      *yyp1 = *yyp0;
-      if (*(yybool *) yyp0)
-        {
-          yyGLRState* yys0 = &yyp0->yystate;
-          yyGLRState* yys1 = &yyp1->yystate;
-          if (yys0->yypred != YY_NULL)
-            yys1->yypred =
-              YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
-          if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULL)
-            yys1->yysemantics.yyfirstVal =
-              YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
-        }
-      else
-        {
-          yySemanticOption* yyv0 = &yyp0->yyoption;
-          yySemanticOption* yyv1 = &yyp1->yyoption;
-          if (yyv0->yystate != YY_NULL)
-            yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
-          if (yyv0->yynext != YY_NULL)
-            yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
-        }
-    }
-  if (yystackp->yysplitPoint != YY_NULL)
-    yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
-                                 yystackp->yysplitPoint, yystate);
-
-  for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
-    if (yystackp->yytops.yystates[yyn] != YY_NULL)
-      yystackp->yytops.yystates[yyn] =
-        YYRELOC (yystackp->yyitems, yynewItems,
-                 yystackp->yytops.yystates[yyn], yystate);
-  YYFREE (yystackp->yyitems);
-  yystackp->yyitems = yynewItems;
-  yystackp->yynextFree = yynewItems + yysize;
-  yystackp->yyspaceLeft = yynewSize - yysize;
-}
-#endif
-
-static void
-yyfreeGLRStack (yyGLRStack* yystackp)
-{
-  YYFREE (yystackp->yyitems);
-  yyfreeStateSet (&yystackp->yytops);
-}
-
-/** Assuming that S is a GLRState somewhere on STACK, update the
- *  splitpoint of STACK, if needed, so that it is at least as deep as
- *  S.  */
-static inline void
-yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
-{
-  if (yystackp->yysplitPoint != YY_NULL && yystackp->yysplitPoint > yys)
-    yystackp->yysplitPoint = yys;
-}
-
-/** Invalidate stack #K in STACK.  */
-static inline void
-yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
-{
-  if (yystackp->yytops.yystates[yyk] != YY_NULL)
-    yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
-  yystackp->yytops.yystates[yyk] = YY_NULL;
-}
-
-/** Undelete the last stack that was marked as deleted.  Can only be
-    done once after a deletion, and only when all other stacks have
-    been deleted.  */
-static void
-yyundeleteLastStack (yyGLRStack* yystackp)
-{
-  if (yystackp->yylastDeleted == YY_NULL || yystackp->yytops.yysize != 0)
-    return;
-  yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
-  yystackp->yytops.yysize = 1;
-  YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
-  yystackp->yylastDeleted = YY_NULL;
-}
-
-static inline void
-yyremoveDeletes (yyGLRStack* yystackp)
-{
-  size_t yyi, yyj;
-  yyi = yyj = 0;
-  while (yyj < yystackp->yytops.yysize)
-    {
-      if (yystackp->yytops.yystates[yyi] == YY_NULL)
-        {
-          if (yyi == yyj)
-            {
-              YYDPRINTF ((stderr, "Removing dead stacks.\n"));
-            }
-          yystackp->yytops.yysize -= 1;
-        }
-      else
-        {
-          yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
-          /* In the current implementation, it's unnecessary to copy
-             yystackp->yytops.yylookaheadNeeds[yyi] since, after
-             yyremoveDeletes returns, the parser immediately either enters
-             deterministic operation or shifts a token.  However, it doesn't
-             hurt, and the code might evolve to need it.  */
-          yystackp->yytops.yylookaheadNeeds[yyj] =
-            yystackp->yytops.yylookaheadNeeds[yyi];
-          if (yyj != yyi)
-            {
-              YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
-                          (unsigned long int) yyi, (unsigned long int) yyj));
-            }
-          yyj += 1;
-        }
-      yyi += 1;
-    }
-}
-
-/** Shift to a new state on stack #K of STACK, corresponding to LR state
- * LRSTATE, at input position POSN, with (resolved) semantic value SVAL.  */
-static inline void
-yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
-            size_t yyposn,
-            YYSTYPE* yyvalp, YYLTYPE* yylocp)
-{
-  yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
-
-  yynewState->yylrState = yylrState;
-  yynewState->yyposn = yyposn;
-  yynewState->yyresolved = yytrue;
-  yynewState->yypred = yystackp->yytops.yystates[yyk];
-  yynewState->yysemantics.yysval = *yyvalp;
-  yynewState->yyloc = *yylocp;
-  yystackp->yytops.yystates[yyk] = yynewState;
-
-  YY_RESERVE_GLRSTACK (yystackp);
-}
-
-/** Shift stack #K of YYSTACK, to a new state corresponding to LR
- *  state YYLRSTATE, at input position YYPOSN, with the (unresolved)
- *  semantic value of YYRHS under the action for YYRULE.  */
-static inline void
-yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
-                 size_t yyposn, yyGLRState* rhs, yyRuleNum yyrule)
-{
-  yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
-
-  yynewState->yylrState = yylrState;
-  yynewState->yyposn = yyposn;
-  yynewState->yyresolved = yyfalse;
-  yynewState->yypred = yystackp->yytops.yystates[yyk];
-  yynewState->yysemantics.yyfirstVal = YY_NULL;
-  yystackp->yytops.yystates[yyk] = yynewState;
-
-  /* Invokes YY_RESERVE_GLRSTACK.  */
-  yyaddDeferredAction (yystackp, yyk, yynewState, rhs, yyrule);
-}
-
-/** Pop the symbols consumed by reduction #RULE from the top of stack
- *  #K of STACK, and perform the appropriate semantic action on their
- *  semantic values.  Assumes that all ambiguities in semantic values
- *  have been previously resolved.  Set *VALP to the resulting value,
- *  and *LOCP to the computed location (if any).  Return value is as
- *  for userAction.  */
-static inline YYRESULTTAG
-yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
-            YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  int yynrhs = yyrhsLength (yyrule);
-
-  if (yystackp->yysplitPoint == YY_NULL)
-    {
-      /* Standard special case: single stack.  */
-      yyGLRStackItem* rhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
-      YYASSERT (yyk == 0);
-      yystackp->yynextFree -= yynrhs;
-      yystackp->yyspaceLeft += yynrhs;
-      yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
-      return yyuserAction (yyrule, yynrhs, rhs, yystackp,
-                           yyvalp, yylocp, parse_state, scanner);
-    }
-  else
-    {
-      /* At present, doAction is never called in nondeterministic
-       * mode, so this branch is never taken.  It is here in
-       * anticipation of a future feature that will allow immediate
-       * evaluation of selected actions in nondeterministic mode.  */
-      int yyi;
-      yyGLRState* yys;
-      yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
-      yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
-        = yystackp->yytops.yystates[yyk];
-      if (yynrhs == 0)
-        /* Set default location.  */
-        yyrhsVals[YYMAXRHS + YYMAXLEFT - 1].yystate.yyloc = yys->yyloc;
-      for (yyi = 0; yyi < yynrhs; yyi += 1)
-        {
-          yys = yys->yypred;
-          YYASSERT (yys);
-        }
-      yyupdateSplit (yystackp, yys);
-      yystackp->yytops.yystates[yyk] = yys;
-      return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
-                           yystackp, yyvalp, yylocp, parse_state, scanner);
-    }
-}
-
-#if !YYDEBUG
-# define YY_REDUCE_PRINT(Args)
-#else
-# define YY_REDUCE_PRINT(Args)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print Args;               \
-} while (YYID (0))
-
-/*----------------------------------------------------------.
-| Report that the RULE is going to be reduced on stack #K.  |
-`----------------------------------------------------------*/
-
-/*ARGSUSED*/ static inline void
-yy_reduce_print (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
-                 YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  int yynrhs = yyrhsLength (yyrule);
-  yybool yynormal __attribute__ ((__unused__)) =
-    (yystackp->yysplitPoint == YY_NULL);
-  yyGLRStackItem* yyvsp = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
-  int yylow = 1;
-  int yyi;
-  YYUSE (yyvalp);
-  YYUSE (yylocp);
-  YYUSE (parse_state);
-  YYUSE (scanner);
-  YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
-             (unsigned long int) yyk, yyrule - 1,
-             (unsigned long int) yyrline[yyrule]);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-                       &(((yyGLRStackItem const *)yyvsp)[YYFILL ((yyi + 1) - (yynrhs))].yystate.yysemantics.yysval)
-                       , &(((yyGLRStackItem const *)yyvsp)[YYFILL ((yyi + 1) - (yynrhs))].yystate.yyloc)                       , parse_state, scanner);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-#endif
-
-/** Pop items off stack #K of STACK according to grammar rule RULE,
- *  and push back on the resulting nonterminal symbol.  Perform the
- *  semantic action associated with RULE and store its value with the
- *  newly pushed state, if FORCEEVAL or if STACK is currently
- *  unambiguous.  Otherwise, store the deferred semantic action with
- *  the new state.  If the new state would have an identical input
- *  position, LR state, and predecessor to an existing state on the stack,
- *  it is identified with that existing state, eliminating stack #K from
- *  the STACK.  In this case, the (necessarily deferred) semantic value is
- *  added to the options for the existing state's semantic value.
- */
-static inline YYRESULTTAG
-yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
-             yybool yyforceEval, ParseState* parse_state, yyscan_t scanner)
-{
-  size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
-
-  if (yyforceEval || yystackp->yysplitPoint == YY_NULL)
-    {
-      YYSTYPE yysval;
-      YYLTYPE yyloc;
-
-      YY_REDUCE_PRINT ((yystackp, yyk, yyrule, &yysval, &yyloc, parse_state, scanner));
-      YYCHK (yydoAction (yystackp, yyk, yyrule, &yysval, &yyloc, parse_state, scanner));
-      YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
-      yyglrShift (yystackp, yyk,
-                  yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
-                                 yylhsNonterm (yyrule)),
-                  yyposn, &yysval, &yyloc);
-    }
-  else
-    {
-      size_t yyi;
-      int yyn;
-      yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
-      yyStateNum yynewLRState;
-
-      for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
-           0 < yyn; yyn -= 1)
-        {
-          yys = yys->yypred;
-          YYASSERT (yys);
-        }
-      yyupdateSplit (yystackp, yys);
-      yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
-      YYDPRINTF ((stderr,
-                  "Reduced stack %lu by rule #%d; action deferred.  Now in state %d.\n",
-                  (unsigned long int) yyk, yyrule - 1, yynewLRState));
-      for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
-        if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULL)
-          {
-            yyGLRState *yysplit = yystackp->yysplitPoint;
-            yyGLRState *yyp = yystackp->yytops.yystates[yyi];
-            while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
-              {
-                if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
-                  {
-                    yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
-                    yymarkStackDeleted (yystackp, yyk);
-                    YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
-                                (unsigned long int) yyk,
-                                (unsigned long int) yyi));
-                    return yyok;
-                  }
-                yyp = yyp->yypred;
-              }
-          }
-      yystackp->yytops.yystates[yyk] = yys;
-      yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
-    }
-  return yyok;
-}
-
-static size_t
-yysplitStack (yyGLRStack* yystackp, size_t yyk)
-{
-  if (yystackp->yysplitPoint == YY_NULL)
-    {
-      YYASSERT (yyk == 0);
-      yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
-    }
-  if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
-    {
-      yyGLRState** yynewStates;
-      yybool* yynewLookaheadNeeds;
-
-      yynewStates = YY_NULL;
-
-      if (yystackp->yytops.yycapacity
-          > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
-        yyMemoryExhausted (yystackp);
-      yystackp->yytops.yycapacity *= 2;
-
-      yynewStates =
-        (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
-                                  (yystackp->yytops.yycapacity
-                                   * sizeof yynewStates[0]));
-      if (yynewStates == YY_NULL)
-        yyMemoryExhausted (yystackp);
-      yystackp->yytops.yystates = yynewStates;
-
-      yynewLookaheadNeeds =
-        (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
-                             (yystackp->yytops.yycapacity
-                              * sizeof yynewLookaheadNeeds[0]));
-      if (yynewLookaheadNeeds == YY_NULL)
-        yyMemoryExhausted (yystackp);
-      yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
-    }
-  yystackp->yytops.yystates[yystackp->yytops.yysize]
-    = yystackp->yytops.yystates[yyk];
-  yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
-    = yystackp->yytops.yylookaheadNeeds[yyk];
-  yystackp->yytops.yysize += 1;
-  return yystackp->yytops.yysize-1;
-}
-
-/** True iff Y0 and Y1 represent identical options at the top level.
- *  That is, they represent the same rule applied to RHS symbols
- *  that produce the same terminal symbols.  */
-static yybool
-yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
-{
-  if (yyy0->yyrule == yyy1->yyrule)
-    {
-      yyGLRState *yys0, *yys1;
-      int yyn;
-      for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
-           yyn = yyrhsLength (yyy0->yyrule);
-           yyn > 0;
-           yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
-        if (yys0->yyposn != yys1->yyposn)
-          return yyfalse;
-      return yytrue;
-    }
-  else
-    return yyfalse;
-}
-
-/** Assuming identicalOptions (Y0,Y1), destructively merge the
- *  alternative semantic values for the RHS-symbols of Y1 and Y0.  */
-static void
-yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
-{
-  yyGLRState *yys0, *yys1;
-  int yyn;
-  for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
-       yyn = yyrhsLength (yyy0->yyrule);
-       yyn > 0;
-       yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
-    {
-      if (yys0 == yys1)
-        break;
-      else if (yys0->yyresolved)
-        {
-          yys1->yyresolved = yytrue;
-          yys1->yysemantics.yysval = yys0->yysemantics.yysval;
-        }
-      else if (yys1->yyresolved)
-        {
-          yys0->yyresolved = yytrue;
-          yys0->yysemantics.yysval = yys1->yysemantics.yysval;
-        }
-      else
-        {
-          yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
-          yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
-          while (YYID (yytrue))
-            {
-              if (yyz1 == *yyz0p || yyz1 == YY_NULL)
-                break;
-              else if (*yyz0p == YY_NULL)
-                {
-                  *yyz0p = yyz1;
-                  break;
-                }
-              else if (*yyz0p < yyz1)
-                {
-                  yySemanticOption* yyz = *yyz0p;
-                  *yyz0p = yyz1;
-                  yyz1 = yyz1->yynext;
-                  (*yyz0p)->yynext = yyz;
-                }
-              yyz0p = &(*yyz0p)->yynext;
-            }
-          yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
-        }
-    }
-}
-
-/** Y0 and Y1 represent two possible actions to take in a given
- *  parsing state; return 0 if no combination is possible,
- *  1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred.  */
-static int
-yypreference (yySemanticOption* y0, yySemanticOption* y1)
-{
-  yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
-  int p0 = yydprec[r0], p1 = yydprec[r1];
-
-  if (p0 == p1)
-    {
-      if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
-        return 0;
-      else
-        return 1;
-    }
-  if (p0 == 0 || p1 == 0)
-    return 0;
-  if (p0 < p1)
-    return 3;
-  if (p1 < p0)
-    return 2;
-  return 0;
-}
-
-static YYRESULTTAG yyresolveValue (yyGLRState* yys,
-                                   yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner);
-
-
-/** Resolve the previous N states starting at and including state S.  If result
- *  != yyok, some states may have been left unresolved possibly with empty
- *  semantic option chains.  Regardless of whether result = yyok, each state
- *  has been left with consistent data so that yydestroyGLRState can be invoked
- *  if necessary.  */
-static YYRESULTTAG
-yyresolveStates (yyGLRState* yys, int yyn,
-                 yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  if (0 < yyn)
-    {
-      YYASSERT (yys->yypred);
-      YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, parse_state, scanner));
-      if (! yys->yyresolved)
-        YYCHK (yyresolveValue (yys, yystackp, parse_state, scanner));
-    }
-  return yyok;
-}
-
-/** Resolve the states for the RHS of OPT, perform its user action, and return
- *  the semantic value and location.  Regardless of whether result = yyok, all
- *  RHS states have been destroyed (assuming the user action destroys all RHS
- *  semantic values if invoked).  */
-static YYRESULTTAG
-yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
-                 YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
-  int yynrhs = yyrhsLength (yyopt->yyrule);
-  YYRESULTTAG yyflag =
-    yyresolveStates (yyopt->yystate, yynrhs, yystackp, parse_state, scanner);
-  if (yyflag != yyok)
-    {
-      yyGLRState *yys;
-      for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
-        yydestroyGLRState ("Cleanup: popping", yys, parse_state, scanner);
-      return yyflag;
-    }
-
-  yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
-  if (yynrhs == 0)
-    /* Set default location.  */
-    yyrhsVals[YYMAXRHS + YYMAXLEFT - 1].yystate.yyloc = yyopt->yystate->yyloc;
-  {
-    int yychar_current = yychar;
-    YYSTYPE yylval_current = yylval;
-    YYLTYPE yylloc_current = yylloc;
-    yychar = yyopt->yyrawchar;
-    yylval = yyopt->yyval;
-    yylloc = yyopt->yyloc;
-    yyflag = yyuserAction (yyopt->yyrule, yynrhs,
-                           yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
-                           yystackp, yyvalp, yylocp, parse_state, scanner);
-    yychar = yychar_current;
-    yylval = yylval_current;
-    yylloc = yylloc_current;
-  }
-  return yyflag;
-}
-
-#if YYDEBUG
-static void
-yyreportTree (yySemanticOption* yyx, int yyindent)
-{
-  int yynrhs = yyrhsLength (yyx->yyrule);
-  int yyi;
-  yyGLRState* yys;
-  yyGLRState* yystates[1 + YYMAXRHS];
-  yyGLRState yyleftmost_state;
-
-  for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
-    yystates[yyi] = yys;
-  if (yys == YY_NULL)
-    {
-      yyleftmost_state.yyposn = 0;
-      yystates[0] = &yyleftmost_state;
-    }
-  else
-    yystates[0] = yys;
-
-  if (yyx->yystate->yyposn < yys->yyposn + 1)
-    YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
-               yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
-               yyx->yyrule - 1);
-  else
-    YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
-               yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
-               yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
-               (unsigned long int) yyx->yystate->yyposn);
-  for (yyi = 1; yyi <= yynrhs; yyi += 1)
-    {
-      if (yystates[yyi]->yyresolved)
-        {
-          if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
-            YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
-                       yytokenName (yyrhs[yyprhs[yyx->yyrule]+yyi-1]));
-          else
-            YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
-                       yytokenName (yyrhs[yyprhs[yyx->yyrule]+yyi-1]),
-                       (unsigned long int) (yystates[yyi - 1]->yyposn + 1),
-                       (unsigned long int) yystates[yyi]->yyposn);
-        }
-      else
-        yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
-    }
-}
-#endif
-
-/*ARGSUSED*/ static YYRESULTTAG
-yyreportAmbiguity (yySemanticOption* yyx0,
-                   yySemanticOption* yyx1, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  YYUSE (yyx0);
-  YYUSE (yyx1);
-
-#if YYDEBUG
-  YYFPRINTF (stderr, "Ambiguity detected.\n");
-  YYFPRINTF (stderr, "Option 1,\n");
-  yyreportTree (yyx0, 2);
-  YYFPRINTF (stderr, "\nOption 2,\n");
-  yyreportTree (yyx1, 2);
-  YYFPRINTF (stderr, "\n");
-#endif
-
-  yyerror (yylocp, parse_state, scanner, YY_("syntax is ambiguous"));
-  return yyabort;
-}
-
-/** Starting at and including state S1, resolve the location for each of the
- *  previous N1 states that is unresolved.  The first semantic option of a state
- *  is always chosen.  */
-static void
-yyresolveLocations (yyGLRState* yys1, int yyn1,
-                    yyGLRStack *yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  if (0 < yyn1)
-    {
-      yyresolveLocations (yys1->yypred, yyn1 - 1, yystackp, parse_state, scanner);
-      if (!yys1->yyresolved)
-        {
-          yyGLRStackItem yyrhsloc[1 + YYMAXRHS];
-          int yynrhs;
-          yySemanticOption *yyoption = yys1->yysemantics.yyfirstVal;
-          YYASSERT (yyoption != YY_NULL);
-          yynrhs = yyrhsLength (yyoption->yyrule);
-          if (yynrhs > 0)
-            {
-              yyGLRState *yys;
-              int yyn;
-              yyresolveLocations (yyoption->yystate, yynrhs,
-                                  yystackp, parse_state, scanner);
-              for (yys = yyoption->yystate, yyn = yynrhs;
-                   yyn > 0;
-                   yys = yys->yypred, yyn -= 1)
-                yyrhsloc[yyn].yystate.yyloc = yys->yyloc;
-            }
-          else
-            {
-              /* Both yyresolveAction and yyresolveLocations traverse the GSS
-                 in reverse rightmost order.  It is only necessary to invoke
-                 yyresolveLocations on a subforest for which yyresolveAction
-                 would have been invoked next had an ambiguity not been
-                 detected.  Thus the location of the previous state (but not
-                 necessarily the previous state itself) is guaranteed to be
-                 resolved already.  */
-              yyGLRState *yyprevious = yyoption->yystate;
-              yyrhsloc[0].yystate.yyloc = yyprevious->yyloc;
-            }
-          {
-            int yychar_current = yychar;
-            YYSTYPE yylval_current = yylval;
-            YYLTYPE yylloc_current = yylloc;
-            yychar = yyoption->yyrawchar;
-            yylval = yyoption->yyval;
-            yylloc = yyoption->yyloc;
-            YYLLOC_DEFAULT ((yys1->yyloc), yyrhsloc, yynrhs);
-            yychar = yychar_current;
-            yylval = yylval_current;
-            yylloc = yylloc_current;
-          }
-        }
-    }
-}
-
-/** Resolve the ambiguity represented in state S, perform the indicated
- *  actions, and set the semantic value of S.  If result != yyok, the chain of
- *  semantic options in S has been cleared instead or it has been left
- *  unmodified except that redundant options may have been removed.  Regardless
- *  of whether result = yyok, S has been left with consistent data so that
- *  yydestroyGLRState can be invoked if necessary.  */
-static YYRESULTTAG
-yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
-  yySemanticOption* yybest = yyoptionList;
-  yySemanticOption** yypp;
-  yybool yymerge = yyfalse;
-  YYSTYPE yysval;
-  YYRESULTTAG yyflag;
-  YYLTYPE *yylocp = &yys->yyloc;
-
-  for (yypp = &yyoptionList->yynext; *yypp != YY_NULL; )
-    {
-      yySemanticOption* yyp = *yypp;
-
-      if (yyidenticalOptions (yybest, yyp))
-        {
-          yymergeOptionSets (yybest, yyp);
-          *yypp = yyp->yynext;
-        }
-      else
-        {
-          switch (yypreference (yybest, yyp))
-            {
-            case 0:
-              yyresolveLocations (yys, 1, yystackp, parse_state, scanner);
-              return yyreportAmbiguity (yybest, yyp, yylocp, parse_state, scanner);
-              break;
-            case 1:
-              yymerge = yytrue;
-              break;
-            case 2:
-              break;
-            case 3:
-              yybest = yyp;
-              yymerge = yyfalse;
-              break;
-            default:
-              /* This cannot happen so it is not worth a YYASSERT (yyfalse),
-                 but some compilers complain if the default case is
-                 omitted.  */
-              break;
-            }
-          yypp = &yyp->yynext;
-        }
-    }
-
-  if (yymerge)
-    {
-      yySemanticOption* yyp;
-      int yyprec = yydprec[yybest->yyrule];
-      yyflag = yyresolveAction (yybest, yystackp, &yysval, yylocp, parse_state, scanner);
-      if (yyflag == yyok)
-        for (yyp = yybest->yynext; yyp != YY_NULL; yyp = yyp->yynext)
-          {
-            if (yyprec == yydprec[yyp->yyrule])
-              {
-                YYSTYPE yysval_other;
-                YYLTYPE yydummy;
-                yyflag = yyresolveAction (yyp, yystackp, &yysval_other, &yydummy, parse_state, scanner);
-                if (yyflag != yyok)
-                  {
-                    yydestruct ("Cleanup: discarding incompletely merged value for",
-                                yystos[yys->yylrState],
-                                &yysval, yylocp, parse_state, scanner);
-                    break;
-                  }
-                yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
-              }
-          }
-    }
-  else
-    yyflag = yyresolveAction (yybest, yystackp, &yysval, yylocp, parse_state, scanner);
-
-  if (yyflag == yyok)
-    {
-      yys->yyresolved = yytrue;
-      yys->yysemantics.yysval = yysval;
-    }
-  else
-    yys->yysemantics.yyfirstVal = YY_NULL;
-  return yyflag;
-}
-
-static YYRESULTTAG
-yyresolveStack (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  if (yystackp->yysplitPoint != YY_NULL)
-    {
-      yyGLRState* yys;
-      int yyn;
-
-      for (yyn = 0, yys = yystackp->yytops.yystates[0];
-           yys != yystackp->yysplitPoint;
-           yys = yys->yypred, yyn += 1)
-        continue;
-      YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
-                             , parse_state, scanner));
-    }
-  return yyok;
-}
-
-static void
-yycompressStack (yyGLRStack* yystackp)
-{
-  yyGLRState* yyp, *yyq, *yyr;
-
-  if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULL)
-    return;
-
-  for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULL;
-       yyp != yystackp->yysplitPoint;
-       yyr = yyp, yyp = yyq, yyq = yyp->yypred)
-    yyp->yypred = yyr;
-
-  yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
-  yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
-  yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
-  yystackp->yysplitPoint = YY_NULL;
-  yystackp->yylastDeleted = YY_NULL;
-
-  while (yyr != YY_NULL)
-    {
-      yystackp->yynextFree->yystate = *yyr;
-      yyr = yyr->yypred;
-      yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
-      yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
-      yystackp->yynextFree += 1;
-      yystackp->yyspaceLeft -= 1;
-    }
-}
-
-static YYRESULTTAG
-yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
-                   size_t yyposn, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
-{
-  int yyaction;
-  const short int* yyconflicts;
-  yyRuleNum yyrule;
-
-  while (yystackp->yytops.yystates[yyk] != YY_NULL)
-    {
-      yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
-      YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
-                  (unsigned long int) yyk, yystate));
-
-      YYASSERT (yystate != YYFINAL);
-
-      if (yyisDefaultedState (yystate))
-        {
-          yyrule = yydefaultAction (yystate);
-          if (yyrule == 0)
-            {
-              YYDPRINTF ((stderr, "Stack %lu dies.\n",
-                          (unsigned long int) yyk));
-              yymarkStackDeleted (yystackp, yyk);
-              return yyok;
-            }
-          YYCHK (yyglrReduce (yystackp, yyk, yyrule, yyfalse, parse_state, scanner));
-        }
-      else
-        {
-          yySymbol yytoken;
-          yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
-          if (yychar == YYEMPTY)
-            {
-              YYDPRINTF ((stderr, "Reading a token: "));
-              yychar = YYLEX;
-            }
-
-          if (yychar <= YYEOF)
-            {
-              yychar = yytoken = YYEOF;
-              YYDPRINTF ((stderr, "Now at end of input.\n"));
-            }
-          else
-            {
-              yytoken = YYTRANSLATE (yychar);
-              YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-            }
-
-          yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
-
-          while (*yyconflicts != 0)
-            {
-              size_t yynewStack = yysplitStack (yystackp, yyk);
-              YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
-                          (unsigned long int) yynewStack,
-                          (unsigned long int) yyk));
-              YYCHK (yyglrReduce (yystackp, yynewStack,
-                                  *yyconflicts, yyfalse, parse_state, scanner));
-              YYCHK (yyprocessOneStack (yystackp, yynewStack,
-                                        yyposn, yylocp, parse_state, scanner));
-              yyconflicts += 1;
-            }
-
-          if (yyisShiftAction (yyaction))
-            break;
-          else if (yyisErrorAction (yyaction))
-            {
-              YYDPRINTF ((stderr, "Stack %lu dies.\n",
-                          (unsigned long int) yyk));
-              yymarkStackDeleted (yystackp, yyk);
-              break;
-            }
-          else
-            YYCHK (yyglrReduce (yystackp, yyk, -yyaction,
-                                yyfalse, parse_state, scanner));
-        }
-    }
-  return yyok;
-}
-
-/*ARGSUSED*/ static void
-yyreportSyntaxError (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  if (yystackp->yyerrState != 0)
-    return;
-#if ! YYERROR_VERBOSE
-  yyerror (&yylloc, parse_state, scanner, YY_("syntax error"));
-#else
-  {
-  yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-  size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken));
-  size_t yysize = yysize0;
-  yybool yysize_overflow = yyfalse;
-  char* yymsg = YY_NULL;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULL;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected").  */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
-      yyarg[yycount++] = yytokenName (yytoken);
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for this
-             state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytokenName (yyx);
-                {
-                  size_t yysz = yysize + yytnamerr (YY_NULL, yytokenName (yyx));
-                  yysize_overflow |= yysz < yysize;
-                  yysize = yysz;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-#define YYCASE_(N, S)                   \
-      case N:                           \
-        yyformat = S;                   \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-#undef YYCASE_
-    }
-
-  {
-    size_t yysz = yysize + strlen (yyformat);
-    yysize_overflow |= yysz < yysize;
-    yysize = yysz;
-  }
-
-  if (!yysize_overflow)
-    yymsg = (char *) YYMALLOC (yysize);
-
-  if (yymsg)
-    {
-      char *yyp = yymsg;
-      int yyi = 0;
-      while ((*yyp = *yyformat))
-        {
-          if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-            {
-              yyp += yytnamerr (yyp, yyarg[yyi++]);
-              yyformat += 2;
-            }
-          else
-            {
-              yyp++;
-              yyformat++;
-            }
-        }
-      yyerror (&yylloc, parse_state, scanner, yymsg);
-      YYFREE (yymsg);
-    }
-  else
-    {
-      yyerror (&yylloc, parse_state, scanner, YY_("syntax error"));
-      yyMemoryExhausted (yystackp);
-    }
-  }
-#endif /* YYERROR_VERBOSE */
-  yynerrs += 1;
-}
-
-/* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
-   yylval, and yylloc are the syntactic category, semantic value, and location
-   of the lookahead.  */
-/*ARGSUSED*/ static void
-yyrecoverSyntaxError (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
-{
-  size_t yyk;
-  int yyj;
-
-  if (yystackp->yyerrState == 3)
-    /* We just shifted the error token and (perhaps) took some
-       reductions.  Skip tokens until we can proceed.  */
-    while (YYID (yytrue))
-      {
-        yySymbol yytoken;
-        if (yychar == YYEOF)
-          yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
-        if (yychar != YYEMPTY)
-          {
-            /* We throw away the lookahead, but the error range
-               of the shifted error token must take it into account.  */
-            yyGLRState *yys = yystackp->yytops.yystates[0];
-            yyGLRStackItem yyerror_range[3];
-            yyerror_range[1].yystate.yyloc = yys->yyloc;
-            yyerror_range[2].yystate.yyloc = yylloc;
-            YYLLOC_DEFAULT ((yys->yyloc), yyerror_range, 2);
-            yytoken = YYTRANSLATE (yychar);
-            yydestruct ("Error: discarding",
-                        yytoken, &yylval, &yylloc, parse_state, scanner);
-          }
-        YYDPRINTF ((stderr, "Reading a token: "));
-        yychar = YYLEX;
-        if (yychar <= YYEOF)
-          {
-            yychar = yytoken = YYEOF;
-            YYDPRINTF ((stderr, "Now at end of input.\n"));
-          }
-        else
-          {
-            yytoken = YYTRANSLATE (yychar);
-            YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-          }
-        yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
-        if (yypact_value_is_default (yyj))
-          return;
-        yyj += yytoken;
-        if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
-          {
-            if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
-              return;
-          }
-        else if (! yytable_value_is_error (yytable[yyj]))
-          return;
-      }
-
-  /* Reduce to one stack.  */
-  for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
-    if (yystackp->yytops.yystates[yyk] != YY_NULL)
-      break;
-  if (yyk >= yystackp->yytops.yysize)
-    yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
-  for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
-    yymarkStackDeleted (yystackp, yyk);
-  yyremoveDeletes (yystackp);
-  yycompressStack (yystackp);
-
-  /* Now pop stack until we find a state that shifts the error token.  */
-  yystackp->yyerrState = 3;
-  while (yystackp->yytops.yystates[0] != YY_NULL)
-    {
-      yyGLRState *yys = yystackp->yytops.yystates[0];
-      yyj = yypact[yys->yylrState];
-      if (! yypact_value_is_default (yyj))
-        {
-          yyj += YYTERROR;
-          if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
-              && yyisShiftAction (yytable[yyj]))
-            {
-              /* Shift the error token.  */
-              /* First adjust its location.*/
-              YYLTYPE yyerrloc;
-              yystackp->yyerror_range[2].yystate.yyloc = yylloc;
-              YYLLOC_DEFAULT (yyerrloc, (yystackp->yyerror_range), 2);
-              YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
-                               &yylval, &yyerrloc);
-              yyglrShift (yystackp, 0, yytable[yyj],
-                          yys->yyposn, &yylval, &yyerrloc);
-              yys = yystackp->yytops.yystates[0];
-              break;
-            }
-        }
-      yystackp->yyerror_range[1].yystate.yyloc = yys->yyloc;
-      if (yys->yypred != YY_NULL)
-        yydestroyGLRState ("Error: popping", yys, parse_state, scanner);
-      yystackp->yytops.yystates[0] = yys->yypred;
-      yystackp->yynextFree -= 1;
-      yystackp->yyspaceLeft += 1;
-    }
-  if (yystackp->yytops.yystates[0] == YY_NULL)
-    yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
-}
-
-#define YYCHK1(YYE)                                                          \
-  do {                                                                       \
-    switch (YYE) {                                                           \
-    case yyok:                                                               \
-      break;                                                                 \
-    case yyabort:                                                            \
-      goto yyabortlab;                                                       \
-    case yyaccept:                                                           \
-      goto yyacceptlab;                                                      \
-    case yyerr:                                                              \
-      goto yyuser_error;                                                     \
-    default:                                                                 \
-      goto yybuglab;                                                         \
-    }                                                                        \
-  } while (YYID (0))
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (ParseState* parse_state, yyscan_t scanner)
-{
-  int yyresult;
-  yyGLRStack yystack;
-  yyGLRStack* const yystackp = &yystack;
-  size_t yyposn;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yychar = YYEMPTY;
-  yylval = yyval_default;
-  yylloc = yyloc_default;
-
-  if (! yyinitGLRStack (yystackp, YYINITDEPTH))
-    goto yyexhaustedlab;
-  switch (YYSETJMP (yystack.yyexception_buffer))
-    {
-    case 0: break;
-    case 1: goto yyabortlab;
-    case 2: goto yyexhaustedlab;
-    default: goto yybuglab;
-    }
-  yyglrShift (&yystack, 0, 0, 0, &yylval, &yylloc);
-  yyposn = 0;
-
-  while (YYID (yytrue))
-    {
-      /* For efficiency, we have two loops, the first of which is
-         specialized to deterministic operation (single stack, no
-         potential ambiguity).  */
-      /* Standard mode */
-      while (YYID (yytrue))
-        {
-          yyRuleNum yyrule;
-          int yyaction;
-          const short int* yyconflicts;
-
-          yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
-          YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-          if (yystate == YYFINAL)
-            goto yyacceptlab;
-          if (yyisDefaultedState (yystate))
-            {
-              yyrule = yydefaultAction (yystate);
-              if (yyrule == 0)
-                {
-               yystack.yyerror_range[1].yystate.yyloc = yylloc;
-                  yyreportSyntaxError (&yystack, parse_state, scanner);
-                  goto yyuser_error;
-                }
-              YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, parse_state, scanner));
-            }
-          else
-            {
-              yySymbol yytoken;
-              if (yychar == YYEMPTY)
-                {
-                  YYDPRINTF ((stderr, "Reading a token: "));
-                  yychar = YYLEX;
-                }
-
-              if (yychar <= YYEOF)
-                {
-                  yychar = yytoken = YYEOF;
-                  YYDPRINTF ((stderr, "Now at end of input.\n"));
-                }
-              else
-                {
-                  yytoken = YYTRANSLATE (yychar);
-                  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-                }
-
-              yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
-              if (*yyconflicts != 0)
-                break;
-              if (yyisShiftAction (yyaction))
-                {
-                  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-                  yychar = YYEMPTY;
-                  yyposn += 1;
-                  yyglrShift (&yystack, 0, yyaction, yyposn, &yylval, &yylloc);
-                  if (0 < yystack.yyerrState)
-                    yystack.yyerrState -= 1;
-                }
-              else if (yyisErrorAction (yyaction))
-                {
-               yystack.yyerror_range[1].yystate.yyloc = yylloc;
-                  yyreportSyntaxError (&yystack, parse_state, scanner);
-                  goto yyuser_error;
-                }
-              else
-                YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, parse_state, scanner));
-            }
-        }
-
-      while (YYID (yytrue))
-        {
-          yySymbol yytoken_to_shift;
-          size_t yys;
-
-          for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
-            yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
-
-          /* yyprocessOneStack returns one of three things:
-
-              - An error flag.  If the caller is yyprocessOneStack, it
-                immediately returns as well.  When the caller is finally
-                yyparse, it jumps to an error label via YYCHK1.
-
-              - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
-                (&yystack, yys), which sets the top state of yys to NULL.  Thus,
-                yyparse's following invocation of yyremoveDeletes will remove
-                the stack.
-
-              - yyok, when ready to shift a token.
-
-             Except in the first case, yyparse will invoke yyremoveDeletes and
-             then shift the next token onto all remaining stacks.  This
-             synchronization of the shift (that is, after all preceding
-             reductions on all stacks) helps prevent double destructor calls
-             on yylval in the event of memory exhaustion.  */
-
-          for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
-            YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, &yylloc, parse_state, scanner));
-          yyremoveDeletes (&yystack);
-          if (yystack.yytops.yysize == 0)
-            {
-              yyundeleteLastStack (&yystack);
-              if (yystack.yytops.yysize == 0)
-                yyFail (&yystack, &yylloc, parse_state, scanner, YY_("syntax error"));
-              YYCHK1 (yyresolveStack (&yystack, parse_state, scanner));
-              YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
-           yystack.yyerror_range[1].yystate.yyloc = yylloc;
-              yyreportSyntaxError (&yystack, parse_state, scanner);
-              goto yyuser_error;
-            }
-
-          /* If any yyglrShift call fails, it will fail after shifting.  Thus,
-             a copy of yylval will already be on stack 0 in the event of a
-             failure in the following loop.  Thus, yychar is set to YYEMPTY
-             before the loop to make sure the user destructor for yylval isn't
-             called twice.  */
-          yytoken_to_shift = YYTRANSLATE (yychar);
-          yychar = YYEMPTY;
-          yyposn += 1;
-          for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
-            {
-              int yyaction;
-              const short int* yyconflicts;
-              yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
-              yygetLRActions (yystate, yytoken_to_shift, &yyaction,
-                              &yyconflicts);
-              /* Note that yyconflicts were handled by yyprocessOneStack.  */
-              YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
-              YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
-              yyglrShift (&yystack, yys, yyaction, yyposn,
-                          &yylval, &yylloc);
-              YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
-                          (unsigned long int) yys,
-                          yystack.yytops.yystates[yys]->yylrState));
-            }
-
-          if (yystack.yytops.yysize == 1)
-            {
-              YYCHK1 (yyresolveStack (&yystack, parse_state, scanner));
-              YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
-              yycompressStack (&yystack);
-              break;
-            }
-        }
-      continue;
-    yyuser_error:
-      yyrecoverSyntaxError (&yystack, parse_state, scanner);
-      yyposn = yystack.yytops.yystates[0]->yyposn;
-    }
-
- yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
- yybuglab:
-  YYASSERT (yyfalse);
-  goto yyabortlab;
-
- yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
- yyexhaustedlab:
-  yyerror (&yylloc, parse_state, scanner, YY_("memory exhausted"));
-  yyresult = 2;
-  goto yyreturn;
-
- yyreturn:
-  if (yychar != YYEMPTY)
-    yydestruct ("Cleanup: discarding lookahead",
-                YYTRANSLATE (yychar), &yylval, &yylloc, parse_state, scanner);
-
-  /* If the stack is well-formed, pop the stack until it is empty,
-     destroying its entries as we go.  But free the stack regardless
-     of whether it is well-formed.  */
-  if (yystack.yyitems)
-    {
-      yyGLRState** yystates = yystack.yytops.yystates;
-      if (yystates)
-        {
-          size_t yysize = yystack.yytops.yysize;
-          size_t yyk;
-          for (yyk = 0; yyk < yysize; yyk += 1)
-            if (yystates[yyk])
-              {
-                while (yystates[yyk])
-                  {
-                    yyGLRState *yys = yystates[yyk];
-                 yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;
-                  if (yys->yypred != YY_NULL)
-                      yydestroyGLRState ("Cleanup: popping", yys, parse_state, scanner);
-                    yystates[yyk] = yys->yypred;
-                    yystack.yynextFree -= 1;
-                    yystack.yyspaceLeft += 1;
-                  }
-                break;
-              }
-        }
-      yyfreeGLRStack (&yystack);
-    }
-
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
-
-/* DEBUGGING ONLY */
-#if YYDEBUG
-static void yypstack (yyGLRStack* yystackp, size_t yyk)
-  __attribute__ ((__unused__));
-static void yypdumpstack (yyGLRStack* yystackp) __attribute__ ((__unused__));
-
-static void
-yy_yypstack (yyGLRState* yys)
-{
-  if (yys->yypred)
-    {
-      yy_yypstack (yys->yypred);
-      YYFPRINTF (stderr, " -> ");
-    }
-  YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
-             (unsigned long int) yys->yyposn);
-}
-
-static void
-yypstates (yyGLRState* yyst)
-{
-  if (yyst == YY_NULL)
-    YYFPRINTF (stderr, "<null>");
-  else
-    yy_yypstack (yyst);
-  YYFPRINTF (stderr, "\n");
-}
-
-static void
-yypstack (yyGLRStack* yystackp, size_t yyk)
-{
-  yypstates (yystackp->yytops.yystates[yyk]);
-}
-
-#define YYINDEX(YYX)                                                         \
-    ((YYX) == YY_NULL ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
-
-
-static void
-yypdumpstack (yyGLRStack* yystackp)
-{
-  yyGLRStackItem* yyp;
-  size_t yyi;
-  for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
-    {
-      YYFPRINTF (stderr, "%3lu. ",
-                 (unsigned long int) (yyp - yystackp->yyitems));
-      if (*(yybool *) yyp)
-        {
-          YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
-                     yyp->yystate.yyresolved, yyp->yystate.yylrState,
-                     (unsigned long int) yyp->yystate.yyposn,
-                     (long int) YYINDEX (yyp->yystate.yypred));
-          if (! yyp->yystate.yyresolved)
-            YYFPRINTF (stderr, ", firstVal: %ld",
-                       (long int) YYINDEX (yyp->yystate
-                                             .yysemantics.yyfirstVal));
-        }
-      else
-        {
-          YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
-                     yyp->yyoption.yyrule - 1,
-                     (long int) YYINDEX (yyp->yyoption.yystate),
-                     (long int) YYINDEX (yyp->yyoption.yynext));
-        }
-      YYFPRINTF (stderr, "\n");
-    }
-  YYFPRINTF (stderr, "Tops:");
-  for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
-    YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
-               (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
-  YYFPRINTF (stderr, "\n");
-}
-#endif
-/* Line 2575 of glr.c  */
-#line 1021 "D:/Banshee3d/BansheeEngine/Source/BansheeSL/BsParserFX.y"
-
-
-void yyerror(YYLTYPE *locp, ParseState* parse_state, yyscan_t scanner, const char *msg) 
-{ 
-	parse_state->hasError = 1;
-	parse_state->errorLine = locp->first_line;
-	parse_state->errorColumn = locp->first_column;
-	parse_state->errorMessage = mmalloc_strdup(parse_state->memContext, msg);
-	parse_state->errorFile = locp->filename;
-}