/*
 |            file: glsl/semantic.c
 |        language: 1	(ANSI C)
 |     produced by: GNU C 4.2.1
 |    compiler dir: /OST/GraphicsGFX/SDP3430/Source/SGX12.19/GFX_Linux_DDK/src/eurasia/tools/intern/oglcompiler
 | program counter: <0x5cb88;0x668b4>
 */
typedef unsigned int size_t

typedef long long int __quad_t

typedef long int __off_t

typedef __quad_t __off64_t

typedef int IMG_INT

typedef unsigned char IMG_UINT8

typedef unsigned char IMG_BYTE

typedef char IMG_CHAR

typedef long unsigned int IMG_UINT32

typedef long int IMG_INT32

typedef float IMG_FLOAT

enum tag_img_bool {
	IMG_FALSE = 0; //0x0
	IMG_TRUE = 1; //0x1
	IMG_FORCE_ALIGN = 2147483647; //0x7fffffff
}

typedef enum tag_img_bool IMG_BOOL

typedef void IMG_VOID

enum TokenNameTag {
	TOK_INVALID_TOKEN = 0; //0x0
	TOK_ARRAY_LENGTH = 1; //0x1
	TOK_ATTRIBUTE = 2; //0x2
	TOK_BOOL = 3; //0x3
	TOK_BREAK = 4; //0x4
	TOK_BVEC2 = 5; //0x5
	TOK_BVEC3 = 6; //0x6
	TOK_BVEC4 = 7; //0x7
	TOK_CENTROID = 8; //0x8
	TOK_CONST = 9; //0x9
	TOK_CONTINUE = 10; //0xa
	TOK_DISCARD = 11; //0xb
	TOK_DO = 12; //0xc
	TOK_ELSE = 13; //0xd
	TOK_FALSE = 14; //0xe
	TOK_FLAT = 15; //0xf
	TOK_FLOAT = 16; //0x10
	TOK_FOR = 17; //0x11
	TOK_HIGH_PRECISION = 18; //0x12
	TOK_IF = 19; //0x13
	TOK_IN = 20; //0x14
	TOK_INOUT = 21; //0x15
	TOK_INT = 22; //0x16
	TOK_INVARIANT = 23; //0x17
	TOK_IVEC2 = 24; //0x18
	TOK_IVEC3 = 25; //0x19
	TOK_IVEC4 = 26; //0x1a
	TOK_LOW_PRECISION = 27; //0x1b
	TOK_MAT2X2 = 28; //0x1c
	TOK_MAT2X3 = 29; //0x1d
	TOK_MAT2X4 = 30; //0x1e
	TOK_MAT3X2 = 31; //0x1f
	TOK_MAT3X3 = 32; //0x20
	TOK_MAT3X4 = 33; //0x21
	TOK_MAT4X2 = 34; //0x22
	TOK_MAT4X3 = 35; //0x23
	TOK_MAT4X4 = 36; //0x24
	TOK_MEDIUM_PRECISION = 37; //0x25
	TOK_OUT = 38; //0x26
	TOK_PRECISION = 39; //0x27
	TOK_RETURN = 40; //0x28
	TOK_SAMPLER1D = 41; //0x29
	TOK_SAMPLER2D = 42; //0x2a
	TOK_SAMPLER3D = 43; //0x2b
	TOK_SAMPLER1DSHADOW = 44; //0x2c
	TOK_SAMPLER2DSHADOW = 45; //0x2d
	TOK_SAMPLERCUBE = 46; //0x2e
	TOK_STRUCT = 47; //0x2f
	TOK_SUPER_PRECISION = 48; //0x30
	TOK_TRUE = 49; //0x31
	TOK_UNIFORM = 50; //0x32
	TOK_VARYING = 51; //0x33
	TOK_VEC2 = 52; //0x34
	TOK_VEC3 = 53; //0x35
	TOK_VEC4 = 54; //0x36
	TOK_VOID = 55; //0x37
	TOK_WHILE = 56; //0x38
	TOK_ASM = 57; //0x39
	TOK_CAST = 58; //0x3a
	TOK_CLASS = 59; //0x3b
	TOK_DEFAULT = 60; //0x3c
	TOK_DOUBLE = 61; //0x3d
	TOK_DVEC2 = 62; //0x3e
	TOK_DVEC3 = 63; //0x3f
	TOK_DVEC4 = 64; //0x40
	TOK_ENUM = 65; //0x41
	TOK_EXTERN = 66; //0x42
	TOK_EXTERNAL = 67; //0x43
	TOK_FIXED = 68; //0x44
	TOK_FVEC2 = 69; //0x45
	TOK_FVEC3 = 70; //0x46
	TOK_FVEC4 = 71; //0x47
	TOK_GOTO = 72; //0x48
	TOK_HALF = 73; //0x49
	TOK_HVEC2 = 74; //0x4a
	TOK_HVEC3 = 75; //0x4b
	TOK_HVEC4 = 76; //0x4c
	TOK_INLINE = 77; //0x4d
	TOK_INPUT = 78; //0x4e
	TOK_INTERFACE = 79; //0x4f
	TOK_LONG = 80; //0x50
	TOK_NAMESPACE = 81; //0x51
	TOK_NOINLINE = 82; //0x52
	TOK_OUTPUT = 83; //0x53
	TOK_PACKED = 84; //0x54
	TOK_PUBLIC = 85; //0x55
	TOK_SAMPLER2DRECT = 86; //0x56
	TOK_SAMPLER2DRECTSHADOW = 87; //0x57
	TOK_SAMPLER3DRECT = 88; //0x58
	TOK_SHORT = 89; //0x59
	TOK_SIZEOF = 90; //0x5a
	TOK_STATIC = 91; //0x5b
	TOK_SWITCH = 92; //0x5c
	TOK_TEMPLATE = 93; //0x5d
	TOK_THIS = 94; //0x5e
	TOK_TYPEDEF = 95; //0x5f
	TOK_UNION = 96; //0x60
	TOK_UNSIGNED = 97; //0x61
	TOK_USING = 98; //0x62
	TOK_VOLATILE = 99; //0x63
	TOK_CASE = 100; //0x64
	TOK_CHAR = 101; //0x65
	TOK_BYTE = 102; //0x66
	TOK_INCOMMENT = 103; //0x67
	TOK_OUTCOMMENT = 104; //0x68
	TOK_COMMENT = 105; //0x69
	TOK_AMPERSAND = 106; //0x6a
	TOK_BANG = 107; //0x6b
	TOK_CARET = 108; //0x6c
	TOK_COMMA = 109; //0x6d
	TOK_COLON = 110; //0x6e
	TOK_DASH = 111; //0x6f
	TOK_DOT = 112; //0x70
	TOK_DOTDOT = 113; //0x71
	TOK_EQUAL = 114; //0x72
	TOK_LEFT_ANGLE = 115; //0x73
	TOK_LEFT_BRACE = 116; //0x74
	TOK_LEFT_BRACKET = 117; //0x75
	TOK_LEFT_PAREN = 118; //0x76
	TOK_PERCENT = 119; //0x77
	TOK_PLUS = 120; //0x78
	TOK_QUESTION = 121; //0x79
	TOK_RIGHT_ANGLE = 122; //0x7a
	TOK_RIGHT_BRACE = 123; //0x7b
	TOK_RIGHT_BRACKET = 124; //0x7c
	TOK_RIGHT_PAREN = 125; //0x7d
	TOK_SEMICOLON = 126; //0x7e
	TOK_SLASH = 127; //0x7f
	TOK_STAR = 128; //0x80
	TOK_TILDA = 129; //0x81
	TOK_VERTICAL_BAR = 130; //0x82
	TOK_APOSTROPHE = 131; //0x83
	TOK_AT = 132; //0x84
	TOK_BACK_SLASH = 133; //0x85
	TOK_DOLLAR = 134; //0x86
	TOK_HASH = 135; //0x87
	TOK_SPEECH_MARK = 136; //0x88
	TOK_UNDERSCORE = 137; //0x89
	TOK_ADD_ASSIGN = 138; //0x8a
	TOK_AND_ASSIGN = 139; //0x8b
	TOK_AND_OP = 140; //0x8c
	TOK_DEC_OP = 141; //0x8d
	TOK_DIV_ASSIGN = 142; //0x8e
	TOK_EQ_OP = 143; //0x8f
	TOK_INC_OP = 144; //0x90
	TOK_GE_OP = 145; //0x91
	TOK_LE_OP = 146; //0x92
	TOK_LEFT_ASSIGN = 147; //0x93
	TOK_LEFT_OP = 148; //0x94
	TOK_MOD_ASSIGN = 149; //0x95
	TOK_MUL_ASSIGN = 150; //0x96
	TOK_NE_OP = 151; //0x97
	TOK_OR_ASSIGN = 152; //0x98
	TOK_OR_OP = 153; //0x99
	TOK_RIGHT_ASSIGN = 154; //0x9a
	TOK_RIGHT_OP = 155; //0x9b
	TOK_SUB_ASSIGN = 156; //0x9c
	TOK_XOR_OP = 157; //0x9d
	TOK_XOR_ASSIGN = 158; //0x9e
	TOK_FLOATCONSTANT = 159; //0x9f
	TOK_BOOLCONSTANT = 160; //0xa0
	TOK_INTCONSTANT = 161; //0xa1
	TOK_IDENTIFIER = 162; //0xa2
	TOK_PROGRAMHEADER = 163; //0xa3
	TOK_ABS = 164; //0xa4
	TOK_ADD = 165; //0xa5
	TOK_ADDRESS = 166; //0xa6
	TOK_ALIAS = 167; //0xa7
	TOK_ARL = 168; //0xa8
	TOK_ATTRIB = 169; //0xa9
	TOK_DP3 = 170; //0xaa
	TOK_DP4 = 171; //0xab
	TOK_DPH = 172; //0xac
	TOK_DST = 173; //0xad
	TOK_END = 174; //0xae
	TOK_EX2 = 175; //0xaf
	TOK_EXP = 176; //0xb0
	TOK_FLR = 177; //0xb1
	TOK_FRC = 178; //0xb2
	TOK_LIT = 179; //0xb3
	TOK_LG2 = 180; //0xb4
	TOK_LOG = 181; //0xb5
	TOK_MAD = 182; //0xb6
	TOK_MAX = 183; //0xb7
	TOK_MIN = 184; //0xb8
	TOK_MOV = 185; //0xb9
	TOK_MUL = 186; //0xba
	TOK_OPTION = 187; //0xbb
	TOK_PARAM = 188; //0xbc
	TOK_POW = 189; //0xbd
	TOK_PROGRAM = 190; //0xbe
	TOK_RCP = 191; //0xbf
	TOK_RESULT = 192; //0xc0
	TOK_RSQ = 193; //0xc1
	TOK_SGE = 194; //0xc2
	TOK_SLT = 195; //0xc3
	TOK_SUB = 196; //0xc4
	TOK_STATE = 197; //0xc5
	TOK_SWZ = 198; //0xc6
	TOK_TEMP = 199; //0xc7
	TOK_VERTEX = 200; //0xc8
	TOK_XPD = 201; //0xc9
	TOK_ATTRIB_LC = 202; //0xca
	TOK_COLOR = 203; //0xcb
	TOK_FOGCOORD = 204; //0xcc
	TOK_MATRIXINDEX = 205; //0xcd
	TOK_NORMAL = 206; //0xce
	TOK_POSITION = 207; //0xcf
	TOK_PRIMARY = 208; //0xd0
	TOK_SECONDARY = 209; //0xd1
	TOK_TEXCOORD = 210; //0xd2
	TOK_WEIGHT = 211; //0xd3
	TOK_ENV = 212; //0xd4
	TOK_LOCAL = 213; //0xd5
	TOK_AMBIENT = 214; //0xd6
	TOK_BACK = 215; //0xd7
	TOK_DIFFUSE = 216; //0xd8
	TOK_EMISSION = 217; //0xd9
	TOK_FRONT = 218; //0xda
	TOK_MATERIAL = 219; //0xdb
	TOK_SHININESS = 220; //0xdc
	TOK_SPECULAR = 221; //0xdd
	TOK_ATTENUATION = 222; //0xde
	TOK_DIRECTION = 223; //0xdf
	TOK_LIGHT = 224; //0xe0
	TOK_LIGHTMODEL = 225; //0xe1
	TOK_LIGHTPROD = 226; //0xe2
	TOK_SCENECOLOR = 227; //0xe3
	TOK_SPOT = 228; //0xe4
	TOK_EYE = 229; //0xe5
	TOK_OBJECT = 230; //0xe6
	TOK_TEXGEN = 231; //0xe7
	TOK_FOG = 232; //0xe8
	TOK_PARAMS = 233; //0xe9
	TOK_CLIP = 234; //0xea
	TOK_PLANE = 235; //0xeb
	TOK_POINT = 236; //0xec
	TOK_SIZE = 237; //0xed
	TOK_INVERSE = 238; //0xee
	TOK_INVTRANS = 239; //0xef
	TOK_MATRIX = 240; //0xf0
	TOK_MODELVIEW = 241; //0xf1
	TOK_MVP = 242; //0xf2
	TOK_PALETTE = 243; //0xf3
	TOK_PROJECTION = 244; //0xf4
	TOK_ROW = 245; //0xf5
	TOK_TEXTURE = 246; //0xf6
	TOK_TRANSPOSE = 247; //0xf7
	TOK_POINTSIZE = 248; //0xf8
	TOK_1SWIZZLE = 249; //0xf9
	TOK_2SWIZZLE = 250; //0xfa
	TOK_3SWIZZLE = 251; //0xfb
	TOK_4SWIZZLE = 252; //0xfc
	TOK_TEXGENCOORD = 253; //0xfd
	TOK_SWIZZLE = 254; //0xfe
	TOK_WRITEMASK = 255; //0xff
	TOK_SET_PREDICATE = 256; //0x100
	TOK_TEST_PREDICATE = 257; //0x101
	TOK_NEWLINE = 258; //0x102
	TOK_CARRIGE_RETURN = 259; //0x103
	TOK_TAB = 260; //0x104
	TOK_VTAB = 261; //0x105
	TOK_LANGUAGE_VERSION = 262; //0x106
	TOK_EXTENSION_CHANGE = 263; //0x107
	TOK_STRING = 264; //0x108
	TOK_ENDOFSTRING = 265; //0x109
	TOK_TERMINATEPARSING = 266; //0x10a
	TOKLAST = 267; //0x10b
}

typedef enum TokenNameTag TokenName

struct TokenTAG {
	TokenName eTokenName // @0
	IMG_CHAR* pszStartOfLine // @4
	IMG_UINT32 uStringNumber // @8
	IMG_UINT32 uLineNumber // @c
	IMG_UINT32 uCharNumber // @10
	IMG_UINT32 uSizeOfDataInBytes // @14
	IMG_VOID* pvData // @18
}

typedef struct TokenTAG Token

struct MemHeapTAG {
	IMG_UINT32 uHeapItemSizeInBytes // @0
	IMG_UINT32 uHeapSizeInBytes // @4
	IMG_BYTE* pbHeap // @8
	IMG_BYTE* pbEndOfHeap // @c
	IMG_BYTE* pbCurrentWaterMark // @10
	IMG_VOID* pvFreeListHead // @14
}

typedef struct MemHeapTAG MemHeap

typedef struct GLSLCompilerPrivateDataTAG GLSLCompilerPrivateData

struct GLSLCompilerPrivateDataTAG {
	LanguageContext* psLanguageContext // @0
	SymbolTableContext* psSymbolTableContext // @4
	SymTable* psVertexSymbolTable // @8
	SymTable* psFragmentSymbolTable // @c
	GLSLIdentifierList sVertexBuiltInsReferenced // @10
	GLSLIdentifierList sFragmentBuiltInsReferenced // @1c
	IMG_VOID* pvUniFlexContext // @28
	ErrorLog* psErrorLog // @2c
	IMG_UINT32 uPointCoordTC // @30
	IMG_UINT32 uCurSrcLine // @34
}

enum SyntaxSymbolMatchTAG {
	SYNTAX_SYMBOL_NO_MATCH = 0; //0x0
	SYNTAX_SYMBOL_MATCH = 1; //0x1
}

typedef enum SyntaxSymbolMatchTAG SyntaxSymbolMatch

enum SyntaxSymbolTypeTAG {
	SYMTYPE_RULE = 0; //0x0
	SYMTYPE_TOKEN = 1; //0x1
}

typedef enum SyntaxSymbolTypeTAG SyntaxSymbolType

typedef struct SyntaxSymbolTAG* PSyntaxSymbol

struct SyntaxSymbolTAG {
	IMG_UINT32 uSyntaxSymbolName // @0
	const IMG_CHAR* pSyntaxSymbolName // @4
	SyntaxSymbolType eSyntaxSymbolType // @8
	TokenName eTokenName // @c
	PFN_STATEMENT_MATCH pfnSyntaxSymbolMatchFN // @10
	PFN_STATEMENT_UNMATCH pfnSyntaxSymbolUnmatchFN // @14
	IMG_CHAR* pszDataMatch // @18
	IMG_UINT32 uLRSyntaxSymbolName // @1c
}

typedef SyntaxSymbolMatch* PFN_STATEMENT_MATCH

typedef enum SyntaxSymbolMatchTAG SyntaxSymbolMatch

typedef void* PFN_STATEMENT_UNMATCH

void

typedef struct SyntaxSymbolTAG SyntaxSymbol

struct SyntaxSymbolLookupEntryTAG {
	IMG_UINT32 uSyntaxSymbolGrammarStartPos // @0
	IMG_UINT32 uRuleNumber // @4
	IMG_UINT32 uNumVariants // @8
}

typedef struct SyntaxSymbolLookupEntryTAG SyntaxSymbolLookupEntry

struct SyntaxTableTAG {
	SyntaxSymbol* psSyntaxSymbolTable // @0
	IMG_UINT32 uSyntaxSymbolTableSize // @4
	SyntaxSymbolLookupEntry* psLookupTable // @8
	IMG_UINT32* psSyntaxGrammar // @c
	IMG_UINT32 uNumberSyntaxGrammarRules // @10
	IMG_UINT32 uEmptySyntaxSymbolName // @14
}

typedef struct SyntaxTableTAG SyntaxTable

typedef void* PFN_SYMBOL_DECONSTRUCTOR

void

struct SymTableEntry_TAG {
	IMG_CHAR* pszString // @0
	IMG_UINT32 uSymbolID // @4
	IMG_UINT32 bScopeModifier // @8
	IMG_UINT32 uScopeLevel // @8
	IMG_UINT32 uRefCount // @8
	IMG_UINT32 uDataSizeInBytes // @8
	IMG_VOID* pvData // @c
	PFN_SYMBOL_DECONSTRUCTOR pfnSymbolDeconstructor // @10
}

typedef struct SymTableEntry_TAG SymTableEntry

struct SymTable_TAG {
	IMG_CHAR[20] acDesc // @0
	IMG_UINT32 uNumEntries // @14
	IMG_UINT32 uMaxNumEntries // @18
	IMG_UINT32 uMaxNumBitsForSymbolTableIDs // @1c
	IMG_UINT32 uSymbolIDShift // @20
	IMG_UINT32 uSymbolIDMask // @24
	IMG_UINT32 uMaxTableSize // @28
	IMG_UINT32 uMaxNumUniqueSymbolIDs // @2c
	IMG_UINT32 uCurrentScopeLevel // @30
	IMG_UINT32 uUniqueSymbolTableID // @34
	IMG_UINT32 uGetNextSymbolCounter // @38
	IMG_UINT32 uGetNextSymbolScopeLevel // @3c
	struct SymTable_TAG* psSecondarySymbolTable // @40
	SymTableEntry* psEntries // @44
}

typedef struct SymTable_TAG SymTable

struct SymbolTableContextTAG {
	IMG_UINT32 uSymbolTableListSize // @0
	SymTable** ppsSymbolTables // @4
}

typedef struct SymbolTableContextTAG SymbolTableContext

struct ParseTreeEntryTAG {
	IMG_UINT32 uSyntaxSymbolName // @0
	IMG_UINT32 eSyntaxSymbolType // @0
	IMG_UINT32 uSyntaxTablePos // @0
	IMG_UINT32 uSyntaxRuleOffset // @0
	IMG_UINT32 uNumRuleVariantsChecked // @0
	IMG_UINT32 bStopBackTracking // @0
	Token* psToken // @4
	struct ParseTreeEntryTAG* psNextRule // @8
	struct ParseTreeEntryTAG* psPrevRule // @c
	struct ParseTreeEntryTAG* psChildRule // @10
	struct ParseTreeEntryTAG* psParentRule // @14
	PFN_STATEMENT_UNMATCH pfnSyntaxSymbolUnmatchFN // @18
}

typedef struct ParseTreeEntryTAG ParseTreeEntry

struct LanguageContextTAG {
	SyntaxTable* psSyntaxTable // @0
	IMG_UINT32 uLastSyntaxSymbolName // @4
	IMG_UINT32 uEmptySyntaxSymbolName // @8
	IMG_UINT32 uHeadSyntaxSymbolName // @c
}

typedef struct LanguageContextTAG LanguageContext

struct ParseContextTAG {
	GLSLCompilerPrivateData* psCPD // @0
	IMG_CHAR** ppszSources // @4
	IMG_UINT32 uNumSources // @8
	Token* psTokenList // @c
	IMG_UINT32 uNumTokens // @10
	IMG_UINT32 uCurrentToken // @14
	IMG_UINT32 uFurthestMatchedToken // @18
	IMG_UINT32 uFurthestMatchedSyntaxSymbol // @1c
	ParseTreeEntry* psParseTree // @20
	MemHeap* psParseTreeMemHeap // @24
	IMG_UINT32 uNumParseTreeBranchesCreated // @28
	IMG_UINT32 uNumParseTreeBranchesRemoved // @2c
	IMG_UINT32 uMaxNumParseTreeBranches // @30
	IMG_VOID* pvPreProcessorData // @34
}

typedef struct ParseContextTAG ParseContext

enum ErrorTypeTAG {
	ERRORTYPE_INTERNAL = 1; //0x1
	ERRORTYPE_PROGRAM_ERROR = 2; //0x2
	ERRORTYPE_PROGRAM_WARNING = 4; //0x4
	ERRORTYPE_ALL = 7; //0x7
}

typedef enum ErrorTypeTAG ErrorType

struct ErrorMessageTAG {
	ErrorType eErrorType // @0
	IMG_CHAR* pszErrorMessageString // @4
	IMG_CHAR* pszStartOfLine // @8
	IMG_UINT32 uCharNumber // @c
}

typedef struct ErrorMessageTAG ErrorMessage

struct ErrorLogTAG {
	ErrorMessage[100] sErrorMessages // @0
	IMG_UINT32 uNumProgramErrorMessages // @640
	IMG_UINT32 uNumProgramWarningMessages // @644
	IMG_UINT32 uNumInternalErrorMessages // @648
	IMG_UINT32 uTotalNumErrorMessages // @64c
	IMG_BOOL bDisplayMessages // @650
}

typedef struct ErrorLogTAG ErrorLog

struct _IO_FILE {
	int _flags // @0
	char* _IO_read_ptr // @4
	char* _IO_read_end // @8
	char* _IO_read_base // @c
	char* _IO_write_base // @10
	char* _IO_write_ptr // @14
	char* _IO_write_end // @18
	char* _IO_buf_base // @1c
	char* _IO_buf_end // @20
	char* _IO_save_base // @24
	char* _IO_backup_base // @28
	char* _IO_save_end // @2c
	struct _IO_marker* _markers // @30
	struct _IO_FILE* _chain // @34
	int _fileno // @38
	int _flags2 // @3c
	__off_t _old_offset // @40
	short unsigned int _cur_column // @44
	signed char _vtable_offset // @46
	char[1] _shortbuf // @47
	_IO_lock_t* _lock // @48
	__off64_t _offset // @50
	void* __pad1 // @58
	void* __pad2 // @5c
	void* __pad3 // @60
	void* __pad4 // @64
	size_t __pad5 // @68
	int _mode // @6c
	char[40] _unused2 // @70
}

typedef void _IO_lock_t

struct _IO_marker {
	struct _IO_marker* _next // @0
	struct _IO_FILE* _sbuf // @4
	int _pos // @8
}

enum GLSLLogFilesTAG {
	GLSLLF_NOT_LOG = 0; //0x0
	GLSLLF_LOG_ICODE_ONLY = 1; //0x1
	GLSLLF_LOG_ALL = 2; //0x2
}

typedef enum GLSLLogFilesTAG GLSLLogFiles

enum GLSLProgramTypeTAG {
	GLSLPT_VERTEX = 0; //0x0
	GLSLPT_FRAGMENT = 1; //0x1
}

typedef enum GLSLProgramTypeTAG GLSLProgramType

enum GLSLExtensionTAG {
	GLSLEXT_NONE = 0; //0x0
	GLSLEXT_OES_TEXTURE_3D = 1; //0x1
	GLSLEXT_OES_STANDARD_NOISE = 2; //0x2
	GLSLEXT_OES_STANDARD_DERIVATIVES = 4; //0x4
	GLSLEXT_OES_INVARIANTALL = 8; //0x8
	GLSLEXT_IMG_PRECISION = 16; //0x10
	GLSLEXT_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum GLSLExtensionTAG GLSLExtension

enum GLSLTypeSpecifierTAG {
	GLSLTS_INVALID = 0; //0x0
	GLSLTS_VOID = 1; //0x1
	GLSLTS_FLOAT = 2; //0x2
	GLSLTS_VEC2 = 3; //0x3
	GLSLTS_VEC3 = 4; //0x4
	GLSLTS_VEC4 = 5; //0x5
	GLSLTS_INT = 6; //0x6
	GLSLTS_IVEC2 = 7; //0x7
	GLSLTS_IVEC3 = 8; //0x8
	GLSLTS_IVEC4 = 9; //0x9
	GLSLTS_BOOL = 10; //0xa
	GLSLTS_BVEC2 = 11; //0xb
	GLSLTS_BVEC3 = 12; //0xc
	GLSLTS_BVEC4 = 13; //0xd
	GLSLTS_MAT2X2 = 14; //0xe
	GLSLTS_MAT2X3 = 15; //0xf
	GLSLTS_MAT2X4 = 16; //0x10
	GLSLTS_MAT3X2 = 17; //0x11
	GLSLTS_MAT3X3 = 18; //0x12
	GLSLTS_MAT3X4 = 19; //0x13
	GLSLTS_MAT4X2 = 20; //0x14
	GLSLTS_MAT4X3 = 21; //0x15
	GLSLTS_MAT4X4 = 22; //0x16
	GLSLTS_SAMPLER1D = 23; //0x17
	GLSLTS_SAMPLER2D = 24; //0x18
	GLSLTS_SAMPLER3D = 25; //0x19
	GLSLTS_SAMPLERCUBE = 26; //0x1a
	GLSLTS_SAMPLER1DSHADOW = 27; //0x1b
	GLSLTS_SAMPLER2DSHADOW = 28; //0x1c
	GLSLTS_STRUCT = 29; //0x1d
}

typedef enum GLSLTypeSpecifierTAG GLSLTypeSpecifier

enum GLSLTypeQualifierTAG {
	GLSLTQ_INVALID = 0; //0x0
	GLSLTQ_TEMP = 1; //0x1
	GLSLTQ_CONST = 2; //0x2
	GLSLTQ_UNIFORM = 3; //0x3
	GLSLTQ_ATTRIBUTE = 4; //0x4
	GLSLTQ_VARYING = 5; //0x5
}

typedef enum GLSLTypeQualifierTAG GLSLTypeQualifier

enum GLSLVaryingModifierFlagsTAG {
	GLSLVMOD_NONE = 0; //0x0
	GLSLVMOD_INVARIANT = 1; //0x1
	GLSLVMOD_CENTROID = 2; //0x2
	GLSLVMOD_ALL = 3; //0x3
	GLSLVMOD_INVALID = 4; //0x4
}

enum GLSLPrecisionQualifierTAG {
	GLSLPRECQ_UNKNOWN = 0; //0x0
	GLSLPRECQ_LOW = 1; //0x1
	GLSLPRECQ_MEDIUM = 2; //0x2
	GLSLPRECQ_HIGH = 3; //0x3
	GLSLPRECQ_INVALID = 4; //0x4
}

typedef enum GLSLPrecisionQualifierTAG GLSLPrecisionQualifier

enum GLSLBuiltInVariableIDTAG {
	GLSLBV_NOT_BTIN = 0; //0x0
	GLSLBV_POSITION = 1; //0x1
	GLSLBV_POINTSIZE = 2; //0x2
	GLSLBV_CLIPVERTEX = 3; //0x3
	GLSLBV_FRAGCOORD = 4; //0x4
	GLSLBV_FRONTFACING = 5; //0x5
	GLSLBV_FRAGCOLOR = 6; //0x6
	GLSLBV_FRAGDATA = 7; //0x7
	GLSLBV_FRAGDEPTH = 8; //0x8
	GLSLBV_COLOR = 9; //0x9
	GLSLBV_SECONDARYCOLOR = 10; //0xa
	GLSLBV_NORMAL = 11; //0xb
	GLSLBV_VERTEX = 12; //0xc
	GLSLBV_MULTITEXCOORD0 = 13; //0xd
	GLSLBV_MULTITEXCOORD1 = 14; //0xe
	GLSLBV_MULTITEXCOORD2 = 15; //0xf
	GLSLBV_MULTITEXCOORD3 = 16; //0x10
	GLSLBV_MULTITEXCOORD4 = 17; //0x11
	GLSLBV_MULTITEXCOORD5 = 18; //0x12
	GLSLBV_MULTITEXCOORD6 = 19; //0x13
	GLSLBV_MULTITEXCOORD7 = 20; //0x14
	GLSLBV_FOGCOORD = 21; //0x15
	GLSLBV_MODELVIEWMATRIX = 22; //0x16
	GLSLBV_PROJECTMATRIX = 23; //0x17
	GLSLBV_MODELVIEWPROJECTIONMATRIX = 24; //0x18
	GLSLBV_TEXTUREMATRIX = 25; //0x19
	GLSLBV_NORMALMATRIX = 26; //0x1a
	GLSLBV_MODELVIEWMATRIXINVERSE = 27; //0x1b
	GLSLBV_PROJECTMATRIXINVERSE = 28; //0x1c
	GLSLBV_MODELVIEWPROJECTIONMATRIXINVERSE = 29; //0x1d
	GLSLBV_TEXTUREMATRIXINVERSE = 30; //0x1e
	GLSLBV_MODELVIEWMATRIXTRANSPOSE = 31; //0x1f
	GLSLBV_PROJECTIONMATRIXTRANSPOSE = 32; //0x20
	GLSLBV_MODELVIEWPROJECTIONMATRIXTRANSPOSE = 33; //0x21
	GLSLBV_TEXTUREMATRIXTRANSPOSE = 34; //0x22
	GLSLBV_MODELVIEWMATRIXINVERSETRANSPOSE = 35; //0x23
	GLSLBV_PROJECTMATRIXINVERSETRANSPOSE = 36; //0x24
	GLSLBV_MODELVIEWPROJECTIONMATRIXINVERSETRANSPOSE = 37; //0x25
	GLSLBV_TEXTUREMATRIXINVERSETRANSPOSE = 38; //0x26
	GLSLBV_NORMALSCALE = 39; //0x27
	GLSLBV_DEPTHRANGE = 40; //0x28
	GLSLBV_CLIPPLANE = 41; //0x29
	GLSLBV_POINT = 42; //0x2a
	GLSLBV_FRONTMATERIAL = 43; //0x2b
	GLSLBV_BACKMATERIAL = 44; //0x2c
	GLSLBV_LIGHTSOURCE = 45; //0x2d
	GLSLBV_LIGHTMODEL = 46; //0x2e
	GLSLBV_FRONTLIGHTMODELPRODUCT = 47; //0x2f
	GLSLBV_BACKLIGHTMODELPRODUCT = 48; //0x30
	GLSLBV_FRONTLIGHTPRODUCT = 49; //0x31
	GLSLBV_BACKLIGHTPRODUCT = 50; //0x32
	GLSLBV_TEXTUREENVCOLOR = 51; //0x33
	GLSLBV_EYEPLANES = 52; //0x34
	GLSLBV_EYEPLANET = 53; //0x35
	GLSLBV_EYEPLANER = 54; //0x36
	GLSLBV_EYEPLANEQ = 55; //0x37
	GLSLBV_OBJECTPLANES = 56; //0x38
	GLSLBV_OBJECTPLANET = 57; //0x39
	GLSLBV_OBJECTPLANER = 58; //0x3a
	GLSLBV_OBJECTPLANEQ = 59; //0x3b
	GLSLBV_FOG = 60; //0x3c
	GLSLBV_FRONTCOLOR = 61; //0x3d
	GLSLBV_BACKCOLOR = 62; //0x3e
	GLSLBV_FRONTSECONDARYCOLOR = 63; //0x3f
	GLSLBV_BACKSECONDARYCOLOR = 64; //0x40
	GLSLBV_TEXCOORD = 65; //0x41
	GLSLBV_FOGFRAGCOORD = 66; //0x42
	GLSLBV_POINTCOORD = 67; //0x43
	GLSLESBV_POINTCOORD = 67; //0x43
	GLSLBV_PMXTWOSIDEENABLE = 68; //0x44
	GLSLBV_PMXSWAPFRONTFACE = 69; //0x45
	GLSLBV_PMXPOINTSIZEENABLE = 70; //0x46
	GLSLBV_PMXPOINTSIZE = 71; //0x47
	GLSLBV_PMXDEPTHTEXTUREDESC0 = 72; //0x48
	GLSLBV_PMXDEPTHTEXTUREDESC1 = 73; //0x49
	GLSLBV_PMXDEPTHTEXTUREDESC2 = 74; //0x4a
	GLSLBV_PMXDEPTHTEXTUREDESC3 = 75; //0x4b
	GLSLBV_PMXDEPTHTEXTUREDESC4 = 76; //0x4c
	GLSLBV_PMXDEPTHTEXTUREDESC5 = 77; //0x4d
	GLSLBV_PMXDEPTHTEXTUREDESC6 = 78; //0x4e
	GLSLBV_PMXDEPTHTEXTUREDESC7 = 79; //0x4f
	GLSLBV_PMXPERMTEXTURE = 80; //0x50
	GLSLBV_PMXGRADTEXTURE = 81; //0x51
	GLSLBV_PMXCOLOURCLAMPMIN = 82; //0x52
	GLSLBV_PMXCOLOURCLAMPMAX = 83; //0x53
	GLSLBV_PMXFOGMODE = 84; //0x54
	GLSLBV_PMXFOGPARAM = 85; //0x55
	GLSLBV_PMXCLIPPLANE = 86; //0x56
	GLSLBV_PMXPOSADJUST = 87; //0x57
	GLSLBV_NUM_BUILTINS = 88; //0x58
	GLSLBV_SPECIAL_VERTEXBLENDWEIGHT = 89; //0x59
	GLSLBV_SPECIAL_VERTEXMATRIXINDEX = 90; //0x5a
	GLSLBV_SPECIAL_MODELVIEWMATRIXTRANSPOSEPALETTE = 91; //0x5b
	GLSLBV_SPECIAL_MODELVIEWMATRIXINVERSEPALETTE = 92; //0x5c
	GLSLBV_PMXLIGHTSOURCE0 = 93; //0x5d
	GLSLBV_PMXLIGHTSOURCE1 = 94; //0x5e
	GLSLBV_PMXLIGHTSOURCE2 = 95; //0x5f
	GLSLBV_PMXLIGHTSOURCE3 = 96; //0x60
	GLSLBV_PMXLIGHTSOURCE4 = 97; //0x61
	GLSLBV_PMXLIGHTSOURCE5 = 98; //0x62
	GLSLBV_PMXLIGHTSOURCE6 = 99; //0x63
	GLSLBV_PMXLIGHTSOURCE7 = 100; //0x64
	GLSLBV_PMXLINEPARAMS = 101; //0x65
	GLSLBV_MATRIXPALETTEINDEXCLAMP = 102; //0x66
	GLSLBV_NUM_BUILTINS_WITH_SPECIALS = 103; //0x67
}

typedef enum GLSLBuiltInVariableIDTAG GLSLBuiltInVariableID

enum GLSLBuiltInVariableWrittenToTAG {
	GLSLBVWT_POSITION = 1; //0x1
	GLSLBVWT_POINTSIZE = 2; //0x2
	GLSLBVWT_CLIPVERTEX = 4; //0x4
	GLSLBVWT_FRONTCOLOR = 8; //0x8
	GLSLBVWT_BACKCOLOR = 16; //0x10
	GLSLBVWT_FRONTSECONDARYCOLOR = 32; //0x20
	GLSLBVWT_BACKSECONDARYCOLOR = 64; //0x40
	GLSLBVWT_TEXCOORD = 128; //0x80
	GLSLBVWT_FRAGCOLOR = 256; //0x100
	GLSLBVWT_FRAGDATA = 512; //0x200
	GLSLBVWT_FRAGDEPTH = 1024; //0x400
	GLSLBVWT_FOGFRAGCOORD = 2048; //0x800
	GLSLBVWT_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum GLSLBuiltInVariableWrittenToTAG GLSLBuiltInVariableWrittenTo

enum GLSLCompilerWarningsTAG {
	GLSLCW_WARN_GRADIENT_CALC_INSIDE_CONDITIONAL = 1; //0x1
	GLSLCW_WARN_USE_OF_UNINITIALISED_DATA = 2; //0x2
	GLSLCW_WARN_FUNCTION_NOT_CALLED = 4; //0x4
	GLSLCW_WARN_RECURSIVE_FUNCTION_CALL = 8; //0x8
	GLSLCW_WARN_ALL = 2147483647; //0x7fffffff
}

typedef enum GLSLCompilerWarningsTAG GLSLCompilerWarnings

struct GLSLRequestedPrecisionsTAG {
	GLSLPrecisionQualifier eDefaultUserVertFloat // @0
	GLSLPrecisionQualifier eDefaultUserVertInt // @4
	GLSLPrecisionQualifier eDefaultUserVertSampler // @8
	GLSLPrecisionQualifier eDefaultUserFragFloat // @c
	GLSLPrecisionQualifier eDefaultUserFragInt // @10
	GLSLPrecisionQualifier eDefaultUserFragSampler // @14
	GLSLPrecisionQualifier eVertBooleanPrecision // @18
	GLSLPrecisionQualifier eFragBooleanPrecision // @1c
	GLSLPrecisionQualifier eBIStateFloat // @20
	GLSLPrecisionQualifier eBIStateInt // @24
	GLSLPrecisionQualifier eBIVertAttribFloat // @28
	GLSLPrecisionQualifier eBIVaryingFloat // @2c
	GLSLPrecisionQualifier eBIFragFloat // @30
	GLSLPrecisionQualifier eGLPosition // @34
	GLSLPrecisionQualifier eGLPointSize // @38
	GLSLPrecisionQualifier eGLPointCoord // @3c
	GLSLPrecisionQualifier eDepthRange // @40
	GLSLPrecisionQualifier eForceUserVertFloat // @44
	GLSLPrecisionQualifier eForceUserVertInt // @48
	GLSLPrecisionQualifier eForceUserVertSampler // @4c
	GLSLPrecisionQualifier eForceUserFragFloat // @50
	GLSLPrecisionQualifier eForceUserFragInt // @54
	GLSLPrecisionQualifier eForceUserFragSampler // @58
}

typedef struct GLSLRequestedPrecisionsTAG GLSLRequestedPrecisions

struct GLSLCompilerResourcesTAG {
	IMG_INT32 iGLMaxVertexAttribs // @0
	IMG_INT32 iGLMaxTextureImageUnits // @4
	IMG_INT32 iGLMaxDrawBuffers // @8
	IMG_INT32 iGLMaxVertexTextureImageUnits // @c
	IMG_INT32 iGLMaxCombinedTextureImageUnits // @10
	IMG_INT32 iGLMaxVertexUniformVectors // @14
	IMG_INT32 iGLMaxVaryingVectors // @18
	IMG_INT32 iGLMaxFragmentUniformVectors // @1c
}

typedef struct GLSLCompilerResourcesTAG GLSLCompilerResources

struct GLSLInlineFuncRulesTAG {
	IMG_BOOL bInlineSamplerParamFunc // @0
	IMG_BOOL bInlineCalledOnceFunc // @4
	IMG_UINT32 uNumICInstrsBodyLessThan // @8
	IMG_UINT32 uNumParamComponentsGreaterThan // @c
}

typedef struct GLSLInlineFuncRulesTAG GLSLInlineFuncRules

struct GLSLUnrollLoopRulesTAG {
	IMG_BOOL bEnableUnroll // @0
	IMG_BOOL bUnrollRelativeAddressingOnly // @4
	IMG_UINT32 uMaxNumIterations // @8
}

typedef struct GLSLUnrollLoopRulesTAG GLSLUnrollLoopRules

struct GLSLInitCompilerContextTAG {
	GLSLLogFiles eLogFiles // @0
	IMG_BOOL bSuccessfulInit // @4
	GLSLRequestedPrecisions sRequestedPrecisions // @8
	GLSLCompilerResources sCompilerResources // @64
	GLSLInlineFuncRules sInlineFuncRules // @84
	GLSLUnrollLoopRules sUnrollLoopRules // @94
	IMG_VOID* pvCompilerPrivateData // @a0
}

typedef struct GLSLInitCompilerContextTAG GLSLInitCompilerContext

enum GLSLNodeTypeTAG {
	GLSLNT_IDENTIFIER = 0; //0x0
	GLSLNT_FIELD_SELECTION = 1; //0x1
	GLSLNT_ARRAY_SPECIFIER = 2; //0x2
	GLSLNT_POST_INC = 3; //0x3
	GLSLNT_POST_DEC = 4; //0x4
	GLSLNT_FUNCTION_CALL = 5; //0x5
	GLSLNT_ARRAY_LENGTH = 6; //0x6
	GLSLNT_PRE_INC = 7; //0x7
	GLSLNT_PRE_DEC = 8; //0x8
	GLSLNT_NEGATE = 9; //0x9
	GLSLNT_POSITIVE = 10; //0xa
	GLSLNT_NOT = 11; //0xb
	GLSLNT_BITWISE_NOT = 12; //0xc
	GLSLNT_MULTIPLY = 13; //0xd
	GLSLNT_DIVIDE = 14; //0xe
	GLSLNT_MODULUS = 15; //0xf
	GLSLNT_ADD = 16; //0x10
	GLSLNT_SUBTRACT = 17; //0x11
	GLSLNT_SHIFT_LEFT = 18; //0x12
	GLSLNT_SHIFT_RIGHT = 19; //0x13
	GLSLNT_LESS_THAN = 20; //0x14
	GLSLNT_GREATER_THAN = 21; //0x15
	GLSLNT_LESS_THAN_EQUAL = 22; //0x16
	GLSLNT_GREATER_THAN_EQUAL = 23; //0x17
	GLSLNT_EQUAL_TO = 24; //0x18
	GLSLNT_NOTEQUAL_TO = 25; //0x19
	GLSLNT_INCLUSIVE_OR = 26; //0x1a
	GLSLNT_EXCLUSIVE_OR = 27; //0x1b
	GLSLNT_AND = 28; //0x1c
	GLSLNT_LOGICAL_OR = 29; //0x1d
	GLSLNT_LOGICAL_XOR = 30; //0x1e
	GLSLNT_LOGICAL_AND = 31; //0x1f
	GLSLNT_QUESTION = 32; //0x20
	GLSLNT_EQUAL = 33; //0x21
	GLSLNT_MUL_ASSIGN = 34; //0x22
	GLSLNT_DIV_ASSIGN = 35; //0x23
	GLSLNT_MOD_ASSIGN = 36; //0x24
	GLSLNT_ADD_ASSIGN = 37; //0x25
	GLSLNT_SUB_ASSIGN = 38; //0x26
	GLSLNT_RIGHT_ASSIGN = 39; //0x27
	GLSLNT_LEFT_ASSIGN = 40; //0x28
	GLSLNT_AND_ASSIGN = 41; //0x29
	GLSLNT_XOR_ASSIGN = 42; //0x2a
	GLSLNT_OR_ASSIGN = 43; //0x2b
	GLSLNT_SUBEXPRESSION = 44; //0x2c
	GLSLNT_EXPRESSION = 45; //0x2d
	GLSLNT_CONTINUE = 46; //0x2e
	GLSLNT_BREAK = 47; //0x2f
	GLSLNT_DISCARD = 48; //0x30
	GLSLNT_RETURN = 49; //0x31
	GLSLNT_FOR = 50; //0x32
	GLSLNT_WHILE = 51; //0x33
	GLSLNT_DO = 52; //0x34
	GLSLNT_IF = 53; //0x35
	GLSLNT_STATEMENT_LIST = 54; //0x36
	GLSLNT_FUNCTION_DEFINITION = 55; //0x37
	GLSLNT_DECLARATION = 56; //0x38
	GLSLNT_SHADER = 57; //0x39
	GLSLNT_ERROR = 58; //0x3a
}

typedef enum GLSLNodeTypeTAG GLSLNodeType

enum GLSLSymbolTableDataTypeTAG {
	GLSLSTDT_IDENTIFIER = 0; //0x0
	GLSLSTDT_FUNCTION_DEFINITION = 1; //0x1
	GLSLSTDT_FUNCTION_CALL = 2; //0x2
	GLSLSTDT_SWIZZLE = 3; //0x3
	GLSLSTDT_MEMBER_SELECTION = 4; //0x4
	GLSLSTDT_STRUCTURE_DEFINITION = 5; //0x5
	GLSLSTDT_PRECISION_MODIFIER = 6; //0x6
}

typedef enum GLSLSymbolTableDataTypeTAG GLSLSymbolTableDataType

enum GLSLBuiltInFunctionIDTAG {
	GLSLBFID_RADIANS = 0; //0x0
	GLSLBFID_DEGREES = 1; //0x1
	GLSLBFID_SIN = 2; //0x2
	GLSLBFID_COS = 3; //0x3
	GLSLBFID_TAN = 4; //0x4
	GLSLBFID_ASIN = 5; //0x5
	GLSLBFID_ACOS = 6; //0x6
	GLSLBFID_ATAN = 7; //0x7
	GLSLBFID_POW = 8; //0x8
	GLSLBFID_EXP = 9; //0x9
	GLSLBFID_LOG = 10; //0xa
	GLSLBFID_EXP2 = 11; //0xb
	GLSLBFID_LOG2 = 12; //0xc
	GLSLBFID_SQRT = 13; //0xd
	GLSLBFID_INVERSESQRT = 14; //0xe
	GLSLBFID_ABS = 15; //0xf
	GLSLBFID_SIGN = 16; //0x10
	GLSLBFID_FLOOR = 17; //0x11
	GLSLBFID_CEIL = 18; //0x12
	GLSLBFID_FRACT = 19; //0x13
	GLSLBFID_MOD = 20; //0x14
	GLSLBFID_MIN = 21; //0x15
	GLSLBFID_MAX = 22; //0x16
	GLSLBFID_CLAMP = 23; //0x17
	GLSLBFID_MIX = 24; //0x18
	GLSLBFID_STEP = 25; //0x19
	GLSLBFID_SMOOTHSTEP = 26; //0x1a
	GLSLBFID_LENGTH = 27; //0x1b
	GLSLBFID_DISTANCE = 28; //0x1c
	GLSLBFID_DOT = 29; //0x1d
	GLSLBFID_CROSS = 30; //0x1e
	GLSLBFID_NORMALIZE = 31; //0x1f
	GLSLBFID_FTRANSFORM = 32; //0x20
	GLSLBFID_FACEFORWARD = 33; //0x21
	GLSLBFID_REFLECT = 34; //0x22
	GLSLBFID_REFRACT = 35; //0x23
	GLSLBFID_MATRIXCOMPMULT = 36; //0x24
	GLSLBFID_TRANSPOSE = 37; //0x25
	GLSLBFID_OUTERPRODUCT = 38; //0x26
	GLSLBFID_LESSTHAN = 39; //0x27
	GLSLBFID_LESSTHANEQUAL = 40; //0x28
	GLSLBFID_GREATERTHAN = 41; //0x29
	GLSLBFID_GREATERTHANEQUAL = 42; //0x2a
	GLSLBFID_EQUAL = 43; //0x2b
	GLSLBFID_NOTEQUAL = 44; //0x2c
	GLSLBFID_ANY = 45; //0x2d
	GLSLBFID_ALL = 46; //0x2e
	GLSLBFID_NOT = 47; //0x2f
	GLSLBFID_TEXTURE1D = 48; //0x30
	GLSLBFID_TEXTURE1DPROJ = 49; //0x31
	GLSLBFID_TEXTURE1DLOD = 50; //0x32
	GLSLBFID_TEXTURE1DPROJLOD = 51; //0x33
	GLSLBFID_TEXTURE1DGRAD = 52; //0x34
	GLSLBFID_TEXTURE1DPROJGRAD = 53; //0x35
	GLSLBFID_TEXTURE2D = 54; //0x36
	GLSLBFID_TEXTURE2DPROJ = 55; //0x37
	GLSLBFID_TEXTURE2DLOD = 56; //0x38
	GLSLBFID_TEXTURE2DPROJLOD = 57; //0x39
	GLSLBFID_TEXTURE2DGRAD = 58; //0x3a
	GLSLBFID_TEXTURE2DPROJGRAD = 59; //0x3b
	GLSLBFID_TEXTURE3D = 60; //0x3c
	GLSLBFID_TEXTURE3DPROJ = 61; //0x3d
	GLSLBFID_TEXTURE3DLOD = 62; //0x3e
	GLSLBFID_TEXTURE3DPROJLOD = 63; //0x3f
	GLSLBFID_TEXTURE3DGRAD = 64; //0x40
	GLSLBFID_TEXTURE3DPROJGRAD = 65; //0x41
	GLSLBFID_TEXTURECUBE = 66; //0x42
	GLSLBFID_TEXTURECUBELOD = 67; //0x43
	GLSLBFID_TEXTURECUBEGRAD = 68; //0x44
	GLSLBFID_SHADOW1D = 69; //0x45
	GLSLBFID_SHADOW1DPROJ = 70; //0x46
	GLSLBFID_SHADOW1DLOD = 71; //0x47
	GLSLBFID_SHADOW1DPROJLOD = 72; //0x48
	GLSLBFID_SHADOW1DGRAD = 73; //0x49
	GLSLBFID_SHADOW1DPROJGRAD = 74; //0x4a
	GLSLBFID_SHADOW2D = 75; //0x4b
	GLSLBFID_SHADOW2DPROJ = 76; //0x4c
	GLSLBFID_SHADOW2DLOD = 77; //0x4d
	GLSLBFID_SHADOW2DPROJLOD = 78; //0x4e
	GLSLBFID_SHADOW2DGRAD = 79; //0x4f
	GLSLBFID_SHADOW2DPROJGRAD = 80; //0x50
	GLSLBFID_DFDX = 81; //0x51
	GLSLBFID_DFDY = 82; //0x52
	GLSLBFID_FWIDTH = 83; //0x53
	GLSLBFID_NOISE1 = 84; //0x54
	GLSLBFID_NOISE2 = 85; //0x55
	GLSLBFID_NOISE3 = 86; //0x56
	GLSLBFID_NOISE4 = 87; //0x57
	GLSLBFID_NOT_BUILT_IN = 88; //0x58
}

typedef enum GLSLBuiltInFunctionIDTAG GLSLBuiltInFunctionID

enum GLSLParamQualifierTAG {
	GLSLPQ_INVALID = 0; //0x0
	GLSLPQ_IN = 1; //0x1
	GLSLPQ_OUT = 2; //0x2
	GLSLPQ_INOUT = 3; //0x3
}

typedef enum GLSLParamQualifierTAG GLSLParameterQualifier

enum GLSLFunctionTypeTAG {
	GLSLFT_INVALID = 0; //0x0
	GLSLFT_USER = 1; //0x1
	GLSLFT_CONSTRUCTOR = 2; //0x2
	GLSLFT_USERDEFINED_CONSTRUCTOR = 3; //0x3
	GLSLFT_BUILT_IN = 4; //0x4
}

typedef enum GLSLFunctionTypeTAG GLSLFunctionType

enum GLSLFunctionFlagsTAG {
	GLSLFF_NOT_VALID = 0; //0x0
	GLSLFF_VALID_FOR_VERTEX_SHADERS = 1; //0x1
	GLSLFF_VALID_FOR_FRAGMENT_SHADERS = 2; //0x2
	GLSLFF_VALID_FOR_GLSL = 3; //0x3
	GLSLFF_VALID_FOR_GLSL_ES = 4; //0x4
	GLSLFF_VALID_IN_ALL_CASES = 2147483647; //0x7fffffff
}

typedef enum GLSLFunctionFlagsTAG GLSLFunctionFlags

enum GLSLLValueStatusTAG {
	GLSLLV_INVALID = 0; //0x0
	GLSLLV_NOT_L_VALUE = 1; //0x1
	GLSLLV_NOT_L_VALUE_DUP_SWIZZLE = 2; //0x2
	GLSLLV_L_VALUE = 3; //0x3
}

typedef enum GLSLLValueStatusTAG GLSLLValueStatus

enum GLSLArrayStatusTAG {
	GLSLAS_INVALID = 0; //0x0
	GLSLAS_NOT_ARRAY = 1; //0x1
	GLSLAS_ARRAY_SIZE_NOT_FIXED = 2; //0x2
	GLSLAS_ARRAY_SIZE_FIXED = 3; //0x3
}

typedef enum GLSLArrayStatusTAG GLSLArrayStatus

enum GLSLIdentifierUsageTAG {
	GLSLIU_WRITTEN = 1; //0x1
	GLSLIU_READ = 2; //0x2
	GLSLIU_CONDITIONAL = 4; //0x4
	GLSLIU_PARAM = 8; //0x8
	GLSLIU_INIT_WARNED = 16; //0x10
	GLSLIU_DYNAMICALLY_INDEXED = 32; //0x20
	GLSLIU_INTERNALRESULT = 64; //0x40
	GLSLIU_UNINITIALISED = 128; //0x80
	GLSLIU_ERROR_INITIALISING = 256; //0x100
	GLSLIU_BUILT_IN = 512; //0x200
	GLSLIU_BOOL_AS_PREDICATE = 1024; //0x400
}

typedef enum GLSLIdentifierUsageTAG GLSLIdentifierUsage

struct GLSLFullySpecifiedTypeTAG {
	IMG_UINT32 eParameterQualifier // @0
	IMG_UINT32 ePrecisionQualifier // @0
	IMG_UINT32 eTypeQualifier // @0
	IMG_UINT32 eVaryingModifierFlags // @0
	IMG_UINT32 eTypeSpecifier // @0
	IMG_UINT32 uStructDescSymbolTableID // @0
	IMG_INT32 iArraySize // @4
}

typedef struct GLSLFullySpecifiedTypeTAG GLSLFullySpecifiedType

struct GLSLIdentifierDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	GLSLFullySpecifiedType sFullySpecifiedType // @4
	IMG_INT32 iActiveArraySize // @c
	IMG_UINT32 eArrayStatus // @10
	IMG_UINT32 eLValueStatus // @10
	IMG_UINT32 eBuiltInVariableID // @10
	IMG_UINT32 eIdentifierUsage // @10
	IMG_UINT32 uConstantDataSize // @14
	IMG_UINT32 uConstantAssociationSymbolID // @14
	IMG_VOID* pvConstantData // @18
}

typedef struct GLSLIdentifierDataTAG GLSLIdentifierData

struct GLSLFunctionCallDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	GLSLFullySpecifiedType sFullySpecifiedType // @4
	GLSLArrayStatus eArrayStatus // @c
	IMG_UINT32 uFunctionDefinitionSymbolID // @10
	IMG_UINT32 uLoopLevel // @14
	IMG_UINT32 uConditionLevel // @18
}

typedef struct GLSLFunctionCallDataTAG GLSLFunctionCallData

struct GLSLMemberSelectionDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	IMG_UINT32 uMemberOffset // @4
	IMG_UINT32 uStructureInstanceSymbolTableID // @8
}

typedef struct GLSLMemberSelectionDataTAG GLSLMemberSelectionData

struct GLSLStructureMemberTAG {
	IMG_CHAR* pszMemberName // @0
	IMG_UINT32 uConstantDataOffSetInBytes // @4
	GLSLIdentifierData sIdentifierData // @8
}

typedef struct GLSLStructureMemberTAG GLSLStructureMember

struct GLSLStructureDefinitionDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	IMG_UINT32 uStructureSizeInBytes // @4
	IMG_UINT32 uNumMembers // @8
	GLSLStructureMember* psMembers // @c
}

typedef struct GLSLStructureDefinitionDataTAG GLSLStructureDefinitionData

struct GLSLGenericDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
}

typedef struct GLSLGenericDataTAG GLSLGenericData

struct GLSLFunctionDefinitionDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	IMG_CHAR* pszOriginalFunctionName // @4
	GLSLFunctionType eFunctionType // @8
	GLSLFunctionFlags eFunctionFlags // @c
	GLSLFullySpecifiedType sReturnFullySpecifiedType // @10
	IMG_UINT32 uReturnDataSymbolID // @18
	IMG_BOOL bPrototype // @1c
	IMG_UINT32 uFunctionCalledCount // @20
	IMG_UINT32 uMaxFunctionCallDepth // @24
	IMG_UINT32* puCalledFunctionIDs // @28
	IMG_UINT32 uNumCalledFunctions // @2c
	IMG_BOOL bGradientFnCalled // @30
	IMG_BOOL bCalledFromConditionalBlock // @34
	IMG_UINT32 uNumParameters // @38
	GLSLBuiltInFunctionID eBuiltInFunctionID // @3c
	IMG_UINT32* puParameterSymbolTableIDs // @40
	GLSLFullySpecifiedType* psFullySpecifiedTypes // @44
}

typedef struct GLSLFunctionDefinitionDataTAG GLSLFunctionDefinitionData

struct GLSLSwizzleDataTAG {
	GLSLSymbolTableDataType eSymbolTableDataType // @0
	IMG_UINT32 uNumComponents // @4
	IMG_UINT32[4] uComponentIndex // @8
}

typedef struct GLSLSwizzleDataTAG GLSLSwizzleData

struct GLSLNodeTAG {
	GLSLNodeType eNodeType // @0
	struct GLSLNodeTAG* psParent // @4
	IMG_UINT32 uNumChildren // @8
	struct GLSLNodeTAG** ppsChildren // @c
	IMG_UINT32 uSymbolTableID // @10
	ParseTreeEntry* psParseTreeEntry // @14
	Token* psToken // @18
	IMG_BOOL bEvaluated // @1c
}

typedef struct GLSLNodeTAG GLSLNode

struct GLSLPrototypedFunctionTAG {
	IMG_UINT32 uSymbolTableID // @0
	struct GLSLPrototypedFunctionTAG* psNext // @4
	struct GLSLPrototypedFunctionTAG* psPrev // @8
}

typedef struct GLSLPrototypedFunctionTAG GLSLPrototypedFunction

struct GLSLIdentifierListTAG {
	IMG_UINT32* puIdentifiersReferenced // @0
	IMG_UINT32 uNumIdentifiersReferenced // @4
	IMG_UINT32 uIdentifiersReferencedListSize // @8
}

typedef struct GLSLIdentifierListTAG GLSLIdentifierList

struct GLSLTreeContextTAG {
	IMG_UINT32 uNumResults // @0
	IMG_UINT32 uNumUnnamedStructures // @4
	IMG_UINT32 uCurrentFunctionDefinitionSymbolID // @8
	IMG_BOOL bFunctionReturnStatus // @c
	IMG_UINT32 uLoopLevel // @10
	IMG_UINT32 uConditionLevel // @14
	GLSLProgramType eProgramType // @18
	GLSLInitCompilerContext* psInitCompilerContext // @1c
	GLSLPrecisionQualifier eDefaultFloatPrecision // @20
	GLSLPrecisionQualifier eDefaultIntPrecision // @24
	GLSLPrecisionQualifier eDefaultSamplerPrecision // @28
	GLSLPrecisionQualifier eForceUserFloatPrecision // @2c
	GLSLPrecisionQualifier eForceUserIntPrecision // @30
	GLSLPrecisionQualifier eForceUserSamplerPrecision // @34
	IMG_BOOL bShaderHasModifiedPrecision // @38
	ParseContext* psParseContext // @3c
	SymTable* psSymbolTable // @40
	GLSLNode* psAbstractSyntaxTree // @44
	GLSLBuiltInVariableWrittenTo eBuiltInsWrittenTo // @48
	GLSLIdentifierList* psBuiltInsReferenced // @4c
	IMG_UINT32* puBuiltInFunctionsCalled // @50
	IMG_UINT32 uNumBuiltInFunctionsCalled // @54
	GLSLNode* psMainFunctionNode // @58
	IMG_BOOL bDiscardExecuted // @5c
	GLSLPrototypedFunction* psPrototypedFunction // @60
	GLSLCompilerWarnings eEnabledWarnings // @64
	GLSLExtension eEnabledExtensions // @68
	IMG_UINT32 uSupportedLanguageVersion // @6c
}

typedef struct GLSLTreeContextTAG GLSLTreeContext

// function
void ASTSemReportWrongOperandTypes(
	ErrorLog* psErrorLog
	GLSLNode* psResultNode
	IMG_CHAR* pszDescription0
	IMG_CHAR* pszDescription1
	)
{
}


// external function
IMG_BOOL ASTSemCheckTypeSpecifiersMatch(
	GLSLFullySpecifiedType sType1
	GLSLFullySpecifiedType sType2
	)
{
}


// external function
IMG_BOOL ASTSemCheckTypeSpecifiersMatch(
	GLSLFullySpecifiedType sType1
	GLSLFullySpecifiedType sType2
	)
{
}


// external function PC=<0x5cbf0;0x5cc90>
IMG_BOOL ASTSemGetArraySize(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psConstantExpressionNode
	IMG_INT32* piArraySize
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psIdentifierData
	IMG_INT32* piData
}


// external function
IMG_UINT32 ASTSemGetSizeInfo(
	GLSLTreeContext* psGLSLTreeContext
	GLSLFullySpecifiedType* psFullySpecifiedType
	IMG_BOOL bUseArraySize
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 uSizeInBytes
	{
		GLSLStructureDefinitionData* psStructureDefinitionData
		{
			GLSLCompilerPrivateData* psCPD
		}
		{
			GLSLCompilerPrivateData* psCPD
		}
	}
}


// external function
IMG_UINT32 ASTSemGetSizeInfo(
	GLSLTreeContext* psGLSLTreeContext
	GLSLFullySpecifiedType* psFullySpecifiedType
	IMG_BOOL bUseArraySize
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 uSizeInBytes
	{
		GLSLStructureDefinitionData* psStructureDefinitionData
		{
			GLSLCompilerPrivateData* psCPD
		}
		{
			GLSLCompilerPrivateData* psCPD
		}
	}
}


// external function PC=<0x5cd74;0x5d2a0>
IMG_UINT32 ASTSemAddIdentifierToSymbolTable(
	GLSLCompilerPrivateData* psCPD
	SymTable* psSymbolTable
	ParseTreeEntry* psIDENTIFIEREntry
	IMG_CHAR* pszIdentifierName
	GLSLFullySpecifiedType* psFullySpecifiedType
	IMG_BOOL bReservedName
	GLSLBuiltInVariableID eBuiltInVariableID
	GLSLIdentifierUsage eIdentifierUsage
	IMG_UINT32 uConstantDataSize
	IMG_VOID* pvConstantData
	GLSLProgramType eProgramType
	)
{
	GLSLIdentifierData sIdentifierData
	IMG_UINT32 uSymbolTableID
	{
		GLSLIdentifierData* psIdentifierData
	}
}


// function
IMG_BOOL ASTSemRemoveNode(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNodeToRemove
	IMG_BOOL bRemoveAllChildren
	)
{
	IMG_UINT32 i
	IMG_UINT32 uNumChildren
	{
		GLSLCompilerPrivateData* psCPD
	}
}


// function PC=<0x5d2a0;0x5d3b8>
void ASTSemRemoveChildNode(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	IMG_UINT32 uChildNum
	IMG_BOOL bRemoveAllChildren
	)
{
	IMG_UINT32 i
	IMG_UINT32 j
	GLSLNode** ppsNewNodes
	GLSLNode* psNodeToRemove
	// inlined
	// function
	IMG_BOOL ASTSemRemoveNode(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psNodeToRemove
		IMG_BOOL bRemoveAllChildren
		)
	{
		IMG_UINT32 i
		IMG_UINT32 uNumChildren
		{
			GLSLCompilerPrivateData* psCPD
		}
	}

}


// external function PC=<0x5d3b8;0x5d550>
IMG_CHAR* ASTSemCreateHashedFunctionName(
	SymTable* psSymbolTable
	IMG_CHAR* pszFunctionName
	IMG_UINT32 uNumParameters
	GLSLFullySpecifiedType* psFullySpecifiedType
	)
{
	IMG_UINT32 i
	IMG_UINT32 uNameSize
	IMG_CHAR* pszHashedFunctionName
	{
		IMG_CHAR* pszStructName
	}
	{
		IMG_CHAR* pszStructName
	}
}


// function
IMG_BOOL ASTWarnUnitialisedData(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	GLSLIdentifierData* psData
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 uScopeLevel
}


// external function PC=<0x5d550;0x5d698>
IMG_BOOL ASTUpdateConditionalIdentifierUsage(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psIdentifierData
	// inlined
	// function
	IMG_BOOL ASTWarnUnitialisedData(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psNode
		GLSLIdentifierData* psData
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 uScopeLevel
	}

}


// function
IMG_UINT32 ASTSemConvertTypes(
	GLSLTreeContext* psGLSLTreeContext
	GLSLFullySpecifiedType* psSrcFullySpecifiedType
	GLSLFullySpecifiedType* psDestFullySpecifiedType
	IMG_VOID* pvSrc
	IMG_VOID** ppvDest
	IMG_BOOL bExpand
	)
{
	IMG_UINT32 uSrcNumComponents
	IMG_UINT32 uDestNumComponents
	IMG_UINT32 uNumComponentsToCopy
	IMG_UINT32 i
	GLSLTypeSpecifier eSrcBaseTypeSpecifier
	GLSLTypeSpecifier eDestBaseTypeSpecifier
	{
		GLSLCompilerPrivateData* psCPD
	}
	{
		IMG_FLOAT* pfSrc
		{
			IMG_FLOAT* pfDest
			{
				IMG_UINT32 uDiagonalCheck
			}
		}
		{
			IMG_INT32* piDest
		}
		{
			IMG_BOOL* pbDest
		}
		{
			GLSLCompilerPrivateData* psCPD
		}
	}
	{
		IMG_INT32* piSrc
		{
			IMG_FLOAT* pfDest
			{
				IMG_UINT32 uDiagonalCheck
			}
		}
		{
			IMG_INT32* piDest
		}
		{
			IMG_BOOL* pbDest
		}
		{
			GLSLCompilerPrivateData* psCPD
		}
	}
	{
		IMG_BOOL* pbSrc
		{
			IMG_FLOAT* pfDest
			{
				IMG_UINT32 uDiagonalCheck
			}
		}
		{
			IMG_INT32* piDest
		}
		{
			IMG_BOOL* pbDest
		}
		{
			GLSLCompilerPrivateData* psCPD
		}
	}
	{
		GLSLCompilerPrivateData* psCPD
		IMG_BYTE* pbDest
		GLSLStructureDefinitionData* psStructureDefinitionData
	}
	{
		GLSLCompilerPrivateData* psCPD
	}
}


// function
IMG_UINT32 ASTSemConvertMatrix(
	GLSLFullySpecifiedType* psSrcFullySpecifiedType
	GLSLFullySpecifiedType* psDestFullySpecifiedType
	IMG_VOID* pvSrc
	IMG_VOID** ppvDest
	)
{
	IMG_UINT32 i
	IMG_UINT32 j
	IMG_UINT32 uNumSrcCols
	IMG_UINT32 uNumSrcRows
	IMG_UINT32 uNumDestCols
	IMG_UINT32 uNumDestRows
	IMG_UINT32 uNumSmallestRows
	IMG_UINT32 uNumSmallestCols
	IMG_UINT32 uNumDestComponents
	IMG_FLOAT* pfSrc
	IMG_FLOAT* pfDest
}


// function
void ASTSemGetResultName(
	GLSLTreeContext* psGLSLTreeContext
	IMG_CHAR* pszResultName
	GLSLFullySpecifiedType* psFullySpecifiedType
	)
{
}


// function PC=<0x5d698;0x5e644>
IMG_BOOL ASTSemReduceConstantConstructor(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psFunctionCallNode
	GLSLFunctionCallData* psFunctionCallData
	GLSLFunctionDefinitionData* psFunctionDefinitionData
	IMG_UINT32 uTotalSizeOfParameters
	IMG_BOOL bExpandSourceParameter
	GLSLPrecisionQualifier eDestPrec
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_VOID* pvDestData
	IMG_VOID* pvSrcData
	GLSLIdentifierData sResultData
	IMG_UINT32 i
	IMG_UINT32 uNumChildren
	GLSLStructureDefinitionData* psStructureDefinitionData
	IMG_CHAR[256] acResultName
	GLSLFullySpecifiedType* psReturnFullySpecifiedType
	// inlined
	// external function
	IMG_UINT32 ASTSemGetSizeInfo(
		GLSLTreeContext* psGLSLTreeContext
		GLSLFullySpecifiedType* psFullySpecifiedType
		IMG_BOOL bUseArraySize
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 uSizeInBytes
		{
			GLSLStructureDefinitionData* psStructureDefinitionData
			{
				GLSLCompilerPrivateData* psCPD
			}
			{
				GLSLCompilerPrivateData* psCPD
			}
		}
	}

	// inlined
	// external function
	IMG_UINT32 ASTSemGetSizeInfo(
		GLSLTreeContext* psGLSLTreeContext
		GLSLFullySpecifiedType* psFullySpecifiedType
		IMG_BOOL bUseArraySize
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 uSizeInBytes
		{
			GLSLStructureDefinitionData* psStructureDefinitionData
			{
				GLSLCompilerPrivateData* psCPD
			}
			{
				GLSLCompilerPrivateData* psCPD
			}
		}
	}

	{
		GLSLFullySpecifiedType* psDestFullySpecifiedType
		GLSLIdentifierData* psParamData
		// inlined
		// function
		IMG_UINT32 ASTSemConvertTypes(
			GLSLTreeContext* psGLSLTreeContext
			GLSLFullySpecifiedType* psSrcFullySpecifiedType
			GLSLFullySpecifiedType* psDestFullySpecifiedType
			IMG_VOID* pvSrc
			IMG_VOID** ppvDest
			IMG_BOOL bExpand
			)
		{
			IMG_UINT32 uSrcNumComponents
			IMG_UINT32 uDestNumComponents
			IMG_UINT32 uNumComponentsToCopy
			IMG_UINT32 i
			GLSLTypeSpecifier eSrcBaseTypeSpecifier
			GLSLTypeSpecifier eDestBaseTypeSpecifier
			{
				GLSLCompilerPrivateData* psCPD
			}
			{
				IMG_FLOAT* pfSrc
				{
					IMG_FLOAT* pfDest
					{
						IMG_UINT32 uDiagonalCheck
					}
				}
				{
					IMG_INT32* piDest
				}
				{
					IMG_BOOL* pbDest
				}
				{
					GLSLCompilerPrivateData* psCPD
				}
			}
			{
				IMG_INT32* piSrc
				{
					IMG_FLOAT* pfDest
					{
						IMG_UINT32 uDiagonalCheck
					}
				}
				{
					IMG_INT32* piDest
				}
				{
					IMG_BOOL* pbDest
				}
				{
					GLSLCompilerPrivateData* psCPD
				}
			}
			{
				IMG_BOOL* pbSrc
				{
					IMG_FLOAT* pfDest
					{
						IMG_UINT32 uDiagonalCheck
					}
				}
				{
					IMG_INT32* piDest
				}
				{
					IMG_BOOL* pbDest
				}
				{
					GLSLCompilerPrivateData* psCPD
				}
			}
			{
				GLSLCompilerPrivateData* psCPD
				IMG_BYTE* pbDest
				GLSLStructureDefinitionData* psStructureDefinitionData
			}
			{
				GLSLCompilerPrivateData* psCPD
			}
		}

	}
	// inlined
	// function
	void ASTSemGetResultName(
		GLSLTreeContext* psGLSLTreeContext
		IMG_CHAR* pszResultName
		GLSLFullySpecifiedType* psFullySpecifiedType
		)
	{
	}

	{
		IMG_INT* piData
	}
	{
		IMG_FLOAT* pfData
	}
}


// function
IMG_BOOL ASTSemReduceConstantFieldSelection(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_UINT32* puSymbolTableID
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psMemberSelectionNode
	GLSLNode* psIdentifierNode
	GLSLIdentifierData* psIdentifierData
	GLSLIdentifierData sResultData
	GLSLGenericData* psGenericData
	IMG_BYTE* pbConstantData
	IMG_CHAR[200] acResultName
	{
		GLSLMemberSelectionData* psMemberSelectionData
		GLSLStructureDefinitionData* psStructureDefinitionData
		GLSLStructureMember* psStructureMember
		IMG_UINT32 uMemberSizeInBytes
	}
	{
		IMG_UINT32 i
		IMG_UINT32 uDataSizeInBytes
		GLSLSwizzleData* psSwizzleData
		IMG_UINT32 uDimension
		{
			IMG_BOOL* pbSrc
			IMG_BOOL* pbDest
		}
		{
			IMG_INT32* piSrc
			IMG_INT32* piDest
		}
		{
			IMG_FLOAT* pfSrc
			IMG_FLOAT* pfDest
		}
	}
}


// function
IMG_BOOL ASTSemReduceConstantArraySpecifier(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_UINT32* puSymbolTableID
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psIdentifierNode
	GLSLNode* psArrayIndexNode
	GLSLIdentifierData* psIdentifierData
	GLSLIdentifierData* psArrayIndexIdentifierData
	GLSLIdentifierData sResultData
	IMG_UINT32 uIndexedDimension
	IMG_UINT32 uDataOffsetInBytes
	IMG_UINT32 uDataSizeInBytes
	IMG_INT32* piArrayIndexValue
	IMG_BYTE* pbSrc
	IMG_CHAR[200] acResultName
}


// function
IMG_BOOL ASTSemReduceConstantMaths(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	GLSLPrecisionQualifier eResultPrecision
	IMG_UINT32* puSymbolTableID
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 i
	GLSLIdentifierData*[3] psChildIdentifierData
	IMG_FLOAT[16] afResult
	IMG_INT32[4] aiResult
	IMG_BOOL[1] abResult
	IMG_CHAR[200] acResultName
	GLSLTypeSpecifier eResultTypeSpecifier
	GLSLIdentifierData sResultData
	IMG_BOOL bAllTypesMatch
	{
		GLSLTypeQualifier eTypeQualifier
	}
	{
		IMG_BOOL* pbData
	}
	{
		IMG_BOOL bLinearAlgebraMultiply
		{
			IMG_UINT32 uScalarIndex
			IMG_UINT32 uNonScalarIndex
			IMG_UINT32[2] uNumComponents
			{
				IMG_FLOAT*[2] pfData
				IMG_FLOAT** ppfNonScalarData
			}
			{
				IMG_INT32*[2] piData
				IMG_INT32** ppiNonScalarData
			}
		}
		{
			IMG_UINT32 uNumComponents
			{
				IMG_FLOAT*[2] pfData
			}
			{
				IMG_INT32*[2] piData
			}
			{
				IMG_BOOL*[2] pbData
			}
			{
				IMG_BYTE*[2] pbyData
			}
		}
	}
}


// function
IMG_BOOL ASTSemReduceConstantMatrixMath(
	GLSLTreeContext* psGLSLTreeContext
	GLSLTypeSpecifier eSrc1TypeSpecifier
	GLSLTypeSpecifier eSrc2TypeSpecifier
	GLSLTypeSpecifier* peDestTypeSpecifier
	const IMG_FLOAT* pfSrc1Data
	const IMG_FLOAT* pfSrc2Data
	IMG_FLOAT* pfDestData
	)
{
	IMG_UINT32 i
	IMG_UINT32 j
	IMG_UINT32 k
	IMG_UINT32 uLeftNumCols
	IMG_UINT32 uLeftNumRows
	IMG_UINT32 uRightNumRows
	IMG_UINT32 uRightNumCols
}


// function PC=<0x5e644;0x60ed0>
IMG_BOOL ASTSemReduceConstantExpression(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	GLSLPrecisionQualifier eResultPrecision
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 i
	IMG_UINT32 uSymbolTableID
	IMG_UINT32 uNumChildren
	IMG_BOOL bRemoveAllChildren
	// inlined
	// function
	IMG_BOOL ASTSemReduceConstantFieldSelection(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		IMG_UINT32* puSymbolTableID
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psMemberSelectionNode
		GLSLNode* psIdentifierNode
		GLSLIdentifierData* psIdentifierData
		GLSLIdentifierData sResultData
		GLSLGenericData* psGenericData
		IMG_BYTE* pbConstantData
		IMG_CHAR[200] acResultName
		{
			GLSLMemberSelectionData* psMemberSelectionData
			GLSLStructureDefinitionData* psStructureDefinitionData
			GLSLStructureMember* psStructureMember
			IMG_UINT32 uMemberSizeInBytes
		}
		{
			IMG_UINT32 i
			IMG_UINT32 uDataSizeInBytes
			GLSLSwizzleData* psSwizzleData
			IMG_UINT32 uDimension
			{
				IMG_BOOL* pbSrc
				IMG_BOOL* pbDest
			}
			{
				IMG_INT32* piSrc
				IMG_INT32* piDest
			}
			{
				IMG_FLOAT* pfSrc
				IMG_FLOAT* pfDest
			}
		}
	}

	// inlined
	// function
	IMG_BOOL ASTSemReduceConstantMaths(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		GLSLPrecisionQualifier eResultPrecision
		IMG_UINT32* puSymbolTableID
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 i
		GLSLIdentifierData*[3] psChildIdentifierData
		IMG_FLOAT[16] afResult
		IMG_INT32[4] aiResult
		IMG_BOOL[1] abResult
		IMG_CHAR[200] acResultName
		GLSLTypeSpecifier eResultTypeSpecifier
		GLSLIdentifierData sResultData
		IMG_BOOL bAllTypesMatch
		{
			GLSLTypeQualifier eTypeQualifier
		}
		{
			IMG_BOOL* pbData
		}
		{
			IMG_BOOL bLinearAlgebraMultiply
			{
				IMG_UINT32 uScalarIndex
				IMG_UINT32 uNonScalarIndex
				IMG_UINT32[2] uNumComponents
				{
					IMG_FLOAT*[2] pfData
					IMG_FLOAT** ppfNonScalarData
				}
				{
					IMG_INT32*[2] piData
					IMG_INT32** ppiNonScalarData
				}
			}
			{
				IMG_UINT32 uNumComponents
				{
					IMG_FLOAT*[2] pfData
				}
				{
					IMG_INT32*[2] piData
				}
				{
					IMG_BOOL*[2] pbData
				}
				{
					IMG_BYTE*[2] pbyData
				}
			}
		}
	}

	// inlined
	// function
	IMG_BOOL ASTSemReduceConstantArraySpecifier(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		IMG_UINT32* puSymbolTableID
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psIdentifierNode
		GLSLNode* psArrayIndexNode
		GLSLIdentifierData* psIdentifierData
		GLSLIdentifierData* psArrayIndexIdentifierData
		GLSLIdentifierData sResultData
		IMG_UINT32 uIndexedDimension
		IMG_UINT32 uDataOffsetInBytes
		IMG_UINT32 uDataSizeInBytes
		IMG_INT32* piArrayIndexValue
		IMG_BYTE* pbSrc
		IMG_CHAR[200] acResultName
	}

	{
		GLSLIdentifierData* psIdentifierData
		IMG_INT32 iArraySize
	}
}


// function
GLSLIdentifierData* ASTSemGetIdentifierData(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	IMG_UINT32* puSymbolTableID
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psIdentifierData
	GLSLGenericData* psGenericData
	IMG_UINT32 uSymbolTableID
	{
		GLSLFunctionCallData* psFunctionCallData
		GLSLFunctionDefinitionData* psFunctionDefinitionData
	}
}


// function PC=<0x60ed0;0x61568>
IMG_BOOL ASTSemInsertConstructor(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_UINT32 uChildToConvert
	GLSLPrecisionQualifier eDestPrec
	GLSLTypeSpecifier eDestTypeSpecifier
	IMG_BOOL bSemanticCheck
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psChildNode
	GLSLIdentifierData* psIdentifierData
	GLSLFullySpecifiedType* psFullySpecifiedType
	IMG_BOOL bConvertPrecision
	IMG_BOOL bConvertDataType
	IMG_CHAR[256] acConstructorName
	IMG_CHAR[256] acFunctionCallName
	IMG_UINT32 uFunctionDefinitionSymbolTableID
	GLSLNode* psFunctionCallNode
	GLSLFunctionCallData sFunctionCallData
	// inlined
	// function
	GLSLIdentifierData* ASTSemGetIdentifierData(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psNode
		IMG_UINT32* puSymbolTableID
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLIdentifierData* psIdentifierData
		GLSLGenericData* psGenericData
		IMG_UINT32 uSymbolTableID
		{
			GLSLFunctionCallData* psFunctionCallData
			GLSLFunctionDefinitionData* psFunctionDefinitionData
		}
	}

	{
		IMG_UINT32 uTotalSizeOfParameters
		GLSLIdentifierData* psIdentifierData
		GLSLFunctionDefinitionData* psFunctionDefinitionData
		// inlined
		// external function
		IMG_UINT32 ASTSemGetSizeInfo(
			GLSLTreeContext* psGLSLTreeContext
			GLSLFullySpecifiedType* psFullySpecifiedType
			IMG_BOOL bUseArraySize
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_UINT32 uSizeInBytes
			{
				GLSLStructureDefinitionData* psStructureDefinitionData
				{
					GLSLCompilerPrivateData* psCPD
				}
				{
					GLSLCompilerPrivateData* psCPD
				}
			}
		}

	}
	{
		GLSLFunctionCallData* psFunctionCallData
		GLSLFunctionDefinitionData* psFunctionDefinitionData
	}
	{
		GLSLIdentifierData* psIdentifierData
		IMG_UINT32 ui32QuestionMarkChild
	}
}


// function
IMG_BOOL ASTUpdateParamIdentifierUsage(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	GLSLParameterQualifier eParameterQualifier
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_BOOL bWritten
	GLSLIdentifierData* psIdentifierData
}


// function
IMG_BOOL ASTUpdateBuiltInsReferenced(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	IMG_BOOL bWritten
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 uSymbolTableID
	GLSLIdentifierData* psIdentifierData
	GLSLIdentifierList* psBuiltInsReferenced
}


// function
IMG_BOOL ASTSemReduceConstantBuiltInFunction(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psFunctionCallNode
	GLSLFunctionDefinitionData* psFunctionDefinitionData
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 i
	GLSLIdentifierData sResultData
	IMG_CHAR[256] acResultName
	IMG_UINT32 uNumChildren
	IMG_VOID*[3] pvParamData
	GLSLTypeSpecifier[3] aeParamTypeSpecifiers
	GLSLTypeSpecifier eReturnedTypeSpecifier
	GLSLTypeSpecifier eResultTypeSpecifier
	IMG_UINT32 uResultSizeInBytes
	{
		GLSLIdentifierData* psParamData
	}
}


// function PC=<0x61568;0x630f8>
IMG_BOOL ASTSemCheckFunctionCallParameters(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psFunctionCallNode
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 i
	IMG_UINT32 uTotalSizeOfParameters
	IMG_UINT32 uConstructorSize
	IMG_UINT32 uNumComponents
	IMG_BOOL bUnsizedArrayConstructor
	GLSLFunctionCallData* psFunctionCallData
	GLSLFunctionDefinitionData* psFunctionDefinitionData
	IMG_UINT32 uNumConstantParams
	IMG_UINT32 uNumMatrixParams
	IMG_BOOL bExpandSourceParameter
	IMG_BOOL bConstructingMatrixFromMatrix
	const IMG_CHAR* pszConstructorString
	const IMG_CHAR* pszFunctionName
	IMG_BOOL bError
	GLSLPrecisionQualifier eMaximumPrecQual
	GLSLPrecisionQualifier eSamplerPrecQual
	GLSLFullySpecifiedType sSrcFullySpecifiedType
	GLSLFullySpecifiedType* psSrcFullySpecifiedType
	{
		GLSLIdentifierData* psChildData
		// inlined
		// function
		GLSLIdentifierData* ASTSemGetIdentifierData(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psNode
			IMG_UINT32* puSymbolTableID
			)
		{
			GLSLCompilerPrivateData* psCPD
			GLSLIdentifierData* psIdentifierData
			GLSLGenericData* psGenericData
			IMG_UINT32 uSymbolTableID
			{
				GLSLFunctionCallData* psFunctionCallData
				GLSLFunctionDefinitionData* psFunctionDefinitionData
			}
		}

		// inlined
		// external function
		IMG_UINT32 ASTSemGetSizeInfo(
			GLSLTreeContext* psGLSLTreeContext
			GLSLFullySpecifiedType* psFullySpecifiedType
			IMG_BOOL bUseArraySize
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_UINT32 uSizeInBytes
			{
				GLSLStructureDefinitionData* psStructureDefinitionData
				{
					GLSLCompilerPrivateData* psCPD
				}
				{
					GLSLCompilerPrivateData* psCPD
				}
			}
		}

		// inlined
		// function
		IMG_BOOL ASTUpdateParamIdentifierUsage(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psNode
			GLSLParameterQualifier eParameterQualifier
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_BOOL bWritten
			GLSLIdentifierData* psIdentifierData
		}

		{
			GLSLFullySpecifiedType* psDestFullySpecifiedType
			{
				GLSLIdentifierData* psIdentifierData
			}
			// inlined
			// function
			IMG_BOOL ASTUpdateParamIdentifierUsage(
				GLSLTreeContext* psGLSLTreeContext
				GLSLNode* psNode
				GLSLParameterQualifier eParameterQualifier
				)
			{
				GLSLCompilerPrivateData* psCPD
				IMG_BOOL bWritten
				GLSLIdentifierData* psIdentifierData
			}

			{
				GLSLPrecisionQualifier eDestPrecQual
				GLSLPrecisionQualifier eSrcPrecQual
				IMG_BOOL bTypeConversionRequired
				IMG_BOOL bPrecisionConversionRequired
			}
			{
				IMG_BOOL bIntSrcFloatDest
				IMG_BOOL bMatchingDimensions
			}
			{
				GLSLIdentifierData* psParameterData
			}
		}
	}
	// inlined
	// external function
	IMG_UINT32 ASTSemGetSizeInfo(
		GLSLTreeContext* psGLSLTreeContext
		GLSLFullySpecifiedType* psFullySpecifiedType
		IMG_BOOL bUseArraySize
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 uSizeInBytes
		{
			GLSLStructureDefinitionData* psStructureDefinitionData
			{
				GLSLCompilerPrivateData* psCPD
			}
			{
				GLSLCompilerPrivateData* psCPD
			}
		}
	}

	{
		GLSLFunctionDefinitionData* psFunctionDefinitionData
	}
	// inlined
	// external function
	IMG_UINT32 ASTSemGetSizeInfo(
		GLSLTreeContext* psGLSLTreeContext
		GLSLFullySpecifiedType* psFullySpecifiedType
		IMG_BOOL bUseArraySize
		)
	{
		GLSLCompilerPrivateData* psCPD
		IMG_UINT32 uSizeInBytes
		{
			GLSLStructureDefinitionData* psStructureDefinitionData
			{
				GLSLCompilerPrivateData* psCPD
			}
			{
				GLSLCompilerPrivateData* psCPD
			}
		}
	}

	{
		IMG_BOOL bConstructor
		IMG_BOOL bBuiltInFunction
		// inlined
		// function
		IMG_BOOL ASTSemReduceConstantBuiltInFunction(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psFunctionCallNode
			GLSLFunctionDefinitionData* psFunctionDefinitionData
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_UINT32 i
			GLSLIdentifierData sResultData
			IMG_CHAR[256] acResultName
			IMG_UINT32 uNumChildren
			IMG_VOID*[3] pvParamData
			GLSLTypeSpecifier[3] aeParamTypeSpecifiers
			GLSLTypeSpecifier eReturnedTypeSpecifier
			GLSLTypeSpecifier eResultTypeSpecifier
			IMG_UINT32 uResultSizeInBytes
			{
				GLSLIdentifierData* psParamData
			}
		}

	}
}


// function PC=<0x630f8;0x63514>
IMG_BOOL ASTUpdateReadIdentifierUsage(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psNode
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 i
	GLSLIdentifierData* psIdentifierData
	IMG_UINT32 uStart
	{
		GLSLNode* psCurrentNode
		// inlined
		// function
		GLSLIdentifierData* ASTSemGetIdentifierData(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psNode
			IMG_UINT32* puSymbolTableID
			)
		{
			GLSLCompilerPrivateData* psCPD
			GLSLIdentifierData* psIdentifierData
			GLSLGenericData* psGenericData
			IMG_UINT32 uSymbolTableID
			{
				GLSLFunctionCallData* psFunctionCallData
				GLSLFunctionDefinitionData* psFunctionDefinitionData
			}
		}

		// inlined
		// function
		IMG_BOOL ASTWarnUnitialisedData(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psNode
			GLSLIdentifierData* psData
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_UINT32 uScopeLevel
		}

		// inlined
		// function
		IMG_BOOL ASTUpdateBuiltInsReferenced(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psNode
			IMG_BOOL bWritten
			)
		{
			GLSLCompilerPrivateData* psCPD
			IMG_UINT32 uSymbolTableID
			GLSLIdentifierData* psIdentifierData
			GLSLIdentifierList* psBuiltInsReferenced
		}

	}
}


// function
IMG_UINT32 ASTCheckNodeNumChildren(
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psNode
	)
{
	IMG_UINT32 uNumChildren
}


// function
void ASTSemCheckForReplacementWithConstantData(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_UINT32 uChildIndex
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psIdentifierData
}


// function
void ASTSemReportWrongOperandType(
	ErrorLog* psErrorLog
	GLSLNode* psResultNode
	IMG_CHAR* pszDescription
	)
{
}


// function
void ASTSemReportLValueError(
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psResultNode
	GLSLLValueStatus eLValueStatus
	GLSLTypeQualifier eTypeQualifier
	IMG_CHAR* pszString
	)
{
}


// function
void ASTSemReportMismatchedArraySizes(
	ErrorLog* psErrorLog
	GLSLNode* psResultNode
	IMG_CHAR* pszDescription0
	IMG_CHAR* pszDescription1
	IMG_INT32 iArraySize1
	IMG_INT32 iArraySize2
	)
{
	{
	}
}


// function
IMG_BOOL ASTSemCheckAssignment(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psLeftData
	GLSLNode* psLeftNode
	GLSLNode* psRightNode
	IMG_UINT32 uLevelsSearched
	{
		IMG_UINT32 uScopeLevel
		GLSLIdentifierData* psRightData
	}
}


// function
IMG_UINT32 ASTSemGetResultPrecision(
	GLSLTreeContext* psGLSLTreeContext
	IMG_UINT32 uNumChildren
	GLSLNode* psResultNode
	GLSLFullySpecifiedType* psResultFullySpecifiedType
	GLSLFullySpecifiedType* psFullySpecifiedTypes
	IMG_UINT32* puChildrenToConvert
	GLSLPrecisionQualifier* pePrecisionToConvertTo
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLPrecisionQualifier ePrecisionForResult
	IMG_UINT32 uNumChildrenToConvert
	{
		GLSLIdentifierData* psIdentifierData
	}
	{
		IMG_BOOL bDoConversion
	}
}


// function
IMG_BOOL ASTSemCheckAndUpdateArraySizes(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_BOOL bDeclaration
	GLSLFullySpecifiedType* psFullySpecifiedTypes
	GLSLArrayStatus* peArrayStatus
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLNode* psIdentifierNode
	GLSLNode* psIntegerExpressionNode
	GLSLIdentifierData* psIntegerData
	GLSLIdentifierData* psIdentifierData
	GLSLArrayStatus eArrayStatus
	IMG_INT32* piArraySize
	IMG_INT32* piActiveArraySize
	GLSLTypeSpecifier eTypeSpecifier
	IMG_UINT32 uNumChildren
	IMG_UINT32 i
	{
		IMG_INT32* piData
	}
}


// function
IMG_BOOL ASTUpdateIdentifierUsage(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_BOOL bAssignmentNode
	IMG_BOOL bDeclaration
	IMG_BOOL bError
	)
{
	GLSLCompilerPrivateData* psCPD
	GLSLIdentifierData* psIdentifierData
	{
		GLSLNode* psLeftNode
	}
}


// external function PC=<0x63514;0x668b4>
IMG_BOOL ASTSemCheckTypesAndCalculateResult(
	GLSLTreeContext* psGLSLTreeContext
	GLSLNode* psResultNode
	IMG_BOOL bDeclaration
	)
{
	GLSLCompilerPrivateData* psCPD
	IMG_UINT32 uNumChildren
	IMG_UINT32 i
	IMG_UINT32 uNumErrorNodes
	IMG_UINT32[4] uErrorNodeIndices
	IMG_UINT32 uNumCorrectNodes
	IMG_UINT32[4] uCorrectNodeIndices
	IMG_UINT32[4] uDimensions
	IMG_BOOL bAllErrorNodes
	GLSLGenericData* psChildGenericData
	GLSLFullySpecifiedType[4] asChildFullySpecifiedType
	GLSLArrayStatus[4] aeArrayStatus
	GLSLIdentifierData sResultData
	GLSLLValueStatus[4] aeChildLValueStatus
	GLSLPrecisionQualifier ePrecisionToConvertTo
	IMG_UINT32[4] auPrecisionConversionChildren
	IMG_UINT32 uNumChildrenRequiringPrecisionConstructor
	IMG_CHAR[256] acResultName
	IMG_CHAR[4] acDescriptions
	IMG_BOOL bAllConstants
	IMG_BOOL bError
	IMG_BOOL bAssignmentOperation
	IMG_BOOL bGenResultData
	IMG_BOOL bArrayPresent
	IMG_BOOL bArraySizesMatch
	IMG_BOOL bArraySizesDefined
	IMG_BOOL bArraySizesMatchedAndDefined
	IMG_BOOL bArraySizesOK
	IMG_BOOL bAllTypeSpecifiersMatch
	IMG_BOOL bAllBaseTypesMatch
	IMG_BOOL bAllNumbers
	{
		GLSLNode* psLastChildNode
	}
	// inlined
	// function
	IMG_UINT32 ASTCheckNodeNumChildren(
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psNode
		)
	{
		IMG_UINT32 uNumChildren
	}

	{
		GLSLNode* psChildNode
		// inlined
		// external function
		IMG_BOOL ASTSemCheckTypeSpecifiersMatch(
			GLSLFullySpecifiedType sType1
			GLSLFullySpecifiedType sType2
			)
		{
		}

		// inlined
		// function
		void ASTSemCheckForReplacementWithConstantData(
			GLSLTreeContext* psGLSLTreeContext
			GLSLNode* psResultNode
			IMG_UINT32 uChildIndex
			)
		{
			GLSLCompilerPrivateData* psCPD
			GLSLIdentifierData* psIdentifierData
		}

	}
	{
		GLSLIdentifierData* psIdentifierData
		GLSLIdentifierData* psGenericData
		GLSLNode* psLeftNode
		GLSLNode* psRightNode
		{
			GLSLSwizzleData* psSwizzleData
			{
				IMG_UINT32 j
			}
		}
	}
	{
		IMG_BOOL bBothFloats
		IMG_BOOL bBothInts
	}
	// inlined
	// function
	IMG_UINT32 ASTSemGetResultPrecision(
		GLSLTreeContext* psGLSLTreeContext
		IMG_UINT32 uNumChildren
		GLSLNode* psResultNode
		GLSLFullySpecifiedType* psResultFullySpecifiedType
		GLSLFullySpecifiedType* psFullySpecifiedTypes
		IMG_UINT32* puChildrenToConvert
		GLSLPrecisionQualifier* pePrecisionToConvertTo
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLPrecisionQualifier ePrecisionForResult
		IMG_UINT32 uNumChildrenToConvert
		{
			GLSLIdentifierData* psIdentifierData
		}
		{
			IMG_BOOL bDoConversion
		}
	}

	// inlined
	// function
	IMG_BOOL ASTSemCheckAndUpdateArraySizes(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		IMG_BOOL bDeclaration
		GLSLFullySpecifiedType* psFullySpecifiedTypes
		GLSLArrayStatus* peArrayStatus
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psIdentifierNode
		GLSLNode* psIntegerExpressionNode
		GLSLIdentifierData* psIntegerData
		GLSLIdentifierData* psIdentifierData
		GLSLArrayStatus eArrayStatus
		IMG_INT32* piArraySize
		IMG_INT32* piActiveArraySize
		GLSLTypeSpecifier eTypeSpecifier
		IMG_UINT32 uNumChildren
		IMG_UINT32 i
		{
			IMG_INT32* piData
		}
	}

	{
		GLSLFunctionDefinitionData* psFunctionDefinitionData
		// inlined
		// external function
		IMG_BOOL ASTSemCheckTypeSpecifiersMatch(
			GLSLFullySpecifiedType sType1
			GLSLFullySpecifiedType sType2
			)
		{
		}

	}
	{
		GLSLTypeSpecifier eLeftTypeSpecifier
		GLSLTypeSpecifier eRightTypeSpecifier
		// inlined
		// function
		void ASTSemReportWrongOperandTypes(
			ErrorLog* psErrorLog
			GLSLNode* psResultNode
			IMG_CHAR* pszDescription0
			IMG_CHAR* pszDescription1
			)
		{
		}

		{
			IMG_UINT32 uLeftNumCols
			IMG_UINT32 uLeftNumRows
			IMG_UINT32 uRightNumRows
			IMG_UINT32 uRightNumCols
			IMG_INT32 iResultAdjustment
			GLSLTypeSpecifier eResultTypeSpecifier
		}
	}
	// inlined
	// function
	IMG_BOOL ASTSemCheckAssignment(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLIdentifierData* psLeftData
		GLSLNode* psLeftNode
		GLSLNode* psRightNode
		IMG_UINT32 uLevelsSearched
		{
			IMG_UINT32 uScopeLevel
			GLSLIdentifierData* psRightData
		}
	}

	{
		GLSLNode* psChildNode
	}
	// inlined
	// function
	void ASTSemReportLValueError(
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psResultNode
		GLSLLValueStatus eLValueStatus
		GLSLTypeQualifier eTypeQualifier
		IMG_CHAR* pszString
		)
	{
	}

	// inlined
	// function
	IMG_BOOL ASTUpdateIdentifierUsage(
		GLSLTreeContext* psGLSLTreeContext
		GLSLNode* psResultNode
		IMG_BOOL bAssignmentNode
		IMG_BOOL bDeclaration
		IMG_BOOL bError
		)
	{
		GLSLCompilerPrivateData* psCPD
		GLSLIdentifierData* psIdentifierData
		{
			GLSLNode* psLeftNode
		}
	}

	// inlined
	// external function
	IMG_BOOL ASTSemCheckTypeSpecifiersMatch(
		GLSLFullySpecifiedType sType1
		GLSLFullySpecifiedType sType2
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandTypes(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription0
		IMG_CHAR* pszDescription1
		)
	{
	}

	// inlined
	// function
	void ASTSemReportMismatchedArraySizes(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription0
		IMG_CHAR* pszDescription1
		IMG_INT32 iArraySize1
		IMG_INT32 iArraySize2
		)
	{
		{
		}
	}

	// inlined
	// function
	void ASTSemReportWrongOperandTypes(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription0
		IMG_CHAR* pszDescription1
		)
	{
	}

	// inlined
	// function
	void ASTSemReportLValueError(
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psResultNode
		GLSLLValueStatus eLValueStatus
		GLSLTypeQualifier eTypeQualifier
		IMG_CHAR* pszString
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandTypes(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription0
		IMG_CHAR* pszDescription1
		)
	{
	}

	{
		IMG_BOOL bAssignmentOK
	}
	{
		GLSLNode* psLeftNode
		{
			IMG_UINT32 uIndexedDimension
		}
	}
	// inlined
	// function
	void ASTSemGetResultName(
		GLSLTreeContext* psGLSLTreeContext
		IMG_CHAR* pszResultName
		GLSLFullySpecifiedType* psFullySpecifiedType
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandTypes(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription0
		IMG_CHAR* pszDescription1
		)
	{
	}

	// inlined
	// function
	void ASTSemReportLValueError(
		GLSLCompilerPrivateData* psCPD
		GLSLNode* psResultNode
		GLSLLValueStatus eLValueStatus
		GLSLTypeQualifier eTypeQualifier
		IMG_CHAR* pszString
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandType(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandType(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription
		)
	{
	}

	// inlined
	// function
	void ASTSemReportWrongOperandType(
		ErrorLog* psErrorLog
		GLSLNode* psResultNode
		IMG_CHAR* pszDescription
		)
	{
	}

}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const IMG_UINT8[30] GLSLTypeSpecifierNumElementsTable

const IMG_UINT8[30] GLSLTypeSpecifierSizeTable

const IMG_UINT8[30] GLSLTypeSpecifierDimensionTable

const IMG_UINT8[30] GLSLTypeSpecifierIndexedTable

const const IMG_CHAR*[30] GLSLTypeSpecifierFullDescTable

const const IMG_CHAR*[30] GLSLTypeSpecifierDescTable

const GLSLTypeSpecifier[30] GLSLTypeSpecifierBaseType

const IMG_UINT8[30] GLSLTypeSpecifierNumColumnsCMTable

const IMG_UINT8[30] GLSLTypeSpecifierNumColumnsRMTable

const IMG_UINT8[30] GLSLTypeSpecifierNumRowsCMTable

const IMG_UINT8[30] GLSLTypeSpecifierNumRowsRMTable

const IMG_UINT8[30] GLSLTypeSpecifierIsNumberTable

const const IMG_CHAR*[6] GLSLTypeQualifierFullDescTable

const IMG_UINT8[NaN] GLSLBuiltInFunctionEmulatableTable

const IMG_UINT8[NaN] GLSLBuiltInFunctionUseGradientsTable

const IMG_UINT8[NaN] GLSLBuiltInFunctionTextureSampler

