@galacean/engine-shaderlab 1.6.9 → 1.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/browser.verbose.js +1 -1
- package/dist/browser.verbose.js.map +1 -1
- package/dist/browser.verbose.min.js +1 -1
- package/dist/browser.verbose.min.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/main.verbose.js +1 -1
- package/dist/main.verbose.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/module.verbose.js +1 -1
- package/dist/module.verbose.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Galacean=e.Galacean||{},e.Galacean.ShaderLab={}),e.Galacean)}(this,function(e,t){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,void 0)}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}function o(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&s(e.prototype,t),r&&s(e,r),e}function l(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o}"function"==typeof SuppressedError&&SuppressedError;var u,p,h,_,f,d,m,S,g,v,y,x,E,C,A,T,b,O,I,L,P,R,M,N,D,G,k,V,F,B,w,U,W,z,H,j,q,X,Q,Y,K,J,Z,$,ee,et,er,en,ei,ea,eo,es,ec,el,eu,ep,eh,e_,ef,ed,em,eS,eg,ev,ey,ex,eE,eC,eA,eT,eb,eO,eI,eL,eP,eR,eM,eN,eD,eG,ek,eV,eF,eB,ew,eU,eW,ez,eH,ej,eq,eX,eQ,eY,eK,eJ,eZ,e$,e0,e2,e1,e3,e4,e9,e5,e6,e7,e8,te,tt,tr=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t){this.start=e,this.end=t},t.dispose=function(){this.start.dispose(),this.end.dispose()},e}(),tn=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t,r){this.index=e,this.line=t,this.column=r},t.dispose=function(){this.index=0,this.line=0,this.column=0},e}(),ti=((u={})[u.ID=1e3]="ID",u[u.FLOAT_CONSTANT=1001]="FLOAT_CONSTANT",u[u.INT_CONSTANT=1002]="INT_CONSTANT",u[u.STRING_CONST=1003]="STRING_CONST",u[u.LEFT_OP=1004]="LEFT_OP",u[u.RIGHT_OP=1005]="RIGHT_OP",u[u.INC_OP=1006]="INC_OP",u[u.DEC_OP=1007]="DEC_OP",u[u.LE_OP=1008]="LE_OP",u[u.GE_OP=1009]="GE_OP",u[u.EQ_OP=1010]="EQ_OP",u[u.NE_OP=1011]="NE_OP",u[u.AND_OP=1012]="AND_OP",u[u.OR_OP=1013]="OR_OP",u[u.XOR_OP=1014]="XOR_OP",u[u.MUL_ASSIGN=1015]="MUL_ASSIGN",u[u.DIV_ASSIGN=1016]="DIV_ASSIGN",u[u.ADD_ASSIGN=1017]="ADD_ASSIGN",u[u.SUB_ASSIGN=1018]="SUB_ASSIGN",u[u.MOD_ASSIGN=1019]="MOD_ASSIGN",u[u.LEFT_ASSIGN=1020]="LEFT_ASSIGN",u[u.RIGHT_ASSIGN=1021]="RIGHT_ASSIGN",u[u.AND_ASSIGN=1022]="AND_ASSIGN",u[u.XOR_ASSIGN=1023]="XOR_ASSIGN",u[u.OR_ASSIGN=1024]="OR_ASSIGN",u[u.LEFT_PAREN=1025]="LEFT_PAREN",u[u.RIGHT_PAREN=1026]="RIGHT_PAREN",u[u.LEFT_BRACKET=1027]="LEFT_BRACKET",u[u.RIGHT_BRACKET=1028]="RIGHT_BRACKET",u[u.LEFT_BRACE=1029]="LEFT_BRACE",u[u.RIGHT_BRACE=1030]="RIGHT_BRACE",u[u.DOT=1031]="DOT",u[u.COMMA=1032]="COMMA",u[u.COLON=1033]="COLON",u[u.EQUAL=1034]="EQUAL",u[u.SEMICOLON=1035]="SEMICOLON",u[u.BANG=1036]="BANG",u[u.DASH=1037]="DASH",u[u.TILDE=1038]="TILDE",u[u.PLUS=1039]="PLUS",u[u.STAR=1040]="STAR",u[u.SLASH=1041]="SLASH",u[u.PERCENT=1042]="PERCENT",u[u.LEFT_ANGLE=1043]="LEFT_ANGLE",u[u.RIGHT_ANGLE=1044]="RIGHT_ANGLE",u[u.VERTICAL_BAR=1045]="VERTICAL_BAR",u[u.CARET=1046]="CARET",u[u.AMPERSAND=1047]="AMPERSAND",u[u.QUESTION=1048]="QUESTION",u[u.NotWord=1049]="NotWord",u[u.EPSILON=1998]="EPSILON",u[u.EOF=1999]="EOF",u),ta=((p={})[p.CONST=0]="CONST",p[p.BOOL=1]="BOOL",p[p.FLOAT=2]="FLOAT",p[p.DOUBLE=3]="DOUBLE",p[p.INT=4]="INT",p[p.UINT=5]="UINT",p[p.BREAK=6]="BREAK",p[p.CONTINUE=7]="CONTINUE",p[p.DO=8]="DO",p[p.ELSE=9]="ELSE",p[p.FOR=10]="FOR",p[p.IF=11]="IF",p[p.WHILE=12]="WHILE",p[p.DISCARD=13]="DISCARD",p[p.RETURN=14]="RETURN",p[p.BVEC2=15]="BVEC2",p[p.BVEC3=16]="BVEC3",p[p.BVEC4=17]="BVEC4",p[p.IVEC2=18]="IVEC2",p[p.IVEC3=19]="IVEC3",p[p.IVEC4=20]="IVEC4",p[p.UVEC2=21]="UVEC2",p[p.UVEC3=22]="UVEC3",p[p.UVEC4=23]="UVEC4",p[p.VEC2=24]="VEC2",p[p.VEC3=25]="VEC3",p[p.VEC4=26]="VEC4",p[p.VEC4_ARRAY=27]="VEC4_ARRAY",p[p.MAT2=28]="MAT2",p[p.MAT3=29]="MAT3",p[p.MAT4=30]="MAT4",p[p.MAT2X3=31]="MAT2X3",p[p.MAT2X4=32]="MAT2X4",p[p.MAT3X2=33]="MAT3X2",p[p.MAT3X4=34]="MAT3X4",p[p.MAT4X2=35]="MAT4X2",p[p.MAT4X3=36]="MAT4X3",p[p.IN=37]="IN",p[p.OUT=38]="OUT",p[p.INOUT=39]="INOUT",p[p.CENTROID=40]="CENTROID",p[p.SAMPLER2D=41]="SAMPLER2D",p[p.SAMPLER3D=42]="SAMPLER3D",p[p.SAMPLER_CUBE=43]="SAMPLER_CUBE",p[p.SAMPLER2D_SHADOW=44]="SAMPLER2D_SHADOW",p[p.SAMPLER_CUBE_SHADOW=45]="SAMPLER_CUBE_SHADOW",p[p.SAMPLER2D_ARRAY=46]="SAMPLER2D_ARRAY",p[p.SAMPLER2D_ARRAY_SHADOW=47]="SAMPLER2D_ARRAY_SHADOW",p[p.I_SAMPLER2D=48]="I_SAMPLER2D",p[p.I_SAMPLER3D=49]="I_SAMPLER3D",p[p.I_SAMPLER_CUBE=50]="I_SAMPLER_CUBE",p[p.I_SAMPLER2D_ARRAY=51]="I_SAMPLER2D_ARRAY",p[p.U_SAMPLER2D=52]="U_SAMPLER2D",p[p.U_SAMPLER3D=53]="U_SAMPLER3D",p[p.U_SAMPLER_CUBE=54]="U_SAMPLER_CUBE",p[p.U_SAMPLER2D_ARRAY=55]="U_SAMPLER2D_ARRAY",p[p.STRUCT=56]="STRUCT",p[p.LAYOUT=57]="LAYOUT",p[p.LOCATION=58]="LOCATION",p[p.VOID=59]="VOID",p[p.PRECISION=60]="PRECISION",p[p.PRECISE=61]="PRECISE",p[p.HIGHP=62]="HIGHP",p[p.MEDIUMP=63]="MEDIUMP",p[p.LOWP=64]="LOWP",p[p.INVARIANT=65]="INVARIANT",p[p.SMOOTH=66]="SMOOTH",p[p.FLAT=67]="FLAT",p[p.NOPERSPECTIVE=68]="NOPERSPECTIVE",p[p.True=69]="True",p[p.False=70]="False",p[p.LeftBrace=71]="LeftBrace",p[p.RightBrace=72]="RightBrace",p[p.Equal=73]="Equal",p[p.GSRenderQueueType=74]="GSRenderQueueType",p[p.GSBlendState=75]="GSBlendState",p[p.GSDepthState=76]="GSDepthState",p[p.GSStencilState=77]="GSStencilState",p[p.GSRasterState=78]="GSRasterState",p[p.GSEditorProperties=79]="GSEditorProperties",p[p.GSEditorMacros=80]="GSEditorMacros",p[p.GSEditor=81]="GSEditor",p[p.GSTags=82]="GSTags",p[p.GSVertexShader=83]="GSVertexShader",p[p.GSFragmentShader=84]="GSFragmentShader",p[p.GSSubShader=85]="GSSubShader",p[p.GSPass=86]="GSPass",p[p.GSBlendFactor=87]="GSBlendFactor",p[p.GSBlendOperation=88]="GSBlendOperation",p[p.GSBool=89]="GSBool",p[p.GSNumber=90]="GSNumber",p[p.GSColor=91]="GSColor",p[p.GSCompareFunction=92]="GSCompareFunction",p[p.GSStencilOperation=93]="GSStencilOperation",p[p.GSCullMode=94]="GSCullMode",p[p.GSUsePass=95]="GSUsePass",p[p.MACRO_IF=96]="MACRO_IF",p[p.MACRO_IFDEF=97]="MACRO_IFDEF",p[p.MACRO_IFNDEF=98]="MACRO_IFNDEF",p[p.MACRO_ELSE=99]="MACRO_ELSE",p[p.MACRO_ELIF=100]="MACRO_ELIF",p[p.MACRO_ENDIF=101]="MACRO_ENDIF",p[p.MACRO_UNDEF=102]="MACRO_UNDEF",p[p.MACRO_DEFINE_EXPRESSION=103]="MACRO_DEFINE_EXPRESSION",p[p.MACRO_CONDITIONAL_EXPRESSION=104]="MACRO_CONDITIONAL_EXPRESSION",p[p.MACRO_CALL=105]="MACRO_CALL",p);function to(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(to=function(){return!!e})()}function ts(e,t,r){return(ts=to()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&i(a,r.prototype),a}).apply(null,arguments)}function tc(e){return(tc=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tl(e){var t="function"==typeof Map?new Map:void 0;return(tl=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return ts(e,arguments,tc(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i(r,e)})(e)}var tu=/*#__PURE__*/function(e){function t(t,r,n,i,a){var o;return(o=e.call(this,r)||this).location=n,o.source=i,o.file=a,o.name=t,o}return a(t,e),t.prototype.toString=function(){var e,r,n=this.message,i=this.location,a=this.source;if(!a)return n;o(i,tn)?e=r=i:(e=i.start,r=i.end);for(var s=a.split("\n"),c=this.name+": "+n+"\n\n",l="|\xb7\xb7\xb7",u=t.wrappingLineCount,p=e.line-u,h=r.line+u;p<=h;p++){var _=s[p];if(c+=l+""+_+"\n",!(p<e.line)&&!(p>r.line)){var f=0,d=_.length,m=l.length;p===e.line&&(f=e.column,m+=e.column),p===r.line&&(d=r.column);var S=Math.max(d-f,1);c+=" ".repeat(m)+"^".repeat(S)+"\n"}}return c},t}(tl(Error));tu.wrappingLineCount=2;var tp=((h={}).PreprocessorError="PreprocessorError",h.CompilationError="CompilationError",h.ScannerError="ScannerError",h.CompilationWarn="CompilationWarning",h),th=/*#__PURE__*/function(){function e(){}return e.createObjectPool=function(r){var n=new t.ClearableObjectPool(r);return e._shaderLabObjectPoolSet.push(n),n},e.clearAllShaderLabObjectPool=function(){for(var t=0,r=e._shaderLabObjectPoolSet.length;t<r;t++)e._shaderLabObjectPoolSet[t].clear()},e.createGSError=function(e,t,r,n,i){return new tu(t,e,n,r,i)},e}();th._shaderLabObjectPoolSet=[];var t_=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t,r){if(this.type=e,this.lexeme=t,r){if(o(r,tr))this.location=r;else{var n=rc.createPosition(r.index+t.length,r.line,r.column+t.length);this.location=rc.createRange(r,n)}}},t.dispose=function(){},e}();t_.pool=th.createObjectPool(t_);var tf=new t_;tf.set(ti.EOF,"/EOF");var td=((_={})[_.START=2e3]="START",_[_.gs_shader_program=2001]="gs_shader_program",_[_.global_declaration=2002]="global_declaration",_[_.variable_declaration=2003]="variable_declaration",_[_.variable_declaration_list=2004]="variable_declaration_list",_[_.variable_declaration_statement=2005]="variable_declaration_statement",_[_.array_specifier_list=2006]="array_specifier_list",_[_.array_specifier=2007]="array_specifier",_[_.ext_builtin_type_specifier_nonarray=2008]="ext_builtin_type_specifier_nonarray",_[_.precision_specifier=2009]="precision_specifier",_[_.variable_identifier=2010]="variable_identifier",_[_.variable_identifier_node=2011]="variable_identifier_node",_[_.primary_expression=2012]="primary_expression",_[_.postfix_expression=2013]="postfix_expression",_[_.integer_expression=2014]="integer_expression",_[_.function_call=2015]="function_call",_[_.function_call_generic=2016]="function_call_generic",_[_.function_call_header_no_parameters=2017]="function_call_header_no_parameters",_[_.function_call_header_with_parameters=2018]="function_call_header_with_parameters",_[_.function_call_parameter_list=2019]="function_call_parameter_list",_[_.function_call_header=2020]="function_call_header",_[_.function_identifier=2021]="function_identifier",_[_.constructor_identifier=2022]="constructor_identifier",_[_.unary_expression=2023]="unary_expression",_[_.unary_operator=2024]="unary_operator",_[_.multiplicative_expression=2025]="multiplicative_expression",_[_.additive_expression=2026]="additive_expression",_[_.shift_expression=2027]="shift_expression",_[_.relational_expression=2028]="relational_expression",_[_.equality_expression=2029]="equality_expression",_[_.and_expression=2030]="and_expression",_[_.inclusive_or_expression=2031]="inclusive_or_expression",_[_.exclusive_or_expression=2032]="exclusive_or_expression",_[_.logical_and_expression=2033]="logical_and_expression",_[_.logical_xor_expression=2034]="logical_xor_expression",_[_.logical_or_expression=2035]="logical_or_expression",_[_.conditional_expression=2036]="conditional_expression",_[_.assignment_expression=2037]="assignment_expression",_[_.assignment_operator=2038]="assignment_operator",_[_.expression=2039]="expression",_[_.integer_constant_expression=2040]="integer_constant_expression",_[_.integer_constant_expression_operator=2041]="integer_constant_expression_operator",_[_.declaration=2042]="declaration",_[_.function_prototype=2043]="function_prototype",_[_.function_declarator=2044]="function_declarator",_[_.function_header_with_parameters=2045]="function_header_with_parameters",_[_.function_header=2046]="function_header",_[_.function_parameter_list=2047]="function_parameter_list",_[_.parameter_declarator=2048]="parameter_declarator",_[_.parameter_declaration=2049]="parameter_declaration",_[_.parameter_qualifier=2050]="parameter_qualifier",_[_.parameter_type_specifier=2051]="parameter_type_specifier",_[_.init_declarator_list=2052]="init_declarator_list",_[_.single_declaration=2053]="single_declaration",_[_.fully_specified_type=2054]="fully_specified_type",_[_.type_qualifier=2055]="type_qualifier",_[_.single_type_qualifier=2056]="single_type_qualifier",_[_.storage_qualifier=2057]="storage_qualifier",_[_.precision_qualifier=2058]="precision_qualifier",_[_.interpolation_qualifier=2059]="interpolation_qualifier",_[_.invariant_qualifier=2060]="invariant_qualifier",_[_.type_specifier=2061]="type_specifier",_[_.type_specifier_nonarray=2062]="type_specifier_nonarray",_[_.type_specifier_no_prec=2063]="type_specifier_no_prec",_[_.basic_type=2064]="basic_type",_[_.struct_specifier=2065]="struct_specifier",_[_.struct_declaration_list=2066]="struct_declaration_list",_[_.struct_declaration=2067]="struct_declaration",_[_.layout_qualifier=2068]="layout_qualifier",_[_.struct_declarator_list=2069]="struct_declarator_list",_[_.struct_declarator=2070]="struct_declarator",_[_.identifier_list=2071]="identifier_list",_[_.decl_identifier=2072]="decl_identifier",_[_.initializer=2073]="initializer",_[_.initializer_list=2074]="initializer_list",_[_.declaration_statement=2075]="declaration_statement",_[_.simple_statement=2076]="simple_statement",_[_.compound_statement_no_scope=2077]="compound_statement_no_scope",_[_.statement_with_scope=2078]="statement_with_scope",_[_.compound_statement=2079]="compound_statement",_[_.statement=2080]="statement",_[_.statement_list=2081]="statement_list",_[_.iteration_statement_no_new_scope=2082]="iteration_statement_no_new_scope",_[_.expression_statement=2083]="expression_statement",_[_.selection_statement=2084]="selection_statement",_[_.selection_rest_statement=2085]="selection_rest_statement",_[_.condition=2086]="condition",_[_.conditionopt=2087]="conditionopt",_[_.iteration_statement=2088]="iteration_statement",_[_.for_init_statement=2089]="for_init_statement",_[_.for_rest_statement=2090]="for_rest_statement",_[_.jump_statement=2091]="jump_statement",_[_.external_declaration=2092]="external_declaration",_[_.function_definition=2093]="function_definition",_[_.field_selection=2094]="field_selection",_[_.bool_constant=2095]="bool_constant",_[_.function_identifier_node=2096]="function_identifier_node",_[_.typename_identifier_node=2097]="typename_identifier_node",_[_.scope_brace=2098]="scope_brace",_[_.scope_end_brace=2099]="scope_end_brace",_[_.macro_undef=2100]="macro_undef",_[_.macro_push_context=2101]="macro_push_context",_[_.macro_pop_context=2102]="macro_pop_context",_[_.macro_elif_expression=2103]="macro_elif_expression",_[_.macro_else_expression=2104]="macro_else_expression",_[_.global_macro_if_statement=2105]="global_macro_if_statement",_[_.global_macro_declaration=2106]="global_macro_declaration",_[_.global_macro_branch=2107]="global_macro_branch",_[_.macro_struct_declaration=2108]="macro_struct_declaration",_[_.macro_struct_branch=2109]="macro_struct_branch",_[_.macro_if_statement=2110]="macro_if_statement",_[_.macro_branch=2111]="macro_branch",_[_.macro_param_case_list=2112]="macro_param_case_list",_[_.macro_param_block=2113]="macro_param_block",_[_.macro_parameter_branch=2114]="macro_parameter_branch",_[_.macro_call_arg_case_list=2115]="macro_call_arg_case_list",_[_.macro_call_arg_block=2116]="macro_call_arg_block",_[_.macro_call_arg_branch=2117]="macro_call_arg_branch",_[_.macro_call_symbol=2118]="macro_call_symbol",_[_.macro_call_function=2119]="macro_call_function",_[_._ignore=2120]="_ignore",_),tm=function e(t,r){this.goal=t,this.derivation=r,this.id=e._id++,e.pool.set(this.id,this)};tm._id=0,tm.pool=new Map;var tS=((f={})[f.Shift=0]="Shift",f[f.Reduce=1]="Reduce",f[f.Accept=2]="Accept",f),tg=/*#__PURE__*/function(){function e(){}return e.isTerminal=function(e){return e<td.START},e.toString=function(e){if(this.isTerminal(e)){var t;return null!=(t=ti[e])?t:ta[e]}return td[e]},e.createProductionWithOptions=function(e,t,r){for(var i,a=[],o=n(t);!(i=o()).done;){var s=i.value;a.push([[].concat([e],s),function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(n[0]){var a=n[0].location.start,o=n[n.length-1].location.end,s=rc.createRange(a,o);tt.get(null!=r?r:tt.TrivialNode.pool,e,s,n)}}])}return a},e.addMapSetItem=function(e,t,r){var n,i=null!=(n=e.get(t))?n:new Set;i.add(r),e.set(t,i)},e.isSubSet=function(e,t){for(var r,i=n(e);!(r=i()).done;){var a=r.value;if(!t.has(a))return!1}return!0},e.isActionEqual=function(e,t){return e.action===t.action&&e.target===t.target},e.printAction=function(e){var t=tm.pool.get(e.target);return"<Action: "+tS[e.action]+" -> "+this.printProduction(t)+">"},e.printProduction=function(t){var r=t.derivation.map(function(t){return e.toString(t)}).join("|");return td[t.goal]+" :=> "+r},e}(),tv=/*#__PURE__*/function(){function e(t,r,i){this._needReInfer=!0,this.production=t,this.position=r,this.lookaheadSet=new Set;for(var a,o=n(i);!(a=o()).done;){var s=a.value;this.lookaheadSet.add(s)}this.id=e._id++}var t=e.prototype;return t.addLookahead=function(e){for(var t,r=n(e);!(t=r()).done;){var i=t.value;this.lookaheadSet.has(i)||(this.lookaheadSet.add(i),this.needReInfer=!0)}},t.symbolByOffset=function(e){return this.production.derivation[this.position+e]},t.canReduce=function(){if(this.position>this.production.derivation.length-1)return!0;for(var e=this.position;e<this.production.derivation.length;e++)if(this.production.derivation[e]!==ti.EPSILON)return!1;return!0},t.advance=function(){if(this.canReduce())throw"Error: advance reduce-able parsing state item";return new e(this.production,this.position+1,this.lookaheadSet)},t.toString=function(){var e,t=this.production.derivation.map(function(e){return tg.toString(e)});return t[this.position]="."+(null!=(e=t[this.position])?e:""),td[this.production.goal]+" :=> "+t.join("|")+" ;"+Array.from(this.lookaheadSet).map(function(e){return tg.toString(e)}).join("/")},c(e,[{key:"needReInfer",get:function(){return this._needReInfer},set:function(e){this._needReInfer=e}},{key:"curSymbol",get:function(){return this.production.derivation[this.position]}},{key:"nextSymbol",get:function(){return this.production.derivation[this.position+1]}}]),e}();tv._id=0;var ty=/*#__PURE__*/function(){function e(t){this.closured=!1,this._stateItemPool=new Map,this.id=e._id++,this._items=new Set([].concat(t)),this.cores=new Set([].concat(t));for(var r,i=n(t);!(r=i()).done;){var a=r.value,o=this.getStateItemMapKey(a.production,a.position);this._stateItemPool.set(o,a)}e.pool.set(this.id,this)}var t=e.prototype;return t.getStateItemMapKey=function(e,t){return e.id+","+t},t.createStateItem=function(e,t,r){void 0===r&&(r=new Set);var i=this.getStateItemMapKey(e,t),a=this._stateItemPool.get(i);if(a){for(var o,s=n(r);!(o=s()).done;){var c=o.value;a.lookaheadSet.has(c)||(a.lookaheadSet.add(c),a.needReInfer=!0)}return a}var l=new tv(e,t,r);return this._stateItemPool.set(i,l),l},e.create=function(t){var r=this.getMapKey(t),i=this.closureMap.get(r);if(i){for(var a,o=n(t);!(a=o()).done;){var s=a.value;i.createStateItem(s.production,s.position,s.lookaheadSet)}return i}var c=new e(t);return this.closureMap.set(r,c),c},e.getMapKey=function(e){return e.map(function(e){return e.production.id+","+e.position}).join(";")},c(e,[{key:"items",get:function(){return this._items}},{key:"needReInfer",get:function(){for(var e,t=n(this.cores);!(e=t()).done;)if(e.value.needReInfer)return!0;return!1}}]),e}();ty.closureMap=new Map,ty.pool=new Map,ty._id=0;var tx=/*#__PURE__*/function(){function e(){}return e.unwrapNodeByType=function(t,r){var n=t.children[0];if(!o(n,t_))return n.nt===r?n:e.unwrapNodeByType(n,r)},e.typeCompatible=function(e,t){return void 0==t||3e3===t||(e===ta.INT?e===t||t===ta.UINT:e===t)},e.toString=function(e){if(this.isTerminal(e)){var t;return null!=(t=ti[e])?t:ta[e]}return td[e]},e.isTerminal=function(e){return e<td.START},e.printStatePool=function(e){var t="";console.log("========== Parser Pool ==========");for(var r,i=0,a=n(ty.pool.values());!(r=a()).done;){var o=r.value;i++;var s="";s+=(""+o.id+": \n").padEnd(4);for(var c,l=n(o.items);!(c=l()).done;)s+=" "+c.value.toString()+"\n";t+=s}console.log("state count:",i),console.log(t)},e}(),tE=/*#__PURE__*/function(){function e(){}return e.parse=function(e,t,r,n){var i=this;return void 0===n&&(n=!0),n&&this._parseMacroDefines(e,r),e.replace(this._includeReg,function(e,n){return i._replace(n,t,r)})},e.getReferenceSymbolNames=function(e,r,n){n.length=0;var i=e[r];if(i)for(var a=0;a<i.length;a++){var o=i[a],s=o.valueType;if(2===s||1===s){var c=2===s?o.functionCallName:o.value;if(-1!==o.params.indexOf(c))continue;-1===n.indexOf(c)&&n.push(c)}else 3===s&&t.Logger.warn('Warning: Macro "'+o.name+'" has an unrecognized value "'+o.value+'". ShaderLab does not validate this type.')}},e._isNumber=function(e){return!isNaN(Number(e))},e._isExist=function(e,t){return e.some(function(e){return e.valueType===t.valueType&&e.value===t.value&&e.isFunction===t.isFunction&&e.functionCallName===t.functionCallName&&e.params.length===t.params.length&&e.params.every(function(e,r){return e===t.params[r]})})},e._parseMacroDefines=function(e,t){var r;for(this._macroRegex.lastIndex=0;null!==(r=this._macroRegex.exec(e));){var n=r[1],i=r[2],a=r[3],o=r[4],s=!!i&&!!o,c=s&&a?a.split(",").map(function(e){return e.trim()}).filter(Boolean):[],l=o?o.trim():"",u=3,p="";if(this._isNumber(l))u=0;else if(this._symbolReg.test(l))u=1;else{var h=this._funcCallReg.exec(l);h&&(u=2,p=h[1])}var _={isFunction:s,name:n,value:l,valueType:u,params:c,functionCallName:p},f=t[n];f?this._isExist(f,_)||f.push(_):t[n]=[_]}},e._mergeMacroDefineLists=function(e,t){for(var r in e)if(t[r])for(var n=t[r],i=e[r],a=0;a<i.length;a++){var o=i[a];this._isExist(n,o)||n.push(o)}else t[r]=e[r]},e._replace=function(e,r,n){i="."===e[0]?new URL(e,r).href.substring(t.ShaderPass._shaderRootPath.length):e;var i,a=t.ShaderLib[i];if(!a)return t.Logger.error('Shader slice "'+i+'" not founded.'),"";if(this._repeatIncludeSet.has(i)&&t.Logger.warn('Shader slice "'+i+'" is included multiple times.'),this._repeatIncludeSet.add(i),this._macroDefineIncludeMap.has(i))this._mergeMacroDefineLists(this._macroDefineIncludeMap.get(i),n);else{var o={};this._parseMacroDefines(a,o),this._macroDefineIncludeMap.set(i,o),this._mergeMacroDefineLists(o,n)}return this.parse(a,r,n,!1)},e}();tE._includeReg=/^[ \t]*#include +"([\w\d./]+)"/gm,tE._macroRegex=/^\s*#define\s+(\w+)[ ]*(\(([^)]*)\))?[ ]+(\(?\w+\)?.*?)(?:\/\/.*|\/\*.*?\*\/)?\s*$/gm,tE._symbolReg=/^[a-zA-Z_][a-zA-Z0-9_]*$/,tE._funcCallReg=/^([a-zA-Z_][a-zA-Z0-9_]*)\s*\((.*)\)$/,tE._macroDefineIncludeMap=new Map,tE._repeatIncludeSet=new Set;var tC=((d={})[d.VERTEX=0]="VERTEX",d[d.FRAGMENT=1]="FRAGMENT",d[d.ALL=2]="ALL",d);function tA(e){return e>=200&&e<=213}var tT=new Map,tb=/*#__PURE__*/function(){function e(e,t,r){for(var n=arguments.length,i=Array(n>3?n-3:0),a=3;a<n;a++)i[a-3]=arguments[a];this.ident=e,this._returnType=t,this.args=i,this.scope=r}return e.getReturnType=function(e,t){return tA(e._returnType)?t:e._returnType},e._create=function(t,r){for(var n,i=arguments.length,a=Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];var s=ts(e,[].concat([t,r,tC.ALL],a)),c=null!=(n=tT.get(t))?n:[];c.push(s),tT.set(t,c)},e._createWithScop=function(t,r,n){for(var i,a=arguments.length,o=Array(a>3?a-3:0),s=3;s<a;s++)o[s-3]=arguments[s];var c=ts(e,[].concat([t,r,n],o)),l=null!=(i=tT.get(t))?i:[];l.push(c),tT.set(t,l)},e.getFn=function(e,t){var r=tT.get(e);if(r)for(var n=r.length,i=0;i<n;i++){var a=r[i],o=a.args,s=o.length;if(s===t.length){for(var c=3e3,l=!0,u=0;u<s;u++){var p=o[u];if(tA(p))3e3===c&&(c=t[u]);else if(p!==t[u]&&3e3!==t[u]){l=!1;break}}if(l)return a._realReturnType=c,a}}},e.isExist=function(e){return!!tT.get(e)},c(e,[{key:"realReturnType",get:function(){return this._realReturnType}}]),e}();tb._create("radians",200,200),tb._create("degrees",200,200),tb._create("sin",200,200),tb._create("cos",200,200),tb._create("tan",200,200),tb._create("asin",200,200),tb._create("acos",200,200),tb._create("atan",200,200,200),tb._create("atan",200,200),tb._create("sinh",200,200),tb._create("cosh",200,200),tb._create("tanh",200,200),tb._create("asinh",200,200),tb._create("acosh",200,200),tb._create("atanh",200,200),tb._create("pow",200,200,200),tb._create("exp",200,200),tb._create("log",200,200),tb._create("exp2",200,200),tb._create("log2",200,200),tb._create("sqrt",200,200),tb._create("inversesqrt",200,200),tb._create("abs",200,200),tb._create("abs",201,201),tb._create("sign",200,200),tb._create("sign",201,201),tb._create("floor",200,200),tb._create("trunc",200,200),tb._create("round",200,200),tb._create("roundEven",200,200),tb._create("ceil",200,200),tb._create("fract",200,200),tb._create("mod",200,200,ta.FLOAT),tb._create("mod",200,200,200),tb._create("min",200,200,200),tb._create("min",200,200,ta.FLOAT),tb._create("min",201,201,201),tb._create("min",201,201,ta.INT),tb._create("min",202,202,202),tb._create("min",202,202,ta.UINT),tb._create("max",200,200,200),tb._create("max",200,200,ta.FLOAT),tb._create("max",201,201,201),tb._create("max",201,201,ta.INT),tb._create("clamp",200,200,200,200),tb._create("clamp",200,200,ta.FLOAT,ta.FLOAT),tb._create("clamp",201,201,201,201),tb._create("clamp",201,201,ta.INT,ta.INT),tb._create("clamp",202,202,202,202),tb._create("clamp",202,202,ta.UINT,ta.UINT),tb._create("mix",200,200,200,200),tb._create("mix",200,200,200,ta.FLOAT),tb._create("mix",200,200,200,203),tb._create("step",200,200,200),tb._create("step",200,ta.FLOAT,200),tb._create("smoothstep",200,200,200,200),tb._create("smoothstep",200,ta.FLOAT,ta.FLOAT,200),tb._create("isnan",203,200),tb._create("isinf",203,200),tb._create("floatBitsToInt",200,200),tb._create("floatBitsToUint",202,200),tb._create("intBitsToFloat",200,201),tb._create("uintBitsToFloat",200,202),tb._create("packSnorm2x16",ta.UINT,ta.VEC2),tb._create("unpackSnorm2x16",ta.VEC2,ta.UINT),tb._create("packUnorm2x16",ta.UINT,ta.VEC2),tb._create("unpackUnorm2x16",ta.VEC2,ta.UINT),tb._create("packHalf2x16",ta.UINT,ta.VEC2),tb._create("unpackHalf2x16",ta.VEC2,ta.UINT),tb._create("length",ta.FLOAT,200),tb._create("distance",ta.FLOAT,200,200),tb._create("dot",ta.FLOAT,200,200),tb._create("cross",ta.VEC3,ta.VEC3,ta.VEC3),tb._create("normalize",200,200),tb._create("faceforward",200,200,200,200),tb._create("reflect",200,200,200),tb._create("refract",200,200,200,ta.FLOAT),tb._create("matrixCompMult",204,204,204),tb._create("outerProduct",ta.MAT2,ta.VEC2,ta.VEC2),tb._create("outerProduct",ta.MAT3,ta.VEC3,ta.VEC3),tb._create("outerProduct",ta.MAT4,ta.VEC4,ta.VEC4),tb._create("outerProduct",ta.MAT2X3,ta.VEC3,ta.VEC2),tb._create("outerProduct",ta.MAT3X2,ta.VEC2,ta.VEC3),tb._create("outerProduct",ta.MAT2X4,ta.VEC4,ta.VEC2),tb._create("outerProduct",ta.MAT4X2,ta.VEC2,ta.VEC4),tb._create("outerProduct",ta.MAT3X4,ta.VEC4,ta.VEC3),tb._create("outerProduct",ta.MAT4X3,ta.VEC3,ta.VEC4),tb._create("transpose",ta.MAT2,ta.MAT2),tb._create("transpose",ta.MAT3,ta.MAT3),tb._create("transpose",ta.MAT4,ta.MAT4),tb._create("transpose",ta.MAT2X3,ta.MAT3X2),tb._create("transpose",ta.MAT3X2,ta.MAT2X3),tb._create("transpose",ta.MAT4X2,ta.MAT2X4),tb._create("transpose",ta.MAT2X4,ta.MAT4X2),tb._create("transpose",ta.MAT3X4,ta.MAT4X3),tb._create("transpose",ta.MAT4X3,ta.MAT3X4),tb._create("determinant",ta.FLOAT,ta.MAT2),tb._create("determinant",ta.FLOAT,ta.MAT3),tb._create("determinant",ta.FLOAT,ta.MAT4),tb._create("inverse",ta.MAT2,ta.MAT2),tb._create("inverse",ta.MAT3,ta.MAT3),tb._create("inverse",ta.MAT4,ta.MAT4),tb._create("lessThan",205,208,208),tb._create("lessThan",205,206,206),tb._create("lessThan",205,207,207),tb._create("lessThanEqual",205,208,208),tb._create("lessThanEqual",205,206,206),tb._create("lessThanEqual",205,207,207),tb._create("greaterThan",205,208,208),tb._create("greaterThan",205,206,206),tb._create("greaterThan",205,207,207),tb._create("greaterThanEqual",205,208,208),tb._create("greaterThanEqual",205,206,206),tb._create("greaterThanEqual",205,207,207),tb._create("equal",205,208,208),tb._create("equal",205,206,206),tb._create("equal",205,207,207),tb._create("equal",205,205,205),tb._create("notEqual",205,208,208),tb._create("notEqual",205,206,206),tb._create("notEqual",205,207,207),tb._create("notEqual",205,205,205),tb._create("any",ta.BOOL,205),tb._create("all",ta.BOOL,205),tb._create("not",205,205),tb._create("textureSize",ta.IVEC2,210,ta.INT),tb._create("textureSize",ta.IVEC3,211,ta.INT),tb._create("textureSize",ta.IVEC2,212,ta.INT),tb._create("textureSize",ta.IVEC2,ta.SAMPLER2D_SHADOW,ta.INT),tb._create("textureSize",ta.IVEC2,ta.SAMPLER_CUBE_SHADOW,ta.INT),tb._create("textureSize",ta.IVEC3,213,ta.INT),tb._create("textureSize",ta.IVEC3,ta.SAMPLER2D_ARRAY_SHADOW,ta.INT),tb._create("texture2D",ta.VEC4,ta.SAMPLER2D,ta.VEC2),tb._create("texture2D",ta.VEC4,ta.SAMPLER2D,ta.VEC2,ta.FLOAT),tb._create("texture",209,210,ta.VEC2,ta.FLOAT),tb._create("texture",209,210,ta.VEC2),tb._create("texture",209,211,ta.VEC3,ta.FLOAT),tb._create("texture",209,211,ta.VEC3),tb._create("texture",209,212,ta.VEC3,ta.FLOAT),tb._create("texture",209,212,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4,ta.FLOAT),tb._create("texture",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4),tb._create("texture",209,ta.SAMPLER2D_ARRAY,ta.VEC3,ta.FLOAT),tb._create("texture",209,ta.SAMPLER2D_ARRAY,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC4),tb._create("textureProj",209,210,ta.VEC3,ta.FLOAT),tb._create("textureProj",209,210,ta.VEC3),tb._create("textureProj",209,210,ta.VEC4,ta.FLOAT),tb._create("textureProj",209,210,ta.VEC4),tb._create("textureProj",209,211,ta.VEC4,ta.FLOAT),tb._create("textureProj",209,211,ta.VEC4),tb._create("textureProj",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT),tb._create("textureProj",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4),tb._create("textureLod",209,210,ta.VEC2,ta.FLOAT),tb._create("textureLod",209,211,ta.VEC3,ta.FLOAT),tb._create("textureLod",209,212,ta.VEC3,ta.FLOAT),tb._create("textureLod",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT),tb._create("textureLod",209,213,ta.VEC3,ta.FLOAT),tb._create("texture2DLodEXT",209,210,ta.VEC2,ta.FLOAT),tb._create("texture2DLodEXT",209,211,ta.VEC3,ta.FLOAT),tb._create("textureCube",ta.SAMPLER_CUBE,ta.VEC3),tb._create("textureCube",ta.SAMPLER_CUBE,ta.VEC3,ta.FLOAT),tb._create("textureCube",209,212,ta.VEC3,ta.FLOAT),tb._create("textureCubeLod",ta.SAMPLER_CUBE,ta.VEC3,ta.FLOAT),tb._create("textureCubeLodEXT",209,212,ta.VEC3,ta.FLOAT),tb._create("textureOffset",209,210,ta.VEC2,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",209,210,ta.VEC2,ta.IVEC2),tb._create("textureOffset",209,211,ta.VEC3,ta.IVEC3,ta.FLOAT),tb._create("textureOffset",209,211,ta.VEC3,ta.IVEC3),tb._create("textureOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.IVEC2),tb._create("textureOffset",209,213,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",209,213,ta.VEC3,ta.IVEC2),tb._create("texelFetch",209,210,ta.IVEC2,ta.INT),tb._create("texelFetch",209,211,ta.IVEC3,ta.INT),tb._create("texelFetch",209,213,ta.IVEC3,ta.INT),tb._create("texelFetchOffset",209,210,ta.IVEC2,ta.INT,ta.IVEC2),tb._create("texelFetchOffset",209,211,ta.IVEC3,ta.INT,ta.IVEC3),tb._create("texelFetchOffset",209,213,ta.IVEC3,ta.INT,ta.IVEC2),tb._create("textureProjOffset",209,210,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",209,210,ta.VEC3,ta.IVEC2),tb._create("textureProjOffset",209,210,ta.VEC4,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",209,210,ta.VEC4,ta.IVEC2),tb._create("textureProjOffset",209,211,ta.VEC4,ta.IVEC3,ta.FLOAT),tb._create("textureProjOffset",209,211,ta.VEC4,ta.IVEC3),tb._create("textureProjOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.IVEC2),tb._create("textureLodOffset",209,210,ta.VEC2,ta.FLOAT,ta.IVEC2),tb._create("textureLodOffset",209,211,ta.VEC3,ta.FLOAT,ta.IVEC3),tb._create("textureLodOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureLodOffset",209,213,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureProjLod",209,210,ta.VEC3,ta.FLOAT),tb._create("textureProjLod",209,210,ta.VEC4,ta.FLOAT),tb._create("textureProjLod",209,211,ta.VEC4,ta.FLOAT),tb._create("textureProjLod",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT),tb._create("textureProjLodOffset",209,210,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureProjLodOffset",209,210,ta.VEC4,ta.FLOAT,ta.IVEC2),tb._create("textureProjLodOffset",209,211,ta.VEC4,ta.FLOAT,ta.IVEC3),tb._create("textureProjLodOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT,ta.IVEC2),tb._create("textureGrad",209,210,ta.VEC2,ta.VEC2,ta.VEC2),tb._create("textureGrad",209,211,ta.VEC3,ta.VEC3,ta.VEC3),tb._create("textureGrad",209,212,ta.VEC3,ta.VEC3,ta.VEC3),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4,ta.VEC3,ta.VEC3),tb._create("textureGrad",209,213,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureGradOffset",209,210,ta.VEC2,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",209,211,ta.VEC3,ta.VEC3,ta.VEC3,ta.IVEC3),tb._create("textureGradOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",209,213,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGrad",209,210,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureProjGrad",209,210,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureProjGrad",209,211,ta.VEC4,ta.VEC3,ta.VEC3),tb._create("textureProjGrad",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureProjGradOffset",209,210,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGradOffset",209,210,ta.VEC4,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGradOffset",209,211,ta.VEC4,ta.VEC3,ta.VEC3,ta.IVEC3),tb._create("textureProjGradOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2,ta.IVEC2),tb._createWithScop("dFdx",200,tC.FRAGMENT,200),tb._createWithScop("dFdy",200,tC.FRAGMENT,200),tb._createWithScop("fwidth",200,tC.FRAGMENT,200);var tO=new Map,tI=/*#__PURE__*/function(){function e(e,t,r){this.type=e,this.lexeme=t,this.scope=r}return e.createVariable=function(t,r,n){void 0===n&&(n=tC.ALL);var i=new e(r,t,n);tO.set(t,i)},e.getVar=function(e){return tO.get(e)},e}();tI.createVariable("gl_VertexID",ta.INT,tC.VERTEX),tI.createVariable("gl_InstanceID",ta.INT,tC.VERTEX),tI.createVariable("gl_Position",ta.VEC4,tC.VERTEX),tI.createVariable("gl_PointSize",ta.FLOAT,tC.VERTEX),tI.createVariable("gl_FragCoord",ta.VEC4,tC.FRAGMENT),tI.createVariable("gl_FrontFacing",ta.BOOL,tC.FRAGMENT),tI.createVariable("gl_FragDepth",ta.FLOAT,tC.FRAGMENT),tI.createVariable("gl_PointCoord",ta.VEC2,tC.FRAGMENT),tI.createVariable("gl_FragColor",ta.VEC4,tC.FRAGMENT),tI.createVariable("gl_FragData",ta.VEC4_ARRAY,tC.FRAGMENT),tI.createVariable("gl_MaxVertexAttribs",ta.INT),tI.createVariable("gl_MaxVertexUniformVectors",ta.INT),tI.createVariable("gl_MaxVertexOutputVectors",ta.INT),tI.createVariable("gl_MaxFragmentInputVectors",ta.INT),tI.createVariable("gl_MaxVertexTextureImageUnits",ta.INT),tI.createVariable("gl_MaxCombinedTextureImageUnits",ta.INT),tI.createVariable("gl_MaxTextureImageUnits",ta.INT),tI.createVariable("gl_MaxFragmentUniformVectors",ta.INT),tI.createVariable("gl_MaxDrawBuffers",ta.INT),tI.createVariable("gl_MinProgramTexelOffset",ta.INT),tI.createVariable("gl_MaxProgramTexelOffset",ta.INT);var tL=/*#__PURE__*/function(){function e(){this._table=new Map}var r=e.prototype;return r.insert=function(e,r){void 0===r&&(r=!1),e.isInMacroBranch=r;for(var n,i=null!=(n=this._table.get(e.ident))?n:[],a=0,o=i.length;a<o;a++)if(!i[a].isInMacroBranch&&i[a].equal(e)){t.Logger.warn("Replace symbol:",e.ident),i[a]=e;return}i.push(e),this._table.set(e.ident,i)},r.getSymbol=function(e,t){void 0===t&&(t=!1);var r=this._table.get(e.ident);if(r)for(var n=r.length-1;n>=0;n--){var i=r[n];if((t||!i.isInMacroBranch)&&i.equal(e))return i}},r.getSymbols=function(e,t,r){return void 0===t&&(t=!1),r.length=0,this._getSymbols(e,t,r),r},r._getSymbols=function(e,t,r){void 0===t&&(t=!1);var n=this._table.get(e.ident);if(n)for(var i=n.length-1;i>=0;i--){var a=n[i];(t||!a.isInMacroBranch)&&a.equal(e)&&r.push(a)}return r},e}(),tP=/*#__PURE__*/function(){function e(){this.stack=[],this._macroLevel=0}var t=e.prototype;return t.pushScope=function(e){this.stack.push(e)},t.clear=function(){this.stack.length=0},t.popScope=function(){return this.stack.pop()},t.insert=function(e){this.scope.insert(e,this.isInMacroBranch)},t.lookup=function(e,t){void 0===t&&(t=!1);for(var r=this.stack.length-1;r>=0;r--){var n=this.stack[r].getSymbol(e,t);if(n)return n}},t.lookupAll=function(e,t,r){void 0===t&&(t=!1),r.length=0;for(var n=this.stack.length-1;n>=0;n--)this.stack[n]._getSymbols(e,t,r);return r},c(e,[{key:"scope",get:function(){return this.stack[this.stack.length-1]}},{key:"isInMacroBranch",get:function(){return this._macroLevel>0}}]),e}(),tR=function(e,t,r){this.type=e,this.typeLexeme=t,this.arraySpecifier=r},tM=((m={})[m.VAR=0]="VAR",m[m.FN=1]="FN",m[m.STRUCT=2]="STRUCT",m[m.Any=3]="Any",m),tN=/*#__PURE__*/function(){function e(e,t,r,n,i,a){void 0===a&&(a=!1),this.ident=e,this.type=t,this.astNode=r,this.dataType=n,this.paramSignature=i,this.isInMacroBranch=a}var t=e.prototype;return t.set=function(e,t,r,n,i){this.ident=e,this.type=t,this.astNode=r,this.dataType=n,this.paramSignature=i},t.equal=function(e){if(3!==e.type&&this.type!==e.type)return!1;if(1===this.type){if(!e.astNode&&!e.paramSignature)return!0;var t,r=this.astNode.protoType.paramSig,n=null!=(t=e.paramSignature)?t:e.astNode.protoType.paramSig,i=null==r?void 0:r.length;if(i!==(null==n?void 0:n.length))return!1;for(var a=0;a<i;a++){var o=r[a],s=n[a];if(3e3!==o&&3e3!==s&&o!==s)return!1}}return!0},e}(),tD=/*#__PURE__*/function(e){function t(t,r){var n=new tR(r.protoType.returnType.type,r.protoType.returnType.typeSpecifier.lexeme);return e.call(this,t,tM.FN,r,n)||this}return a(t,e),t}(tN),tG=/*#__PURE__*/function(e){function t(t,r){return e.call(this,t,tM.STRUCT,r)||this}return a(t,e),t}(tN),tk=/*#__PURE__*/function(e){function t(t,r,n,i){var a;return(a=e.call(this,t,tM.VAR,i,r)||this).isGlobalVariable=n,a}return a(t,e),t}(tN),tV=/*#__PURE__*/function(){function e(){this.globalPrecisions=[],this.globalMacroDeclarations=[]}return e.prototype.getOuterGlobalMacroDeclarations=function(){return this.globalMacroDeclarations.filter(function(e){return o(e.parent,tt.GLShaderProgram)})},e}(),tF=/*#__PURE__*/function(){function e(){this.semanticStack=[],this.acceptRule=void 0,this.symbolTableStack=new tP,this.curFunctionInfo={},this._shaderData=new tV,this._translationRuleTable=new Map,this.errors=[],this.pushScope()}var r=e.prototype;return r.reset=function(e){this._macroDefineList=e,this.semanticStack.length=0,this._shaderData=new tV,this.symbolTableStack.clear(),this.pushScope(),this.errors.length=0},r.pushScope=function(){this.symbolTableStack.pushScope(new tL)},r.popScope=function(){return this.symbolTableStack.popScope()},r.addTranslationRule=function(e,t){this._translationRuleTable.set(e,t)},r.getTranslationRule=function(e){return this._translationRuleTable.get(e)},r.reportError=function(e,t){this.errors.push(new tu(tp.CompilationError,t,e,rc._processingPassText))},r.reportWarning=function(e,r){t.Logger.warn(new tu(tp.CompilationWarn,r,e,rc._processingPassText).toString())},c(e,[{key:"shaderData",get:function(){return this._shaderData}},{key:"macroDefineList",get:function(){return this._macroDefineList}}]),e}();tF._lookupSymbol=new tN("",null);var tB=function(e,t,r){this.type=e,this.typeLexeme=t,this.arraySpecifier=r},tw=function(e,t,r,n){void 0===n&&(n=!1),this.typeInfo=e,this.ident=t,this.mrtIndex=r,this.isInMacroBranch=n};function tU(e){return function(t){t.prototype.nt=e,t.pool=th.createObjectPool(t)}}var tW=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(t,r){this._location=t,this._children=r;for(var i,a=n(r);!(i=a()).done;){var s=i.value;o(s,e)&&(s._parent=this)}this.init()},t.init=function(){},t.dispose=function(){},t.setCache=function(e){return this._codeCache=e,e},t.getCache=function(){return this._codeCache},t.codeGen=function(e){var t=e.defaultCodeGen(this.children);return this.setCache(t),t},t.semanticAnalyze=function(e){},c(e,[{key:"parent",get:function(){return this._parent}},{key:"children",get:function(){return this._children}},{key:"location",get:function(){return this._location}}]),e}();(S=tt||(tt={}))._unwrapToken=function(e){if(o(e,t_))return e;throw"not token"},S.get=function(e,t,r,n){var i=e.get();i.set(r,n),i.semanticAnalyze(t),t.semanticStack.push(i)},g=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.TrivialNode=g,g=l([tU(td._ignore)],g),v=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.pushScope()},t}(tW),S.ScopeBrace=v,v=l([tU(td.scope_brace)],v),y=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.popScope()},t}(tW),S.ScopeEndBrace=y,y=l([tU(td.scope_end_brace)],y),x=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.isFragReturnStatement=!1},r.semanticAnalyze=function(e){S._unwrapToken(this.children[0]).type===ta.RETURN&&(e.curFunctionInfo.returnStatement=this)},r.codeGen=function(e){return this.setCache(e.visitJumpStatement(this))},t}(tW),S.JumpStatement=x,x=l([tU(td.jump_statement)],x),E=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ConditionOpt=E,E=l([tU(td.conditionopt)],E),C=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ForRestStatement=C,C=l([tU(td.for_rest_statement)],C),A=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.Condition=A,A=l([tU(td.condition)],A),T=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ForInitStatement=T,T=l([tU(td.for_init_statement)],T),b=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.IterationStatement=b,b=l([tU(td.iteration_statement)],b),O=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.SelectionStatement=O,O=l([tU(td.selection_statement)],O),I=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ExpressionStatement=I,I=l([tU(td.expression_statement)],I),L=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){this._type=void 0},c(t,[{key:"type",get:function(){var e;return null!=(e=this._type)?e:3e3},set:function(e){this._type=e}}]),t}(tW),S.ExpressionAstNode=L,P=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.type=t.type},t}(L),S.InitializerList=P,P=l([tU(td.initializer_list)],P),R=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=this.children[1].type},t}(L),S.Initializer=R,R=l([tU(td.initializer)],R),M=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.typeSpecifier=void 0,this.arraySpecifier=void 0},r.semanticAnalyze=function(e){var t,r=this.children,n=r.length,i=r[0],a=i.typeSpecifier;this.typeSpecifier=a,this.arraySpecifier=a.arraySpecifier;var o=r[1];if(2===n||4===n){var s=new tB(i.type,a.lexeme,this.arraySpecifier),c=r[3];t=new tk(o.lexeme,s,!1,c)}else{var l=r[2];l&&this.arraySpecifier&&e.reportError(l.location,"Array of array is not supported."),this.arraySpecifier=l;var u=new tB(i.type,a.lexeme,this.arraySpecifier),p=r[4];t=new tk(o.lexeme,u,!1,p)}e.symbolTableStack.insert(t)},r.codeGen=function(e){return this.setCache(e.visitSingleDeclaration(this))},t}(tW),S.SingleDeclaration=M,M=l([tU(td.single_declaration)],M),N=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children;this.typeSpecifier=1===t.length?t[0]:t[1],this.type=this.typeSpecifier.type},t}(tW),S.FullySpecifiedType=N,N=l([tU(td.fully_specified_type)],N),D=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.TypeQualifier=D,D=l([tU(td.type_qualifier)],D),G=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];o(t,t_)?this.qualifier=t.type:this.qualifier=t.qualifier,this.lexeme=t.lexeme},t}(tW),S.SingleTypeQualifier=G,G=l([tU(td.single_type_qualifier)],G),V=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.qualifier=t.type,this.lexeme=t.lexeme},t}(tW)),S.StorageQualifier=V,V=l([tU(td.storage_qualifier)],V),F=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.PrecisionQualifier=F,F=l([tU(td.precision_qualifier)],F),B=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.InterpolationQualifier=B,B=l([tU(td.interpolation_qualifier)],B),w=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.InvariantQualifier=w,w=l([tU(td.invariant_qualifier)],w),U=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.arraySize=void 0},r.semanticAnalyze=function(e){var t,r=this.children,n=r[0];this.type=n.type,this.lexeme=n.lexeme,this.arraySize=null==r?void 0:null==(t=r[1])?void 0:t.size,this.isCustom="string"==typeof this.type},c(t,[{key:"arraySpecifier",get:function(){return this.children[1]}}]),t}(tW),S.TypeSpecifier=U,U=l([tU(td.type_specifier)],U),W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[1];this.size=t.value},t}(tW),S.ArraySpecifier=W,W=l([tU(td.array_specifier)],W),z=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];switch(this.lexeme=t.lexeme,t.type){case ti.PLUS:this.compute=function(e,t){return e+t};break;case ti.DASH:this.compute=function(e,t){return e-t};break;case ti.STAR:this.compute=function(e,t){return e*t};break;case ti.SLASH:this.compute=function(e,t){return e/t};break;case ti.PERCENT:this.compute=function(e,t){return e%t};break;default:e.reportError(t.location,"not implemented operator "+t.lexeme)}},t}(tW),S.IntegerConstantExpressionOperator=z,z=l([tU(td.integer_constant_expression_operator)],z),H=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.value=void 0},r.semanticAnalyze=function(e){if(1===this.children.length){var t=this.children[0];if(o(t,t_))this.value=Number(t.lexeme);else if(!tx.typeCompatible(ta.INT,t.typeInfo)){e.reportError(t.location,"Invalid integer.");return}}},t}(tW),S.IntegerConstantExpression=H,H=l([tU(td.integer_constant_expression)],H),j=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){var e=this.children[0];o(e,t_)?this.type=e.lexeme:this.type=e.type,this.lexeme=e.lexeme},t}(tW),S.TypeSpecifierNonArray=j,j=l([tU(td.type_specifier_nonarray)],j),q=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){var e=this.children[0];this.type=e.type,this.lexeme=e.lexeme},t}(tW),S.ExtBuiltinTypeSpecifierNonArray=q,q=l([tU(td.ext_builtin_type_specifier_nonarray)],q),X=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t,r=this.children,n=r.length;if(1===n){var i=r[0],a=i.typeSpecifier,o=i.arraySpecifier;this.typeInfo=new tB(a.type,a.lexeme,o)}else{var s=r[0];this.typeInfo=s.typeInfo}if(3===n||5===n)t=new tk(r[2].lexeme,this.typeInfo,!1,this),e.symbolTableStack.insert(t);else if(4===n||6===n){var c=this.typeInfo,l=this.children[3];c.arraySpecifier&&l&&e.reportError(l.location,"Array of array is not supported."),c.arraySpecifier=l,t=new tk(r[2].lexeme,c,!1,this),e.symbolTableStack.insert(t)}},t}(tW),S.InitDeclaratorList=X,X=l([tU(td.init_declarator_list)],X),Q=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.idList=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.idList.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.idList;if(2===t.length)r.push(t[1]);else{var n=t[0],i=t[2],a=n.idList.length;r.length=a+1;for(var o=0;o<a;o++)r[o]=n.idList[o];r[a]=i}},t}(tW),S.IdentifierList=Q,Q=l([tU(td.identifier_list)],Q),Y=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(e){return this.setCache(e.visitDeclaration(this))},t}(tW),S.Declaration=Y,Y=l([tU(td.declaration)],Y),K=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.ident=t.ident,this.returnType=t.returnType,this.parameterList=t.parameterInfoList,this.paramSig=t.paramSig},t}(tW),S.FunctionProtoType=K,K=l([tU(td.function_prototype)],K),J=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.curFunctionInfo.returnStatement=null,e.curFunctionInfo.header=this;var t=this.children,r=t[0],n=t[1];this.ident=r.ident,this.returnType=r.returnType,this.parameterInfoList=null==n?void 0:n.parameterInfoList,this.paramSig=null==n?void 0:n.paramSig},t}(tW),S.FunctionDeclarator=J,J=l([tU(td.function_declarator)],J),Z=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.pushScope();var t=this.children;this.ident=t[1],this.returnType=t[0]},r.codeGen=function(e){return this.setCache(e.visitFunctionHeader(this))},t}(tW),S.FunctionHeader=Z,Z=l([tU(td.function_header)],Z),$=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.parameterInfoList=[],t.paramSig=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.parameterInfoList.length=0,this.paramSig.length=0},r.semanticAnalyze=function(e){var r=this.children,n=this.parameterInfoList,i=this.paramSig;if(o(r[0],en)){var a,s,c=r[0];n.push({ident:c.ident,typeInfo:c.typeInfo,astNode:c}),i.push(null!=(s=null==(a=c.typeInfo)?void 0:a.type)?s:3e3)}else if(o(r[2],en)){var l,u,p=r[0],h=r[2];n.push.apply(n,[].concat(p.parameterInfoList,[{ident:h.ident,typeInfo:h.typeInfo,astNode:h}])),i.push.apply(i,[].concat(p.paramSig,[null!=(u=null==(l=h.typeInfo)?void 0:l.type)?u:3e3]))}else o(r[0],t)&&o(r[1],et)?(n.push.apply(n,[].concat(r[0].parameterInfoList,[{astNode:r[1]}])),i.push.apply(i,[].concat(r[0].paramSig,[3e3]))):o(r[0],et)&&(n.push({astNode:r[0]}),i.push(3e3))},r.codeGen=function(e){return this.setCache(e.visitFunctionParameterList(this))},t}(tW),S.FunctionParameterList=$,$=l([tU(td.function_parameter_list)],$),ee=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParamCaseList=ee,ee=l([tU(td.macro_param_case_list)],ee),et=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParamBlock=et,et=l([tU(td.macro_param_block)],et),er=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParameterBranch=er,er=l([tU(td.macro_parameter_branch)],er),en=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.typeInfo=void 0,this.ident=void 0},r.semanticAnalyze=function(e){var t,r=this.children;if(o(r[0],ei)?t=r[0]:o(r[1],ei)&&(t=r[1]),t){this.typeInfo=t.typeInfo,this.ident=t.ident;var n=new tk(t.ident.lexeme,t.typeInfo,!1,t);e.symbolTableStack.insert(n)}},t}(tW),S.ParameterDeclaration=en,en=l([tU(td.parameter_declaration)],en),ei=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children;this.ident=t[1];var r=t[0],n=t[2];this.typeInfo=new tB(r.type,r.lexeme,n)},t}(tW),S.ParameterDeclarator=ei,ei=l([tU(td.parameter_declarator)],ei),ea=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.SimpleStatement=ea,ea=l([tU(td.simple_statement)],ea),eo=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.CompoundStatement=eo,eo=l([tU(td.compound_statement)],eo),es=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.CompoundStatementNoScope=es,es=l([tU(td.compound_statement_no_scope)],es),ec=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.Statement=ec,ec=l([tU(td.statement)],ec),el=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(e){return this.setCache(e.visitStatementList(this))},t}(tW),S.StatementList=el,el=l([tU(td.statement_list)],el),eu=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.returnStatement=void 0},r.semanticAnalyze=function(e){var t=this.children;this.protoType=t[0],this.statements=t[1],e.popScope();var r=new tD(this.protoType.ident.lexeme,this);e.symbolTableStack.insert(r),this.isInMacroBranch=e.symbolTableStack.isInMacroBranch;var n=e.curFunctionInfo,i=n.header,a=n.returnStatement;i.returnType.type===ta.VOID?a&&e.reportError(i.returnType.location,"Return in void function."):a?this.returnStatement=a:e.reportError(i.returnType.location,"No return statement found."),n.header=void 0,n.returnStatement=void 0},r.codeGen=function(e){return this.setCache(e.visitFunctionDefinition(this))},t}(tW),S.FunctionDefinition=eu,eu=l([tU(td.function_definition)],eu),ep=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){this.type=this.children[0].type},r.codeGen=function(e){return this.setCache(e.visitFunctionCall(this))},t}(L),S.FunctionCall=ep,ep=l([tU(td.function_call)],ep),eh=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){e.prototype.init.call(this),this.fnSymbol=void 0},r.semanticAnalyze=function(e){var t=this.children[0];if(t.isBuiltin)this.type=t.ident;else{var r,n,i=t.ident;if(4===this.children.length){var a=this.children[2];o(a,e_)&&(n=a.paramSig)}var s=tb.getFn(i,n);if(s){this.type=s.realReturnType;return}var c=tF._lookupSymbol;c.set(i,tM.FN,void 0,void 0,n);var l=e.symbolTableStack.lookup(c,!0);if(!l){e.reportError(this.location,"No overload function type found: "+t.ident);return}this.type=null==l?void 0:null==(r=l.dataType)?void 0:r.type,this.fnSymbol=l}},t}(L),S.FunctionCallGeneric=eh,eh=l([tU(td.function_call_generic)],eh),e_=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.paramSig=[],t.paramNodes=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.paramSig.length=0,this.paramNodes.length=0},r.semanticAnalyze=function(e){var r=this.children,n=this.paramSig,i=this.paramNodes;if(o(r[0],ev)){var a=r[0];n.push(a.type),i.push(a)}else if(o(r[2],ev)){var s=r[0],c=r[2];n.push.apply(n,[].concat(s.paramSig,[c.type])),i.push.apply(i,[].concat(s.paramNodes,[c]))}else o(r[0],t)&&o(r[1],ed)?(n.push.apply(n,[].concat(r[0].paramSig,[3e3])),i.push.apply(i,[].concat(r[0].paramNodes,[r[1]]))):o(r[0],ed)&&(n.push(3e3),i.push(r[0]))},t}(tW),S.FunctionCallParameterList=e_,e_=l([tU(td.function_call_parameter_list)],e_),ef=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgCaseList=ef,ef=l([tU(td.macro_call_arg_case_list)],ef),ed=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgBlock=ed,ed=l([tU(td.macro_call_arg_block)],ed),em=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgBranch=em,em=l([tU(td.macro_call_arg_branch)],em),eS=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.symbolTableStack.isInMacroBranch||e.shaderData.globalPrecisions.push(this)},t}(tW),S.PrecisionSpecifier=eS,eS=l([tU(td.precision_specifier)],eS),eg=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){var t=this.children[0];this.ident=t.type,this.lexeme=t.lexeme,this.isBuiltin="string"!=typeof this.ident},r.codeGen=function(e){return this.setCache(e.visitFunctionIdentifier(this))},t}(tW),S.FunctionIdentifier=eg,eg=l([tU(td.function_identifier)],eg),ev=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t,r=this.children[0];this.type=null!=(t=r.type)?t:3e3}else{var n,i=this.children[2];this.type=null!=(n=i.type)?n:3e3}},t}(L),S.AssignmentExpression=ev,ev=l([tU(td.assignment_expression)],ev),ey=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.AssignmentOperator=ey,ey=l([tU(td.assignment_operator)],ey),ex=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t=this.children[0];this.type=t.type}else{var r=this.children[2];this.type=r.type}},t}(L),S.Expression=ex,ex=l([tU(td.expression)],ex),eE=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t,r=this.children[0];if(o(r,eQ))this.type=null!=(t=r.typeInfo)?t:3e3;else switch(r.type){case ti.INT_CONSTANT:this._type=ta.INT;break;case ti.FLOAT_CONSTANT:this.type=ta.FLOAT;break;case ta.True:case ta.False:this.type=ta.BOOL}}else{var n=this.children[1];this.type=n.type}},t}(L),S.PrimaryExpression=eE,eE=l([tU(td.primary_expression)],eE),eC=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){if(e.prototype.init.call(this),1===this.children.length){var t=this.children[0];this.type=t.type}},r.codeGen=function(e){return this.setCache(e.visitPostfixExpression(this))},t}(L),S.PostfixExpression=eC,eC=l([tU(td.postfix_expression)],eC),eA=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.UnaryOperator=eA,eA=l([tU(td.unary_operator)],eA),eT=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){this.type=this.children[0].type},t}(L),S.UnaryExpression=eT,eT=l([tU(td.unary_expression)],eT),eb=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){e.prototype.init.call(this),1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.MultiplicativeExpression=eb,eb=l([tU(td.multiplicative_expression)],eb),eO=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){e.prototype.init.call(this),1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.AdditiveExpression=eO,eO=l([tU(td.additive_expression)],eO),eI=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.type=t.type},t}(L),S.ShiftExpression=eI,eI=l([tU(td.shift_expression)],eI),eL=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.RelationalExpression=eL,eL=l([tU(td.relational_expression)],eL),eP=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.EqualityExpression=eP,eP=l([tU(td.equality_expression)],eP),eR=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.AndExpression=eR,eR=l([tU(td.and_expression)],eR),eM=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.ExclusiveOrExpression=eM,eM=l([tU(td.exclusive_or_expression)],eM),eN=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.InclusiveOrExpression=eN,eN=l([tU(td.inclusive_or_expression)],eN),eD=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalAndExpression=eD,eD=l([tU(td.logical_and_expression)],eD),eG=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalXorExpression=eG,eG=l([tU(td.logical_xor_expression)],eG),ek=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalOrExpression=ek,ek=l([tU(td.logical_or_expression)],ek),eV=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.ConditionalExpression=eV,eV=l([tU(td.conditional_expression)],eV),eF=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.ident=void 0},r.semanticAnalyze=function(e){var t=this.children;this.isInMacroBranch=e.symbolTableStack.isInMacroBranch,6===t.length?(this.ident=t[1],e.symbolTableStack.insert(new tG(this.ident.lexeme,this)),this.propList=t[3].propList,this.macroExpressions=t[3].macroExpressions):(this.propList=t[2].propList,this.macroExpressions=t[2].macroExpressions)},r.codeGen=function(e){return this.setCache(e.visitStructSpecifier(this))},t}(tW),S.StructSpecifier=eF,eF=l([tU(td.struct_specifier)],eF),eB=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.propList=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.propList.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.propList,n=this.macroExpressions;1===t.length?(r.push.apply(r,[].concat(t[0].props)),n.push.apply(n,[].concat(t[0].macroExpressions))):(r.push.apply(r,[].concat(t[0].propList)),r.push.apply(r,[].concat(t[1].props)),n.push.apply(n,[].concat(t[0].macroExpressions)),n.push.apply(n,[].concat(t[1].macroExpressions)))},t}(tW),S.StructDeclarationList=eB,eB=l([tU(td.struct_declaration_list)],eB),ew=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this._typeSpecifier=void 0,this._declaratorList=void 0,this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.props,n=this.macroExpressions;if(1===t.length){for(var i=t[0],a=i.props,s=0,c=a.length;s<c;s++)a[s].isInMacroBranch=!0,r.push(a[s]);n.push.apply(n,[].concat(i.macroExpressions));return}3===t.length?(this._typeSpecifier=t[0],this._declaratorList=t[1]):(this._typeSpecifier=t[1],this._declaratorList=t[2]);var l=t[0],u=this._typeSpecifier,p=u.type,h=u.lexeme,_=e.symbolTableStack.isInMacroBranch;if(o(l,ez)){var f=t[2],d=new tw(new tB(p,h),f.ident,l.index,_);r.push(d)}else{var m=this._declaratorList.declaratorList,S=m.length;r.length=S;for(var g=0;g<S;g++){var v=m[g],y=new tw(new tB(p,h,v.arraySpecifier),v.ident,void 0,_);r[g]=y}}},t}(tW),S.StructDeclaration=ew,ew=l([tU(td.struct_declaration)],ew),eU=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(){var e,t,r,n,i,a,o=this.children;this.macroExpressions.push(o[0]),3===o.length?((e=this.props).push.apply(e,[].concat(o[1].propList)),(t=this.props).push.apply(t,[].concat(o[2].props)),(r=this.macroExpressions).push.apply(r,[].concat(o[1].macroExpressions)),(n=this.macroExpressions).push.apply(n,[].concat(o[2].macroExpressions))):((i=this.props).push.apply(i,[].concat(o[1].props)),(a=this.macroExpressions).push.apply(a,[].concat(o[1].macroExpressions)))},t}(tW),S.MacroStructDeclaration=eU,eU=l([tU(td.macro_struct_declaration)],eU),eW=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(){var e,r,n,i,a=this.children,s=a[a.length-1];this.macroExpressions.push(a[0]),o(a[1],eB)&&((e=this.props).push.apply(e,[].concat(a[1].propList)),(r=this.macroExpressions).push.apply(r,[].concat(a[1].macroExpressions))),o(s,t)&&((n=this.props).push.apply(n,[].concat(s.props)),(i=this.macroExpressions).push.apply(i,[].concat(s.macroExpressions))),a.length>1&&o(s,e$)&&this.macroExpressions.push(s)},t}(tW),S.MacroStructBranch=eW,eW=l([tU(td.macro_struct_branch)],eW),ez=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){this.index=Number(this.children[4].lexeme)},t}(tW),S.LayoutQualifier=ez,ez=l([tU(td.layout_qualifier)],ez),eH=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.declaratorList=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.declaratorList.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.declaratorList;if(1===t.length)r.push(t[0]);else{var n=t[0],i=t[1],a=n.declaratorList.length;r.length=a+1;for(var o=0;o<a;o++)r[o]=n.declaratorList[o];r[a]=i}},t}(tW),S.StructDeclaratorList=eH,eH=l([tU(td.struct_declarator_list)],eH),ej=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.arraySpecifier=void 0},r.semanticAnalyze=function(e){var t=this.children;this.ident=t[0],this.arraySpecifier=t[1]},t}(tW),S.StructDeclarator=ej,ej=l([tU(td.struct_declarator)],ej),eq=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.isStatic=!1},r.semanticAnalyze=function(e){var t=this.children,r=t[0],n=t[1];this.type=r;var i=new tk(n.lexeme,new tB(r.type,r.typeSpecifier.lexeme),!0,this);e.symbolTableStack.insert(i),4===t.length&&(this.isStatic=!0)},r.codeGen=function(t){return this.isStatic?e.prototype.codeGen.call(this,t):this.setCache(t.visitGlobalVariableDeclaration(this))},t}(tW),S.VariableDeclaration=eq,eq=l([tU(td.variable_declaration)],eq),eX=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.variableDeclarations=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.variableDeclarations.length=0},r.semanticAnalyze=function(e){var t=this.children,r=t.length,n=t[0],i=n.type;if(this.type=i,o(n,eq))this.variableDeclarations.push(n);else{(a=this.variableDeclarations).push.apply(a,[].concat(n.variableDeclarations));var a,s=t[2],c=eq.pool.get();3===r?c.set(s.location,[i,s]):c.set(s.location,[i,s,t[3]]),c.semanticAnalyze(e),this.variableDeclarations.push(c)}},t}(tW),S.VariableDeclarationList=eX,eX=l([tU(td.variable_declaration_list)],eX),eQ=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.referenceGlobalSymbolNames=[],t._symbols=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.typeInfo=3e3,this.referenceGlobalSymbolNames.length=0,this._symbols.length=0},r.semanticAnalyze=function(e){var t=this.children[0],r=this.referenceGlobalSymbolNames,n=this._symbols,i=tF._lookupSymbol;l=o(t,t_)?[t.lexeme]:t.referenceSymbolNames;for(var a=0;a<l.length;a++){var s=l[a];if(!(e.macroDefineList[s]||!o(t,t_)&&tb.isExist(s))){var c=tI.getVar(s);if(c){this.typeInfo=c.type;continue}if(i.set(s,tM.Any),e.symbolTableStack.lookupAll(i,!0,n),n.length){this.typeInfo=null==(u=n[0].dataType)?void 0:u.type;var l,u,p=e.symbolTableStack.scope.getSymbol(i,!0);p?(o(p,tD)||p.isGlobalVariable)&&-1===r.indexOf(s)&&r.push(s):n.some(function(e){return o(e,tD)||e.isGlobalVariable})&&-1===r.indexOf(s)&&r.push(s)}else e.reportWarning(this.location,'Please sure the identifier "'+s+'" will be declared before used.')}}},r.codeGen=function(e){return this.setCache(e.visitVariableIdentifier(this))},r.getLexeme=function(e){var t=this.children[0];return o(t,t_)?t.lexeme:t.codeGen(e)},t}(tW),S.VariableIdentifier=eQ,eQ=l([tU(td.variable_identifier)],eQ),eY=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){this.shaderData=e.shaderData,this.shaderData.symbolTable=e.symbolTableStack.scope},t}(tW),S.GLShaderProgram=eY,eY=l([tU(td.gs_shader_program)],eY),eK=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t,r=this.children[0];(o(r,eJ)||o(r,e3)||o(r,t_))&&(e.shaderData.globalMacroDeclarations.push(this),o(r,e3)?(t=this.macroExpressions).push.apply(t,[].concat(r.macroExpressions)):this.macroExpressions.push(r))},t}(tW),S.GlobalDeclaration=eK,eK=l([tU(td.global_declaration)],eK),eJ=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache(e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroUndef=eJ,eJ=l([tU(td.macro_undef)],eJ),eZ=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.symbolTableStack._macroLevel++},r.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroPushContext=eZ,eZ=l([tU(td.macro_push_context)],eZ),e$=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.symbolTableStack._macroLevel--},r.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroPopContext=e$,e$=l([tU(td.macro_pop_context)],e$),e0=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroElifExpression=e0,e0=l([tU(td.macro_elif_expression)],e0),e2=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroElseExpression=e2,e2=l([tU(td.macro_else_expression)],e2),e1=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.macroExpressions;1===t.length?r.push.apply(r,[].concat(t[0].macroExpressions)):(r.push.apply(r,[].concat(t[0].macroExpressions)),r.push.apply(r,[].concat(t[1].macroExpressions)))},r.codeGen=function(e){var t=this.children;return 1===t.length?this.setCache(t[0].codeGen(e)):this.setCache(t[0].codeGen(e)+"\n"+t[1].codeGen(e))},t}(tW),S.GlobalMacroDeclaration=e1,e1=l([tU(td.global_macro_declaration)],e1),e3=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.macroExpressions;3===t.length?(r.push(t[0]),r.push.apply(r,[].concat(t[1].macroExpressions)),r.push.apply(r,[].concat(t[2].macroExpressions))):(r.push(t[0]),r.push.apply(r,[].concat(t[1].macroExpressions)))},t}(tW),S.GlobalMacroIfStatement=e3,e3=l([tU(td.global_macro_if_statement)],e3),e4=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var r=this.children,n=r[r.length-1],i=this.macroExpressions;i.push(r[0]),o(r[1],e1)&&i.push.apply(i,[].concat(r[1].macroExpressions)),o(n,t)&&i.push.apply(i,[].concat(n.macroExpressions)),r.length>1&&o(n,e$)&&i.push(n)},t}(tW),S.GlobalMacroBranch=e4,e4=l([tU(td.global_macro_branch)],e4),e9=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroIfStatement=e9,e9=l([tU(td.macro_if_statement)],e9),e5=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroBranch=e5,e5=l([tU(td.macro_branch)],e5),e6=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.referenceSymbolNames=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.referenceSymbolNames.length=0},r.semanticAnalyze=function(e){var t=this.children[0].lexeme;this.macroName=t,tE.getReferenceSymbolNames(e.macroDefineList,t,this.referenceSymbolNames)},t}(tW),S.MacroCallSymbol=e6,e6=l([tU(td.macro_call_symbol)],e6),e7=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){var t=this.children[0];this.referenceSymbolNames=t.referenceSymbolNames,this.macroName=t.macroName},r.codeGen=function(e){return this.setCache(e.visitMacroCallFunction(this))},t}(tW),S.MacroCallFunction=e7,l([tU(td.macro_call_function)],e7);var tz=/*#__PURE__*/function(){function e(){this.attributeStructs=[],this.attributeList=[],this.varyingStructs=[],this.varyingList=[],this.mrtStructs=[],this.mrtList=[],this._referencedGlobalMacroASTs=[]}var t=e.prototype;return t.reset=function(e){void 0===e&&(e=!0),e&&(this.attributeStructs.length=0,this.attributeList.length=0,this.varyingStructs.length=0,this.varyingList.length=0,this.mrtStructs.length=0,this.mrtList.length=0),this._referencedAttributeList=Object.create(null),this._referencedVaryingList=Object.create(null),this._referencedMRTList=Object.create(null),this._referencedGlobals=Object.create(null),this._referencedGlobalMacroASTs.length=0},t.isAttributeStruct=function(e){return -1!==this.attributeStructs.findIndex(function(t){return t.ident.lexeme===e})},t.isVaryingStruct=function(e){return -1!==this.varyingStructs.findIndex(function(t){return t.ident.lexeme===e})},t.isMRTStruct=function(e){return -1!==this.mrtStructs.findIndex(function(t){return t.ident.lexeme===e})},t.referenceAttribute=function(e){var t=e.lexeme;if(!this._referencedAttributeList[t]){var r=this.attributeList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced attribute not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedAttributeList[t]=r}},t.referenceVarying=function(e){var t=e.lexeme;if(!this._referencedVaryingList[t]){var r=this.varyingList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced varying not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedVaryingList[t]=r}},t.referenceMRTProp=function(e){var t=e.lexeme;if(!this._referencedMRTList[t]){var r=this.mrtList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced mrt not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedMRTList[t]=r}},t.referenceGlobal=function(t,r){if(!this._referencedGlobals[t]){this._referencedGlobals[t]=[];var n=e._lookupSymbol;n.set(t,r),this._passSymbolTable.getSymbols(n,!0,this._referencedGlobals[t])}},e.reset=function(){this._singleton||(this._singleton=new e),this._singleton.reset()},c(e,null,[{key:"context",get:function(){return this._singleton}}]),e}();tz._lookupSymbol=new tN("",null);var tH=/*#__PURE__*/function(){function e(){this.array=[]}return e.prototype.dispose=function(){this.array.length=0},e}(),tj=/*#__PURE__*/function(){function e(){this.errors=[]}var t=e.prototype;return t.defaultCodeGen=function(t){var r=e._tmpArrayPool,i=r.get();i.dispose();for(var a,s=n(t);!(a=s()).done;){var c=a.value;o(c,t_)?i.array.push(c.lexeme):i.array.push(c.codeGen(this))}return r.return(i),i.array.join(" ")},t.visitPostfixExpression=function(e){var t=e.children,r=t.length,n=tz.context;if(3===r){var i=t[0],a=t[2];if(!o(a,t_))return i.codeGen(this)+"."+a.codeGen(this);if(n.isAttributeStruct(i.type)){var s=n.referenceAttribute(a);return s&&this.errors.push(s),a.lexeme}if(n.isVaryingStruct(i.type)){var c=n.referenceVarying(a);return c&&this.errors.push(c),a.lexeme}if(n.isMRTStruct(i.type)){var l=n.referenceMRTProp(a);return l&&this.errors.push(l),a.lexeme}return i.codeGen(this)+"."+a.lexeme}if(4===r){var u=t[0],p=t[2],h=u.codeGen(this),_=p.codeGen(this);return"gl_FragData"===h&&this._reportError(u.location,"Please use MRT struct instead of gl_FragData."),h+"["+_+"]"}return this.defaultCodeGen(e.children)},t.visitVariableIdentifier=function(e){for(var t,r=n(e.referenceGlobalSymbolNames);!(t=r()).done;){var i=t.value;tz.context.referenceGlobal(i,tM.Any)}return e.getLexeme(this)},t.visitFunctionCall=function(e){var t=e.children[0];if(o(t.fnSymbol,tD)){tz.context.referenceGlobal(t.fnSymbol.ident,tM.FN);var r=t.children[2];if(o(r,tt.FunctionCallParameterList)){for(var n=r.paramNodes,i=t.fnSymbol.astNode.protoType.parameterList,a=n.filter(function(e,t){var r,n=null==i?void 0:null==(r=i[t])?void 0:r.typeInfo;return!n||!tz.context.isAttributeStruct(n.typeLexeme)&&!tz.context.isVaryingStruct(n.typeLexeme)&&!tz.context.isMRTStruct(n.typeLexeme)}),s="",c=0,l=a.length;c<l;c++){var u=a[c],p=u.codeGen(this);o(u,tt.MacroCallArgBlock)||0===c?s+=p:s+=", "+p}return t.fnSymbol.ident+"("+s+")"}}return this.defaultCodeGen(e.children)},t.visitMacroCallFunction=function(e){var t=e.children[2];if(!o(t,tt.FunctionCallParameterList))return this.defaultCodeGen(e.children);for(var r=t.paramNodes.filter(function(e){if(o(e,tt.AssignmentExpression)){var t=tx.unwrapNodeByType(e,td.variable_identifier);if(t&&"string"==typeof t.typeInfo&&(tz.context.isAttributeStruct(t.typeInfo)||tz.context.isVaryingStruct(t.typeInfo)||tz.context.isMRTStruct(t.typeInfo)))return!1}return!0}),n="",i=0,a=r.length;i<a;i++){var s=r[i],c=s.codeGen(this);o(s,tt.MacroCallArgBlock)||0===i?n+=c:n+=", "+c}return e.macroName+"("+n+")"},t.visitStatementList=function(e){var t=e.children;return 1===t.length?t[0].codeGen(this):t[0].codeGen(this)+"\n"+t[1].codeGen(this)},t.visitSingleDeclaration=function(e){var t=e.typeSpecifier.type;return"string"==typeof t&&tz.context.referenceGlobal(t,tM.STRUCT),this.defaultCodeGen(e.children)},t.visitGlobalVariableDeclaration=function(e){var t=e.children,r=t[0];return o(r,tt.FullySpecifiedType)&&r.typeSpecifier.isCustom&&tz.context.referenceGlobal(r.type,tM.STRUCT),"uniform "+this.defaultCodeGen(t)},t.visitDeclaration=function(e){var t=tz.context,r=e.children,n=r[0];if(o(n,tt.InitDeclaratorList)){var i=n.typeInfo.typeLexeme;if(t.isVaryingStruct(i)||t.isMRTStruct(i))return""}return this.defaultCodeGen(r)},t.visitFunctionParameterList=function(e){for(var t=e.parameterInfoList.filter(function(e){return!e.typeInfo||!tz.context.isAttributeStruct(e.typeInfo.typeLexeme)&&!tz.context.isVaryingStruct(e.typeInfo.typeLexeme)&&!tz.context.isMRTStruct(e.typeInfo.typeLexeme)}),r="",n=0,i=t.length;n<i;n++){var a=t[n].astNode,s=a.codeGen(this);o(a,tt.MacroParamBlock)||0===n?r+=s:r+=", "+s}return r},t.visitFunctionHeader=function(e){var t=e.returnType.typeSpecifier.lexeme;return tz.context.isVaryingStruct(t)?"void "+e.ident.lexeme+"(":this.defaultCodeGen(e.children)},t.visitJumpStatement=function(e){var t=e.children;if(t[0].type===ta.RETURN){var r=t[1];if(o(r,tt.Expression)){var n=tx.unwrapNodeByType(r,td.variable_identifier);if(tz.context.isVaryingStruct(null==n?void 0:n.typeInfo))return"";var i=tx.unwrapNodeByType(r,td.function_call);if(tz.context.isVaryingStruct(null==i?void 0:i.type))return""+r.codeGen(this)+";"}}return this.defaultCodeGen(t)},t.visitFunctionIdentifier=function(e){return this.defaultCodeGen(e.children)},t.visitStructSpecifier=function(e){var t=this,r=tz.context,i=r.varyingStructs,a=r.attributeStructs,s=r.mrtStructs,c=-1!==i.indexOf(e),l=-1!==a.indexOf(e),u=-1!==s.indexOf(e);if(c&&l&&this._reportError(e.location,"cannot use same struct as Varying and Attribute"),c&&u&&this._reportError(e.location,"cannot use same struct as Varying and MRT"),l&&u&&this._reportError(e.location,"cannot use same struct as Attribute and MRT"),!c&&!l&&!u)return this.defaultCodeGen(e.children);var p=[];p.push.apply(p,[].concat(e.macroExpressions.map(function(e){return{text:o(e,t_)?e.lexeme:e.codeGen(t),index:e.location.start.index}})));for(var h,_=n(e.propList);!(h=_()).done;){var f,d,m,S=h.value,g=S.ident.lexeme;c&&(null==(f=r._referencedVaryingList[g])?void 0:f.indexOf(S))>=0?p.push({text:""+this.getVaryingProp(S)+"\n",index:S.ident.location.start.index}):l&&(null==(d=r._referencedAttributeList[g])?void 0:d.indexOf(S))>=0?p.push({text:""+this.getAttributeProp(S)+"\n",index:S.ident.location.start.index}):u&&(null==(m=r._referencedMRTList[g])?void 0:m.indexOf(S))>=0&&p.push({text:""+this.getMRTProp(S)+"\n",index:S.ident.location.start.index})}return p.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("")},t.visitFunctionDefinition=function(e){return e.protoType.ident.lexeme==tz.context.stageEntry?"void main() "+e.statements.codeGen(this):this.defaultCodeGen(e.children)},t._reportError=function(e,t){this.errors.push(new tu(tp.CompilationError,t,e,rc._processingPassText))},e}();tj._tmpArrayPool=new t.ReturnableObjectPool(tH,10);var tq=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t._globalCodeArray=[],t}a(t,e);var r=t.prototype;return r.reset=function(){this._globalCodeArray.length=0,t._serializedGlobalKey.clear()},r.getOtherGlobal=function(e,t){for(var r,i=n(e.globalPrecisions);!(r=i()).done;){var a=r.value;t.push({text:a.codeGen(this),index:a.location.start.index})}},r.visitShaderProgram=function(e,t,r){this.errors.length=0,tz.reset(),this.reset();var n=e.shaderData;tz.context._passSymbolTable=n.symbolTable;var i=n.getOuterGlobalMacroDeclarations();return{vertex:this._vertexMain(t,n,i),fragment:this._fragmentMain(r,n,i)}},r._vertexMain=function(e,r,i){var a=this,o=tz.context;o.stage=tC.VERTEX,o.stageEntry=e;var s=t._lookupSymbol,c=r.symbolTable;s.set(e,tM.FN);var l=c.getSymbols(s,!0,[]);if(!l.length)throw"no entry function found: "+e;var u=o.attributeStructs,p=o.attributeList,h=o.varyingStructs,_=o.varyingList;l.forEach(function(e){var t=e.astNode,r=t.protoType.returnType;if("string"==typeof r.type){s.set(r.type,tM.STRUCT);var i=c.getSymbols(s,!0,[]);if(i.length)for(var o=0;o<i.length;o++){var l=i[o].astNode;h.push(l);for(var f,d=n(l.propList);!(f=d()).done;){var m=f.value;_.push(m)}}else a._reportError(r.location,'invalid varying struct: "'+r.type+'".')}else r.type!==ta.VOID&&a._reportError(r.location,"vertex main entry can only return struct or void.");var S=t.protoType.parameterList,g=null==S?void 0:S[0];if(g){var v=g.typeInfo.type;if("string"==typeof v){s.set(v,tM.STRUCT);var y=c.getSymbols(s,!0,[]);if(y.length)for(var x=0;x<y.length;x++){var E=y[x].astNode;u.push(E);for(var C,A=n(E.propList);!(C=A()).done;){var T=C.value;p.push(T)}}else a._reportError(g.astNode.location,'invalid attribute struct: "'+v+'".')}}});var f=this._globalCodeArray;tz.context.referenceGlobal(e,tM.FN),this._getGlobalSymbol(f),this._getCustomStruct(o.attributeStructs,f),this._getCustomStruct(o.varyingStructs,f),this._getGlobalMacroDeclarations(i,f),this.getOtherGlobal(r,f);var d=f.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n");return tz.context.reset(!1),this.reset(),d},r._fragmentMain=function(e,r,i){var a=this,o=tz.context;o.stage=tC.FRAGMENT,o.stageEntry=e;var s=t._lookupSymbol,c=r.symbolTable;s.set(e,tM.FN);var l=c.getSymbols(s,!0,[]);if(!(null==l?void 0:l.length))throw"no entry function found: "+e;l.forEach(function(e){var t=e.astNode,r=t.returnStatement;r&&(r.isFragReturnStatement=!0);var i=t.protoType.returnType,l=i.type,u=i.location;if("string"==typeof l){s.set(l,tM.STRUCT);var p=c.getSymbols(s,!0,[]);if(p.length)for(var h=0;h<p.length;h++){var _=p[h].astNode;o.mrtStructs.push(_);for(var f,d=n(_.propList);!(f=d()).done;){var m=f.value;o.mrtList.push(m)}}else a._reportError(u,"invalid mrt struct: "+l)}else l!==ta.VOID&&l!==ta.VEC4&&a._reportError(u,"fragment main entry can only return struct or vec4.")});var u=this._globalCodeArray;tz.context.referenceGlobal(e,tM.FN),this._getGlobalSymbol(u),this._getCustomStruct(o.varyingStructs,u),this._getCustomStruct(o.mrtStructs,u),this._getGlobalMacroDeclarations(i,u),this.getOtherGlobal(r,u);var p=u.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n");return o.reset(),this.reset(),p},r._getGlobalSymbol=function(e){var r=tz.context._referencedGlobals,n=Object.keys(r).length;if(0!==n){for(var i in r)if(!t._serializedGlobalKey.has(i)){t._serializedGlobalKey.add(i);for(var a=r[i],o=0;o<a.length;o++){var s=a[o],c=s.astNode.codeGen(this)+(s.type===tM.VAR?";":"");s.isInMacroBranch||e.push({text:c,index:s.astNode.location.start.index})}}Object.keys(r).length!==n&&this._getGlobalSymbol(e)}},r._getCustomStruct=function(e,t){for(var r,i=n(e);!(r=i()).done;){var a=r.value,o=a.codeGen(this);a.isInMacroBranch||t.push({text:o,index:a.location.start.index})}},r._getGlobalMacroDeclarations=function(e,t){var r=this,i=tz.context,a=i._referencedGlobals,s=i._referencedGlobalMacroASTs;s.length=0;for(var c,l=n(Object.values(a));!(c=l()).done;)for(var u,p=c.value,h=n(p);!(u=h()).done;){var _=u.value;_.isInMacroBranch&&s.push(_.astNode)}for(var f,d=n(e);!(f=d()).done;){var m=f.value,S=void 0,g=m.children[0];if(o(g,tt.GlobalMacroIfStatement)){var v=[];v.push.apply(v,[].concat(m.macroExpressions.map(function(e){return{text:o(e,t_)?e.lexeme:e.codeGen(r),index:e.location.start.index}}))),this._visitGlobalMacroIfStatement(g,v),S=v.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n")}else S=m.codeGen(this);t.push({text:S,index:m.location.start.index})}},r._visitGlobalMacroIfStatement=function(e,t){for(var r=e.children,n=0;n<r.length;n++){var i=r[n];if(o(i,tt.PrecisionSpecifier))t.push({text:i.codeGen(this),index:i.location.start.index});else if(o(i,tt.FunctionDefinition))-1!==tz.context._referencedGlobalMacroASTs.indexOf(i)&&t.push({text:i.getCache(),index:i.location.start.index});else if(o(i,tt.StructSpecifier)){var a,s,c,l,u=tz.context,p=u.stage;(-1!==tz.context._referencedGlobalMacroASTs.indexOf(i)||(p===tC.VERTEX?u.isAttributeStruct(null==(a=i.ident)?void 0:a.lexeme)||u.isVaryingStruct(null==(s=i.ident)?void 0:s.lexeme):u.isVaryingStruct(null==(c=i.ident)?void 0:c.lexeme)||u.isMRTStruct(null==(l=i.ident)?void 0:l.lexeme)))&&t.push({text:i.getCache(),index:i.location.start.index})}else if(o(i,tt.VariableDeclarationList))for(var h=i.variableDeclarations,_=0;_<h.length;_++){var f=h[_];-1!==tz.context._referencedGlobalMacroASTs.indexOf(f)&&t.push({text:f.getCache()+";",index:f.location.start.index})}o(i,tW)&&this._visitGlobalMacroIfStatement(i,t)}},t}(tj);tq._lookupSymbol=new tN("",null),tq._serializedGlobalKey=new Set;var tX=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.getAttributeProp=function(e){return"attribute "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getVaryingProp=function(e){return"varying "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getMRTProp=function(){return null},r.visitPostfixExpression=function(t){var r=t.children,n=r[0],i=tz.context;if(o(n,tt.PostfixExpression)&&i.isMRTStruct(n.type)){var a=r[2],s=i.mrtList.find(function(e){return e.ident.lexeme===a.lexeme});return s?"gl_FragData["+s.mrtIndex+"]":(this._reportError(a.location,"not found mrt property: "+a.lexeme),"")}return e.prototype.visitPostfixExpression.call(this,t)},r.visitJumpStatement=function(t){return t.isFragReturnStatement?tz.context.mrtStructs.length?"":"gl_FragColor = "+t.children[1].codeGen(this):e.prototype.visitJumpStatement.call(this,t)},t.getVisitor=function(){return this._singleton||(this._singleton=new t),this._singleton},t}(tq),tQ="GS_glFragColor",tY=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t._otherCodeArray=[],t._fragColorVariableRegistered=!1,t}a(t,e);var r=t.prototype;return r.reset=function(){e.prototype.reset.call(this),this._otherCodeArray.length=0,this._fragColorVariableRegistered=!1},r.getOtherGlobal=function(t,r){e.prototype.getOtherGlobal.call(this,t,r);for(var n=0,i=this._otherCodeArray.length;n<i;n++)r.push(this._otherCodeArray[n])},r.getAttributeProp=function(e){return"in "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getVaryingProp=function(e){return(tz.context.stage===tC.FRAGMENT?"in":"out")+" "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getMRTProp=function(e){return"layout(location = "+e.mrtIndex+") out vec4 "+e.ident.lexeme+";"},r.visitFunctionIdentifier=function(e){var t=e.children;if(1!==t[0].children.length)return this.defaultCodeGen(t);var r=e.lexeme;switch(e.ident){case"texture2D":case"textureCube":r="texture";break;case"texture2DProj":r="textureProj";break;case"texture2DLodEXT":case"textureCubeLodEXT":r="textureLod";break;case"texture2DGradEXT":case"textureCubeGradEXT":r="textureGrad";break;case"texture2DProjLodEXT":r="textureProjLod";break;case"texture2DProjGradEXT":r="textureProjGrad";break;case"gl_FragDepthEXT":r="gl_FragDepth"}return r},r.visitVariableIdentifier=function(t){var r=tz.context;if(r.stage===tC.FRAGMENT&&"gl_FragColor"===t.getLexeme(this)){if(r.mrtStructs.length){this._reportError(t.location,"gl_FragColor cannot be used with MRT (Multiple Render Targets).");return}return this._registerFragColorVariable(),tQ}return e.prototype.visitVariableIdentifier.call(this,t)},r.visitJumpStatement=function(t){return t.isFragReturnStatement?tz.context.mrtStructs.length?"":(this._registerFragColorVariable(),tQ+" = "+t.children[1].codeGen(this)+";"):e.prototype.visitJumpStatement.call(this,t)},r._registerFragColorVariable=function(){this._fragColorVariableRegistered||(this._otherCodeArray.push({text:"out vec4 "+tQ+";",index:0}),this._fragColorVariableRegistered=!0)},t.getVisitor=function(){return this._singleton||(this._singleton=new t),this._singleton},t}(tq),tK=/*#__PURE__*/function(){function e(e){this._currentIndex=0,this._column=0,this._line=0,this._source=e}var r=e.prototype;return r.setSource=function(e){this._source=e,this._currentIndex=0,this._line=this._column=0},r.getShaderPosition=function(e){return void 0===e&&(e=0),rc.createPosition(this._currentIndex-e,this._line,this._column-e)},r.isEnd=function(){return this._currentIndex>=this._source.length},r.getCurChar=function(){return this._source[this._currentIndex]},r.getCurCharCode=function(){return this._source.charCodeAt(this._currentIndex)},r.advance=function(e){for(var t=this._source,r=this._currentIndex,n=0;n<e;n++)"\n"===t[r+n]?(this._line+=1,this._column=0):this._column+=1;this._currentIndex+=e},r.skipSpace=function(t){for(;e.isWhiteSpaceChar(this.getCurCharCode(),t);)this.advance(1)},r.skipCommentsAndSpace=function(){for(var t=this._source,r=t.length,n=this._currentIndex;n<r;){for(;n<r&&e.isWhiteSpaceChar(t.charCodeAt(n),!0);)n++;if(n+1>=r||47!==t.charCodeAt(n))break;var i=t.charCodeAt(n+1);if(47===i)for(n+=2;n<r;){var a=t.charCodeAt(n);if(10===a||13===a)break;n++}else if(42===i){for(n+=2;n+1<r&&!(42===t.charCodeAt(n)&&47===t.charCodeAt(n+1));)n++;n+=2}else break}this.advance(n-this._currentIndex)},r.peek=function(e){var t=this._currentIndex;return this._source.substring(t,t+e)},r.scanLexeme=function(e){this.skipCommentsAndSpace();var t=e.length,r=this.peek(t);r!==e&&this.throwError(this.getShaderPosition(0),'Expect lexeme "'+e+'", but got "'+r+'"'),this.advance(t)},r.scanTwoExpectedLexemes=function(e,t){return(this.skipCommentsAndSpace(),this.peek(e.length)===e)?(this.advance(e.length),e):this.peek(t.length)===t?(this.advance(t.length),t):null},r.throwError=function(e){for(var r=arguments.length,n=Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var a=th.createGSError(n.join(" "),tp.ScannerError,this._source,e);throw t.Logger.error(a.toString()),a},r.scanPairedChar=function(e,t,r,n){n||this.scanLexeme(e);var i=this._currentIndex,a=this._source,o=a.length,s=this._currentIndex;if(r)for(var c=1;s<o;){var l=a[s];if(l===t&&0==--c)break;l===e&&c++,s++}else for(;s<o&&a[s]!==t;)s++;return this.advance(s+1-this._currentIndex),a.substring(i,s)},e.isDigit=function(e){return e>=48&&e<=57},e.isAlpha=function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122},e.isAlnum=function(t){return e.isAlpha(t)||e.isDigit(t)},e.isPreprocessorStartChar=function(e){return 35===e},e.isWhiteSpaceChar=function(e,t){return 32===e||9===e||t&&(10===e||13===e)},c(e,[{key:"currentIndex",get:function(){return this._currentIndex}},{key:"source",get:function(){return this._source}},{key:"line",get:function(){return this._line}},{key:"column",get:function(){return this._column}}]),e}(),tJ=/*#__PURE__*/function(e){function t(t,r){var n;return(n=e.call(this,t)||this).macroDefineList=r,n._needScanMacroConditionExpression=!1,n}a(t,e);var r=t.prototype;return r.tokenize=function(){return function(e,t){var r,n,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(6===s[0]&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}(this,function(e){switch(e.label){case 0:if(this.isEnd())return[3,2];return[4,this.scanToken()];case 1:return e.sent(),[3,0];case 2:return[2,tf]}})},r.scanToken=function(){if(this.skipCommentsAndSpace(),this.isEnd())return tf;if(this._needScanMacroConditionExpression)return this._needScanMacroConditionExpression=!1,this._scanMacroConditionExpression();var e,t=this.getCurCharCode();if(tK.isPreprocessorStartChar(t))return this._scanDirectives();if(tK.isAlpha(t))return this._scanWord();if(tK.isDigit(t))return this._scanNum();var r=this.getShaderPosition(),n=t_.pool.get();switch(this.getCurChar()){case"<":if(this.advance(1),"<"===(e=this.getCurChar())){if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.LEFT_ASSIGN,"<<=",r);break}n.set(ti.LEFT_OP,"<<",r);break}if("="===e){this.advance(1),n.set(ti.LE_OP,"<=",r);break}n.set(ti.LEFT_ANGLE,"<",r);break;case">":if(this.advance(1),">"===(e=this.getCurChar())){if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.RIGHT_ASSIGN,">>=",r);break}n.set(ti.RIGHT_OP,">>",r);break}if("="===e){this.advance(1),n.set(ti.GE_OP,">=",r);break}n.set(ti.RIGHT_ANGLE,">",r);break;case"+":if(this.advance(1),"+"===(e=this.getCurChar())){this.advance(1),n.set(ti.INC_OP,"++",r);break}if("="===e){this.advance(1),n.set(ti.ADD_ASSIGN,"+=",r);break}n.set(ti.PLUS,"+",r);break;case"-":if(this.advance(1),"-"===(e=this.getCurChar())){this.advance(1),n.set(ti.DEC_OP,"--",r);break}if("="===e){this.advance(1),n.set(ti.SUB_ASSIGN,"-=",r);break}n.set(ti.DASH,"-",r);break;case"=":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.EQ_OP,"==",r);break}n.set(ti.EQUAL,"=",r);break;case"!":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.NE_OP,"!=",r);break}n.set(ti.BANG,"!",r);break;case"&":if(this.advance(1),"&"===(e=this.getCurChar())){this.advance(1),n.set(ti.AND_OP,"&&",r);break}if("="===e){this.advance(1),n.set(ti.ADD_ASSIGN,"&=",r);break}n.set(ti.AMPERSAND,"&",r);break;case"|":if(this.advance(1),"|"===(e=this.getCurChar())){this.advance(1),n.set(ti.OR_OP,"||",r);break}if("="===e){this.advance(1),n.set(ti.OR_ASSIGN,"|=",r);break}n.set(ti.VERTICAL_BAR,"|",r);break;case"^":if(this.advance(1),"^"===(e=this.getCurChar())){this.advance(1),n.set(ti.XOR_OP,"^^",r);break}if("="===e){this.advance(1),n.set(ti.XOR_ASSIGN,"^=",r);break}n.set(ti.CARET,"^",r);break;case"*":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.MUL_ASSIGN,"*=",r);break}n.set(ti.STAR,"*",r);break;case"/":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.DIV_ASSIGN,"/=",r);break}n.set(ti.SLASH,"/",r);break;case"%":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.MOD_ASSIGN,"%=",r);break}n.set(ti.PERCENT,"%",r);break;case"(":this.advance(1),n.set(ti.LEFT_PAREN,"(",r);break;case")":this.advance(1),n.set(ti.RIGHT_PAREN,")",r);break;case"{":this.advance(1),n.set(ti.LEFT_BRACE,"{",r);break;case"}":this.advance(1),n.set(ti.RIGHT_BRACE,"}",r);break;case"[":this.advance(1),n.set(ti.LEFT_BRACKET,"[",r);break;case"]":this.advance(1),n.set(ti.RIGHT_BRACKET,"]",r);break;case".":if(this.advance(1),tK.isDigit(this.getCurCharCode()))return this._scanNumAfterDot();n.set(ti.DOT,".",r);break;case",":this.advance(1),n.set(ti.COMMA,",",r);break;case":":this.advance(1),n.set(ti.COLON,":",r);break;case";":this.advance(1),n.set(ti.SEMICOLON,";",r);break;case"~":this.advance(1),n.set(ti.TILDE,"~",r);break;case"?":this.advance(1),n.set(ti.QUESTION,"?",r);break;case'"':return this.advance(1),this._scanStringConst();default:this.throwError(this.getShaderPosition(0),"Unexpected character "+this.getCurChar())}return n},r._scanStringConst=function(){for(var e=this.getShaderPosition(),t=[];'"'!==this.getCurChar();)t.push(this.getCurChar()),this.advance(1);this.advance(1);var r=rc.createRange(e,this.getShaderPosition()),n=t_.pool.get();return n.set(ti.STRING_CONST,t.join(""),r),n},r._scanNumAfterDot=function(){for(var e=["."];tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);this._scanFloatSuffix(e);var t=t_.pool.get();return t.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),t},r._scanUtilBreakLine=function(e){for(;"\n"!==this.getCurChar()&&!this.isEnd();)e.push(this.getCurChar()),this.advance(1)},r._scanDirectives=function(){var e=[this.getCurChar()],r=this.getShaderPosition();for(this.advance(1);tK.isAlpha(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var n=t_.pool.get(),i=e.join("");if("#define"===i){this._scanUtilBreakLine(e);var a=e.join("")+"\n";n.set(ta.MACRO_DEFINE_EXPRESSION,a,r)}else{var o=t._lexemeTable[i];n.set(null!=o?o:ti.ID,i,r),("#if"===i||"#elif"===i)&&(this._needScanMacroConditionExpression=!0)}return n},r._scanMacroConditionExpression=function(){var e=[],t=this.getShaderPosition();this._scanUtilBreakLine(e);var r=e.join(""),n=t_.pool.get();return n.set(ta.MACRO_CONDITIONAL_EXPRESSION,r,t),n},r._scanWord=function(){var e=[this.getCurChar()],r=this.getShaderPosition();for(this.advance(1);tK.isAlnum(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var n=t_.pool.get(),i=e.join(""),a=t._lexemeTable[i];return this.macroDefineList[i]?n.set(ta.MACRO_CALL,i,r):n.set(null!=a?a:ti.ID,i,r),n},r._scanNum=function(){for(var e=[];tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var t=this.getCurChar();if("."===t){for(e.push(t),this.advance(1);tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);this._scanFloatSuffix(e);var r=t_.pool.get();return r.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),r}if("e"===t||"E"===t){this._scanFloatSuffix(e);var n=t_.pool.get();return n.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),n}this._scanIntegerSuffix(e);var i=t_.pool.get();return i.set(ti.INT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),i},r._scanFloatSuffix=function(e){var t=this.getCurChar();if("e"===t||"E"===t){e.push(t),this.advance(1),("+"===(t=this.getCurChar())||"-"===t)&&(e.push(t),this.advance(1),t=this.getCurChar()),tK.isDigit(this.getCurCharCode())||this.throwError(this.getShaderPosition(0),"lexing error, invalid exponent suffix.");do e.push(t),this.advance(1),t=this.getCurChar();while(tK.isDigit(this.getCurCharCode()))}("f"===t||"F"===t)&&(e.push(t),this.advance(1))},r._scanIntegerSuffix=function(e){var t=this.getCurChar();("u"===t||"U"===t)&&(e.push(t),this.advance(1))},t}(tK);function tZ(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}tJ._lexemeTable={const:ta.CONST,bool:ta.BOOL,float:ta.FLOAT,double:ta.DOUBLE,int:ta.INT,uint:ta.UINT,break:ta.BREAK,continue:ta.CONTINUE,do:ta.DO,else:ta.ELSE,for:ta.FOR,if:ta.IF,while:ta.WHILE,discard:ta.DISCARD,return:ta.RETURN,bvec2:ta.BVEC2,bvec3:ta.BVEC3,bvec4:ta.BVEC4,ivec2:ta.IVEC2,ivec3:ta.IVEC3,ivec4:ta.IVEC4,uvec2:ta.UVEC2,uvec3:ta.UVEC3,uvec4:ta.UVEC4,vec2:ta.VEC2,vec3:ta.VEC3,vec4:ta.VEC4,mat2:ta.MAT2,mat3:ta.MAT3,mat4:ta.MAT4,in:ta.IN,out:ta.OUT,inout:ta.INOUT,sampler2D:ta.SAMPLER2D,samplerCube:ta.SAMPLER_CUBE,sampler3D:ta.SAMPLER3D,sampler2DShadow:ta.SAMPLER2D_SHADOW,samplerCubeShadow:ta.SAMPLER_CUBE_SHADOW,sampler2DArray:ta.SAMPLER2D_ARRAY,sampler2DArrayShadow:ta.SAMPLER2D_ARRAY_SHADOW,isampler2D:ta.I_SAMPLER2D,isampler3D:ta.I_SAMPLER3D,isamplerCube:ta.I_SAMPLER_CUBE,isampler2DArray:ta.I_SAMPLER2D_ARRAY,usampler2D:ta.U_SAMPLER2D,usampler3D:ta.U_SAMPLER3D,usamplerCube:ta.U_SAMPLER_CUBE,usampler2DArray:ta.U_SAMPLER2D_ARRAY,struct:ta.STRUCT,void:ta.VOID,true:ta.True,false:ta.False,precision:ta.PRECISION,precise:ta.PRECISE,highp:ta.HIGHP,mediump:ta.MEDIUMP,lowp:ta.LOWP,invariant:ta.INVARIANT,flat:ta.FLAT,smooth:ta.SMOOTH,noperspective:ta.NOPERSPECTIVE,centroid:ta.CENTROID,layout:ta.LAYOUT,location:ta.LOCATION,"#if":ta.MACRO_IF,"#ifdef":ta.MACRO_IFDEF,"#ifndef":ta.MACRO_IFNDEF,"#else":ta.MACRO_ELSE,"#elif":ta.MACRO_ELIF,"#endif":ta.MACRO_ENDIF,"#undef":ta.MACRO_UNDEF};var t$=((e8={})[e8.id=0]="id",e8[e8.line_remain=1]="line_remain",e8[e8.chunk=2]="chunk",e8[e8.int_constant=3]="int_constant",e8[e8.string_const=4]="string_const",e8[e8.right_op=5]="right_op",e8[e8.left_op=6]="left_op",e8[e8.left_paren=7]="left_paren",e8[e8.right_paren=8]="right_paren",e8[e8.ge=9]="ge",e8[e8.le=10]="le",e8[e8.eq=11]="eq",e8[e8.neq=12]="neq",e8[e8.and=13]="and",e8[e8.or=14]="or",e8[e8.left_angle=15]="left_angle",e8[e8.right_angle=16]="right_angle",e8[e8.star=17]="star",e8[e8.plus=18]="plus",e8[e8.dash=19]="dash",e8[e8.bang=20]="bang",e8[e8.slash=21]="slash",e8[e8.percent=22]="percent",e8[e8.EOF=100]="EOF",e8),t0=((te={})[te.define=101]="define",te[te.undef=102]="undef",te[te.if=103]="if",te[te.ifdef=104]="ifdef",te[te.ifndef=105]="ifndef",te[te.else=106]="else",te[te.elif=107]="elif",te[te.endif=108]="endif",te[te.defined=109]="defined",te),t2=/*#__PURE__*/function(){function e(e,t,r,n){this.macro=e,this.body=t,this.location=r,this.args=n,(null==n?void 0:n.length)>0&&(this._argsLexemes=this.args.map(function(e){return e.lexeme}),this._replaceRegex=RegExp("\\b("+this._argsLexemes.join("|")+")\\b","g"))}return e.prototype.expandFunctionBody=function(e){var t,r=this;if(e.length!==(null==(t=this.args)?void 0:t.length))throw th.createGSError("mismatched function macro",tp.PreprocessorError,"",this.location);return 0===e.length?this.body.lexeme:this.body.lexeme.replace(this._replaceRegex,function(t){return e[r._argsLexemes.indexOf(t)]})},c(e,[{key:"isFunction",get:function(){return!!this.args}}]),e}(),t1=function(e,t,r){this.sourceFile=null!=e?e:"__main__",this.rangeInFile=t,this.sourceMap=r},t3=/*#__PURE__*/function(){function e(e,t,r){this.sourceLoc={block:e,rangeInBlock:t},this.generatedLoc=r}return e.prototype.getSourceIndex=function(e){var t,r,n,i,a=this.sourceLoc,o=a.block,s=a.rangeInBlock;if(o.sourceMap){if("__main__"!==o.sourceFile)return o.sourceMap.map(e-this.generatedLoc.start);if(s)return{sourceFile:o.sourceFile,index:(null!=(n=null==(r=o.rangeInFile)?void 0:r.start.index)?n:0)+s.start.index}}return{index:e-this.generatedLoc.start+s.start.index+(null!=(i=null==(t=o.rangeInFile)?void 0:t.start.index)?i:0),sourceFile:this.sourceLoc.block.sourceFile}},e}(),t4=/*#__PURE__*/function(){function e(){this.mapRanges=[]}var t=e.prototype;return t.addMapRange=function(e){this.mapRanges.push(e)},t.map=function(t){for(var r,i,a=n(this.mapRanges);!(i=a()).done;){var o=i.value,s=o.generatedLoc;if(e.rangeContains(s,t))return o.getSourceIndex(t);if(o.generatedLoc.start<t){r=o;continue}break}return r?{index:t-r.generatedLoc.end+r.sourceLoc.rangeInBlock.end.index,sourceFile:r.sourceLoc.block.sourceFile}:{sourceFile:"__main__",index:t}},e.rangeContains=function(e,t){return e.start<=t&&e.end>t},e}(),t9=/*#__PURE__*/function(e){function t(t,r,n){var i;return void 0===r&&(r="__main__"),(i=e.call(this,t)||this).macroLvl=0,i.sourceMap=new t4,i.file=r,i.blockRange=n,i}a(t,e);var r=t.prototype;return r.scanWordsUntilTerminator=function(e){for(var t=[];;)if(this.skipSpace(!0),tK.isAlpha(this.getCurCharCode()))t.push(this.scanWord());else{if(this.getCurChar()===e)return this.advance(1),t;this.advance(1)}},r.scanWord=function(){for(;!tK.isAlpha(this.getCurCharCode())&&!this.isEnd();)this.advance(1);if(this.isEnd())return tf;for(var e,r=this._currentIndex;tK.isAlnum(this.getCurCharCode())&&!this.isEnd();)this.advance(1);var n=this._currentIndex,i=this._source.slice(r,n);n===r&&this.throwError(this.getShaderPosition(0),"no word found.");var a=t_.pool.get(),o=null!=(e=t._lexemeTable[i])?e:t$.id;return a.set(o,i,this.getShaderPosition(i.length)),a},r.scanToken=function(){if(this.skipCommentsAndSpace(),!this.isEnd()){for(var e,r=this._source,n=this._currentIndex,i=!1,a=r.length;this._currentIndex<a;)if(t._isPpCharacters(r.charCodeAt(this._currentIndex)))this.advance(1),i=!0;else{if(i)break;this.advance(1),this.skipCommentsAndSpace(),n=this._currentIndex}var o=r.slice(n,this._currentIndex),s=t_.pool.get(),c=null!=(e=t._lexemeTable[o])?e:t$.id;return s.set(c,o,this.getShaderPosition(this._currentIndex-n)),c===t0.if||c===t0.ifdef||c===t0.ifndef?this.macroLvl++:c===t0.endif&&this.macroLvl--,s}},r.scanQuotedString=function(){this.skipSpace(!0);var e=this._source,t=e.length,r=this.getShaderPosition(0),n=this._currentIndex;34!==e.charCodeAt(n)&&this.throwError(r,"Unexpected char, expected '\"'");for(var i=++n;n<t&&34!==e.charCodeAt(n);)n++;n>=t&&this.throwError(this.getShaderPosition(0),"Unexpected char, expected '\"'");var a=e.slice(i,n);this.advance(n+1-this._currentIndex);var o=t_.pool.get();return o.set(t$.string_const,a,r),o},r.scanToChar=function(e){for(var t=this._source;t[this._currentIndex]!==e&&!this.isEnd();)this.advance(1)},r.scanMacroBranchBody=function(){for(var e=this.getShaderPosition(0),t=this.macroLvl,r=this.scanToken();;){var n=r.type;if(n===t0.endif&&t-1===this.macroLvl||(n===t0.elif||n===t0.else)&&t===this.macroLvl)break;r=this.scanToken()}var i=this._source.slice(e.index,this._currentIndex-r.lexeme.length-1),a=t_.pool.get();return a.set(t$.chunk,i,e),{body:a,nextDirective:r}},r.scanPairedBlock=function(e,t){this.scanToChar(e);var r=0,n=this._source;do{var i=n[this._currentIndex];i===e?r++:i===t&&r--,this.advance(1)}while(r>0)},r.scanRemainMacro=function(){for(var e=this.macroLvl,t=this.scanToken();!this.isEnd()&&(t.type!==t0.endif||e-1!==this.macroLvl);)t=this.scanToken();return this.getShaderPosition(0)},r.peekNonSpace=function(){for(var e=this._currentIndex;/\s/.test(this._source[e]);)e+=1;return this._source[e]},r.scanInteger=function(){for(var e=this._currentIndex;tK.isDigit(this.getCurCharCode());)this.advance(1);this._currentIndex===e&&this.throwError(this.getShaderPosition(0),"no integer found");var t=this._source.slice(e,this._currentIndex),r=t_.pool.get();return r.set(t$.int_constant,t,this.getShaderPosition(0)),r},r.scanMacroBody=function(){this.skipSpace(!1);for(var e="",t=this._source,r=t.length,n=this.getShaderPosition(0);this._currentIndex<r;){var i=t.charCodeAt(this._currentIndex);if(10===i)break;if(47===i){var a=this._currentIndex+1;if(a<r){var o=t.charCodeAt(a);if(47===o)break;if(42===o){for(this.advance(2);this._currentIndex+1<r;){var s=this._currentIndex;if(42===t.charCodeAt(s)&&47===t.charCodeAt(s+1)){this.advance(2);break}this.advance(1)}e+=" ";continue}}}e+=t[this._currentIndex],this.advance(1)}if(""===e)return null;var c=t_.pool.get();return c.set(t$.line_remain,e,rc.createRange(n,this.getShaderPosition(0))),c},t._isPpCharacters=function(e){return 35===e||tK.isAlnum(e)},t}(tK);t9._lexemeTable={"#define":t0.define,"#undef":t0.undef,"#if":t0.if,"#ifdef":t0.ifdef,"#ifndef":t0.ifndef,"#else":t0.else,"#elif":t0.elif,"#endif":t0.endif,defined:t0.defined};var t5=/*#__PURE__*/function(){function e(){}return e.expand=function(e,t,r){for(var i,a=[],o=0,s=0,c=n(e);!(i=c()).done;){var l=i.value,u=t.slice(o,l.rangeInBlock.start.index);a.push(u,l.replace);var p=s+u.length+l.replace.length,h=new t3(l.block,l.rangeInBlock,{start:s+u.length,end:p});null==r||r.addMapRange(h),o=l.rangeInBlock.end.index,s=p}return a.push(t.slice(o)),a.join("").replace(/\n\s*\n+/g,"\n")},e}(),t6=/*#__PURE__*/function(){function e(){}return e.parse=function(t,r){e._reset();for(var i,a=n(r);!(i=a()).done;){var o=i.value;e._addPredefinedMacro(o.name,o.value)}return this.lexer=new t9(t),e._parseDirectives(this.lexer)},e._reset=function(){this._expandSegmentsStack.length=0,this._expandSegmentsStack.push([]),this._definedMacros.clear(),this._addPredefinedMacro("GL_ES"),this._errors.length=0},e._addPredefinedMacro=function(e,t){var r,n=t_.pool.get();n.set(t$.id,e),void 0!=t&&(r=t_.pool.get()).set(t$.id,t),this._definedMacros.set(e,new t2(n,r))},e._parseDirectives=function(e){for(var t;t=e.scanToken();)switch(t.type){case t$.id:this._parseMacro(e,t);break;case t0.define:this._parseDefine(e);break;case t0.undef:this._parseUndef(e);break;case t0.if:this._parseIfDirective(e,t0.if);break;case t0.ifndef:this._parseIfDirective(e,t0.ifndef);break;case t0.ifdef:this._parseIfDirective(e,t0.ifdef)}return this._errors.length>0?null:t5.expand(this._getExpandSegments(),e.source,e.sourceMap)},e._getExpandSegments=function(){return this._expandSegmentsStack[this._expandSegmentsStack.length-1]},e._reportError=function(e,t,r,n){var i=th.createGSError(t,tp.PreprocessorError,r,e,n);this._errors.push(i)},e._parseIfDirective=function(e,t){var r,n=t===t0.if?3:t===t0.ifdef?6:7,i=e.currentIndex-n,a=!1;if(t===t0.if)r=this._parseConstantExpression(e);else{var o=e.scanWord().lexeme;if(o.startsWith("GL_"))a=!0;else{var s=this._definedMacros.get(o);r=t===t0.ifdef?!!s:!s}}e.skipSpace(!0);var c=e.scanMacroBranchBody(),l=c.body,u=c.nextDirective;if(!a){if(r){var p=u.type===t0.endif?e.getShaderPosition(0):e.scanRemainMacro(),h=this._expandMacroChunk(l.lexeme,l.location,e);this._addContentReplace(e.file,rc.createPosition(i),p,h.content,e.blockRange,h.sourceMap)}else this._addEmptyReplace(e,i),this._processConditionalDirective(u.type,e)}},e._processConditionalDirective=function(e,t){if(e!==t0.endif){var r=t.currentIndex;if(e===t0.else){var n=t.scanMacroBranchBody().body,i=this._expandMacroChunk(n.lexeme,n.location,t);this._addContentReplace(t.file,rc.createPosition(r),t.getShaderPosition(0),i.content,t.blockRange,i.sourceMap)}else if(e===t0.elif){var a=this._parseConstantExpression(t),o=t.scanMacroBranchBody(),s=o.body,c=o.nextDirective;if(a){var l=c.type===t0.endif?t.currentIndex:t.scanRemainMacro().index,u=this._expandMacroChunk(s.lexeme,s.location,t);this._addContentReplace(t.file,rc.createPosition(r),rc.createPosition(l),u.content,t.blockRange,u.sourceMap)}else this._addContentReplace(t.file,rc.createPosition(r),rc.createPosition(t.currentIndex),"",t.blockRange),this._processConditionalDirective(c.type,t)}}},e._parseConstantExpression=function(e){return e.skipSpace(!0),this._parseLogicalOrExpression(e)},e._parseLogicalOrExpression=function(e){var t=this._parseLogicalAndExpression(e),r=e.peek(2);if(r&&"||"===r){e.advance(2),e.skipSpace(!1);var n=this._parseLogicalOrExpression(e);return t||n}return t},e._parseLogicalAndExpression=function(e){var t=this._parseEqualityExpression(e),r=e.peek(2);if(r&&"&&"===r){e.advance(2),e.skipSpace(!1);var n=this._parseLogicalAndExpression(e);return t&&n}return t},e._parseEqualityExpression=function(e){var t=this._parseRelationalExpression(e),r=e.peek(2);if(r&&["==","!="].includes(r)){e.advance(2),e.skipSpace(!1);var n=this._parseEqualityExpression(e);switch(r){case"==":return t===n;case"!=":return t!==n}}return t},e._parseRelationalExpression=function(e){var t=this._parseShiftExpression(e),r=e.peek(2);if("="!==r[1]&&(r=r[0]),r&&[">","<",">=","<="].includes(r)){var n=e.getShaderPosition(0);e.advance(r.length),e.skipSpace(!1);var i=this._parseRelationalExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(n,"invalid operator in relation expression.",e.source,e.file);return}switch(r){case">":return t>i;case"<":return t<i;case">=":return t>=i;case"<=":return t<=i}}return t},e._parseShiftExpression=function(e){var t=this._parseAdditiveExpression(e),r=e.peek(2);if(r&&[">>","<<"].includes(r)){var n=e.getShaderPosition(0);e.advance(2),e.skipSpace(!1);var i=this._parseShiftExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(n,"invalid operator in shift expression.",e.source,e.file);return}switch(r){case">>":return t>>i;case"<<":return t<<i}}return t},e._parseAdditiveExpression=function(e){var t=this._parseMulticativeExpression(e);if([">","<"].includes(e.getCurChar())){var r=e.getShaderPosition(0);e.advance(1);var n=e.getCurChar();e.skipSpace(!1);var i=this._parseAdditiveExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t)return this._reportError(r,"invalid operator.",e.source,e.file),!1;switch(n){case"+":return t+i;case"-":return t-i}}return t},e._parseMulticativeExpression=function(e){var t=this._parseUnaryExpression(e);if(e.skipSpace(!1),["*","/","%"].includes(e.getCurChar())){var r=e.getShaderPosition(0),n=e.getCurChar();e.skipSpace(!1);var i=this._parseMulticativeExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(r,"invalid operator.",e.source,e.file);return}switch(n){case"*":return t*i;case"/":return t/i;case"%":return t%i}}return t},e._parseUnaryExpression=function(e){var t=e.getCurChar();if(["+","-","!"].includes(t)){var r=e.getShaderPosition(0);e.advance(1),e.skipSpace(!1);var n=this._parseParenthesisExpression(e);switch(("!"===t&&"boolean"!=typeof n||"!"!==t&&"number"!=typeof n)&&this._reportError(r,"invalid operator.",e.source,e.file),t){case"+":return n;case"-":return-n;case"!":return!n}}return this._parseParenthesisExpression(e)},e._parseParenthesisExpression=function(e){if("("===e.getCurChar()){e.advance(1),e.skipSpace(!1);var t=this._parseConstantExpression(e);return e.scanToChar(")"),e.advance(1),t}return this._parseConstant(e)},e._parseConstant=function(e){if(tK.isAlpha(e.getCurCharCode())){var t=e.scanWord();if(t.type===t0.defined){var r="("===e.peekNonSpace(),n=e.scanWord();return r&&(e.scanToChar(")"),e.advance(1)),!!this._definedMacros.get(n.lexeme)}var i=this._definedMacros.get(t.lexeme);if(!i)return!1;if(!i.body)return!0;i.isFunction&&this._reportError(t.location,"invalid function macro usage",e.source,e.file);var a=Number(i.body.lexeme);return Number.isInteger(a)||this._reportError(t.location,"invalid const macro: "+t.lexeme,e.source,e.file),a}if(tK.isDigit(e.getCurCharCode()))return Number(e.scanInteger().lexeme);this._reportError(e.getShaderPosition(0),"invalid token: "+e.getCurChar(),e.source,e.file)},e._parseMacroFunctionArgs=function(e,t,r){for(var n=e.length,i=t+r.length;i<n&&40!==e.charCodeAt(i);)i++;for(var a=[],o=1,s=i+1,c=s;c<n&&o>0;){var l=e.charCodeAt(c);if(40===l)o++;else if(41===l){if(0==--o){var u=e.substring(s,c).trim();u.length>0&&a.push(u);break}}else if(44===l&&1===o){var p=e.substring(s,c).trim();p.length>0&&a.push(p),s=c+1}c++}return{args:a,endIndex:c+1}},e._expandMacroBody=function(e){for(var t=this._expandVisitedMacros,r=++this._expandVersionId,n=e,i=!0;i;){i=!1;for(var a=n.length,o=0;o<a;){var s,c,l=n.charCodeAt(o);if(!tK.isAlpha(l)){o++;continue}for(var u=o;o<a&&tK.isAlnum(n.charCodeAt(o));)o++;var p=n.substring(u,o),h=this._definedMacros.get(p);if(h&&t[p]!==r){t[p]=r;var _=void 0,f=void 0;if(h.isFunction){var d=this._parseMacroFunctionArgs(n,u,p),m=d.args,S=d.endIndex;_=h.expandFunctionBody(m),f=S}else _=null!=(c=null==(s=h.body)?void 0:s.lexeme)?c:"",f=o;n=n.substring(0,u)+_+n.substring(f),i=!0;break}}}return n},e._expandMacroChunk=function(e,t,r){this._expandSegmentsStack.push([]),n="string"==typeof r?new t9(e,r):new t9(e,r.file,t);var n,i=this._parseDirectives(n);return this._expandSegmentsStack.pop(),{content:i,sourceMap:n.sourceMap}},e._addEmptyReplace=function(e,t){this._addContentReplace(e.file,rc.createPosition(t),e.getShaderPosition(0),"",e.blockRange)},e._addContentReplace=function(e,t,r,n,i,a){var o=new t1(e,i,a),s=rc.createRange(t,r);this._getExpandSegments().push({block:o,rangeInBlock:s,replace:n})},e._parseDefine=function(e){var t,r=e.getShaderPosition(7),n=e.scanWord(),i=n.lexeme,a=n.location,o=a.end;this._definedMacros.get(i)&&i.startsWith("GL_")&&this._reportError(a,"Redefined macro: "+i,e.source,e.file),"("===e.getCurChar()&&(t=e.scanWordsUntilTerminator(")"),o=e.getShaderPosition(0));var s=new t2(n,e.scanMacroBody(),rc.createRange(r,o),t);this._definedMacros.set(i,s),this._addContentReplace(e.file,r,e.getShaderPosition(0),"",e.blockRange)},e._parseUndef=function(e){var t=e.getShaderPosition(6),r=e.scanWord();this._definedMacros.delete(r.lexeme),this._addContentReplace(e.file,t,e.getShaderPosition(0),"",e.blockRange)},e._parseMacro=function(e,t){var r=this._definedMacros.get(t.lexeme);if(r){var n=t.location;if(r.isFunction){var i=this._parseMacroFunctionArgs(e.source,n.start.index,t.lexeme),a=i.args,o=i.endIndex,s=r.expandFunctionBody(a),c=this._expandMacroBody(s),l=o-n.end.index;e.advance(l),this._addContentReplace(e.file,n.start,e.getShaderPosition(0),c,e.blockRange)}else{var u,p,h=null!=(p=null==(u=r.body)?void 0:u.lexeme)?p:"",_=this._expandMacroBody(h);this._addContentReplace(e.file,n.start,n.end,_,e.blockRange)}}},e.convertSourceIndex=function(e){return this.lexer.sourceMap.map(e)},e}();t6._definedMacros=new Map,t6._expandSegmentsStack=[[]],t6._expandVisitedMacros={},t6._expandVersionId=1,t6._errors=[];var t7=/*#__PURE__*/function(){function e(e){this.firstSetMap=new Map,this.followSetMap=new Map,this.actionTable=new Map,this.gotoTable=new Map,this._firstSetNTStack=[],this.grammar=e}var r=e.prototype;return r.generate=function(){this.computeFirstSet(),this.buildStateTable()},r.buildStateTable=function(){var e=[new tv(this.grammar.productions[0],0,[ti.EOF])],t=ty.create(e);this._extendState(t)},r._extendState=function(e){if(e.needReInfer){this._closure(e);for(var t,r=this._inferNextState(e),i=n(r);!(t=i()).done;){var a=t.value;this._extendState(a)}}},r._closure=function(e){for(var t,r=n(e.cores);!(t=r()).done;){var i=t.value;i.canReduce()||this._extendStateItem(e,i)}return e.closured=!0,e},r._extendStateItem=function(e,t){if(!tg.isTerminal(t.curSymbol)){var r=this.grammar.getProductionList(t.curSymbol);if(t.nextSymbol){for(var i=new Set,a=!1,o=1,s=t.symbolByOffset(1);s;s=t.symbolByOffset(++o)){if(tg.isTerminal(s)){i.add(s),a=!0;break}c=this.firstSetMap.get(s);for(var c,l,u=n(c);!(l=u()).done;){var p=l.value;i.add(p)}if(!c.has(ti.EPSILON))break}if(!a&&(null==c?void 0:c.has(ti.EPSILON)))for(var h,_=n(t.lookaheadSet);!(h=_()).done;){var f=h.value;i.add(f)}for(var d,m=n(r);!(d=m()).done;){var S=d.value,g=e.createStateItem(S,0);e.items.has(g)&&tg.isSubSet(i,g.lookaheadSet)||(e.items.add(g),g.addLookahead(i),this._extendStateItem(e,g))}}else for(var v,y=n(r);!(v=y()).done;){var x=v.value,E=e.createStateItem(x,0);e.items.has(E)&&tg.isSubSet(t.lookaheadSet,E.lookaheadSet)||(e.items.add(E),E.addLookahead(t.lookaheadSet),this._extendStateItem(e,E))}}},r._inferNextState=function(e){var t=new Map,r=null!=(a=this.actionTable.get(e.id))?a:new Map,i=null!=(o=this.gotoTable.get(e.id))?o:new Map;this.actionTable.set(e.id,r),this.gotoTable.set(e.id,i);for(var a,o,s,c=n(e.items);!(s=c()).done;){var l=s.value;if(l.canReduce()){var u=void 0;u=l.production.goal!==td.START?{action:tS.Reduce,target:l.production.id}:{action:tS.Accept};for(var p,h=n(l.lookaheadSet);!(p=h()).done;){var _=p.value;this._addAction(r,_,u)}}else{var f=l.advance();tg.addMapSetItem(t,l.curSymbol,f)}l.needReInfer=!1}for(var d,m=new Set,S=n(t.entries());!(d=S()).done;){var g=d.value,v=g[0],y=g[1],x=ty.create(Array.from(y));tg.isTerminal(v)?this._addAction(r,v,{action:tS.Shift,target:x.id}):i.set(v,x.id),m.add(x)}return m},r._addAction=function(e,r,n){var i=e.get(r);if(i&&!tg.isActionEqual(i,n)){if(r===ta.ELSE&&i.action===tS.Shift&&n.action===tS.Reduce)return;t.Logger.warn("conflict detect: <Terminal "+tg.toString(r)+"> \n",tg.printAction(i),"\n",tg.printAction(n))}e.set(r,n)},r.computeFirstSet=function(){for(var e,t=n(this.grammar.productions.slice(1));!(e=t()).done;){var r=e.value;this._computeFirstSetForNT(r.goal)}},r._computeFirstSetForNT=function(e){var t=this._firstSetNTStack.findIndex(function(t){return t===e});if(-1!==t){for(var r=this.firstSetMap.get(e),i=this._firstSetNTStack.length,a=i-1;a>t;a--){var o=this._firstSetNTStack[a];this.firstSetMap.set(o,r)}return r}this._firstSetNTStack.push(e);var s=this.grammar.getProductionList(e),c=new Set;this.firstSetMap.set(e,c),this.grammar.isNullableNT(e)&&c.add(ti.EPSILON);for(var l,u=n(s);!(l=u()).done;){for(var p=l.value,h=0;h<p.derivation.length;h++){var _=p.derivation[h];if(tg.isTerminal(_)){c.add(_);break}for(var f,d=this._computeFirstSetForNT(_),m=n(d);!(f=m()).done;){var S=f.value;S!==ti.EPSILON&&c.add(S)}if(!this.grammar.isNullableNT(_))break}h===p.derivation.length&&c.add(ti.EPSILON)}return this._firstSetNTStack.pop(),c},e}(),t8=/*#__PURE__*/function(){function e(e,t){this.startSymbol=e,t.unshift(new tm(td.START,[e])),this.productions=t}var t=e.prototype;return t.getProductionList=function(e){return this.productions.filter(function(t){return t.goal===e})},t.isNullableNT=function(e){return this.productions.find(function(t){return t.goal===e&&t.derivation[0]===ti.EPSILON})},t.getProductionByID=function(e){return tm.pool.get(e)},e.create=function(t,r){return new e(t,r.map(function(e){return new tm(e[0],e.slice(1))}))},e}(),re=[].concat(tg.createProductionWithOptions(td.gs_shader_program,[[td.global_declaration],[td.gs_shader_program,td.global_declaration]],tt.GLShaderProgram.pool),tg.createProductionWithOptions(td.global_declaration,[[td.precision_specifier],[td.variable_declaration_statement],[td.struct_specifier],[td.function_definition],[td.global_macro_if_statement],[td.macro_undef],[ta.MACRO_DEFINE_EXPRESSION]],tt.GlobalDeclaration.pool),tg.createProductionWithOptions(td.macro_call_symbol,[[ta.MACRO_CALL]],tt.MacroCallSymbol.pool),tg.createProductionWithOptions(td.macro_call_function,[[td.macro_call_symbol,ti.LEFT_PAREN,ti.RIGHT_PAREN],[td.macro_call_symbol,ti.LEFT_PAREN,td.function_call_parameter_list,ti.RIGHT_PAREN]],tt.MacroCallFunction.pool),tg.createProductionWithOptions(td.macro_undef,[[ta.MACRO_UNDEF,ti.ID],[ta.MACRO_UNDEF,ta.MACRO_CALL]],tt.MacroUndef.pool),tg.createProductionWithOptions(td.macro_push_context,[[ta.MACRO_IF,ta.MACRO_CONDITIONAL_EXPRESSION],[ta.MACRO_IFDEF,ti.ID],[ta.MACRO_IFNDEF,ti.ID],[ta.MACRO_IFDEF,td.macro_call_symbol],[ta.MACRO_IFNDEF,td.macro_call_symbol]],tt.MacroPushContext.pool),tg.createProductionWithOptions(td.macro_pop_context,[[ta.MACRO_ENDIF]],tt.MacroPopContext.pool),tg.createProductionWithOptions(td.macro_elif_expression,[[ta.MACRO_ELIF,ta.MACRO_CONDITIONAL_EXPRESSION]],tt.MacroElifExpression.pool),tg.createProductionWithOptions(td.macro_else_expression,[[ta.MACRO_ELSE]],tt.MacroElseExpression.pool),tg.createProductionWithOptions(td.global_macro_declaration,[[td.global_declaration],[td.global_macro_declaration,td.global_declaration]],tt.GlobalMacroDeclaration.pool),tg.createProductionWithOptions(td.global_macro_if_statement,[[td.macro_push_context,td.global_macro_declaration,td.global_macro_branch],[td.macro_push_context,td.global_macro_branch]],tt.GlobalMacroIfStatement.pool),tg.createProductionWithOptions(td.global_macro_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.global_macro_declaration,td.global_macro_branch],[td.macro_else_expression,td.global_macro_declaration,td.macro_pop_context],[td.macro_elif_expression,td.global_macro_branch],[td.macro_else_expression,td.macro_pop_context]],tt.GlobalMacroBranch.pool),tg.createProductionWithOptions(td.variable_declaration,[[td.fully_specified_type,ti.ID],[td.fully_specified_type,ti.ID,td.array_specifier],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.VariableDeclaration.pool),tg.createProductionWithOptions(td.variable_declaration_list,[[td.variable_declaration],[td.variable_declaration_list,ti.COMMA,ti.ID],[td.variable_declaration_list,ti.COMMA,ti.ID,td.array_specifier]],tt.VariableDeclarationList.pool),tg.createProductionWithOptions(td.variable_declaration_statement,[[td.variable_declaration_list,ti.SEMICOLON]]),tg.createProductionWithOptions(td.ext_builtin_type_specifier_nonarray,[[ta.VOID],[ta.FLOAT],[ta.BOOL],[ta.INT],[ta.UINT],[ta.VEC2],[ta.VEC3],[ta.VEC4],[ta.BVEC2],[ta.BVEC3],[ta.BVEC4],[ta.IVEC2],[ta.IVEC3],[ta.IVEC4],[ta.UVEC2],[ta.UVEC3],[ta.UVEC4],[ta.MAT2],[ta.MAT3],[ta.MAT4],[ta.MAT2X3],[ta.MAT2X4],[ta.MAT3X2],[ta.MAT3X4],[ta.MAT4X2],[ta.MAT4X3],[ta.SAMPLER2D],[ta.SAMPLER3D],[ta.SAMPLER_CUBE],[ta.SAMPLER2D_SHADOW],[ta.SAMPLER_CUBE_SHADOW],[ta.SAMPLER2D_ARRAY],[ta.SAMPLER2D_ARRAY_SHADOW],[ta.I_SAMPLER2D],[ta.I_SAMPLER3D],[ta.I_SAMPLER_CUBE],[ta.I_SAMPLER2D_ARRAY],[ta.U_SAMPLER2D],[ta.U_SAMPLER3D],[ta.U_SAMPLER_CUBE],[ta.U_SAMPLER2D_ARRAY]],tt.ExtBuiltinTypeSpecifierNonArray.pool),tg.createProductionWithOptions(td.type_specifier_nonarray,[[ti.ID],[td.ext_builtin_type_specifier_nonarray]],tt.TypeSpecifierNonArray.pool),tg.createProductionWithOptions(td.fully_specified_type,[[td.type_specifier],[td.type_qualifier,td.type_specifier]],tt.FullySpecifiedType.pool),tg.createProductionWithOptions(td.type_specifier,[[td.type_specifier_nonarray],[td.ext_builtin_type_specifier_nonarray,td.array_specifier]],tt.TypeSpecifier.pool),tg.createProductionWithOptions(td.type_qualifier,[[td.single_type_qualifier],[td.type_qualifier,td.single_type_qualifier]],tt.TypeQualifier.pool),tg.createProductionWithOptions(td.single_type_qualifier,[[td.storage_qualifier],[td.precision_qualifier],[td.interpolation_qualifier],[td.invariant_qualifier],[ta.PRECISE]],tt.SingleTypeQualifier.pool),tg.createProductionWithOptions(td.storage_qualifier,[[ta.CONST],[ta.IN],[ta.INOUT],[ta.OUT],[ta.CENTROID]],tt.StorageQualifier.pool),tg.createProductionWithOptions(td.interpolation_qualifier,[[ta.SMOOTH],[ta.FLAT]],tt.InterpolationQualifier.pool),tg.createProductionWithOptions(td.invariant_qualifier,[[ta.INVARIANT]],tt.InvariantQualifier.pool),tg.createProductionWithOptions(td.precision_qualifier,[[ta.HIGHP],[ta.MEDIUMP],[ta.LOWP]],tt.PrecisionQualifier.pool),tg.createProductionWithOptions(td.struct_specifier,[[ta.STRUCT,ti.ID,ti.LEFT_BRACE,td.struct_declaration_list,ti.RIGHT_BRACE,ti.SEMICOLON],[ta.STRUCT,ti.LEFT_BRACE,td.struct_declaration_list,ti.RIGHT_BRACE,ti.SEMICOLON]],tt.StructSpecifier.pool),tg.createProductionWithOptions(td.struct_declaration_list,[[td.struct_declaration],[td.struct_declaration_list,td.struct_declaration]],tt.StructDeclarationList.pool),tg.createProductionWithOptions(td.struct_declaration,[[td.type_specifier,td.struct_declarator_list,ti.SEMICOLON],[td.type_qualifier,td.type_specifier,td.struct_declarator_list,ti.SEMICOLON],[td.layout_qualifier,td.type_specifier,td.struct_declarator,ti.SEMICOLON],[td.macro_struct_declaration]],tt.StructDeclaration.pool),tg.createProductionWithOptions(td.macro_struct_declaration,[[td.macro_push_context,td.struct_declaration_list,td.macro_struct_branch],[td.macro_push_context,td.macro_struct_branch]],tt.MacroStructDeclaration.pool),tg.createProductionWithOptions(td.macro_struct_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.struct_declaration_list,td.macro_struct_branch],[td.macro_else_expression,td.struct_declaration_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_struct_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroStructBranch.pool),tg.createProductionWithOptions(td.layout_qualifier,[[ta.LAYOUT,ti.LEFT_PAREN,ta.LOCATION,ti.EQUAL,ti.INT_CONSTANT,ti.RIGHT_PAREN]],tt.LayoutQualifier.pool),tg.createProductionWithOptions(td.struct_declarator_list,[[td.struct_declarator],[td.struct_declarator_list,ti.COMMA,td.struct_declarator]],tt.StructDeclaratorList.pool),tg.createProductionWithOptions(td.struct_declarator,[[ti.ID],[ti.ID,td.array_specifier]],tt.StructDeclarator.pool),tg.createProductionWithOptions(td.array_specifier,[[ti.LEFT_BRACKET,ti.RIGHT_BRACKET],[ti.LEFT_BRACKET,td.integer_constant_expression,ti.RIGHT_BRACKET]],tt.ArraySpecifier.pool),tg.createProductionWithOptions(td.integer_constant_expression_operator,[[ti.PLUS],[ti.DASH],[ti.STAR],[ti.SLASH],[ti.PERCENT]],tt.IntegerConstantExpressionOperator.pool),tg.createProductionWithOptions(td.integer_constant_expression,[[td.variable_identifier],[ti.INT_CONSTANT],[td.integer_constant_expression,td.integer_constant_expression_operator,ti.INT_CONSTANT],[td.integer_constant_expression,td.integer_constant_expression_operator,td.variable_identifier]],tt.IntegerConstantExpression.pool),tg.createProductionWithOptions(td.conditional_expression,[[td.logical_or_expression],[td.logical_or_expression,ti.QUESTION,td.expression,ti.COLON,td.assignment_expression]],tt.ConditionalExpression.pool),tg.createProductionWithOptions(td.logical_or_expression,[[td.logical_xor_expression],[td.logical_or_expression,ti.OR_OP,td.logical_xor_expression]],tt.LogicalOrExpression.pool),tg.createProductionWithOptions(td.logical_xor_expression,[[td.logical_and_expression],[td.logical_xor_expression,ti.XOR_OP,td.logical_and_expression]],tt.LogicalXorExpression.pool),tg.createProductionWithOptions(td.logical_and_expression,[[td.inclusive_or_expression],[td.logical_and_expression,ti.AND_OP,td.inclusive_or_expression]],tt.LogicalAndExpression.pool),tg.createProductionWithOptions(td.inclusive_or_expression,[[td.exclusive_or_expression],[td.inclusive_or_expression,ti.VERTICAL_BAR,td.exclusive_or_expression]],tt.InclusiveOrExpression.pool),tg.createProductionWithOptions(td.exclusive_or_expression,[[td.and_expression],[td.exclusive_or_expression,ti.CARET,td.and_expression]],tt.ExclusiveOrExpression.pool),tg.createProductionWithOptions(td.and_expression,[[td.equality_expression],[td.and_expression,ti.AMPERSAND,td.equality_expression]],tt.AndExpression.pool),tg.createProductionWithOptions(td.equality_expression,[[td.relational_expression],[td.equality_expression,ti.EQ_OP,td.relational_expression],[td.equality_expression,ti.NE_OP,td.relational_expression]],tt.EqualityExpression.pool),tg.createProductionWithOptions(td.relational_expression,[[td.shift_expression],[td.relational_expression,ti.LEFT_ANGLE,td.shift_expression],[td.relational_expression,ti.RIGHT_ANGLE,td.shift_expression],[td.relational_expression,ti.LE_OP,td.shift_expression],[td.relational_expression,ti.GE_OP,td.shift_expression]],tt.RelationalExpression.pool),tg.createProductionWithOptions(td.shift_expression,[[td.additive_expression],[td.shift_expression,ti.LEFT_OP,td.additive_expression],[td.shift_expression,ti.RIGHT_OP,td.additive_expression]],tt.ShiftExpression.pool),tg.createProductionWithOptions(td.additive_expression,[[td.multiplicative_expression],[td.additive_expression,ti.PLUS,td.multiplicative_expression],[td.additive_expression,ti.DASH,td.multiplicative_expression]],tt.AdditiveExpression.pool),tg.createProductionWithOptions(td.multiplicative_expression,[[td.unary_expression],[td.multiplicative_expression,ti.STAR,td.unary_expression],[td.multiplicative_expression,ti.SLASH,td.unary_expression],[td.multiplicative_expression,ti.PERCENT,td.unary_expression]],tt.MultiplicativeExpression.pool),tg.createProductionWithOptions(td.unary_expression,[[td.postfix_expression],[ti.INC_OP,td.unary_expression],[ti.DEC_OP,td.unary_expression],[td.unary_operator,td.unary_expression]],tt.UnaryExpression.pool),tg.createProductionWithOptions(td.unary_operator,[[ti.PLUS],[ti.DASH],[ti.BANG],[ti.TILDE]],tt.UnaryOperator.pool),tg.createProductionWithOptions(td.postfix_expression,[[td.primary_expression],[td.postfix_expression,ti.LEFT_BRACKET,td.expression,ti.RIGHT_BRACKET],[td.function_call],[td.postfix_expression,ti.DOT,ti.ID],[td.postfix_expression,ti.DOT,td.function_call],[td.postfix_expression,ti.INC_OP],[td.postfix_expression,ti.DEC_OP]],tt.PostfixExpression.pool),tg.createProductionWithOptions(td.primary_expression,[[td.variable_identifier],[ti.INT_CONSTANT],[ti.FLOAT_CONSTANT],[ta.True],[ta.False],[ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN]],tt.PrimaryExpression.pool),tg.createProductionWithOptions(td.expression,[[td.assignment_expression],[td.expression,ti.COMMA,td.assignment_expression]],tt.Expression.pool),tg.createProductionWithOptions(td.assignment_expression,[[td.conditional_expression],[td.unary_expression,td.assignment_operator,td.assignment_expression]],tt.AssignmentExpression.pool),tg.createProductionWithOptions(td.assignment_operator,[[ti.EQUAL],[ti.MUL_ASSIGN],[ti.DIV_ASSIGN],[ti.MOD_ASSIGN],[ti.ADD_ASSIGN],[ti.SUB_ASSIGN],[ti.LEFT_ASSIGN],[ti.RIGHT_ASSIGN],[ti.AND_ASSIGN],[ti.XOR_ASSIGN],[ti.OR_ASSIGN]],tt.AssignmentOperator.pool),tg.createProductionWithOptions(td.function_call,[[td.function_call_generic]],tt.FunctionCall.pool),tg.createProductionWithOptions(td.function_call_generic,[[td.function_identifier,ti.LEFT_PAREN,td.function_call_parameter_list,ti.RIGHT_PAREN],[td.function_identifier,ti.LEFT_PAREN,ti.RIGHT_PAREN],[td.function_identifier,ta.VOID,ti.RIGHT_PAREN]],tt.FunctionCallGeneric.pool),tg.createProductionWithOptions(td.function_call_parameter_list,[[td.assignment_expression],[td.function_call_parameter_list,ti.COMMA,td.assignment_expression],[td.macro_call_arg_block],[td.function_call_parameter_list,td.macro_call_arg_block]],tt.FunctionCallParameterList.pool),tg.createProductionWithOptions(td.macro_call_arg_case_list,[[td.assignment_expression],[ti.COMMA,td.assignment_expression],[td.macro_call_arg_block],[td.macro_call_arg_case_list,td.macro_call_arg_block],[td.macro_call_arg_case_list,ti.COMMA,td.assignment_expression]],tt.MacroCallArgCaseList.pool),tg.createProductionWithOptions(td.macro_call_arg_block,[[td.macro_push_context,td.macro_call_arg_branch],[td.macro_push_context,td.macro_call_arg_case_list,td.macro_call_arg_branch]],tt.MacroCallArgBlock.pool),tg.createProductionWithOptions(td.macro_call_arg_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.macro_call_arg_case_list,td.macro_call_arg_branch],[td.macro_else_expression,td.macro_call_arg_case_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_call_arg_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroCallArgBranch.pool),tg.createProductionWithOptions(td.function_identifier,[[td.type_specifier]],tt.FunctionIdentifier.pool),tg.createProductionWithOptions(td.function_definition,[[td.function_prototype,td.compound_statement_no_scope]],tt.FunctionDefinition.pool),tg.createProductionWithOptions(td.function_prototype,[[td.function_declarator,ti.RIGHT_PAREN]],tt.FunctionProtoType.pool),tg.createProductionWithOptions(td.function_declarator,[[td.function_header],[td.function_header,td.function_parameter_list]],tt.FunctionDeclarator.pool),tg.createProductionWithOptions(td.function_header,[[td.fully_specified_type,ti.ID,ti.LEFT_PAREN]],tt.FunctionHeader.pool),tg.createProductionWithOptions(td.function_parameter_list,[[td.parameter_declaration],[td.function_parameter_list,ti.COMMA,td.parameter_declaration],[td.macro_param_block],[td.function_parameter_list,td.macro_param_block]],tt.FunctionParameterList.pool),tg.createProductionWithOptions(td.macro_param_case_list,[[td.parameter_declaration],[ti.COMMA,td.parameter_declaration],[td.macro_param_block],[td.macro_param_case_list,td.macro_param_block],[td.macro_param_case_list,ti.COMMA,td.parameter_declaration]],tt.MacroParamCaseList.pool),tg.createProductionWithOptions(td.macro_param_block,[[td.macro_push_context,td.macro_parameter_branch],[td.macro_push_context,td.macro_param_case_list,td.macro_parameter_branch]],tt.MacroParamBlock.pool),tg.createProductionWithOptions(td.macro_parameter_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.macro_param_case_list,td.macro_parameter_branch],[td.macro_else_expression,td.macro_param_case_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_parameter_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroParameterBranch.pool),tg.createProductionWithOptions(td.parameter_declaration,[[td.type_qualifier,td.parameter_declarator],[td.parameter_declarator],[td.macro_call_symbol],[td.macro_call_function]],tt.ParameterDeclaration.pool),tg.createProductionWithOptions(td.parameter_declarator,[[td.type_specifier,ti.ID],[td.type_specifier,ti.ID,td.array_specifier]],tt.ParameterDeclarator.pool),tg.createProductionWithOptions(td.statement_list,[[td.statement],[td.statement_list,td.statement]],tt.StatementList.pool),tg.createProductionWithOptions(td.statement,[[td.compound_statement],[td.simple_statement]],tt.Statement.pool),tg.createProductionWithOptions(td.compound_statement_no_scope,[[ti.LEFT_BRACE,ti.RIGHT_BRACE],[ti.LEFT_BRACE,td.statement_list,ti.RIGHT_BRACE]],tt.CompoundStatementNoScope.pool),tg.createProductionWithOptions(td.compound_statement,[[ti.LEFT_BRACE,ti.RIGHT_BRACE],[td.scope_brace,td.statement_list,td.scope_end_brace]],tt.CompoundStatement.pool),tg.createProductionWithOptions(td.simple_statement,[[td.declaration],[td.expression_statement],[td.selection_statement],[td.iteration_statement],[td.jump_statement],[td.macro_if_statement],[td.macro_undef],[ta.MACRO_DEFINE_EXPRESSION]],tt.SimpleStatement.pool),tg.createProductionWithOptions(td.declaration,[[td.function_prototype,ti.SEMICOLON],[td.init_declarator_list,ti.SEMICOLON],[ta.PRECISION,td.precision_qualifier,td.ext_builtin_type_specifier_nonarray,ti.SEMICOLON],[td.type_qualifier,ti.ID,ti.SEMICOLON],[td.type_qualifier,ti.ID,td.identifier_list,ti.SEMICOLON]],tt.Declaration.pool),tg.createProductionWithOptions(td.identifier_list,[[ti.COMMA,ti.ID],[td.identifier_list,ti.COMMA,ti.ID]],tt.IdentifierList.pool),tg.createProductionWithOptions(td.init_declarator_list,[[td.single_declaration],[td.init_declarator_list,ti.COMMA,ti.ID],[td.init_declarator_list,ti.COMMA,ti.ID,td.array_specifier],[td.init_declarator_list,ti.COMMA,ti.ID,td.array_specifier,ti.EQUAL,td.initializer],[td.init_declarator_list,ti.COMMA,ti.ID,ti.EQUAL,td.initializer]],tt.InitDeclaratorList.pool),tg.createProductionWithOptions(td.single_declaration,[[td.fully_specified_type,ti.ID],[td.fully_specified_type,ti.ID,td.array_specifier],[td.fully_specified_type,ti.ID,td.array_specifier,ti.EQUAL,td.initializer],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.SingleDeclaration.pool),tg.createProductionWithOptions(td.initializer,[[td.assignment_expression],[ti.LEFT_BRACE,td.initializer_list,ti.RIGHT_BRACE]],tt.Initializer.pool),tg.createProductionWithOptions(td.initializer_list,[[td.initializer],[td.initializer_list,ti.COMMA,td.initializer]],tt.InitializerList.pool),tg.createProductionWithOptions(td.expression_statement,[[ti.SEMICOLON],[td.expression,ti.SEMICOLON]],tt.ExpressionStatement.pool),tg.createProductionWithOptions(td.selection_statement,[[ta.IF,ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN,td.statement],[ta.IF,ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN,td.statement,ta.ELSE,td.statement]],tt.SelectionStatement.pool),tg.createProductionWithOptions(td.iteration_statement,[[ta.WHILE,ti.LEFT_PAREN,td.condition,ti.RIGHT_PAREN,td.statement],[ta.FOR,ti.LEFT_PAREN,td.for_init_statement,td.for_rest_statement,ti.RIGHT_PAREN,td.statement]],tt.IterationStatement.pool),tg.createProductionWithOptions(td.precision_specifier,[[ta.PRECISION,td.precision_qualifier,td.ext_builtin_type_specifier_nonarray,ti.SEMICOLON]],tt.PrecisionSpecifier.pool),tg.createProductionWithOptions(td.for_init_statement,[[td.expression_statement],[td.declaration]],tt.ForInitStatement.pool),tg.createProductionWithOptions(td.condition,[[td.expression],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.Condition.pool),tg.createProductionWithOptions(td.for_rest_statement,[[td.conditionopt,ti.SEMICOLON],[td.conditionopt,ti.SEMICOLON,td.expression]],tt.ForRestStatement.pool),tg.createProductionWithOptions(td.conditionopt,[[ti.EPSILON],[td.condition]],tt.ConditionOpt.pool),tg.createProductionWithOptions(td.jump_statement,[[ta.CONTINUE,ti.SEMICOLON],[ta.BREAK,ti.SEMICOLON],[ta.RETURN,ti.SEMICOLON],[ta.RETURN,td.expression,ti.SEMICOLON],[ta.DISCARD,ti.SEMICOLON]],tt.JumpStatement.pool),tg.createProductionWithOptions(td.scope_brace,[[ti.LEFT_BRACE]],tt.ScopeBrace.pool),tg.createProductionWithOptions(td.scope_end_brace,[[ti.RIGHT_BRACE]],tt.ScopeEndBrace.pool),tg.createProductionWithOptions(td.variable_identifier,[[ti.ID],[td.macro_call_symbol],[td.macro_call_function]],tt.VariableIdentifier.pool),tg.createProductionWithOptions(td.macro_if_statement,[[td.macro_push_context,td.statement_list,td.macro_branch],[td.macro_push_context,td.macro_branch]],tt.MacroIfStatement.pool),tg.createProductionWithOptions(td.macro_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.statement_list,td.macro_branch],[td.macro_else_expression,td.statement_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroBranch.pool)),rt=function(e){for(var t=0;t<re.length;t++){var r=re[t][1];r&&e.addTranslationRule(t,r)}},rr=/*#__PURE__*/function(){function e(e,t,r){this._traceBackStack=[],this.actionTable=e,this.gotoTable=t,this.grammar=r,this.sematicAnalyzer=new tF}var r=e.prototype;return r.parse=function(e,r){this.sematicAnalyzer.reset(r);var n=performance.now(),i=this._traceBackStack,a=this.sematicAnalyzer;i.push(0);for(var s=e.next(),c=0;;){c+=1;var l=s.value,u=this.stateActionTable.get(l.type);if((null==u?void 0:u.action)===tS.Shift)i.push(l,u.target),s=e.next();else if((null==u?void 0:u.action)===tS.Accept)return t.Logger.info("[Task - AST compilation] Accept! State automata run "+c+" times! cost time "+(performance.now()-n)+"ms"),null==a.acceptRule||a.acceptRule.call(a,a),a.semanticStack.pop();else if((null==u?void 0:u.action)===tS.Reduce){for(var p=u.target,h=this.grammar.getProductionByID(p),_=a.getTranslationRule(h.id),f=[],d=h.derivation.length-1;d>=0;d--)if(h.derivation[d]!==ti.EPSILON){i.pop();var m=i.pop();if(o(m,t_))f.unshift(m);else{var S=a.semanticStack.pop();f.unshift(S)}}null==_||_.apply(void 0,[].concat([a],f));var g=this.stateGotoTable;i.push(h.goal);var v=null==g?void 0:g.get(h.goal);i.push(v);continue}else{var y=th.createGSError("Unexpected token "+l.lexeme,tp.CompilationError,rc._processingPassText,l.location);return this.sematicAnalyzer.errors.push(y),null}}},r._printStack=function(e){for(var r="",n=0;n<this._traceBackStack.length-1;n++){var i,a=this._traceBackStack[n++],o=this._traceBackStack[n];r+="State"+a+" - "+(null!=(i=o.lexeme)?i:tx.toString(o))+"; "}r+="State"+this._traceBackStack[this._traceBackStack.length-1]+" --- "+e.lexeme,t.Logger.info(r)},e.create=function(){if(!this._singleton){var t=t8.create(td.gs_shader_program,re.map(function(e){return e[0]})),r=new t7(t);r.generate(),this._singleton=new e(r.actionTable,r.gotoTable,t),rt(this._singleton.sematicAnalyzer)}return this._singleton},c(e,[{key:"curState",get:function(){return this._traceBackStack[this._traceBackStack.length-1]}},{key:"stateActionTable",get:function(){return this.actionTable.get(this.curState)}},{key:"stateGotoTable",get:function(){return this.gotoTable.get(this.curState)}},{key:"errors",get:function(){return this.sematicAnalyzer.errors}}]),e}();function rn(){return(rn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var ri=/*#__PURE__*/function(){function e(){}return e.createRenderStates=function(){return{constantMap:{},variableMap:{}}},e.createShaderSource=function(e){return{name:e,subShaders:[],pendingContents:[],renderStates:this.createRenderStates()}},e.createSubShaderSource=function(e){return{name:e,passes:[],pendingContents:[],tags:{},renderStates:this.createRenderStates()}},e.createShaderPassSource=function(e){return{name:e,pendingContents:[],tags:{},renderStates:this.createRenderStates()}},e.createUsePass=function(e){return{name:e,pendingContents:[],isUsePass:!0,tags:{},renderStates:this.createRenderStates()}},e}(),ra=/*#__PURE__*/function(){function e(e,t,r){this.ident=e,this.type=t,this.value=r,this.isInMacroBranch=!1}var t=e.prototype;return t.set=function(e,t,r){this.ident=e,this.type=t,this.value=r},t.equal=function(e){return this.type===e.type},e}(),ro=/*#__PURE__*/function(e){function r(){var t;return t=e.apply(this,arguments)||this,t.hasPendingContent=!1,t}a(r,e);var n=r.prototype;return n.scanNumber=function(){this.skipCommentsAndSpace();var e=this._currentIndex,t=this._source,n=this._currentIndex;return n=r._scanDigits(t,n),"."===t[n]&&(n=r._scanDigits(t,n+1)),this.advance(n-this._currentIndex),Number(t.substring(e,n))},n.scanColor=function(){this.scanLexeme("(");var e=0,r=0,n=0,i=1;return e=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),r=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),n=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),i=this.scanNumber(),this.skipCommentsAndSpace()))),this.scanLexeme(")"),new t.Color(e,r,n,i)},n.scanToken=function(){for(;;){if(this.skipCommentsAndSpace(),this.isEnd())return;var e=this.getShaderPosition(0);if(tK.isAlpha(this.getCurCharCode())){var t=this._scanWord(e);if(null!==t)return t;this.hasPendingContent=!0;continue}var n=this.getCurChar(),i=r._symbolLexemeTable[n];if(void 0!==i){this.advance(1);var a=t_.pool.get();return a.set(i,n,e),a}this.advance(1)}},n.scanToCharacter=function(e){for(;this.getCurChar()!==e&&!this.isEnd();)this.advance(1);this.advance(1)},n.createCompileError=function(e,t){return th.createGSError(e,tp.CompilationError,this.source,null!=t?t:this.getShaderPosition(0))},n._scanWord=function(e){for(;tK.isAlnum(this.getCurCharCode())&&!this.isEnd();)this.advance(1);var t,n=this.getShaderPosition(0);if(!this._validateWordBoundaries(e.index,n.index))return null;var i=this._source.substring(e.index,n.index),a=null!=(t=r._keywordLexemeTable[i])?t:ti.ID,o=rc.createRange(e,n),s=t_.pool.get();return s.set(a,i,o),s},n._validateWordBoundaries=function(e,t){var r=this._source;if(e>0){var n=r.charCodeAt(e-1);if(!this._isValidWordBoundary(n))return!1}if(t<r.length){var i=r.charCodeAt(t);if(!this._isValidWordBoundary(i))return!1}return!0},n._isValidWordBoundary=function(e){return tK.isWhiteSpaceChar(e,!0)||r._isWordSeparatorChar(e)},r._isWordSeparatorChar=function(e){return 123===e||125===e||61===e||59===e||46===e||91===e||40===e},r._scanDigits=function(e,t){for(var r=t;r<e.length;){var n=e.charCodeAt(r);if(tK.isDigit(n))r++;else break}return r},r}(tK);ro._keywordLexemeTable={RenderQueueType:ta.GSRenderQueueType,BlendState:ta.GSBlendState,DepthState:ta.GSDepthState,StencilState:ta.GSStencilState,RasterState:ta.GSRasterState,EditorProperties:ta.GSEditorProperties,EditorMacros:ta.GSEditorMacros,Editor:ta.GSEditor,Tags:ta.GSTags,VertexShader:ta.GSVertexShader,FragmentShader:ta.GSFragmentShader,SubShader:ta.GSSubShader,Pass:ta.GSPass,BlendFactor:ta.GSBlendFactor,BlendOperation:ta.GSBlendOperation,Bool:ta.GSBool,Number:ta.GSNumber,Color:ta.GSColor,CompareFunction:ta.GSCompareFunction,StencilOperation:ta.GSStencilOperation,CullMode:ta.GSCullMode,UsePass:ta.GSUsePass,true:ta.True,false:ta.False},ro._symbolLexemeTable={"{":ta.LeftBrace,"}":ta.RightBrace,"=":ta.Equal};var rs=/*#__PURE__*/function(){function e(){}return e.parse=function(e){var r=performance.now();this.errors.length=0,this._symbolTableStack.clear(),this._pushScope();var n=this._lexer;n.setSource(e);for(var i=this._parseShader(n),a=i.pendingContents,o=i.renderStates,s=0,c=i.subShaders.length;s<c;s++){var l=i.subShaders[s],u=a.concat(l.pendingContents),p={constantMap:rn({},o.constantMap),variableMap:rn({},o.variableMap)};this._mergeRenderStates(p,l.renderStates);for(var h=0,_=l.passes.length;h<_;h++){var f=l.passes[h],d={constantMap:rn({},p.constantMap),variableMap:rn({},p.variableMap)};if(this._mergeRenderStates(d,f.renderStates),f.renderStates=d,!f.isUsePass){var m=u.concat(f.pendingContents);f.contents=m.map(function(e){return e.content}).join("\n")}}}return t.Logger.info("[Task - Source compilation] cost time "+(performance.now()-r)+"ms"),i},e._parseShader=function(e){e.scanLexeme("Shader");var t=e.scanPairedChar('"','"',!1,!1),r=ri.createShaderSource(t);e.scanLexeme("{");var n=1;e.skipCommentsAndSpace();for(var i=e.getShaderPosition(0),a=r.pendingContents;;){var o=e.scanToken();switch(o.type){case ta.GSSubShader:this._addPendingContents(i,o.lexeme.length,a);var s=this._parseSubShader();r.subShaders.push(s),i=e.getShaderPosition(0);break;case ta.GSEditorProperties:case ta.GSEditorMacros:case ta.GSEditor:this._addPendingContents(i,o.lexeme.length,a),e.scanPairedChar("{","}",!0,!1),i=e.getShaderPosition(0);break;case ta.LeftBrace:++n;break;case ta.RightBrace:if(0==--n)return this._addPendingContents(i,o.lexeme.length,a),this._popScope(),r;break;default:i=this._parseRenderState(o,i,a,r.renderStates)}}},e._parseRenderStateDeclarationOrAssignment=function(e,t){var r=this._lexer,n=r.scanToken();if(n.type===ti.ID){r.scanLexeme("{");var i=this._parseRenderStateProperties(t.lexeme),a=new ra(n.lexeme,t.type,i);this._symbolTableStack.insert(a)}else if("="===n.lexeme){var o,s=r.scanToken();if("{"===s.lexeme)o=this._parseRenderStateProperties(t.lexeme);else{r.scanLexeme(";");var c=this._lookupSymbol;c.set(s.lexeme,t.type);var l=this._symbolTableStack.lookup(c);if(!(null==l?void 0:l.value)){this._createCompileError('Invalid "'+t.lexeme+'" variable: '+s.lexeme,s.location);return}o=l.value}this._mergeRenderStates(e,o)}},e._mergeRenderStates=function(e,t){var r=e.constantMap,n=e.variableMap,i=t.constantMap,a=t.variableMap;for(var o in i)delete n[o],r[o]=i[o];for(var s in a)delete r[s],n[s]=a[s]},e._parseVariableDeclaration=function(){var e=this._lexer,t=e.scanToken();e.scanLexeme(";");var r=new ra(t.lexeme,t.type);this._symbolTableStack.insert(r)},e._pushScope=function(){var e=new tL;this._symbolTableStack.pushScope(e)},e._popScope=function(){this._symbolTableStack.popScope()},e._parseRenderStateProperties=function(e){for(var t=this._lexer,r=ri.createRenderStates();"}"!==t.getCurChar();)this._parseRenderStateProperty(e,r),t.skipCommentsAndSpace();return t.advance(1),r},e._createCompileError=function(e,t){var r=this._lexer.createCompileError(e,t);this.errors.push(r)},e._parseRenderStateProperty=function(e,r){var n=this._lexer,i=n.scanToken().lexeme,a=i;if("BlendState"===e&&"BlendColor"!==i&&"AlphaToCoverage"!==i){var o=0,s=n.scanTwoExpectedLexemes("[","=");if("["===s)o=n.scanNumber(),n.scanLexeme("]"),n.scanLexeme("=");else if("="!==s){this._createCompileError("Invalid syntax, expect '[' or '=', but got unexpected token"),n.scanToCharacter(";");return}a+=o}else n.scanLexeme("=");var c=t.RenderStateElementKey[e+a];if(void 0===c){this._createCompileError("Invalid render state property "+i),n.scanToCharacter(";");return}n.skipCommentsAndSpace();var l=n.getCurCharCode();if(tK.isDigit(l)||46===l)h=n.scanNumber();else{var u=n.scanToken(),p=u.type;if(p===ta.True)h=!0;else if(p===ta.False)h=!1;else if(p===ta.GSColor)h=n.scanColor();else if("."===n.getCurChar()){n.advance(1);var h,_,f=n.scanToken();if(void 0==(h=null==(_=this._renderStateConstMap[u.lexeme])?void 0:_[f.lexeme])){this._createCompileError("Invalid engine constant: "+u.lexeme+"."+f.lexeme,f.location),n.scanToCharacter(";");return}}else{h=u.lexeme;var d=this._lookupSymbol;if(d.set(u.lexeme,ti.ID),!this._symbolTableStack.lookup(d)){this._createCompileError("Invalid "+e+" variable: "+u.lexeme,u.location),n.scanToCharacter(";");return}}}n.scanLexeme(";"),"string"==typeof h?r.variableMap[c]=h:r.constantMap[c]=h},e._parseRenderQueueDeclarationOrAssignment=function(e){var r=this._lexer,n=r.scanToken();if(n.type===ti.ID){r.scanLexeme(";");var i=new ra(n.lexeme,ta.GSRenderQueueType);this._symbolTableStack.insert(i);return}if("="!==n.lexeme){this._createCompileError("Invalid syntax, expect character '=', but got "+n.lexeme,n.location);return}var a=r.scanToken();r.scanLexeme(";");var o=this._renderStateConstMap.RenderQueueType[a.lexeme],s=t.RenderStateElementKey.RenderQueueType;if(void 0==o){e.variableMap[s]=a.lexeme;var c=this._lookupSymbol;if(c.set(a.lexeme,ta.GSRenderQueueType),!this._symbolTableStack.lookup(c)){this._createCompileError("Invalid RenderQueueType variable: "+a.lexeme,a.location);return}}else e.constantMap[s]=o},e._addPendingContents=function(e,t,r){var n=this._lexer;if(n.hasPendingContent){var i=n.currentIndex-t;r.push({range:{start:e,end:rn({},n.getShaderPosition(0),{index:i-1})},content:n.source.substring(e.index,i-1)}),n.hasPendingContent=!1}},e._parseSubShader=function(){var e=this._lexer;this._pushScope();var t=1,r=e.scanPairedChar('"','"',!1,!1),n=ri.createSubShaderSource(r);e.scanLexeme("{"),e.skipCommentsAndSpace();for(var i=e.getShaderPosition(0);;){var a=e.scanToken();switch(a.type){case ta.GSPass:this._addPendingContents(i,a.lexeme.length,n.pendingContents);var o=this._parsePass();n.passes.push(o),i=e.getShaderPosition(0);break;case ta.GSUsePass:this._addPendingContents(i,a.lexeme.length,n.pendingContents);var s=e.scanPairedChar('"','"',!1,!1);n.passes.push(ri.createUsePass(s)),i=e.getShaderPosition(0);break;case ta.LeftBrace:++t;break;case ta.RightBrace:if(0==--t)return this._addPendingContents(i,a.lexeme.length,n.pendingContents),this._popScope(),n;break;default:i=this._parseRenderStateAndTags(a,i,n.pendingContents,n.renderStates,n.tags)}}},e._parseTags=function(e){var t=this._lexer;for(t.scanLexeme("{");;){var r=t.scanToken();t.scanLexeme("=");var n=t.scanPairedChar('"','"',!1,!1);if(t.skipCommentsAndSpace(),e[r.lexeme]=n,"}"===t.peek(1)){t.advance(1);return}t.scanLexeme(",")}},e._parsePass=function(){this._pushScope();var e=this._lexer,r=e.scanPairedChar('"','"',!1,!1),n=ri.createShaderPassSource(r);e.scanLexeme("{");var i=1;e.skipCommentsAndSpace();for(var a=e.getShaderPosition(0);;){var o=e.scanToken();switch(o.type){case ta.GSVertexShader:case ta.GSFragmentShader:this._addPendingContents(a,o.lexeme.length,n.pendingContents),e.scanLexeme("=");var s=e.scanToken();if(n[o.lexeme]){var c=th.createGSError("Reassign main entry",tp.CompilationError,e.source,e.getShaderPosition(0));throw t.Logger.error(c.toString()),c}n[o.type===ta.GSVertexShader?"vertexEntry":"fragmentEntry"]=s.lexeme,e.scanLexeme(";"),a=e.getShaderPosition(0);break;case ta.LeftBrace:++i;break;case ta.RightBrace:if(0==--i)return this._addPendingContents(a,o.lexeme.length,n.pendingContents),this._popScope(),n;break;default:a=this._parseRenderStateAndTags(o,a,n.pendingContents,n.renderStates,n.tags)}}},e._parseRenderStateAndTags=function(e,t,r,n,i){return e.type===ta.GSTags?(this._addPendingContents(t,e.lexeme.length,r),this._parseTags(i),t=this._lexer.getShaderPosition(0)):t=this._parseRenderState(e,t,r,n),t},e._parseRenderState=function(e,t,r,n){switch(e.type){case ta.GSBlendState:case ta.GSDepthState:case ta.GSRasterState:case ta.GSStencilState:this._addPendingContents(t,e.lexeme.length,r),this._parseRenderStateDeclarationOrAssignment(n,e),t=this._lexer.getShaderPosition(0);break;case ta.GSBlendFactor:case ta.GSBlendOperation:case ta.GSBool:case ta.GSNumber:case ta.GSColor:case ta.GSCompareFunction:case ta.GSStencilOperation:case ta.GSCullMode:this._addPendingContents(t,e.lexeme.length,r),this._parseVariableDeclaration(),t=this._lexer.getShaderPosition(0);break;case ta.GSRenderQueueType:this._addPendingContents(t,e.lexeme.length,r),this._parseRenderQueueDeclarationOrAssignment(n),t=this._lexer.getShaderPosition(0);break;default:this._lexer.hasPendingContent=!0}return t},e}();rs.errors=[],rs._renderStateConstMap={RenderQueueType:t.RenderQueueType,CompareFunction:t.CompareFunction,StencilOperation:t.StencilOperation,BlendOperation:t.BlendOperation,BlendFactor:t.BlendFactor,CullMode:t.CullMode},rs._symbolTableStack=new tP,rs._lexer=new ro,rs._lookupSymbol=new ra("",null);var rc=/*#__PURE__*/function(){function e(){}var r=e.prototype;return r._parseShaderSource=function(e){th.clearAllShaderLabObjectPool();var t=rs.parse(e);return this._logErrors(rs.errors),t},r._parseShaderPass=function(r,n,i,a,o){var s=performance.now(),c={};tE._repeatIncludeSet.clear();var l=tE.parse(r,o,c);t.Logger.info("[Task - Pre processor] cost time "+(performance.now()-s)+"ms");var u=new tJ(l,c).tokenize(),p=e._parser;e._processingPassText=l;var h=p.parse(u,c);if(this._logErrors(p.errors),h){var _=a===t.ShaderLanguage.GLSLES100?tX.getVisitor():tY.getVisitor(),f=performance.now(),d=_.visitShaderProgram(h,n,i);return t.Logger.info("[Task - CodeGen] cost time: "+(performance.now()-f)+"ms"),t.Logger.info("[Task - Total compilation] cost time: "+(performance.now()-s)+"ms"),e._processingPassText=void 0,this._logErrors(_.errors),d}},r._parseMacros=function(e,r){var n=performance.now(),i=t6.parse(e,r);return t.Logger.info("[Task - parse macros] cost time: "+(performance.now()-n)+"ms"),this._logErrors(t6._errors),i},r._logErrors=function(e){if(0!==e.length&&t.Logger.isEnabled){t.Logger.error(""+e.length+" errors occur!");for(var r,i=n(e);!(r=i()).done;){var a=r.value;t.Logger.error(a.toString())}}},e.createPosition=function(e,t,r){var n=this._shaderPositionPool.get();return n.set(e,t,r),n},e.createRange=function(e,t){var r=this._shaderRangePool.get();return r.set(e,t),r},e}();rc._parser=rr.create(),rc._shaderPositionPool=th.createObjectPool(tn),rc._shaderRangePool=th.createObjectPool(tr);var rl="1.6.9";console.log("Galacean Engine ShaderLab Version: "+rl+" | Mode: Verbose"),e.GSError=tu,e.GSErrorName=tp,e.ShaderLab=rc,e.version=rl,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Galacean=e.Galacean||{},e.Galacean.ShaderLab={}),e.Galacean)}(this,function(e,t){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,void 0)}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}function o(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&s(e.prototype,t),r&&s(e,r),e}function l(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o}"function"==typeof SuppressedError&&SuppressedError;var u,p,h,_,f,d,m,S,g,v,y,x,E,C,A,T,b,O,I,L,P,R,M,N,D,G,k,V,F,B,w,U,W,z,H,j,q,X,Q,Y,K,J,Z,$,ee,et,er,en,ei,ea,eo,es,ec,el,eu,ep,eh,e_,ef,ed,em,eS,eg,ev,ey,ex,eE,eC,eA,eT,eb,eO,eI,eL,eP,eR,eM,eN,eD,eG,ek,eV,eF,eB,ew,eU,eW,ez,eH,ej,eq,eX,eQ,eY,eK,eJ,eZ,e$,e0,e2,e1,e3,e4,e9,e5,e6,e7,e8,te,tt,tr=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t){this.start=e,this.end=t},t.dispose=function(){this.start.dispose(),this.end.dispose()},e}(),tn=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t,r){this.index=e,this.line=t,this.column=r},t.dispose=function(){this.index=0,this.line=0,this.column=0},e}(),ti=((u={})[u.ID=1e3]="ID",u[u.FLOAT_CONSTANT=1001]="FLOAT_CONSTANT",u[u.INT_CONSTANT=1002]="INT_CONSTANT",u[u.STRING_CONST=1003]="STRING_CONST",u[u.LEFT_OP=1004]="LEFT_OP",u[u.RIGHT_OP=1005]="RIGHT_OP",u[u.INC_OP=1006]="INC_OP",u[u.DEC_OP=1007]="DEC_OP",u[u.LE_OP=1008]="LE_OP",u[u.GE_OP=1009]="GE_OP",u[u.EQ_OP=1010]="EQ_OP",u[u.NE_OP=1011]="NE_OP",u[u.AND_OP=1012]="AND_OP",u[u.OR_OP=1013]="OR_OP",u[u.XOR_OP=1014]="XOR_OP",u[u.MUL_ASSIGN=1015]="MUL_ASSIGN",u[u.DIV_ASSIGN=1016]="DIV_ASSIGN",u[u.ADD_ASSIGN=1017]="ADD_ASSIGN",u[u.SUB_ASSIGN=1018]="SUB_ASSIGN",u[u.MOD_ASSIGN=1019]="MOD_ASSIGN",u[u.LEFT_ASSIGN=1020]="LEFT_ASSIGN",u[u.RIGHT_ASSIGN=1021]="RIGHT_ASSIGN",u[u.AND_ASSIGN=1022]="AND_ASSIGN",u[u.XOR_ASSIGN=1023]="XOR_ASSIGN",u[u.OR_ASSIGN=1024]="OR_ASSIGN",u[u.LEFT_PAREN=1025]="LEFT_PAREN",u[u.RIGHT_PAREN=1026]="RIGHT_PAREN",u[u.LEFT_BRACKET=1027]="LEFT_BRACKET",u[u.RIGHT_BRACKET=1028]="RIGHT_BRACKET",u[u.LEFT_BRACE=1029]="LEFT_BRACE",u[u.RIGHT_BRACE=1030]="RIGHT_BRACE",u[u.DOT=1031]="DOT",u[u.COMMA=1032]="COMMA",u[u.COLON=1033]="COLON",u[u.EQUAL=1034]="EQUAL",u[u.SEMICOLON=1035]="SEMICOLON",u[u.BANG=1036]="BANG",u[u.DASH=1037]="DASH",u[u.TILDE=1038]="TILDE",u[u.PLUS=1039]="PLUS",u[u.STAR=1040]="STAR",u[u.SLASH=1041]="SLASH",u[u.PERCENT=1042]="PERCENT",u[u.LEFT_ANGLE=1043]="LEFT_ANGLE",u[u.RIGHT_ANGLE=1044]="RIGHT_ANGLE",u[u.VERTICAL_BAR=1045]="VERTICAL_BAR",u[u.CARET=1046]="CARET",u[u.AMPERSAND=1047]="AMPERSAND",u[u.QUESTION=1048]="QUESTION",u[u.NotWord=1049]="NotWord",u[u.EPSILON=1998]="EPSILON",u[u.EOF=1999]="EOF",u),ta=((p={})[p.CONST=0]="CONST",p[p.BOOL=1]="BOOL",p[p.FLOAT=2]="FLOAT",p[p.DOUBLE=3]="DOUBLE",p[p.INT=4]="INT",p[p.UINT=5]="UINT",p[p.BREAK=6]="BREAK",p[p.CONTINUE=7]="CONTINUE",p[p.DO=8]="DO",p[p.ELSE=9]="ELSE",p[p.FOR=10]="FOR",p[p.IF=11]="IF",p[p.WHILE=12]="WHILE",p[p.DISCARD=13]="DISCARD",p[p.RETURN=14]="RETURN",p[p.BVEC2=15]="BVEC2",p[p.BVEC3=16]="BVEC3",p[p.BVEC4=17]="BVEC4",p[p.IVEC2=18]="IVEC2",p[p.IVEC3=19]="IVEC3",p[p.IVEC4=20]="IVEC4",p[p.UVEC2=21]="UVEC2",p[p.UVEC3=22]="UVEC3",p[p.UVEC4=23]="UVEC4",p[p.VEC2=24]="VEC2",p[p.VEC3=25]="VEC3",p[p.VEC4=26]="VEC4",p[p.VEC4_ARRAY=27]="VEC4_ARRAY",p[p.MAT2=28]="MAT2",p[p.MAT3=29]="MAT3",p[p.MAT4=30]="MAT4",p[p.MAT2X3=31]="MAT2X3",p[p.MAT2X4=32]="MAT2X4",p[p.MAT3X2=33]="MAT3X2",p[p.MAT3X4=34]="MAT3X4",p[p.MAT4X2=35]="MAT4X2",p[p.MAT4X3=36]="MAT4X3",p[p.IN=37]="IN",p[p.OUT=38]="OUT",p[p.INOUT=39]="INOUT",p[p.CENTROID=40]="CENTROID",p[p.SAMPLER2D=41]="SAMPLER2D",p[p.SAMPLER3D=42]="SAMPLER3D",p[p.SAMPLER_CUBE=43]="SAMPLER_CUBE",p[p.SAMPLER2D_SHADOW=44]="SAMPLER2D_SHADOW",p[p.SAMPLER_CUBE_SHADOW=45]="SAMPLER_CUBE_SHADOW",p[p.SAMPLER2D_ARRAY=46]="SAMPLER2D_ARRAY",p[p.SAMPLER2D_ARRAY_SHADOW=47]="SAMPLER2D_ARRAY_SHADOW",p[p.I_SAMPLER2D=48]="I_SAMPLER2D",p[p.I_SAMPLER3D=49]="I_SAMPLER3D",p[p.I_SAMPLER_CUBE=50]="I_SAMPLER_CUBE",p[p.I_SAMPLER2D_ARRAY=51]="I_SAMPLER2D_ARRAY",p[p.U_SAMPLER2D=52]="U_SAMPLER2D",p[p.U_SAMPLER3D=53]="U_SAMPLER3D",p[p.U_SAMPLER_CUBE=54]="U_SAMPLER_CUBE",p[p.U_SAMPLER2D_ARRAY=55]="U_SAMPLER2D_ARRAY",p[p.STRUCT=56]="STRUCT",p[p.LAYOUT=57]="LAYOUT",p[p.LOCATION=58]="LOCATION",p[p.VOID=59]="VOID",p[p.PRECISION=60]="PRECISION",p[p.PRECISE=61]="PRECISE",p[p.HIGHP=62]="HIGHP",p[p.MEDIUMP=63]="MEDIUMP",p[p.LOWP=64]="LOWP",p[p.INVARIANT=65]="INVARIANT",p[p.SMOOTH=66]="SMOOTH",p[p.FLAT=67]="FLAT",p[p.NOPERSPECTIVE=68]="NOPERSPECTIVE",p[p.True=69]="True",p[p.False=70]="False",p[p.LeftBrace=71]="LeftBrace",p[p.RightBrace=72]="RightBrace",p[p.Equal=73]="Equal",p[p.GSRenderQueueType=74]="GSRenderQueueType",p[p.GSBlendState=75]="GSBlendState",p[p.GSDepthState=76]="GSDepthState",p[p.GSStencilState=77]="GSStencilState",p[p.GSRasterState=78]="GSRasterState",p[p.GSEditorProperties=79]="GSEditorProperties",p[p.GSEditorMacros=80]="GSEditorMacros",p[p.GSEditor=81]="GSEditor",p[p.GSTags=82]="GSTags",p[p.GSVertexShader=83]="GSVertexShader",p[p.GSFragmentShader=84]="GSFragmentShader",p[p.GSSubShader=85]="GSSubShader",p[p.GSPass=86]="GSPass",p[p.GSBlendFactor=87]="GSBlendFactor",p[p.GSBlendOperation=88]="GSBlendOperation",p[p.GSBool=89]="GSBool",p[p.GSNumber=90]="GSNumber",p[p.GSColor=91]="GSColor",p[p.GSCompareFunction=92]="GSCompareFunction",p[p.GSStencilOperation=93]="GSStencilOperation",p[p.GSCullMode=94]="GSCullMode",p[p.GSUsePass=95]="GSUsePass",p[p.MACRO_IF=96]="MACRO_IF",p[p.MACRO_IFDEF=97]="MACRO_IFDEF",p[p.MACRO_IFNDEF=98]="MACRO_IFNDEF",p[p.MACRO_ELSE=99]="MACRO_ELSE",p[p.MACRO_ELIF=100]="MACRO_ELIF",p[p.MACRO_ENDIF=101]="MACRO_ENDIF",p[p.MACRO_UNDEF=102]="MACRO_UNDEF",p[p.MACRO_DEFINE_EXPRESSION=103]="MACRO_DEFINE_EXPRESSION",p[p.MACRO_CONDITIONAL_EXPRESSION=104]="MACRO_CONDITIONAL_EXPRESSION",p[p.MACRO_CALL=105]="MACRO_CALL",p);function to(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(to=function(){return!!e})()}function ts(e,t,r){return(ts=to()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&i(a,r.prototype),a}).apply(null,arguments)}function tc(e){return(tc=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tl(e){var t="function"==typeof Map?new Map:void 0;return(tl=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return ts(e,arguments,tc(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i(r,e)})(e)}var tu=/*#__PURE__*/function(e){function t(t,r,n,i,a){var o;return(o=e.call(this,r)||this).location=n,o.source=i,o.file=a,o.name=t,o}return a(t,e),t.prototype.toString=function(){var e,r,n=this.message,i=this.location,a=this.source;if(!a)return n;o(i,tn)?e=r=i:(e=i.start,r=i.end);for(var s=a.split("\n"),c=this.name+": "+n+"\n\n",l="|\xb7\xb7\xb7",u=t.wrappingLineCount,p=e.line-u,h=r.line+u;p<=h;p++){var _=s[p];if(c+=l+""+_+"\n",!(p<e.line)&&!(p>r.line)){var f=0,d=_.length,m=l.length;p===e.line&&(f=e.column,m+=e.column),p===r.line&&(d=r.column);var S=Math.max(d-f,1);c+=" ".repeat(m)+"^".repeat(S)+"\n"}}return c},t}(tl(Error));tu.wrappingLineCount=2;var tp=((h={}).PreprocessorError="PreprocessorError",h.CompilationError="CompilationError",h.ScannerError="ScannerError",h.CompilationWarn="CompilationWarning",h),th=/*#__PURE__*/function(){function e(){}return e.createObjectPool=function(r){var n=new t.ClearableObjectPool(r);return e._shaderLabObjectPoolSet.push(n),n},e.clearAllShaderLabObjectPool=function(){for(var t=0,r=e._shaderLabObjectPoolSet.length;t<r;t++)e._shaderLabObjectPoolSet[t].clear()},e.createGSError=function(e,t,r,n,i){return new tu(t,e,n,r,i)},e}();th._shaderLabObjectPoolSet=[];var t_=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(e,t,r){if(this.type=e,this.lexeme=t,r){if(o(r,tr))this.location=r;else{var n=rc.createPosition(r.index+t.length,r.line,r.column+t.length);this.location=rc.createRange(r,n)}}},t.dispose=function(){},e}();t_.pool=th.createObjectPool(t_);var tf=new t_;tf.set(ti.EOF,"/EOF");var td=((_={})[_.START=2e3]="START",_[_.gs_shader_program=2001]="gs_shader_program",_[_.global_declaration=2002]="global_declaration",_[_.variable_declaration=2003]="variable_declaration",_[_.variable_declaration_list=2004]="variable_declaration_list",_[_.variable_declaration_statement=2005]="variable_declaration_statement",_[_.array_specifier_list=2006]="array_specifier_list",_[_.array_specifier=2007]="array_specifier",_[_.ext_builtin_type_specifier_nonarray=2008]="ext_builtin_type_specifier_nonarray",_[_.precision_specifier=2009]="precision_specifier",_[_.variable_identifier=2010]="variable_identifier",_[_.variable_identifier_node=2011]="variable_identifier_node",_[_.primary_expression=2012]="primary_expression",_[_.postfix_expression=2013]="postfix_expression",_[_.integer_expression=2014]="integer_expression",_[_.function_call=2015]="function_call",_[_.function_call_generic=2016]="function_call_generic",_[_.function_call_header_no_parameters=2017]="function_call_header_no_parameters",_[_.function_call_header_with_parameters=2018]="function_call_header_with_parameters",_[_.function_call_parameter_list=2019]="function_call_parameter_list",_[_.function_call_header=2020]="function_call_header",_[_.function_identifier=2021]="function_identifier",_[_.constructor_identifier=2022]="constructor_identifier",_[_.unary_expression=2023]="unary_expression",_[_.unary_operator=2024]="unary_operator",_[_.multiplicative_expression=2025]="multiplicative_expression",_[_.additive_expression=2026]="additive_expression",_[_.shift_expression=2027]="shift_expression",_[_.relational_expression=2028]="relational_expression",_[_.equality_expression=2029]="equality_expression",_[_.and_expression=2030]="and_expression",_[_.inclusive_or_expression=2031]="inclusive_or_expression",_[_.exclusive_or_expression=2032]="exclusive_or_expression",_[_.logical_and_expression=2033]="logical_and_expression",_[_.logical_xor_expression=2034]="logical_xor_expression",_[_.logical_or_expression=2035]="logical_or_expression",_[_.conditional_expression=2036]="conditional_expression",_[_.assignment_expression=2037]="assignment_expression",_[_.assignment_operator=2038]="assignment_operator",_[_.expression=2039]="expression",_[_.integer_constant_expression=2040]="integer_constant_expression",_[_.integer_constant_expression_operator=2041]="integer_constant_expression_operator",_[_.declaration=2042]="declaration",_[_.function_prototype=2043]="function_prototype",_[_.function_declarator=2044]="function_declarator",_[_.function_header_with_parameters=2045]="function_header_with_parameters",_[_.function_header=2046]="function_header",_[_.function_parameter_list=2047]="function_parameter_list",_[_.parameter_declarator=2048]="parameter_declarator",_[_.parameter_declaration=2049]="parameter_declaration",_[_.parameter_qualifier=2050]="parameter_qualifier",_[_.parameter_type_specifier=2051]="parameter_type_specifier",_[_.init_declarator_list=2052]="init_declarator_list",_[_.single_declaration=2053]="single_declaration",_[_.fully_specified_type=2054]="fully_specified_type",_[_.type_qualifier=2055]="type_qualifier",_[_.single_type_qualifier=2056]="single_type_qualifier",_[_.storage_qualifier=2057]="storage_qualifier",_[_.precision_qualifier=2058]="precision_qualifier",_[_.interpolation_qualifier=2059]="interpolation_qualifier",_[_.invariant_qualifier=2060]="invariant_qualifier",_[_.type_specifier=2061]="type_specifier",_[_.type_specifier_nonarray=2062]="type_specifier_nonarray",_[_.type_specifier_no_prec=2063]="type_specifier_no_prec",_[_.basic_type=2064]="basic_type",_[_.struct_specifier=2065]="struct_specifier",_[_.struct_declaration_list=2066]="struct_declaration_list",_[_.struct_declaration=2067]="struct_declaration",_[_.layout_qualifier=2068]="layout_qualifier",_[_.struct_declarator_list=2069]="struct_declarator_list",_[_.struct_declarator=2070]="struct_declarator",_[_.identifier_list=2071]="identifier_list",_[_.decl_identifier=2072]="decl_identifier",_[_.initializer=2073]="initializer",_[_.initializer_list=2074]="initializer_list",_[_.declaration_statement=2075]="declaration_statement",_[_.simple_statement=2076]="simple_statement",_[_.compound_statement_no_scope=2077]="compound_statement_no_scope",_[_.statement_with_scope=2078]="statement_with_scope",_[_.compound_statement=2079]="compound_statement",_[_.statement=2080]="statement",_[_.statement_list=2081]="statement_list",_[_.iteration_statement_no_new_scope=2082]="iteration_statement_no_new_scope",_[_.expression_statement=2083]="expression_statement",_[_.selection_statement=2084]="selection_statement",_[_.selection_rest_statement=2085]="selection_rest_statement",_[_.condition=2086]="condition",_[_.conditionopt=2087]="conditionopt",_[_.iteration_statement=2088]="iteration_statement",_[_.for_init_statement=2089]="for_init_statement",_[_.for_rest_statement=2090]="for_rest_statement",_[_.jump_statement=2091]="jump_statement",_[_.external_declaration=2092]="external_declaration",_[_.function_definition=2093]="function_definition",_[_.field_selection=2094]="field_selection",_[_.bool_constant=2095]="bool_constant",_[_.function_identifier_node=2096]="function_identifier_node",_[_.typename_identifier_node=2097]="typename_identifier_node",_[_.scope_brace=2098]="scope_brace",_[_.scope_end_brace=2099]="scope_end_brace",_[_.macro_undef=2100]="macro_undef",_[_.macro_push_context=2101]="macro_push_context",_[_.macro_pop_context=2102]="macro_pop_context",_[_.macro_elif_expression=2103]="macro_elif_expression",_[_.macro_else_expression=2104]="macro_else_expression",_[_.global_macro_if_statement=2105]="global_macro_if_statement",_[_.global_macro_declaration=2106]="global_macro_declaration",_[_.global_macro_branch=2107]="global_macro_branch",_[_.macro_struct_declaration=2108]="macro_struct_declaration",_[_.macro_struct_branch=2109]="macro_struct_branch",_[_.macro_if_statement=2110]="macro_if_statement",_[_.macro_branch=2111]="macro_branch",_[_.macro_param_case_list=2112]="macro_param_case_list",_[_.macro_param_block=2113]="macro_param_block",_[_.macro_parameter_branch=2114]="macro_parameter_branch",_[_.macro_call_arg_case_list=2115]="macro_call_arg_case_list",_[_.macro_call_arg_block=2116]="macro_call_arg_block",_[_.macro_call_arg_branch=2117]="macro_call_arg_branch",_[_.macro_call_symbol=2118]="macro_call_symbol",_[_.macro_call_function=2119]="macro_call_function",_[_._ignore=2120]="_ignore",_),tm=function e(t,r){this.goal=t,this.derivation=r,this.id=e._id++,e.pool.set(this.id,this)};tm._id=0,tm.pool=new Map;var tS=((f={})[f.Shift=0]="Shift",f[f.Reduce=1]="Reduce",f[f.Accept=2]="Accept",f),tg=/*#__PURE__*/function(){function e(){}return e.isTerminal=function(e){return e<td.START},e.toString=function(e){if(this.isTerminal(e)){var t;return null!=(t=ti[e])?t:ta[e]}return td[e]},e.createProductionWithOptions=function(e,t,r){for(var i,a=[],o=n(t);!(i=o()).done;){var s=i.value;a.push([[].concat([e],s),function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(n[0]){var a=n[0].location.start,o=n[n.length-1].location.end,s=rc.createRange(a,o);tt.get(null!=r?r:tt.TrivialNode.pool,e,s,n)}}])}return a},e.addMapSetItem=function(e,t,r){var n,i=null!=(n=e.get(t))?n:new Set;i.add(r),e.set(t,i)},e.isSubSet=function(e,t){for(var r,i=n(e);!(r=i()).done;){var a=r.value;if(!t.has(a))return!1}return!0},e.isActionEqual=function(e,t){return e.action===t.action&&e.target===t.target},e.printAction=function(e){var t=tm.pool.get(e.target);return"<Action: "+tS[e.action]+" -> "+this.printProduction(t)+">"},e.printProduction=function(t){var r=t.derivation.map(function(t){return e.toString(t)}).join("|");return td[t.goal]+" :=> "+r},e}(),tv=/*#__PURE__*/function(){function e(t,r,i){this._needReInfer=!0,this.production=t,this.position=r,this.lookaheadSet=new Set;for(var a,o=n(i);!(a=o()).done;){var s=a.value;this.lookaheadSet.add(s)}this.id=e._id++}var t=e.prototype;return t.addLookahead=function(e){for(var t,r=n(e);!(t=r()).done;){var i=t.value;this.lookaheadSet.has(i)||(this.lookaheadSet.add(i),this.needReInfer=!0)}},t.symbolByOffset=function(e){return this.production.derivation[this.position+e]},t.canReduce=function(){if(this.position>this.production.derivation.length-1)return!0;for(var e=this.position;e<this.production.derivation.length;e++)if(this.production.derivation[e]!==ti.EPSILON)return!1;return!0},t.advance=function(){if(this.canReduce())throw"Error: advance reduce-able parsing state item";return new e(this.production,this.position+1,this.lookaheadSet)},t.toString=function(){var e,t=this.production.derivation.map(function(e){return tg.toString(e)});return t[this.position]="."+(null!=(e=t[this.position])?e:""),td[this.production.goal]+" :=> "+t.join("|")+" ;"+Array.from(this.lookaheadSet).map(function(e){return tg.toString(e)}).join("/")},c(e,[{key:"needReInfer",get:function(){return this._needReInfer},set:function(e){this._needReInfer=e}},{key:"curSymbol",get:function(){return this.production.derivation[this.position]}},{key:"nextSymbol",get:function(){return this.production.derivation[this.position+1]}}]),e}();tv._id=0;var ty=/*#__PURE__*/function(){function e(t){this.closured=!1,this._stateItemPool=new Map,this.id=e._id++,this._items=new Set([].concat(t)),this.cores=new Set([].concat(t));for(var r,i=n(t);!(r=i()).done;){var a=r.value,o=this.getStateItemMapKey(a.production,a.position);this._stateItemPool.set(o,a)}e.pool.set(this.id,this)}var t=e.prototype;return t.getStateItemMapKey=function(e,t){return e.id+","+t},t.createStateItem=function(e,t,r){void 0===r&&(r=new Set);var i=this.getStateItemMapKey(e,t),a=this._stateItemPool.get(i);if(a){for(var o,s=n(r);!(o=s()).done;){var c=o.value;a.lookaheadSet.has(c)||(a.lookaheadSet.add(c),a.needReInfer=!0)}return a}var l=new tv(e,t,r);return this._stateItemPool.set(i,l),l},e.create=function(t){var r=this.getMapKey(t),i=this.closureMap.get(r);if(i){for(var a,o=n(t);!(a=o()).done;){var s=a.value;i.createStateItem(s.production,s.position,s.lookaheadSet)}return i}var c=new e(t);return this.closureMap.set(r,c),c},e.getMapKey=function(e){return e.map(function(e){return e.production.id+","+e.position}).join(";")},c(e,[{key:"items",get:function(){return this._items}},{key:"needReInfer",get:function(){for(var e,t=n(this.cores);!(e=t()).done;)if(e.value.needReInfer)return!0;return!1}}]),e}();ty.closureMap=new Map,ty.pool=new Map,ty._id=0;var tx=/*#__PURE__*/function(){function e(){}return e.unwrapNodeByType=function(t,r){var n=t.children[0];if(!o(n,t_))return n.nt===r?n:e.unwrapNodeByType(n,r)},e.typeCompatible=function(e,t){return void 0==t||3e3===t||(e===ta.INT?e===t||t===ta.UINT:e===t)},e.toString=function(e){if(this.isTerminal(e)){var t;return null!=(t=ti[e])?t:ta[e]}return td[e]},e.isTerminal=function(e){return e<td.START},e.printStatePool=function(e){var t="";console.log("========== Parser Pool ==========");for(var r,i=0,a=n(ty.pool.values());!(r=a()).done;){var o=r.value;i++;var s="";s+=(""+o.id+": \n").padEnd(4);for(var c,l=n(o.items);!(c=l()).done;)s+=" "+c.value.toString()+"\n";t+=s}console.log("state count:",i),console.log(t)},e}(),tE=/*#__PURE__*/function(){function e(){}return e.parse=function(e,t,r,n){var i=this;return void 0===n&&(n=!0),n&&this._parseMacroDefines(e,r),e.replace(this._includeReg,function(e,n){return i._replace(n,t,r)})},e.getReferenceSymbolNames=function(e,r,n){n.length=0;var i=e[r];if(i)for(var a=0;a<i.length;a++){var o=i[a],s=o.valueType;if(2===s||1===s){var c=2===s?o.functionCallName:o.value;if(-1!==o.params.indexOf(c))continue;-1===n.indexOf(c)&&n.push(c)}else 3===s&&t.Logger.warn('Warning: Macro "'+o.name+'" has an unrecognized value "'+o.value+'". ShaderLab does not validate this type.')}},e._isNumber=function(e){return!isNaN(Number(e))},e._isExist=function(e,t){return e.some(function(e){return e.valueType===t.valueType&&e.value===t.value&&e.isFunction===t.isFunction&&e.functionCallName===t.functionCallName&&e.params.length===t.params.length&&e.params.every(function(e,r){return e===t.params[r]})})},e._parseMacroDefines=function(e,t){var r;for(this._macroRegex.lastIndex=0;null!==(r=this._macroRegex.exec(e));){var n=r[1],i=r[2],a=r[3],o=r[4],s=!!i&&!!o,c=s&&a?a.split(",").map(function(e){return e.trim()}).filter(Boolean):[],l=o?o.trim():"",u=3,p="";if(this._isNumber(l))u=0;else if(this._symbolReg.test(l))u=1;else{var h=this._funcCallReg.exec(l);h&&(u=2,p=h[1])}var _={isFunction:s,name:n,value:l,valueType:u,params:c,functionCallName:p},f=t[n];f?this._isExist(f,_)||f.push(_):t[n]=[_]}},e._mergeMacroDefineLists=function(e,t){for(var r in e)if(t[r])for(var n=t[r],i=e[r],a=0;a<i.length;a++){var o=i[a];this._isExist(n,o)||n.push(o)}else t[r]=e[r]},e._replace=function(e,r,n){i="."===e[0]?new URL(e,r).href.substring(t.ShaderPass._shaderRootPath.length):e;var i,a=t.ShaderLib[i];if(!a)return t.Logger.error('Shader slice "'+i+'" not founded.'),"";if(this._repeatIncludeSet.has(i)&&t.Logger.warn('Shader slice "'+i+'" is included multiple times.'),this._repeatIncludeSet.add(i),this._macroDefineIncludeMap.has(i))this._mergeMacroDefineLists(this._macroDefineIncludeMap.get(i),n);else{var o={};this._parseMacroDefines(a,o),this._macroDefineIncludeMap.set(i,o),this._mergeMacroDefineLists(o,n)}return this.parse(a,r,n,!1)},e}();tE._includeReg=/^[ \t]*#include +"([\w\d./]+)"/gm,tE._macroRegex=/^\s*#define\s+(\w+)[ ]*(\(([^)]*)\))?[ ]+(\(?\w+\)?.*?)(?:\/\/.*|\/\*.*?\*\/)?\s*$/gm,tE._symbolReg=/^[a-zA-Z_][a-zA-Z0-9_]*$/,tE._funcCallReg=/^([a-zA-Z_][a-zA-Z0-9_]*)\s*\((.*)\)$/,tE._macroDefineIncludeMap=new Map,tE._repeatIncludeSet=new Set;var tC=((d={})[d.VERTEX=0]="VERTEX",d[d.FRAGMENT=1]="FRAGMENT",d[d.ALL=2]="ALL",d);function tA(e){return e>=200&&e<=213}var tT=new Map,tb=/*#__PURE__*/function(){function e(e,t,r){for(var n=arguments.length,i=Array(n>3?n-3:0),a=3;a<n;a++)i[a-3]=arguments[a];this.ident=e,this._returnType=t,this.args=i,this.scope=r}return e.getReturnType=function(e,t){return tA(e._returnType)?t:e._returnType},e._create=function(t,r){for(var n,i=arguments.length,a=Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];var s=ts(e,[].concat([t,r,tC.ALL],a)),c=null!=(n=tT.get(t))?n:[];c.push(s),tT.set(t,c)},e._createWithScop=function(t,r,n){for(var i,a=arguments.length,o=Array(a>3?a-3:0),s=3;s<a;s++)o[s-3]=arguments[s];var c=ts(e,[].concat([t,r,n],o)),l=null!=(i=tT.get(t))?i:[];l.push(c),tT.set(t,l)},e.getFn=function(e,t){var r=tT.get(e);if(r)for(var n=r.length,i=0;i<n;i++){var a=r[i],o=a.args,s=o.length;if(s===t.length){for(var c=3e3,l=!0,u=0;u<s;u++){var p=o[u];if(tA(p))3e3===c&&(c=t[u]);else if(p!==t[u]&&3e3!==t[u]){l=!1;break}}if(l)return a._realReturnType=c,a}}},e.isExist=function(e){return!!tT.get(e)},c(e,[{key:"realReturnType",get:function(){return this._realReturnType}}]),e}();tb._create("radians",200,200),tb._create("degrees",200,200),tb._create("sin",200,200),tb._create("cos",200,200),tb._create("tan",200,200),tb._create("asin",200,200),tb._create("acos",200,200),tb._create("atan",200,200,200),tb._create("atan",200,200),tb._create("sinh",200,200),tb._create("cosh",200,200),tb._create("tanh",200,200),tb._create("asinh",200,200),tb._create("acosh",200,200),tb._create("atanh",200,200),tb._create("pow",200,200,200),tb._create("exp",200,200),tb._create("log",200,200),tb._create("exp2",200,200),tb._create("log2",200,200),tb._create("sqrt",200,200),tb._create("inversesqrt",200,200),tb._create("abs",200,200),tb._create("abs",201,201),tb._create("sign",200,200),tb._create("sign",201,201),tb._create("floor",200,200),tb._create("trunc",200,200),tb._create("round",200,200),tb._create("roundEven",200,200),tb._create("ceil",200,200),tb._create("fract",200,200),tb._create("mod",200,200,ta.FLOAT),tb._create("mod",200,200,200),tb._create("min",200,200,200),tb._create("min",200,200,ta.FLOAT),tb._create("min",201,201,201),tb._create("min",201,201,ta.INT),tb._create("min",202,202,202),tb._create("min",202,202,ta.UINT),tb._create("max",200,200,200),tb._create("max",200,200,ta.FLOAT),tb._create("max",201,201,201),tb._create("max",201,201,ta.INT),tb._create("clamp",200,200,200,200),tb._create("clamp",200,200,ta.FLOAT,ta.FLOAT),tb._create("clamp",201,201,201,201),tb._create("clamp",201,201,ta.INT,ta.INT),tb._create("clamp",202,202,202,202),tb._create("clamp",202,202,ta.UINT,ta.UINT),tb._create("mix",200,200,200,200),tb._create("mix",200,200,200,ta.FLOAT),tb._create("mix",200,200,200,203),tb._create("step",200,200,200),tb._create("step",200,ta.FLOAT,200),tb._create("smoothstep",200,200,200,200),tb._create("smoothstep",200,ta.FLOAT,ta.FLOAT,200),tb._create("isnan",203,200),tb._create("isinf",203,200),tb._create("floatBitsToInt",200,200),tb._create("floatBitsToUint",202,200),tb._create("intBitsToFloat",200,201),tb._create("uintBitsToFloat",200,202),tb._create("packSnorm2x16",ta.UINT,ta.VEC2),tb._create("unpackSnorm2x16",ta.VEC2,ta.UINT),tb._create("packUnorm2x16",ta.UINT,ta.VEC2),tb._create("unpackUnorm2x16",ta.VEC2,ta.UINT),tb._create("packHalf2x16",ta.UINT,ta.VEC2),tb._create("unpackHalf2x16",ta.VEC2,ta.UINT),tb._create("length",ta.FLOAT,200),tb._create("distance",ta.FLOAT,200,200),tb._create("dot",ta.FLOAT,200,200),tb._create("cross",ta.VEC3,ta.VEC3,ta.VEC3),tb._create("normalize",200,200),tb._create("faceforward",200,200,200,200),tb._create("reflect",200,200,200),tb._create("refract",200,200,200,ta.FLOAT),tb._create("matrixCompMult",204,204,204),tb._create("outerProduct",ta.MAT2,ta.VEC2,ta.VEC2),tb._create("outerProduct",ta.MAT3,ta.VEC3,ta.VEC3),tb._create("outerProduct",ta.MAT4,ta.VEC4,ta.VEC4),tb._create("outerProduct",ta.MAT2X3,ta.VEC3,ta.VEC2),tb._create("outerProduct",ta.MAT3X2,ta.VEC2,ta.VEC3),tb._create("outerProduct",ta.MAT2X4,ta.VEC4,ta.VEC2),tb._create("outerProduct",ta.MAT4X2,ta.VEC2,ta.VEC4),tb._create("outerProduct",ta.MAT3X4,ta.VEC4,ta.VEC3),tb._create("outerProduct",ta.MAT4X3,ta.VEC3,ta.VEC4),tb._create("transpose",ta.MAT2,ta.MAT2),tb._create("transpose",ta.MAT3,ta.MAT3),tb._create("transpose",ta.MAT4,ta.MAT4),tb._create("transpose",ta.MAT2X3,ta.MAT3X2),tb._create("transpose",ta.MAT3X2,ta.MAT2X3),tb._create("transpose",ta.MAT4X2,ta.MAT2X4),tb._create("transpose",ta.MAT2X4,ta.MAT4X2),tb._create("transpose",ta.MAT3X4,ta.MAT4X3),tb._create("transpose",ta.MAT4X3,ta.MAT3X4),tb._create("determinant",ta.FLOAT,ta.MAT2),tb._create("determinant",ta.FLOAT,ta.MAT3),tb._create("determinant",ta.FLOAT,ta.MAT4),tb._create("inverse",ta.MAT2,ta.MAT2),tb._create("inverse",ta.MAT3,ta.MAT3),tb._create("inverse",ta.MAT4,ta.MAT4),tb._create("lessThan",205,208,208),tb._create("lessThan",205,206,206),tb._create("lessThan",205,207,207),tb._create("lessThanEqual",205,208,208),tb._create("lessThanEqual",205,206,206),tb._create("lessThanEqual",205,207,207),tb._create("greaterThan",205,208,208),tb._create("greaterThan",205,206,206),tb._create("greaterThan",205,207,207),tb._create("greaterThanEqual",205,208,208),tb._create("greaterThanEqual",205,206,206),tb._create("greaterThanEqual",205,207,207),tb._create("equal",205,208,208),tb._create("equal",205,206,206),tb._create("equal",205,207,207),tb._create("equal",205,205,205),tb._create("notEqual",205,208,208),tb._create("notEqual",205,206,206),tb._create("notEqual",205,207,207),tb._create("notEqual",205,205,205),tb._create("any",ta.BOOL,205),tb._create("all",ta.BOOL,205),tb._create("not",205,205),tb._create("textureSize",ta.IVEC2,210,ta.INT),tb._create("textureSize",ta.IVEC3,211,ta.INT),tb._create("textureSize",ta.IVEC2,212,ta.INT),tb._create("textureSize",ta.IVEC2,ta.SAMPLER2D_SHADOW,ta.INT),tb._create("textureSize",ta.IVEC2,ta.SAMPLER_CUBE_SHADOW,ta.INT),tb._create("textureSize",ta.IVEC3,213,ta.INT),tb._create("textureSize",ta.IVEC3,ta.SAMPLER2D_ARRAY_SHADOW,ta.INT),tb._create("texture2D",ta.VEC4,ta.SAMPLER2D,ta.VEC2),tb._create("texture2D",ta.VEC4,ta.SAMPLER2D,ta.VEC2,ta.FLOAT),tb._create("texture",209,210,ta.VEC2,ta.FLOAT),tb._create("texture",209,210,ta.VEC2),tb._create("texture",209,211,ta.VEC3,ta.FLOAT),tb._create("texture",209,211,ta.VEC3),tb._create("texture",209,212,ta.VEC3,ta.FLOAT),tb._create("texture",209,212,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4,ta.FLOAT),tb._create("texture",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4),tb._create("texture",209,ta.SAMPLER2D_ARRAY,ta.VEC3,ta.FLOAT),tb._create("texture",209,ta.SAMPLER2D_ARRAY,ta.VEC3),tb._create("texture",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC4),tb._create("textureProj",209,210,ta.VEC3,ta.FLOAT),tb._create("textureProj",209,210,ta.VEC3),tb._create("textureProj",209,210,ta.VEC4,ta.FLOAT),tb._create("textureProj",209,210,ta.VEC4),tb._create("textureProj",209,211,ta.VEC4,ta.FLOAT),tb._create("textureProj",209,211,ta.VEC4),tb._create("textureProj",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT),tb._create("textureProj",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4),tb._create("textureLod",209,210,ta.VEC2,ta.FLOAT),tb._create("textureLod",209,211,ta.VEC3,ta.FLOAT),tb._create("textureLod",209,212,ta.VEC3,ta.FLOAT),tb._create("textureLod",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT),tb._create("textureLod",209,213,ta.VEC3,ta.FLOAT),tb._create("texture2DLodEXT",209,210,ta.VEC2,ta.FLOAT),tb._create("texture2DLodEXT",209,211,ta.VEC3,ta.FLOAT),tb._create("textureCube",ta.SAMPLER_CUBE,ta.VEC3),tb._create("textureCube",ta.SAMPLER_CUBE,ta.VEC3,ta.FLOAT),tb._create("textureCube",209,212,ta.VEC3,ta.FLOAT),tb._create("textureCubeLod",ta.SAMPLER_CUBE,ta.VEC3,ta.FLOAT),tb._create("textureCubeLodEXT",209,212,ta.VEC3,ta.FLOAT),tb._create("textureOffset",209,210,ta.VEC2,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",209,210,ta.VEC2,ta.IVEC2),tb._create("textureOffset",209,211,ta.VEC3,ta.IVEC3,ta.FLOAT),tb._create("textureOffset",209,211,ta.VEC3,ta.IVEC3),tb._create("textureOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.IVEC2),tb._create("textureOffset",209,213,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureOffset",209,213,ta.VEC3,ta.IVEC2),tb._create("texelFetch",209,210,ta.IVEC2,ta.INT),tb._create("texelFetch",209,211,ta.IVEC3,ta.INT),tb._create("texelFetch",209,213,ta.IVEC3,ta.INT),tb._create("texelFetchOffset",209,210,ta.IVEC2,ta.INT,ta.IVEC2),tb._create("texelFetchOffset",209,211,ta.IVEC3,ta.INT,ta.IVEC3),tb._create("texelFetchOffset",209,213,ta.IVEC3,ta.INT,ta.IVEC2),tb._create("textureProjOffset",209,210,ta.VEC3,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",209,210,ta.VEC3,ta.IVEC2),tb._create("textureProjOffset",209,210,ta.VEC4,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",209,210,ta.VEC4,ta.IVEC2),tb._create("textureProjOffset",209,211,ta.VEC4,ta.IVEC3,ta.FLOAT),tb._create("textureProjOffset",209,211,ta.VEC4,ta.IVEC3),tb._create("textureProjOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.IVEC2,ta.FLOAT),tb._create("textureProjOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.IVEC2),tb._create("textureLodOffset",209,210,ta.VEC2,ta.FLOAT,ta.IVEC2),tb._create("textureLodOffset",209,211,ta.VEC3,ta.FLOAT,ta.IVEC3),tb._create("textureLodOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureLodOffset",209,213,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureProjLod",209,210,ta.VEC3,ta.FLOAT),tb._create("textureProjLod",209,210,ta.VEC4,ta.FLOAT),tb._create("textureProjLod",209,211,ta.VEC4,ta.FLOAT),tb._create("textureProjLod",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT),tb._create("textureProjLodOffset",209,210,ta.VEC3,ta.FLOAT,ta.IVEC2),tb._create("textureProjLodOffset",209,210,ta.VEC4,ta.FLOAT,ta.IVEC2),tb._create("textureProjLodOffset",209,211,ta.VEC4,ta.FLOAT,ta.IVEC3),tb._create("textureProjLodOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.FLOAT,ta.IVEC2),tb._create("textureGrad",209,210,ta.VEC2,ta.VEC2,ta.VEC2),tb._create("textureGrad",209,211,ta.VEC3,ta.VEC3,ta.VEC3),tb._create("textureGrad",209,212,ta.VEC3,ta.VEC3,ta.VEC3),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER_CUBE_SHADOW,ta.VEC4,ta.VEC3,ta.VEC3),tb._create("textureGrad",209,213,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureGrad",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureGradOffset",209,210,ta.VEC2,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",209,211,ta.VEC3,ta.VEC3,ta.VEC3,ta.IVEC3),tb._create("textureGradOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",209,213,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureGradOffset",ta.FLOAT,ta.SAMPLER2D_ARRAY_SHADOW,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGrad",209,210,ta.VEC3,ta.VEC2,ta.VEC2),tb._create("textureProjGrad",209,210,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureProjGrad",209,211,ta.VEC4,ta.VEC3,ta.VEC3),tb._create("textureProjGrad",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2),tb._create("textureProjGradOffset",209,210,ta.VEC3,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGradOffset",209,210,ta.VEC4,ta.VEC2,ta.VEC2,ta.IVEC2),tb._create("textureProjGradOffset",209,211,ta.VEC4,ta.VEC3,ta.VEC3,ta.IVEC3),tb._create("textureProjGradOffset",ta.FLOAT,ta.SAMPLER2D_SHADOW,ta.VEC4,ta.VEC2,ta.VEC2,ta.IVEC2),tb._createWithScop("dFdx",200,tC.FRAGMENT,200),tb._createWithScop("dFdy",200,tC.FRAGMENT,200),tb._createWithScop("fwidth",200,tC.FRAGMENT,200);var tO=new Map,tI=/*#__PURE__*/function(){function e(e,t,r){this.type=e,this.lexeme=t,this.scope=r}return e.createVariable=function(t,r,n){void 0===n&&(n=tC.ALL);var i=new e(r,t,n);tO.set(t,i)},e.getVar=function(e){return tO.get(e)},e}();tI.createVariable("gl_VertexID",ta.INT,tC.VERTEX),tI.createVariable("gl_InstanceID",ta.INT,tC.VERTEX),tI.createVariable("gl_Position",ta.VEC4,tC.VERTEX),tI.createVariable("gl_PointSize",ta.FLOAT,tC.VERTEX),tI.createVariable("gl_FragCoord",ta.VEC4,tC.FRAGMENT),tI.createVariable("gl_FrontFacing",ta.BOOL,tC.FRAGMENT),tI.createVariable("gl_FragDepth",ta.FLOAT,tC.FRAGMENT),tI.createVariable("gl_PointCoord",ta.VEC2,tC.FRAGMENT),tI.createVariable("gl_FragColor",ta.VEC4,tC.FRAGMENT),tI.createVariable("gl_FragData",ta.VEC4_ARRAY,tC.FRAGMENT),tI.createVariable("gl_MaxVertexAttribs",ta.INT),tI.createVariable("gl_MaxVertexUniformVectors",ta.INT),tI.createVariable("gl_MaxVertexOutputVectors",ta.INT),tI.createVariable("gl_MaxFragmentInputVectors",ta.INT),tI.createVariable("gl_MaxVertexTextureImageUnits",ta.INT),tI.createVariable("gl_MaxCombinedTextureImageUnits",ta.INT),tI.createVariable("gl_MaxTextureImageUnits",ta.INT),tI.createVariable("gl_MaxFragmentUniformVectors",ta.INT),tI.createVariable("gl_MaxDrawBuffers",ta.INT),tI.createVariable("gl_MinProgramTexelOffset",ta.INT),tI.createVariable("gl_MaxProgramTexelOffset",ta.INT);var tL=/*#__PURE__*/function(){function e(){this._table=new Map}var r=e.prototype;return r.insert=function(e,r){void 0===r&&(r=!1),e.isInMacroBranch=r;for(var n,i=null!=(n=this._table.get(e.ident))?n:[],a=0,o=i.length;a<o;a++)if(!i[a].isInMacroBranch&&i[a].equal(e)){t.Logger.warn("Replace symbol:",e.ident),i[a]=e;return}i.push(e),this._table.set(e.ident,i)},r.getSymbol=function(e,t){void 0===t&&(t=!1);var r=this._table.get(e.ident);if(r)for(var n=r.length-1;n>=0;n--){var i=r[n];if((t||!i.isInMacroBranch)&&i.equal(e))return i}},r.getSymbols=function(e,t,r){return void 0===t&&(t=!1),r.length=0,this._getSymbols(e,t,r),r},r._getSymbols=function(e,t,r){void 0===t&&(t=!1);var n=this._table.get(e.ident);if(n)for(var i=n.length-1;i>=0;i--){var a=n[i];(t||!a.isInMacroBranch)&&a.equal(e)&&r.push(a)}return r},e}(),tP=/*#__PURE__*/function(){function e(){this.stack=[],this._macroLevel=0}var t=e.prototype;return t.pushScope=function(e){this.stack.push(e)},t.clear=function(){this.stack.length=0},t.popScope=function(){return this.stack.pop()},t.insert=function(e){this.scope.insert(e,this.isInMacroBranch)},t.lookup=function(e,t){void 0===t&&(t=!1);for(var r=this.stack.length-1;r>=0;r--){var n=this.stack[r].getSymbol(e,t);if(n)return n}},t.lookupAll=function(e,t,r){void 0===t&&(t=!1),r.length=0;for(var n=this.stack.length-1;n>=0;n--)this.stack[n]._getSymbols(e,t,r);return r},c(e,[{key:"scope",get:function(){return this.stack[this.stack.length-1]}},{key:"isInMacroBranch",get:function(){return this._macroLevel>0}}]),e}(),tR=function(e,t,r){this.type=e,this.typeLexeme=t,this.arraySpecifier=r},tM=((m={})[m.VAR=0]="VAR",m[m.FN=1]="FN",m[m.STRUCT=2]="STRUCT",m[m.Any=3]="Any",m),tN=/*#__PURE__*/function(){function e(e,t,r,n,i,a){void 0===a&&(a=!1),this.ident=e,this.type=t,this.astNode=r,this.dataType=n,this.paramSignature=i,this.isInMacroBranch=a}var t=e.prototype;return t.set=function(e,t,r,n,i){this.ident=e,this.type=t,this.astNode=r,this.dataType=n,this.paramSignature=i},t.equal=function(e){if(3!==e.type&&this.type!==e.type)return!1;if(1===this.type){if(!e.astNode&&!e.paramSignature)return!0;var t,r=this.astNode.protoType.paramSig,n=null!=(t=e.paramSignature)?t:e.astNode.protoType.paramSig,i=null==r?void 0:r.length;if(i!==(null==n?void 0:n.length))return!1;for(var a=0;a<i;a++){var o=r[a],s=n[a];if(3e3!==o&&3e3!==s&&o!==s)return!1}}return!0},e}(),tD=/*#__PURE__*/function(e){function t(t,r){var n=new tR(r.protoType.returnType.type,r.protoType.returnType.typeSpecifier.lexeme);return e.call(this,t,tM.FN,r,n)||this}return a(t,e),t}(tN),tG=/*#__PURE__*/function(e){function t(t,r){return e.call(this,t,tM.STRUCT,r)||this}return a(t,e),t}(tN),tk=/*#__PURE__*/function(e){function t(t,r,n,i){var a;return(a=e.call(this,t,tM.VAR,i,r)||this).isGlobalVariable=n,a}return a(t,e),t}(tN),tV=/*#__PURE__*/function(){function e(){this.globalPrecisions=[],this.globalMacroDeclarations=[]}return e.prototype.getOuterGlobalMacroDeclarations=function(){return this.globalMacroDeclarations.filter(function(e){return o(e.parent,tt.GLShaderProgram)})},e}(),tF=/*#__PURE__*/function(){function e(){this.semanticStack=[],this.acceptRule=void 0,this.symbolTableStack=new tP,this.curFunctionInfo={},this._shaderData=new tV,this._translationRuleTable=new Map,this.errors=[],this.pushScope()}var r=e.prototype;return r.reset=function(e){this._macroDefineList=e,this.semanticStack.length=0,this._shaderData=new tV,this.symbolTableStack.clear(),this.pushScope(),this.errors.length=0},r.pushScope=function(){this.symbolTableStack.pushScope(new tL)},r.popScope=function(){return this.symbolTableStack.popScope()},r.addTranslationRule=function(e,t){this._translationRuleTable.set(e,t)},r.getTranslationRule=function(e){return this._translationRuleTable.get(e)},r.reportError=function(e,t){this.errors.push(new tu(tp.CompilationError,t,e,rc._processingPassText))},r.reportWarning=function(e,r){t.Logger.warn(new tu(tp.CompilationWarn,r,e,rc._processingPassText).toString())},c(e,[{key:"shaderData",get:function(){return this._shaderData}},{key:"macroDefineList",get:function(){return this._macroDefineList}}]),e}();tF._lookupSymbol=new tN("",null);var tB=function(e,t,r){this.type=e,this.typeLexeme=t,this.arraySpecifier=r},tw=function(e,t,r,n){void 0===n&&(n=!1),this.typeInfo=e,this.ident=t,this.mrtIndex=r,this.isInMacroBranch=n};function tU(e){return function(t){t.prototype.nt=e,t.pool=th.createObjectPool(t)}}var tW=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.set=function(t,r){this._location=t,this._children=r;for(var i,a=n(r);!(i=a()).done;){var s=i.value;o(s,e)&&(s._parent=this)}this.init()},t.init=function(){},t.dispose=function(){},t.setCache=function(e){return this._codeCache=e,e},t.getCache=function(){return this._codeCache},t.codeGen=function(e){var t=e.defaultCodeGen(this.children);return this.setCache(t),t},t.semanticAnalyze=function(e){},c(e,[{key:"parent",get:function(){return this._parent}},{key:"children",get:function(){return this._children}},{key:"location",get:function(){return this._location}}]),e}();(S=tt||(tt={}))._unwrapToken=function(e){if(o(e,t_))return e;throw"not token"},S.get=function(e,t,r,n){var i=e.get();i.set(r,n),i.semanticAnalyze(t),t.semanticStack.push(i)},g=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.TrivialNode=g,g=l([tU(td._ignore)],g),v=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.pushScope()},t}(tW),S.ScopeBrace=v,v=l([tU(td.scope_brace)],v),y=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.popScope()},t}(tW),S.ScopeEndBrace=y,y=l([tU(td.scope_end_brace)],y),x=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.isFragReturnStatement=!1},r.semanticAnalyze=function(e){S._unwrapToken(this.children[0]).type===ta.RETURN&&(e.curFunctionInfo.returnStatement=this)},r.codeGen=function(e){return this.setCache(e.visitJumpStatement(this))},t}(tW),S.JumpStatement=x,x=l([tU(td.jump_statement)],x),E=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ConditionOpt=E,E=l([tU(td.conditionopt)],E),C=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ForRestStatement=C,C=l([tU(td.for_rest_statement)],C),A=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.Condition=A,A=l([tU(td.condition)],A),T=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ForInitStatement=T,T=l([tU(td.for_init_statement)],T),b=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.IterationStatement=b,b=l([tU(td.iteration_statement)],b),O=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.SelectionStatement=O,O=l([tU(td.selection_statement)],O),I=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.ExpressionStatement=I,I=l([tU(td.expression_statement)],I),L=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){this._type=void 0},c(t,[{key:"type",get:function(){var e;return null!=(e=this._type)?e:3e3},set:function(e){this._type=e}}]),t}(tW),S.ExpressionAstNode=L,P=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.type=t.type},t}(L),S.InitializerList=P,P=l([tU(td.initializer_list)],P),R=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=this.children[1].type},t}(L),S.Initializer=R,R=l([tU(td.initializer)],R),M=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.typeSpecifier=void 0,this.arraySpecifier=void 0},r.semanticAnalyze=function(e){var t,r=this.children,n=r.length,i=r[0],a=i.typeSpecifier;this.typeSpecifier=a,this.arraySpecifier=a.arraySpecifier;var o=r[1];if(2===n||4===n){var s=new tB(i.type,a.lexeme,this.arraySpecifier),c=r[3];t=new tk(o.lexeme,s,!1,c)}else{var l=r[2];l&&this.arraySpecifier&&e.reportError(l.location,"Array of array is not supported."),this.arraySpecifier=l;var u=new tB(i.type,a.lexeme,this.arraySpecifier),p=r[4];t=new tk(o.lexeme,u,!1,p)}e.symbolTableStack.insert(t)},r.codeGen=function(e){return this.setCache(e.visitSingleDeclaration(this))},t}(tW),S.SingleDeclaration=M,M=l([tU(td.single_declaration)],M),N=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children;this.typeSpecifier=1===t.length?t[0]:t[1],this.type=this.typeSpecifier.type},t}(tW),S.FullySpecifiedType=N,N=l([tU(td.fully_specified_type)],N),D=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.TypeQualifier=D,D=l([tU(td.type_qualifier)],D),G=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];o(t,t_)?this.qualifier=t.type:this.qualifier=t.qualifier,this.lexeme=t.lexeme},t}(tW),S.SingleTypeQualifier=G,G=l([tU(td.single_type_qualifier)],G),V=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.qualifier=t.type,this.lexeme=t.lexeme},t}(tW)),S.StorageQualifier=V,V=l([tU(td.storage_qualifier)],V),F=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.PrecisionQualifier=F,F=l([tU(td.precision_qualifier)],F),B=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.InterpolationQualifier=B,B=l([tU(td.interpolation_qualifier)],B),w=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(k),S.InvariantQualifier=w,w=l([tU(td.invariant_qualifier)],w),U=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.arraySize=void 0},r.semanticAnalyze=function(e){var t,r=this.children,n=r[0];this.type=n.type,this.lexeme=n.lexeme,this.arraySize=null==r?void 0:null==(t=r[1])?void 0:t.size,this.isCustom="string"==typeof this.type},c(t,[{key:"arraySpecifier",get:function(){return this.children[1]}}]),t}(tW),S.TypeSpecifier=U,U=l([tU(td.type_specifier)],U),W=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[1];this.size=t.value},t}(tW),S.ArraySpecifier=W,W=l([tU(td.array_specifier)],W),z=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];switch(this.lexeme=t.lexeme,t.type){case ti.PLUS:this.compute=function(e,t){return e+t};break;case ti.DASH:this.compute=function(e,t){return e-t};break;case ti.STAR:this.compute=function(e,t){return e*t};break;case ti.SLASH:this.compute=function(e,t){return e/t};break;case ti.PERCENT:this.compute=function(e,t){return e%t};break;default:e.reportError(t.location,"not implemented operator "+t.lexeme)}},t}(tW),S.IntegerConstantExpressionOperator=z,z=l([tU(td.integer_constant_expression_operator)],z),H=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.value=void 0},r.semanticAnalyze=function(e){if(1===this.children.length){var t=this.children[0];if(o(t,t_))this.value=Number(t.lexeme);else if(!tx.typeCompatible(ta.INT,t.typeInfo)){e.reportError(t.location,"Invalid integer.");return}}},t}(tW),S.IntegerConstantExpression=H,H=l([tU(td.integer_constant_expression)],H),j=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){var e=this.children[0];o(e,t_)?this.type=e.lexeme:this.type=e.type,this.lexeme=e.lexeme},t}(tW),S.TypeSpecifierNonArray=j,j=l([tU(td.type_specifier_nonarray)],j),q=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){var e=this.children[0];this.type=e.type,this.lexeme=e.lexeme},t}(tW),S.ExtBuiltinTypeSpecifierNonArray=q,q=l([tU(td.ext_builtin_type_specifier_nonarray)],q),X=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t,r=this.children,n=r.length;if(1===n){var i=r[0],a=i.typeSpecifier,o=i.arraySpecifier;this.typeInfo=new tB(a.type,a.lexeme,o)}else{var s=r[0];this.typeInfo=s.typeInfo}if(3===n||5===n)t=new tk(r[2].lexeme,this.typeInfo,!1,this),e.symbolTableStack.insert(t);else if(4===n||6===n){var c=this.typeInfo,l=this.children[3];c.arraySpecifier&&l&&e.reportError(l.location,"Array of array is not supported."),c.arraySpecifier=l,t=new tk(r[2].lexeme,c,!1,this),e.symbolTableStack.insert(t)}},t}(tW),S.InitDeclaratorList=X,X=l([tU(td.init_declarator_list)],X),Q=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.idList=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.idList.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.idList;if(2===t.length)r.push(t[1]);else{var n=t[0],i=t[2],a=n.idList.length;r.length=a+1;for(var o=0;o<a;o++)r[o]=n.idList[o];r[a]=i}},t}(tW),S.IdentifierList=Q,Q=l([tU(td.identifier_list)],Q),Y=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(e){return this.setCache(e.visitDeclaration(this))},t}(tW),S.Declaration=Y,Y=l([tU(td.declaration)],Y),K=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.ident=t.ident,this.returnType=t.returnType,this.parameterList=t.parameterInfoList,this.paramSig=t.paramSig},t}(tW),S.FunctionProtoType=K,K=l([tU(td.function_prototype)],K),J=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.curFunctionInfo.returnStatement=null,e.curFunctionInfo.header=this;var t=this.children,r=t[0],n=t[1];this.ident=r.ident,this.returnType=r.returnType,this.parameterInfoList=null==n?void 0:n.parameterInfoList,this.paramSig=null==n?void 0:n.paramSig},t}(tW),S.FunctionDeclarator=J,J=l([tU(td.function_declarator)],J),Z=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.pushScope();var t=this.children;this.ident=t[1],this.returnType=t[0]},r.codeGen=function(e){return this.setCache(e.visitFunctionHeader(this))},t}(tW),S.FunctionHeader=Z,Z=l([tU(td.function_header)],Z),$=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.parameterInfoList=[],t.paramSig=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.parameterInfoList.length=0,this.paramSig.length=0},r.semanticAnalyze=function(e){var r=this.children,n=this.parameterInfoList,i=this.paramSig;if(o(r[0],en)){var a,s,c=r[0];n.push({ident:c.ident,typeInfo:c.typeInfo,astNode:c}),i.push(null!=(s=null==(a=c.typeInfo)?void 0:a.type)?s:3e3)}else if(o(r[2],en)){var l,u,p=r[0],h=r[2];n.push.apply(n,[].concat(p.parameterInfoList,[{ident:h.ident,typeInfo:h.typeInfo,astNode:h}])),i.push.apply(i,[].concat(p.paramSig,[null!=(u=null==(l=h.typeInfo)?void 0:l.type)?u:3e3]))}else o(r[0],t)&&o(r[1],et)?(n.push.apply(n,[].concat(r[0].parameterInfoList,[{astNode:r[1]}])),i.push.apply(i,[].concat(r[0].paramSig,[3e3]))):o(r[0],et)&&(n.push({astNode:r[0]}),i.push(3e3))},r.codeGen=function(e){return this.setCache(e.visitFunctionParameterList(this))},t}(tW),S.FunctionParameterList=$,$=l([tU(td.function_parameter_list)],$),ee=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParamCaseList=ee,ee=l([tU(td.macro_param_case_list)],ee),et=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParamBlock=et,et=l([tU(td.macro_param_block)],et),er=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroParameterBranch=er,er=l([tU(td.macro_parameter_branch)],er),en=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.typeInfo=void 0,this.ident=void 0},r.semanticAnalyze=function(e){var t,r=this.children;if(o(r[0],ei)?t=r[0]:o(r[1],ei)&&(t=r[1]),t){this.typeInfo=t.typeInfo,this.ident=t.ident;var n=new tk(t.ident.lexeme,t.typeInfo,!1,t);e.symbolTableStack.insert(n)}},t}(tW),S.ParameterDeclaration=en,en=l([tU(td.parameter_declaration)],en),ei=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children;this.ident=t[1];var r=t[0],n=t[2];this.typeInfo=new tB(r.type,r.lexeme,n)},t}(tW),S.ParameterDeclarator=ei,ei=l([tU(td.parameter_declarator)],ei),ea=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.SimpleStatement=ea,ea=l([tU(td.simple_statement)],ea),eo=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.CompoundStatement=eo,eo=l([tU(td.compound_statement)],eo),es=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.CompoundStatementNoScope=es,es=l([tU(td.compound_statement_no_scope)],es),ec=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.Statement=ec,ec=l([tU(td.statement)],ec),el=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(e){return this.setCache(e.visitStatementList(this))},t}(tW),S.StatementList=el,el=l([tU(td.statement_list)],el),eu=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.returnStatement=void 0},r.semanticAnalyze=function(e){var t=this.children;this.protoType=t[0],this.statements=t[1],e.popScope();var r=new tD(this.protoType.ident.lexeme,this);e.symbolTableStack.insert(r),this.isInMacroBranch=e.symbolTableStack.isInMacroBranch;var n=e.curFunctionInfo,i=n.header,a=n.returnStatement;i.returnType.type===ta.VOID?a&&e.reportError(i.returnType.location,"Return in void function."):a?this.returnStatement=a:e.reportError(i.returnType.location,"No return statement found."),n.header=void 0,n.returnStatement=void 0},r.codeGen=function(e){return this.setCache(e.visitFunctionDefinition(this))},t}(tW),S.FunctionDefinition=eu,eu=l([tU(td.function_definition)],eu),ep=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){this.type=this.children[0].type},r.codeGen=function(e){return this.setCache(e.visitFunctionCall(this))},t}(L),S.FunctionCall=ep,ep=l([tU(td.function_call)],ep),eh=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){e.prototype.init.call(this),this.fnSymbol=void 0},r.semanticAnalyze=function(e){var t=this.children[0];if(t.isBuiltin)this.type=t.ident;else{var r,n,i=t.ident;if(4===this.children.length){var a=this.children[2];o(a,e_)&&(n=a.paramSig)}var s=tb.getFn(i,n);if(s){this.type=s.realReturnType;return}var c=tF._lookupSymbol;c.set(i,tM.FN,void 0,void 0,n);var l=e.symbolTableStack.lookup(c,!0);if(!l){e.reportError(this.location,"No overload function type found: "+t.ident);return}this.type=null==l?void 0:null==(r=l.dataType)?void 0:r.type,this.fnSymbol=l}},t}(L),S.FunctionCallGeneric=eh,eh=l([tU(td.function_call_generic)],eh),e_=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.paramSig=[],t.paramNodes=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.paramSig.length=0,this.paramNodes.length=0},r.semanticAnalyze=function(e){var r=this.children,n=this.paramSig,i=this.paramNodes;if(o(r[0],ev)){var a=r[0];n.push(a.type),i.push(a)}else if(o(r[2],ev)){var s=r[0],c=r[2];n.push.apply(n,[].concat(s.paramSig,[c.type])),i.push.apply(i,[].concat(s.paramNodes,[c]))}else o(r[0],t)&&o(r[1],ed)?(n.push.apply(n,[].concat(r[0].paramSig,[3e3])),i.push.apply(i,[].concat(r[0].paramNodes,[r[1]]))):o(r[0],ed)&&(n.push(3e3),i.push(r[0]))},t}(tW),S.FunctionCallParameterList=e_,e_=l([tU(td.function_call_parameter_list)],e_),ef=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgCaseList=ef,ef=l([tU(td.macro_call_arg_case_list)],ef),ed=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgBlock=ed,ed=l([tU(td.macro_call_arg_block)],ed),em=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroCallArgBranch=em,em=l([tU(td.macro_call_arg_branch)],em),eS=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){e.symbolTableStack.isInMacroBranch||e.shaderData.globalPrecisions.push(this)},t}(tW),S.PrecisionSpecifier=eS,eS=l([tU(td.precision_specifier)],eS),eg=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){var t=this.children[0];this.ident=t.type,this.lexeme=t.lexeme,this.isBuiltin="string"!=typeof this.ident},r.codeGen=function(e){return this.setCache(e.visitFunctionIdentifier(this))},t}(tW),S.FunctionIdentifier=eg,eg=l([tU(td.function_identifier)],eg),ev=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t,r=this.children[0];this.type=null!=(t=r.type)?t:3e3}else{var n,i=this.children[2];this.type=null!=(n=i.type)?n:3e3}},t}(L),S.AssignmentExpression=ev,ev=l([tU(td.assignment_expression)],ev),ey=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.AssignmentOperator=ey,ey=l([tU(td.assignment_operator)],ey),ex=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t=this.children[0];this.type=t.type}else{var r=this.children[2];this.type=r.type}},t}(L),S.Expression=ex,ex=l([tU(td.expression)],ex),eE=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){if(1===this.children.length){var t,r=this.children[0];if(o(r,eQ))this.type=null!=(t=r.typeInfo)?t:3e3;else switch(r.type){case ti.INT_CONSTANT:this._type=ta.INT;break;case ti.FLOAT_CONSTANT:this.type=ta.FLOAT;break;case ta.True:case ta.False:this.type=ta.BOOL}}else{var n=this.children[1];this.type=n.type}},t}(L),S.PrimaryExpression=eE,eE=l([tU(td.primary_expression)],eE),eC=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){if(e.prototype.init.call(this),1===this.children.length){var t=this.children[0];this.type=t.type}},r.codeGen=function(e){return this.setCache(e.visitPostfixExpression(this))},t}(L),S.PostfixExpression=eC,eC=l([tU(td.postfix_expression)],eC),eA=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.UnaryOperator=eA,eA=l([tU(td.unary_operator)],eA),eT=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){this.type=this.children[0].type},t}(L),S.UnaryExpression=eT,eT=l([tU(td.unary_expression)],eT),eb=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){e.prototype.init.call(this),1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.MultiplicativeExpression=eb,eb=l([tU(td.multiplicative_expression)],eb),eO=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.init=function(){e.prototype.init.call(this),1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.AdditiveExpression=eO,eO=l([tU(td.additive_expression)],eO),eI=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){var t=this.children[0];this.type=t.type},t}(L),S.ShiftExpression=eI,eI=l([tU(td.shift_expression)],eI),eL=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.RelationalExpression=eL,eL=l([tU(td.relational_expression)],eL),eP=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.EqualityExpression=eP,eP=l([tU(td.equality_expression)],eP),eR=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.AndExpression=eR,eR=l([tU(td.and_expression)],eR),eM=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.ExclusiveOrExpression=eM,eM=l([tU(td.exclusive_or_expression)],eM),eN=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.UINT},t}(L),S.InclusiveOrExpression=eN,eN=l([tU(td.inclusive_or_expression)],eN),eD=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalAndExpression=eD,eD=l([tU(td.logical_and_expression)],eD),eG=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalXorExpression=eG,eG=l([tU(td.logical_xor_expression)],eG),ek=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length?this.type=this.children[0].type:this.type=ta.BOOL},t}(L),S.LogicalOrExpression=ek,ek=l([tU(td.logical_or_expression)],ek),eV=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){1===this.children.length&&(this.type=this.children[0].type)},t}(L),S.ConditionalExpression=eV,eV=l([tU(td.conditional_expression)],eV),eF=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.ident=void 0},r.semanticAnalyze=function(e){var t=this.children;this.isInMacroBranch=e.symbolTableStack.isInMacroBranch,6===t.length?(this.ident=t[1],e.symbolTableStack.insert(new tG(this.ident.lexeme,this)),this.propList=t[3].propList,this.macroExpressions=t[3].macroExpressions):(this.propList=t[2].propList,this.macroExpressions=t[2].macroExpressions)},r.codeGen=function(e){return this.setCache(e.visitStructSpecifier(this))},t}(tW),S.StructSpecifier=eF,eF=l([tU(td.struct_specifier)],eF),eB=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.propList=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.propList.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.propList,n=this.macroExpressions;1===t.length?(r.push.apply(r,[].concat(t[0].props)),n.push.apply(n,[].concat(t[0].macroExpressions))):(r.push.apply(r,[].concat(t[0].propList)),r.push.apply(r,[].concat(t[1].props)),n.push.apply(n,[].concat(t[0].macroExpressions)),n.push.apply(n,[].concat(t[1].macroExpressions)))},t}(tW),S.StructDeclarationList=eB,eB=l([tU(td.struct_declaration_list)],eB),ew=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this._typeSpecifier=void 0,this._declaratorList=void 0,this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.props,n=this.macroExpressions;if(1===t.length){for(var i=t[0],a=i.props,s=0,c=a.length;s<c;s++)a[s].isInMacroBranch=!0,r.push(a[s]);n.push.apply(n,[].concat(i.macroExpressions));return}3===t.length?(this._typeSpecifier=t[0],this._declaratorList=t[1]):(this._typeSpecifier=t[1],this._declaratorList=t[2]);var l=t[0],u=this._typeSpecifier,p=u.type,h=u.lexeme,_=e.symbolTableStack.isInMacroBranch;if(o(l,ez)){var f=t[2],d=new tw(new tB(p,h),f.ident,l.index,_);r.push(d)}else{var m=this._declaratorList.declaratorList,S=m.length;r.length=S;for(var g=0;g<S;g++){var v=m[g],y=new tw(new tB(p,h,v.arraySpecifier),v.ident,void 0,_);r[g]=y}}},t}(tW),S.StructDeclaration=ew,ew=l([tU(td.struct_declaration)],ew),eU=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(){var e,t,r,n,i,a,o=this.children;this.macroExpressions.push(o[0]),3===o.length?((e=this.props).push.apply(e,[].concat(o[1].propList)),(t=this.props).push.apply(t,[].concat(o[2].props)),(r=this.macroExpressions).push.apply(r,[].concat(o[1].macroExpressions)),(n=this.macroExpressions).push.apply(n,[].concat(o[2].macroExpressions))):((i=this.props).push.apply(i,[].concat(o[1].props)),(a=this.macroExpressions).push.apply(a,[].concat(o[1].macroExpressions)))},t}(tW),S.MacroStructDeclaration=eU,eU=l([tU(td.macro_struct_declaration)],eU),eW=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.props=[],t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.props.length=0,this.macroExpressions.length=0},r.semanticAnalyze=function(){var e,r,n,i,a=this.children,s=a[a.length-1];this.macroExpressions.push(a[0]),o(a[1],eB)&&((e=this.props).push.apply(e,[].concat(a[1].propList)),(r=this.macroExpressions).push.apply(r,[].concat(a[1].macroExpressions))),o(s,t)&&((n=this.props).push.apply(n,[].concat(s.props)),(i=this.macroExpressions).push.apply(i,[].concat(s.macroExpressions))),a.length>1&&o(s,e$)&&this.macroExpressions.push(s)},t}(tW),S.MacroStructBranch=eW,eW=l([tU(td.macro_struct_branch)],eW),ez=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){this.index=Number(this.children[4].lexeme)},t}(tW),S.LayoutQualifier=ez,ez=l([tU(td.layout_qualifier)],ez),eH=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.declaratorList=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.declaratorList.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.declaratorList;if(1===t.length)r.push(t[0]);else{var n=t[0],i=t[1],a=n.declaratorList.length;r.length=a+1;for(var o=0;o<a;o++)r[o]=n.declaratorList[o];r[a]=i}},t}(tW),S.StructDeclaratorList=eH,eH=l([tU(td.struct_declarator_list)],eH),ej=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.arraySpecifier=void 0},r.semanticAnalyze=function(e){var t=this.children;this.ident=t[0],this.arraySpecifier=t[1]},t}(tW),S.StructDeclarator=ej,ej=l([tU(td.struct_declarator)],ej),eq=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.init=function(){this.isStatic=!1},r.semanticAnalyze=function(e){var t=this.children,r=t[0],n=t[1];this.type=r;var i=new tk(n.lexeme,new tB(r.type,r.typeSpecifier.lexeme),!0,this);e.symbolTableStack.insert(i),4===t.length&&(this.isStatic=!0)},r.codeGen=function(t){return this.isStatic?e.prototype.codeGen.call(this,t):this.setCache(t.visitGlobalVariableDeclaration(this))},t}(tW),S.VariableDeclaration=eq,eq=l([tU(td.variable_declaration)],eq),eX=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.variableDeclarations=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.variableDeclarations.length=0},r.semanticAnalyze=function(e){var t=this.children,r=t.length,n=t[0],i=n.type;if(this.type=i,o(n,eq))this.variableDeclarations.push(n);else{(a=this.variableDeclarations).push.apply(a,[].concat(n.variableDeclarations));var a,s=t[2],c=eq.pool.get();3===r?c.set(s.location,[i,s]):c.set(s.location,[i,s,t[3]]),c.semanticAnalyze(e),this.variableDeclarations.push(c)}},t}(tW),S.VariableDeclarationList=eX,eX=l([tU(td.variable_declaration_list)],eX),eQ=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.referenceGlobalSymbolNames=[],t._symbols=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.typeInfo=3e3,this.referenceGlobalSymbolNames.length=0,this._symbols.length=0},r.semanticAnalyze=function(e){var t=this.children[0],r=this.referenceGlobalSymbolNames,n=this._symbols,i=tF._lookupSymbol;l=o(t,t_)?[t.lexeme]:t.referenceSymbolNames;for(var a=0;a<l.length;a++){var s=l[a];if(!(e.macroDefineList[s]||!o(t,t_)&&tb.isExist(s))){var c=tI.getVar(s);if(c){this.typeInfo=c.type;continue}if(i.set(s,tM.Any),e.symbolTableStack.lookupAll(i,!0,n),n.length){this.typeInfo=null==(u=n[0].dataType)?void 0:u.type;var l,u,p=e.symbolTableStack.scope.getSymbol(i,!0);p?(o(p,tD)||p.isGlobalVariable)&&-1===r.indexOf(s)&&r.push(s):n.some(function(e){return o(e,tD)||e.isGlobalVariable})&&-1===r.indexOf(s)&&r.push(s)}else e.reportWarning(this.location,'Please sure the identifier "'+s+'" will be declared before used.')}}},r.codeGen=function(e){return this.setCache(e.visitVariableIdentifier(this))},r.getLexeme=function(e){var t=this.children[0];return o(t,t_)?t.lexeme:t.codeGen(e)},t}(tW),S.VariableIdentifier=eQ,eQ=l([tU(td.variable_identifier)],eQ),eY=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.semanticAnalyze=function(e){this.shaderData=e.shaderData,this.shaderData.symbolTable=e.symbolTableStack.scope},t}(tW),S.GLShaderProgram=eY,eY=l([tU(td.gs_shader_program)],eY),eK=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t,r=this.children[0];(o(r,eJ)||o(r,e3)||o(r,t_))&&(e.shaderData.globalMacroDeclarations.push(this),o(r,e3)?(t=this.macroExpressions).push.apply(t,[].concat(r.macroExpressions)):this.macroExpressions.push(r))},t}(tW),S.GlobalDeclaration=eK,eK=l([tU(td.global_declaration)],eK),eJ=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache(e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroUndef=eJ,eJ=l([tU(td.macro_undef)],eJ),eZ=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.symbolTableStack._macroLevel++},r.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroPushContext=eZ,eZ=l([tU(td.macro_push_context)],eZ),e$=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){e.symbolTableStack._macroLevel--},r.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroPopContext=e$,e$=l([tU(td.macro_pop_context)],e$),e0=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroElifExpression=e0,e0=l([tU(td.macro_elif_expression)],e0),e2=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t.prototype.codeGen=function(t){return this.setCache("\n"+e.prototype.codeGen.call(this,t)+"\n")},t}(tW),S.MacroElseExpression=e2,e2=l([tU(td.macro_else_expression)],e2),e1=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.macroExpressions;1===t.length?r.push.apply(r,[].concat(t[0].macroExpressions)):(r.push.apply(r,[].concat(t[0].macroExpressions)),r.push.apply(r,[].concat(t[1].macroExpressions)))},r.codeGen=function(e){var t=this.children;return 1===t.length?this.setCache(t[0].codeGen(e)):this.setCache(t[0].codeGen(e)+"\n"+t[1].codeGen(e))},t}(tW),S.GlobalMacroDeclaration=e1,e1=l([tU(td.global_macro_declaration)],e1),e3=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var t=this.children,r=this.macroExpressions;3===t.length?(r.push(t[0]),r.push.apply(r,[].concat(t[1].macroExpressions)),r.push.apply(r,[].concat(t[2].macroExpressions))):(r.push(t[0]),r.push.apply(r,[].concat(t[1].macroExpressions)))},t}(tW),S.GlobalMacroIfStatement=e3,e3=l([tU(td.global_macro_if_statement)],e3),e4=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.macroExpressions=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.macroExpressions.length=0},r.semanticAnalyze=function(e){var r=this.children,n=r[r.length-1],i=this.macroExpressions;i.push(r[0]),o(r[1],e1)&&i.push.apply(i,[].concat(r[1].macroExpressions)),o(n,t)&&i.push.apply(i,[].concat(n.macroExpressions)),r.length>1&&o(n,e$)&&i.push(n)},t}(tW),S.GlobalMacroBranch=e4,e4=l([tU(td.global_macro_branch)],e4),e9=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroIfStatement=e9,e9=l([tU(td.macro_if_statement)],e9),e5=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(tW),S.MacroBranch=e5,e5=l([tU(td.macro_branch)],e5),e6=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.referenceSymbolNames=[],t}a(t,e);var r=t.prototype;return r.init=function(){this.referenceSymbolNames.length=0},r.semanticAnalyze=function(e){var t=this.children[0].lexeme;this.macroName=t,tE.getReferenceSymbolNames(e.macroDefineList,t,this.referenceSymbolNames)},t}(tW),S.MacroCallSymbol=e6,e6=l([tU(td.macro_call_symbol)],e6),e7=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.semanticAnalyze=function(e){var t=this.children[0];this.referenceSymbolNames=t.referenceSymbolNames,this.macroName=t.macroName},r.codeGen=function(e){return this.setCache(e.visitMacroCallFunction(this))},t}(tW),S.MacroCallFunction=e7,l([tU(td.macro_call_function)],e7);var tz=/*#__PURE__*/function(){function e(){this.attributeStructs=[],this.attributeList=[],this.varyingStructs=[],this.varyingList=[],this.mrtStructs=[],this.mrtList=[],this._referencedGlobalMacroASTs=[]}var t=e.prototype;return t.reset=function(e){void 0===e&&(e=!0),e&&(this.attributeStructs.length=0,this.attributeList.length=0,this.varyingStructs.length=0,this.varyingList.length=0,this.mrtStructs.length=0,this.mrtList.length=0),this._referencedAttributeList=Object.create(null),this._referencedVaryingList=Object.create(null),this._referencedMRTList=Object.create(null),this._referencedGlobals=Object.create(null),this._referencedGlobalMacroASTs.length=0},t.isAttributeStruct=function(e){return -1!==this.attributeStructs.findIndex(function(t){return t.ident.lexeme===e})},t.isVaryingStruct=function(e){return -1!==this.varyingStructs.findIndex(function(t){return t.ident.lexeme===e})},t.isMRTStruct=function(e){return -1!==this.mrtStructs.findIndex(function(t){return t.ident.lexeme===e})},t.referenceAttribute=function(e){var t=e.lexeme;if(!this._referencedAttributeList[t]){var r=this.attributeList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced attribute not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedAttributeList[t]=r}},t.referenceVarying=function(e){var t=e.lexeme;if(!this._referencedVaryingList[t]){var r=this.varyingList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced varying not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedVaryingList[t]=r}},t.referenceMRTProp=function(e){var t=e.lexeme;if(!this._referencedMRTList[t]){var r=this.mrtList.filter(function(e){return e.ident.lexeme===t});if(!r.length)return th.createGSError("referenced mrt not found: "+t,tp.CompilationError,rc._processingPassText,e.location);this._referencedMRTList[t]=r}},t.referenceGlobal=function(t,r){if(!this._referencedGlobals[t]){this._referencedGlobals[t]=[];var n=e._lookupSymbol;n.set(t,r),this._passSymbolTable.getSymbols(n,!0,this._referencedGlobals[t])}},e.reset=function(){this._singleton||(this._singleton=new e),this._singleton.reset()},c(e,null,[{key:"context",get:function(){return this._singleton}}]),e}();tz._lookupSymbol=new tN("",null);var tH=/*#__PURE__*/function(){function e(){this.array=[]}return e.prototype.dispose=function(){this.array.length=0},e}(),tj=/*#__PURE__*/function(){function e(){this.errors=[]}var t=e.prototype;return t.defaultCodeGen=function(t){var r=e._tmpArrayPool,i=r.get();i.dispose();for(var a,s=n(t);!(a=s()).done;){var c=a.value;o(c,t_)?i.array.push(c.lexeme):i.array.push(c.codeGen(this))}return r.return(i),i.array.join(" ")},t.visitPostfixExpression=function(e){var t=e.children,r=t.length,n=tz.context;if(3===r){var i=t[0],a=t[2];if(!o(a,t_))return i.codeGen(this)+"."+a.codeGen(this);if(n.isAttributeStruct(i.type)){var s=n.referenceAttribute(a);return s&&this.errors.push(s),a.lexeme}if(n.isVaryingStruct(i.type)){var c=n.referenceVarying(a);return c&&this.errors.push(c),a.lexeme}if(n.isMRTStruct(i.type)){var l=n.referenceMRTProp(a);return l&&this.errors.push(l),a.lexeme}return i.codeGen(this)+"."+a.lexeme}if(4===r){var u=t[0],p=t[2],h=u.codeGen(this),_=p.codeGen(this);return"gl_FragData"===h&&this._reportError(u.location,"Please use MRT struct instead of gl_FragData."),h+"["+_+"]"}return this.defaultCodeGen(e.children)},t.visitVariableIdentifier=function(e){for(var t,r=n(e.referenceGlobalSymbolNames);!(t=r()).done;){var i=t.value;tz.context.referenceGlobal(i,tM.Any)}return e.getLexeme(this)},t.visitFunctionCall=function(e){var t=e.children[0];if(o(t.fnSymbol,tD)){tz.context.referenceGlobal(t.fnSymbol.ident,tM.FN);var r=t.children[2];if(o(r,tt.FunctionCallParameterList)){for(var n=r.paramNodes,i=t.fnSymbol.astNode.protoType.parameterList,a=n.filter(function(e,t){var r,n=null==i?void 0:null==(r=i[t])?void 0:r.typeInfo;return!n||!tz.context.isAttributeStruct(n.typeLexeme)&&!tz.context.isVaryingStruct(n.typeLexeme)&&!tz.context.isMRTStruct(n.typeLexeme)}),s="",c=0,l=a.length;c<l;c++){var u=a[c],p=u.codeGen(this);o(u,tt.MacroCallArgBlock)||0===c?s+=p:s+=", "+p}return t.fnSymbol.ident+"("+s+")"}}return this.defaultCodeGen(e.children)},t.visitMacroCallFunction=function(e){var t=e.children[2];if(!o(t,tt.FunctionCallParameterList))return this.defaultCodeGen(e.children);for(var r=t.paramNodes.filter(function(e){if(o(e,tt.AssignmentExpression)){var t=tx.unwrapNodeByType(e,td.variable_identifier);if(t&&"string"==typeof t.typeInfo&&(tz.context.isAttributeStruct(t.typeInfo)||tz.context.isVaryingStruct(t.typeInfo)||tz.context.isMRTStruct(t.typeInfo)))return!1}return!0}),n="",i=0,a=r.length;i<a;i++){var s=r[i],c=s.codeGen(this);o(s,tt.MacroCallArgBlock)||0===i?n+=c:n+=", "+c}return e.macroName+"("+n+")"},t.visitStatementList=function(e){var t=e.children;return 1===t.length?t[0].codeGen(this):t[0].codeGen(this)+"\n"+t[1].codeGen(this)},t.visitSingleDeclaration=function(e){var t=e.typeSpecifier.type;return"string"==typeof t&&tz.context.referenceGlobal(t,tM.STRUCT),this.defaultCodeGen(e.children)},t.visitGlobalVariableDeclaration=function(e){var t=e.children,r=t[0];return o(r,tt.FullySpecifiedType)&&r.typeSpecifier.isCustom&&tz.context.referenceGlobal(r.type,tM.STRUCT),"uniform "+this.defaultCodeGen(t)},t.visitDeclaration=function(e){var t=tz.context,r=e.children,n=r[0];if(o(n,tt.InitDeclaratorList)){var i=n.typeInfo.typeLexeme;if(t.isVaryingStruct(i)||t.isMRTStruct(i))return""}return this.defaultCodeGen(r)},t.visitFunctionParameterList=function(e){for(var t=e.parameterInfoList.filter(function(e){return!e.typeInfo||!tz.context.isAttributeStruct(e.typeInfo.typeLexeme)&&!tz.context.isVaryingStruct(e.typeInfo.typeLexeme)&&!tz.context.isMRTStruct(e.typeInfo.typeLexeme)}),r="",n=0,i=t.length;n<i;n++){var a=t[n].astNode,s=a.codeGen(this);o(a,tt.MacroParamBlock)||0===n?r+=s:r+=", "+s}return r},t.visitFunctionHeader=function(e){var t=e.returnType.typeSpecifier.lexeme;return tz.context.isVaryingStruct(t)?"void "+e.ident.lexeme+"(":this.defaultCodeGen(e.children)},t.visitJumpStatement=function(e){var t=e.children;if(t[0].type===ta.RETURN){var r=t[1];if(o(r,tt.Expression)){var n=tx.unwrapNodeByType(r,td.variable_identifier);if(tz.context.isVaryingStruct(null==n?void 0:n.typeInfo))return"";var i=tx.unwrapNodeByType(r,td.function_call);if(tz.context.isVaryingStruct(null==i?void 0:i.type))return""+r.codeGen(this)+";"}}return this.defaultCodeGen(t)},t.visitFunctionIdentifier=function(e){return this.defaultCodeGen(e.children)},t.visitStructSpecifier=function(e){var t=this,r=tz.context,i=r.varyingStructs,a=r.attributeStructs,s=r.mrtStructs,c=-1!==i.indexOf(e),l=-1!==a.indexOf(e),u=-1!==s.indexOf(e);if(c&&l&&this._reportError(e.location,"cannot use same struct as Varying and Attribute"),c&&u&&this._reportError(e.location,"cannot use same struct as Varying and MRT"),l&&u&&this._reportError(e.location,"cannot use same struct as Attribute and MRT"),!c&&!l&&!u)return this.defaultCodeGen(e.children);var p=[];p.push.apply(p,[].concat(e.macroExpressions.map(function(e){return{text:o(e,t_)?e.lexeme:e.codeGen(t),index:e.location.start.index}})));for(var h,_=n(e.propList);!(h=_()).done;){var f,d,m,S=h.value,g=S.ident.lexeme;c&&(null==(f=r._referencedVaryingList[g])?void 0:f.indexOf(S))>=0?p.push({text:""+this.getVaryingProp(S)+"\n",index:S.ident.location.start.index}):l&&(null==(d=r._referencedAttributeList[g])?void 0:d.indexOf(S))>=0?p.push({text:""+this.getAttributeProp(S)+"\n",index:S.ident.location.start.index}):u&&(null==(m=r._referencedMRTList[g])?void 0:m.indexOf(S))>=0&&p.push({text:""+this.getMRTProp(S)+"\n",index:S.ident.location.start.index})}return p.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("")},t.visitFunctionDefinition=function(e){return e.protoType.ident.lexeme==tz.context.stageEntry?"void main() "+e.statements.codeGen(this):this.defaultCodeGen(e.children)},t._reportError=function(e,t){this.errors.push(new tu(tp.CompilationError,t,e,rc._processingPassText))},e}();tj._tmpArrayPool=new t.ReturnableObjectPool(tH,10);var tq=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t._globalCodeArray=[],t}a(t,e);var r=t.prototype;return r.reset=function(){this._globalCodeArray.length=0,t._serializedGlobalKey.clear()},r.getOtherGlobal=function(e,t){for(var r,i=n(e.globalPrecisions);!(r=i()).done;){var a=r.value;t.push({text:a.codeGen(this),index:a.location.start.index})}},r.visitShaderProgram=function(e,t,r){this.errors.length=0,tz.reset(),this.reset();var n=e.shaderData;tz.context._passSymbolTable=n.symbolTable;var i=n.getOuterGlobalMacroDeclarations();return{vertex:this._vertexMain(t,n,i),fragment:this._fragmentMain(r,n,i)}},r._vertexMain=function(e,r,i){var a=this,o=tz.context;o.stage=tC.VERTEX,o.stageEntry=e;var s=t._lookupSymbol,c=r.symbolTable;s.set(e,tM.FN);var l=c.getSymbols(s,!0,[]);if(!l.length)throw"no entry function found: "+e;var u=o.attributeStructs,p=o.attributeList,h=o.varyingStructs,_=o.varyingList;l.forEach(function(e){var t=e.astNode,r=t.protoType.returnType;if("string"==typeof r.type){s.set(r.type,tM.STRUCT);var i=c.getSymbols(s,!0,[]);if(i.length)for(var o=0;o<i.length;o++){var l=i[o].astNode;h.push(l);for(var f,d=n(l.propList);!(f=d()).done;){var m=f.value;_.push(m)}}else a._reportError(r.location,'invalid varying struct: "'+r.type+'".')}else r.type!==ta.VOID&&a._reportError(r.location,"vertex main entry can only return struct or void.");var S=t.protoType.parameterList,g=null==S?void 0:S[0];if(g){var v=g.typeInfo.type;if("string"==typeof v){s.set(v,tM.STRUCT);var y=c.getSymbols(s,!0,[]);if(y.length)for(var x=0;x<y.length;x++){var E=y[x].astNode;u.push(E);for(var C,A=n(E.propList);!(C=A()).done;){var T=C.value;p.push(T)}}else a._reportError(g.astNode.location,'invalid attribute struct: "'+v+'".')}}});var f=this._globalCodeArray;tz.context.referenceGlobal(e,tM.FN),this._getGlobalSymbol(f),this._getCustomStruct(o.attributeStructs,f),this._getCustomStruct(o.varyingStructs,f),this._getGlobalMacroDeclarations(i,f),this.getOtherGlobal(r,f);var d=f.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n");return tz.context.reset(!1),this.reset(),d},r._fragmentMain=function(e,r,i){var a=this,o=tz.context;o.stage=tC.FRAGMENT,o.stageEntry=e;var s=t._lookupSymbol,c=r.symbolTable;s.set(e,tM.FN);var l=c.getSymbols(s,!0,[]);if(!(null==l?void 0:l.length))throw"no entry function found: "+e;l.forEach(function(e){var t=e.astNode,r=t.returnStatement;r&&(r.isFragReturnStatement=!0);var i=t.protoType.returnType,l=i.type,u=i.location;if("string"==typeof l){s.set(l,tM.STRUCT);var p=c.getSymbols(s,!0,[]);if(p.length)for(var h=0;h<p.length;h++){var _=p[h].astNode;o.mrtStructs.push(_);for(var f,d=n(_.propList);!(f=d()).done;){var m=f.value;o.mrtList.push(m)}}else a._reportError(u,"invalid mrt struct: "+l)}else l!==ta.VOID&&l!==ta.VEC4&&a._reportError(u,"fragment main entry can only return struct or vec4.")});var u=this._globalCodeArray;tz.context.referenceGlobal(e,tM.FN),this._getGlobalSymbol(u),this._getCustomStruct(o.varyingStructs,u),this._getCustomStruct(o.mrtStructs,u),this._getGlobalMacroDeclarations(i,u),this.getOtherGlobal(r,u);var p=u.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n");return o.reset(),this.reset(),p},r._getGlobalSymbol=function(e){var r=tz.context._referencedGlobals,n=Object.keys(r).length;if(0!==n){for(var i in r)if(!t._serializedGlobalKey.has(i)){t._serializedGlobalKey.add(i);for(var a=r[i],o=0;o<a.length;o++){var s=a[o],c=s.astNode.codeGen(this)+(s.type===tM.VAR?";":"");s.isInMacroBranch||e.push({text:c,index:s.astNode.location.start.index})}}Object.keys(r).length!==n&&this._getGlobalSymbol(e)}},r._getCustomStruct=function(e,t){for(var r,i=n(e);!(r=i()).done;){var a=r.value,o=a.codeGen(this);a.isInMacroBranch||t.push({text:o,index:a.location.start.index})}},r._getGlobalMacroDeclarations=function(e,t){var r=this,i=tz.context,a=i._referencedGlobals,s=i._referencedGlobalMacroASTs;s.length=0;for(var c,l=n(Object.values(a));!(c=l()).done;)for(var u,p=c.value,h=n(p);!(u=h()).done;){var _=u.value;_.isInMacroBranch&&s.push(_.astNode)}for(var f,d=n(e);!(f=d()).done;){var m=f.value,S=void 0,g=m.children[0];if(o(g,tt.GlobalMacroIfStatement)){var v=[];v.push.apply(v,[].concat(m.macroExpressions.map(function(e){return{text:o(e,t_)?e.lexeme:e.codeGen(r),index:e.location.start.index}}))),this._visitGlobalMacroIfStatement(g,v),S=v.sort(function(e,t){return e.index-t.index}).map(function(e){return e.text}).join("\n")}else S=m.codeGen(this);t.push({text:S,index:m.location.start.index})}},r._visitGlobalMacroIfStatement=function(e,t){for(var r=e.children,n=0;n<r.length;n++){var i=r[n];if(o(i,tt.PrecisionSpecifier))t.push({text:i.codeGen(this),index:i.location.start.index});else if(o(i,tt.FunctionDefinition))-1!==tz.context._referencedGlobalMacroASTs.indexOf(i)&&t.push({text:i.getCache(),index:i.location.start.index});else if(o(i,tt.StructSpecifier)){var a,s,c,l,u=tz.context,p=u.stage;(-1!==tz.context._referencedGlobalMacroASTs.indexOf(i)||(p===tC.VERTEX?u.isAttributeStruct(null==(a=i.ident)?void 0:a.lexeme)||u.isVaryingStruct(null==(s=i.ident)?void 0:s.lexeme):u.isVaryingStruct(null==(c=i.ident)?void 0:c.lexeme)||u.isMRTStruct(null==(l=i.ident)?void 0:l.lexeme)))&&t.push({text:i.getCache(),index:i.location.start.index})}else if(o(i,tt.VariableDeclarationList))for(var h=i.variableDeclarations,_=0;_<h.length;_++){var f=h[_];-1!==tz.context._referencedGlobalMacroASTs.indexOf(f)&&t.push({text:f.getCache()+";",index:f.location.start.index})}o(i,tW)&&this._visitGlobalMacroIfStatement(i,t)}},t}(tj);tq._lookupSymbol=new tN("",null),tq._serializedGlobalKey=new Set;var tX=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var r=t.prototype;return r.getAttributeProp=function(e){return"attribute "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getVaryingProp=function(e){return"varying "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getMRTProp=function(){return null},r.visitPostfixExpression=function(t){var r=t.children,n=r[0],i=tz.context;if(o(n,tt.PostfixExpression)&&i.isMRTStruct(n.type)){var a=r[2],s=i.mrtList.find(function(e){return e.ident.lexeme===a.lexeme});return s?"gl_FragData["+s.mrtIndex+"]":(this._reportError(a.location,"not found mrt property: "+a.lexeme),"")}return e.prototype.visitPostfixExpression.call(this,t)},r.visitJumpStatement=function(t){return t.isFragReturnStatement?tz.context.mrtStructs.length?"":"gl_FragColor = "+t.children[1].codeGen(this):e.prototype.visitJumpStatement.call(this,t)},t.getVisitor=function(){return this._singleton||(this._singleton=new t),this._singleton},t}(tq),tQ="GS_glFragColor",tY=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t._otherCodeArray=[],t._fragColorVariableRegistered=!1,t}a(t,e);var r=t.prototype;return r.reset=function(){e.prototype.reset.call(this),this._otherCodeArray.length=0,this._fragColorVariableRegistered=!1},r.getOtherGlobal=function(t,r){e.prototype.getOtherGlobal.call(this,t,r);for(var n=0,i=this._otherCodeArray.length;n<i;n++)r.push(this._otherCodeArray[n])},r.getAttributeProp=function(e){return"in "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getVaryingProp=function(e){return(tz.context.stage===tC.FRAGMENT?"in":"out")+" "+e.typeInfo.typeLexeme+" "+e.ident.lexeme+";"},r.getMRTProp=function(e){return"layout(location = "+e.mrtIndex+") out vec4 "+e.ident.lexeme+";"},r.visitFunctionIdentifier=function(e){var t=e.children;if(1!==t[0].children.length)return this.defaultCodeGen(t);var r=e.lexeme;switch(e.ident){case"texture2D":case"textureCube":r="texture";break;case"texture2DProj":r="textureProj";break;case"texture2DLodEXT":case"textureCubeLodEXT":r="textureLod";break;case"texture2DGradEXT":case"textureCubeGradEXT":r="textureGrad";break;case"texture2DProjLodEXT":r="textureProjLod";break;case"texture2DProjGradEXT":r="textureProjGrad";break;case"gl_FragDepthEXT":r="gl_FragDepth"}return r},r.visitVariableIdentifier=function(t){var r=tz.context;if(r.stage===tC.FRAGMENT&&"gl_FragColor"===t.getLexeme(this)){if(r.mrtStructs.length){this._reportError(t.location,"gl_FragColor cannot be used with MRT (Multiple Render Targets).");return}return this._registerFragColorVariable(),tQ}return e.prototype.visitVariableIdentifier.call(this,t)},r.visitJumpStatement=function(t){return t.isFragReturnStatement?tz.context.mrtStructs.length?"":(this._registerFragColorVariable(),tQ+" = "+t.children[1].codeGen(this)+";"):e.prototype.visitJumpStatement.call(this,t)},r._registerFragColorVariable=function(){this._fragColorVariableRegistered||(this._otherCodeArray.push({text:"out vec4 "+tQ+";",index:0}),this._fragColorVariableRegistered=!0)},t.getVisitor=function(){return this._singleton||(this._singleton=new t),this._singleton},t}(tq),tK=/*#__PURE__*/function(){function e(e){this._currentIndex=0,this._column=0,this._line=0,this._source=e}var r=e.prototype;return r.setSource=function(e){this._source=e,this._currentIndex=0,this._line=this._column=0},r.getShaderPosition=function(e){return void 0===e&&(e=0),rc.createPosition(this._currentIndex-e,this._line,this._column-e)},r.isEnd=function(){return this._currentIndex>=this._source.length},r.getCurChar=function(){return this._source[this._currentIndex]},r.getCurCharCode=function(){return this._source.charCodeAt(this._currentIndex)},r.advance=function(e){for(var t=this._source,r=this._currentIndex,n=0;n<e;n++)"\n"===t[r+n]?(this._line+=1,this._column=0):this._column+=1;this._currentIndex+=e},r.skipSpace=function(t){for(;e.isWhiteSpaceChar(this.getCurCharCode(),t);)this.advance(1)},r.skipCommentsAndSpace=function(){for(var t=this._source,r=t.length,n=this._currentIndex;n<r;){for(;n<r&&e.isWhiteSpaceChar(t.charCodeAt(n),!0);)n++;if(n+1>=r||47!==t.charCodeAt(n))break;var i=t.charCodeAt(n+1);if(47===i)for(n+=2;n<r;){var a=t.charCodeAt(n);if(10===a||13===a)break;n++}else if(42===i){for(n+=2;n+1<r&&!(42===t.charCodeAt(n)&&47===t.charCodeAt(n+1));)n++;n+=2}else break}this.advance(n-this._currentIndex)},r.peek=function(e){var t=this._currentIndex;return this._source.substring(t,t+e)},r.scanLexeme=function(e){this.skipCommentsAndSpace();var t=e.length,r=this.peek(t);r!==e&&this.throwError(this.getShaderPosition(0),'Expect lexeme "'+e+'", but got "'+r+'"'),this.advance(t)},r.scanTwoExpectedLexemes=function(e,t){return(this.skipCommentsAndSpace(),this.peek(e.length)===e)?(this.advance(e.length),e):this.peek(t.length)===t?(this.advance(t.length),t):null},r.throwError=function(e){for(var r=arguments.length,n=Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var a=th.createGSError(n.join(" "),tp.ScannerError,this._source,e);throw t.Logger.error(a.toString()),a},r.scanPairedChar=function(e,t,r,n){n||this.scanLexeme(e);var i=this._currentIndex,a=this._source,o=a.length,s=this._currentIndex;if(r)for(var c=1;s<o;){var l=a[s];if(l===t&&0==--c)break;l===e&&c++,s++}else for(;s<o&&a[s]!==t;)s++;return this.advance(s+1-this._currentIndex),a.substring(i,s)},e.isDigit=function(e){return e>=48&&e<=57},e.isAlpha=function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122},e.isAlnum=function(t){return e.isAlpha(t)||e.isDigit(t)},e.isPreprocessorStartChar=function(e){return 35===e},e.isWhiteSpaceChar=function(e,t){return 32===e||9===e||t&&(10===e||13===e)},c(e,[{key:"currentIndex",get:function(){return this._currentIndex}},{key:"source",get:function(){return this._source}},{key:"line",get:function(){return this._line}},{key:"column",get:function(){return this._column}}]),e}(),tJ=/*#__PURE__*/function(e){function t(t,r){var n;return(n=e.call(this,t)||this).macroDefineList=r,n._needScanMacroConditionExpression=!1,n}a(t,e);var r=t.prototype;return r.tokenize=function(){return function(e,t){var r,n,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(6===s[0]&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}(this,function(e){switch(e.label){case 0:if(this.isEnd())return[3,2];return[4,this.scanToken()];case 1:return e.sent(),[3,0];case 2:return[2,tf]}})},r.scanToken=function(){if(this.skipCommentsAndSpace(),this.isEnd())return tf;if(this._needScanMacroConditionExpression)return this._needScanMacroConditionExpression=!1,this._scanMacroConditionExpression();var e,t=this.getCurCharCode();if(tK.isPreprocessorStartChar(t))return this._scanDirectives();if(tK.isAlpha(t))return this._scanWord();if(tK.isDigit(t))return this._scanNum();var r=this.getShaderPosition(),n=t_.pool.get();switch(this.getCurChar()){case"<":if(this.advance(1),"<"===(e=this.getCurChar())){if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.LEFT_ASSIGN,"<<=",r);break}n.set(ti.LEFT_OP,"<<",r);break}if("="===e){this.advance(1),n.set(ti.LE_OP,"<=",r);break}n.set(ti.LEFT_ANGLE,"<",r);break;case">":if(this.advance(1),">"===(e=this.getCurChar())){if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.RIGHT_ASSIGN,">>=",r);break}n.set(ti.RIGHT_OP,">>",r);break}if("="===e){this.advance(1),n.set(ti.GE_OP,">=",r);break}n.set(ti.RIGHT_ANGLE,">",r);break;case"+":if(this.advance(1),"+"===(e=this.getCurChar())){this.advance(1),n.set(ti.INC_OP,"++",r);break}if("="===e){this.advance(1),n.set(ti.ADD_ASSIGN,"+=",r);break}n.set(ti.PLUS,"+",r);break;case"-":if(this.advance(1),"-"===(e=this.getCurChar())){this.advance(1),n.set(ti.DEC_OP,"--",r);break}if("="===e){this.advance(1),n.set(ti.SUB_ASSIGN,"-=",r);break}n.set(ti.DASH,"-",r);break;case"=":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.EQ_OP,"==",r);break}n.set(ti.EQUAL,"=",r);break;case"!":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.NE_OP,"!=",r);break}n.set(ti.BANG,"!",r);break;case"&":if(this.advance(1),"&"===(e=this.getCurChar())){this.advance(1),n.set(ti.AND_OP,"&&",r);break}if("="===e){this.advance(1),n.set(ti.ADD_ASSIGN,"&=",r);break}n.set(ti.AMPERSAND,"&",r);break;case"|":if(this.advance(1),"|"===(e=this.getCurChar())){this.advance(1),n.set(ti.OR_OP,"||",r);break}if("="===e){this.advance(1),n.set(ti.OR_ASSIGN,"|=",r);break}n.set(ti.VERTICAL_BAR,"|",r);break;case"^":if(this.advance(1),"^"===(e=this.getCurChar())){this.advance(1),n.set(ti.XOR_OP,"^^",r);break}if("="===e){this.advance(1),n.set(ti.XOR_ASSIGN,"^=",r);break}n.set(ti.CARET,"^",r);break;case"*":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.MUL_ASSIGN,"*=",r);break}n.set(ti.STAR,"*",r);break;case"/":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.DIV_ASSIGN,"/=",r);break}n.set(ti.SLASH,"/",r);break;case"%":if(this.advance(1),"="===this.getCurChar()){this.advance(1),n.set(ti.MOD_ASSIGN,"%=",r);break}n.set(ti.PERCENT,"%",r);break;case"(":this.advance(1),n.set(ti.LEFT_PAREN,"(",r);break;case")":this.advance(1),n.set(ti.RIGHT_PAREN,")",r);break;case"{":this.advance(1),n.set(ti.LEFT_BRACE,"{",r);break;case"}":this.advance(1),n.set(ti.RIGHT_BRACE,"}",r);break;case"[":this.advance(1),n.set(ti.LEFT_BRACKET,"[",r);break;case"]":this.advance(1),n.set(ti.RIGHT_BRACKET,"]",r);break;case".":if(this.advance(1),tK.isDigit(this.getCurCharCode()))return this._scanNumAfterDot();n.set(ti.DOT,".",r);break;case",":this.advance(1),n.set(ti.COMMA,",",r);break;case":":this.advance(1),n.set(ti.COLON,":",r);break;case";":this.advance(1),n.set(ti.SEMICOLON,";",r);break;case"~":this.advance(1),n.set(ti.TILDE,"~",r);break;case"?":this.advance(1),n.set(ti.QUESTION,"?",r);break;case'"':return this.advance(1),this._scanStringConst();default:this.throwError(this.getShaderPosition(0),"Unexpected character "+this.getCurChar())}return n},r._scanStringConst=function(){for(var e=this.getShaderPosition(),t=[];'"'!==this.getCurChar();)t.push(this.getCurChar()),this.advance(1);this.advance(1);var r=rc.createRange(e,this.getShaderPosition()),n=t_.pool.get();return n.set(ti.STRING_CONST,t.join(""),r),n},r._scanNumAfterDot=function(){for(var e=["."];tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);this._scanFloatSuffix(e);var t=t_.pool.get();return t.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),t},r._scanUtilBreakLine=function(e){for(;"\n"!==this.getCurChar()&&!this.isEnd();)e.push(this.getCurChar()),this.advance(1)},r._scanDirectives=function(){var e=[this.getCurChar()],r=this.getShaderPosition();for(this.advance(1);tK.isAlpha(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var n=t_.pool.get(),i=e.join("");if("#define"===i){this._scanUtilBreakLine(e);var a=e.join("")+"\n";n.set(ta.MACRO_DEFINE_EXPRESSION,a,r)}else{var o=t._lexemeTable[i];n.set(null!=o?o:ti.ID,i,r),("#if"===i||"#elif"===i)&&(this._needScanMacroConditionExpression=!0)}return n},r._scanMacroConditionExpression=function(){var e=[],t=this.getShaderPosition();this._scanUtilBreakLine(e);var r=e.join(""),n=t_.pool.get();return n.set(ta.MACRO_CONDITIONAL_EXPRESSION,r,t),n},r._scanWord=function(){var e=[this.getCurChar()],r=this.getShaderPosition();for(this.advance(1);tK.isAlnum(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var n=t_.pool.get(),i=e.join(""),a=t._lexemeTable[i];return this.macroDefineList[i]?n.set(ta.MACRO_CALL,i,r):n.set(null!=a?a:ti.ID,i,r),n},r._scanNum=function(){for(var e=[];tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);var t=this.getCurChar();if("."===t){for(e.push(t),this.advance(1);tK.isDigit(this.getCurCharCode());)e.push(this.getCurChar()),this.advance(1);this._scanFloatSuffix(e);var r=t_.pool.get();return r.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),r}if("e"===t||"E"===t){this._scanFloatSuffix(e);var n=t_.pool.get();return n.set(ti.FLOAT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),n}this._scanIntegerSuffix(e);var i=t_.pool.get();return i.set(ti.INT_CONSTANT,e.join(""),this.getShaderPosition(e.length)),i},r._scanFloatSuffix=function(e){var t=this.getCurChar();if("e"===t||"E"===t){e.push(t),this.advance(1),("+"===(t=this.getCurChar())||"-"===t)&&(e.push(t),this.advance(1),t=this.getCurChar()),tK.isDigit(this.getCurCharCode())||this.throwError(this.getShaderPosition(0),"lexing error, invalid exponent suffix.");do e.push(t),this.advance(1),t=this.getCurChar();while(tK.isDigit(this.getCurCharCode()))}("f"===t||"F"===t)&&(e.push(t),this.advance(1))},r._scanIntegerSuffix=function(e){var t=this.getCurChar();("u"===t||"U"===t)&&(e.push(t),this.advance(1))},t}(tK);function tZ(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}tJ._lexemeTable={const:ta.CONST,bool:ta.BOOL,float:ta.FLOAT,double:ta.DOUBLE,int:ta.INT,uint:ta.UINT,break:ta.BREAK,continue:ta.CONTINUE,do:ta.DO,else:ta.ELSE,for:ta.FOR,if:ta.IF,while:ta.WHILE,discard:ta.DISCARD,return:ta.RETURN,bvec2:ta.BVEC2,bvec3:ta.BVEC3,bvec4:ta.BVEC4,ivec2:ta.IVEC2,ivec3:ta.IVEC3,ivec4:ta.IVEC4,uvec2:ta.UVEC2,uvec3:ta.UVEC3,uvec4:ta.UVEC4,vec2:ta.VEC2,vec3:ta.VEC3,vec4:ta.VEC4,mat2:ta.MAT2,mat3:ta.MAT3,mat4:ta.MAT4,in:ta.IN,out:ta.OUT,inout:ta.INOUT,sampler2D:ta.SAMPLER2D,samplerCube:ta.SAMPLER_CUBE,sampler3D:ta.SAMPLER3D,sampler2DShadow:ta.SAMPLER2D_SHADOW,samplerCubeShadow:ta.SAMPLER_CUBE_SHADOW,sampler2DArray:ta.SAMPLER2D_ARRAY,sampler2DArrayShadow:ta.SAMPLER2D_ARRAY_SHADOW,isampler2D:ta.I_SAMPLER2D,isampler3D:ta.I_SAMPLER3D,isamplerCube:ta.I_SAMPLER_CUBE,isampler2DArray:ta.I_SAMPLER2D_ARRAY,usampler2D:ta.U_SAMPLER2D,usampler3D:ta.U_SAMPLER3D,usamplerCube:ta.U_SAMPLER_CUBE,usampler2DArray:ta.U_SAMPLER2D_ARRAY,struct:ta.STRUCT,void:ta.VOID,true:ta.True,false:ta.False,precision:ta.PRECISION,precise:ta.PRECISE,highp:ta.HIGHP,mediump:ta.MEDIUMP,lowp:ta.LOWP,invariant:ta.INVARIANT,flat:ta.FLAT,smooth:ta.SMOOTH,noperspective:ta.NOPERSPECTIVE,centroid:ta.CENTROID,layout:ta.LAYOUT,location:ta.LOCATION,"#if":ta.MACRO_IF,"#ifdef":ta.MACRO_IFDEF,"#ifndef":ta.MACRO_IFNDEF,"#else":ta.MACRO_ELSE,"#elif":ta.MACRO_ELIF,"#endif":ta.MACRO_ENDIF,"#undef":ta.MACRO_UNDEF};var t$=((e8={})[e8.id=0]="id",e8[e8.line_remain=1]="line_remain",e8[e8.chunk=2]="chunk",e8[e8.int_constant=3]="int_constant",e8[e8.string_const=4]="string_const",e8[e8.right_op=5]="right_op",e8[e8.left_op=6]="left_op",e8[e8.left_paren=7]="left_paren",e8[e8.right_paren=8]="right_paren",e8[e8.ge=9]="ge",e8[e8.le=10]="le",e8[e8.eq=11]="eq",e8[e8.neq=12]="neq",e8[e8.and=13]="and",e8[e8.or=14]="or",e8[e8.left_angle=15]="left_angle",e8[e8.right_angle=16]="right_angle",e8[e8.star=17]="star",e8[e8.plus=18]="plus",e8[e8.dash=19]="dash",e8[e8.bang=20]="bang",e8[e8.slash=21]="slash",e8[e8.percent=22]="percent",e8[e8.EOF=100]="EOF",e8),t0=((te={})[te.define=101]="define",te[te.undef=102]="undef",te[te.if=103]="if",te[te.ifdef=104]="ifdef",te[te.ifndef=105]="ifndef",te[te.else=106]="else",te[te.elif=107]="elif",te[te.endif=108]="endif",te[te.defined=109]="defined",te),t2=/*#__PURE__*/function(){function e(e,t,r,n){this.macro=e,this.body=t,this.location=r,this.args=n,(null==n?void 0:n.length)>0&&(this._argsLexemes=this.args.map(function(e){return e.lexeme}),this._replaceRegex=RegExp("\\b("+this._argsLexemes.join("|")+")\\b","g"))}return e.prototype.expandFunctionBody=function(e){var t,r=this;if(e.length!==(null==(t=this.args)?void 0:t.length))throw th.createGSError("mismatched function macro",tp.PreprocessorError,"",this.location);return 0===e.length?this.body.lexeme:this.body.lexeme.replace(this._replaceRegex,function(t){return e[r._argsLexemes.indexOf(t)]})},c(e,[{key:"isFunction",get:function(){return!!this.args}}]),e}(),t1=function(e,t,r){this.sourceFile=null!=e?e:"__main__",this.rangeInFile=t,this.sourceMap=r},t3=/*#__PURE__*/function(){function e(e,t,r){this.sourceLoc={block:e,rangeInBlock:t},this.generatedLoc=r}return e.prototype.getSourceIndex=function(e){var t,r,n,i,a=this.sourceLoc,o=a.block,s=a.rangeInBlock;if(o.sourceMap){if("__main__"!==o.sourceFile)return o.sourceMap.map(e-this.generatedLoc.start);if(s)return{sourceFile:o.sourceFile,index:(null!=(n=null==(r=o.rangeInFile)?void 0:r.start.index)?n:0)+s.start.index}}return{index:e-this.generatedLoc.start+s.start.index+(null!=(i=null==(t=o.rangeInFile)?void 0:t.start.index)?i:0),sourceFile:this.sourceLoc.block.sourceFile}},e}(),t4=/*#__PURE__*/function(){function e(){this.mapRanges=[]}var t=e.prototype;return t.addMapRange=function(e){this.mapRanges.push(e)},t.map=function(t){for(var r,i,a=n(this.mapRanges);!(i=a()).done;){var o=i.value,s=o.generatedLoc;if(e.rangeContains(s,t))return o.getSourceIndex(t);if(o.generatedLoc.start<t){r=o;continue}break}return r?{index:t-r.generatedLoc.end+r.sourceLoc.rangeInBlock.end.index,sourceFile:r.sourceLoc.block.sourceFile}:{sourceFile:"__main__",index:t}},e.rangeContains=function(e,t){return e.start<=t&&e.end>t},e}(),t9=/*#__PURE__*/function(e){function t(t,r,n){var i;return void 0===r&&(r="__main__"),(i=e.call(this,t)||this).macroLvl=0,i.sourceMap=new t4,i.file=r,i.blockRange=n,i}a(t,e);var r=t.prototype;return r.scanWordsUntilTerminator=function(e){for(var t=[];;)if(this.skipSpace(!0),tK.isAlpha(this.getCurCharCode()))t.push(this.scanWord());else{if(this.getCurChar()===e)return this.advance(1),t;this.advance(1)}},r.scanWord=function(){for(;!tK.isAlpha(this.getCurCharCode())&&!this.isEnd();)this.advance(1);if(this.isEnd())return tf;for(var e,r=this._currentIndex;tK.isAlnum(this.getCurCharCode())&&!this.isEnd();)this.advance(1);var n=this._currentIndex,i=this._source.slice(r,n);n===r&&this.throwError(this.getShaderPosition(0),"no word found.");var a=t_.pool.get(),o=null!=(e=t._lexemeTable[i])?e:t$.id;return a.set(o,i,this.getShaderPosition(i.length)),a},r.scanToken=function(){if(this.skipCommentsAndSpace(),!this.isEnd()){for(var e,r=this._source,n=this._currentIndex,i=!1,a=r.length;this._currentIndex<a;)if(t._isPpCharacters(r.charCodeAt(this._currentIndex)))this.advance(1),i=!0;else{if(i)break;this.advance(1),this.skipCommentsAndSpace(),n=this._currentIndex}var o=r.slice(n,this._currentIndex),s=t_.pool.get(),c=null!=(e=t._lexemeTable[o])?e:t$.id;return s.set(c,o,this.getShaderPosition(this._currentIndex-n)),c===t0.if||c===t0.ifdef||c===t0.ifndef?this.macroLvl++:c===t0.endif&&this.macroLvl--,s}},r.scanQuotedString=function(){this.skipSpace(!0);var e=this._source,t=e.length,r=this.getShaderPosition(0),n=this._currentIndex;34!==e.charCodeAt(n)&&this.throwError(r,"Unexpected char, expected '\"'");for(var i=++n;n<t&&34!==e.charCodeAt(n);)n++;n>=t&&this.throwError(this.getShaderPosition(0),"Unexpected char, expected '\"'");var a=e.slice(i,n);this.advance(n+1-this._currentIndex);var o=t_.pool.get();return o.set(t$.string_const,a,r),o},r.scanToChar=function(e){for(var t=this._source;t[this._currentIndex]!==e&&!this.isEnd();)this.advance(1)},r.scanMacroBranchBody=function(){for(var e=this.getShaderPosition(0),t=this.macroLvl,r=this.scanToken();;){var n=r.type;if(n===t0.endif&&t-1===this.macroLvl||(n===t0.elif||n===t0.else)&&t===this.macroLvl)break;r=this.scanToken()}var i=this._source.slice(e.index,this._currentIndex-r.lexeme.length-1),a=t_.pool.get();return a.set(t$.chunk,i,e),{body:a,nextDirective:r}},r.scanPairedBlock=function(e,t){this.scanToChar(e);var r=0,n=this._source;do{var i=n[this._currentIndex];i===e?r++:i===t&&r--,this.advance(1)}while(r>0)},r.scanRemainMacro=function(){for(var e=this.macroLvl,t=this.scanToken();!this.isEnd()&&(t.type!==t0.endif||e-1!==this.macroLvl);)t=this.scanToken();return this.getShaderPosition(0)},r.peekNonSpace=function(){for(var e=this._currentIndex;/\s/.test(this._source[e]);)e+=1;return this._source[e]},r.scanInteger=function(){for(var e=this._currentIndex;tK.isDigit(this.getCurCharCode());)this.advance(1);this._currentIndex===e&&this.throwError(this.getShaderPosition(0),"no integer found");var t=this._source.slice(e,this._currentIndex),r=t_.pool.get();return r.set(t$.int_constant,t,this.getShaderPosition(0)),r},r.scanMacroBody=function(){this.skipSpace(!1);for(var e="",t=this._source,r=t.length,n=this.getShaderPosition(0);this._currentIndex<r;){var i=t.charCodeAt(this._currentIndex);if(10===i)break;if(47===i){var a=this._currentIndex+1;if(a<r){var o=t.charCodeAt(a);if(47===o)break;if(42===o){for(this.advance(2);this._currentIndex+1<r;){var s=this._currentIndex;if(42===t.charCodeAt(s)&&47===t.charCodeAt(s+1)){this.advance(2);break}this.advance(1)}e+=" ";continue}}}e+=t[this._currentIndex],this.advance(1)}if(""===e)return null;var c=t_.pool.get();return c.set(t$.line_remain,e,rc.createRange(n,this.getShaderPosition(0))),c},t._isPpCharacters=function(e){return 35===e||tK.isAlnum(e)},t}(tK);t9._lexemeTable={"#define":t0.define,"#undef":t0.undef,"#if":t0.if,"#ifdef":t0.ifdef,"#ifndef":t0.ifndef,"#else":t0.else,"#elif":t0.elif,"#endif":t0.endif,defined:t0.defined};var t5=/*#__PURE__*/function(){function e(){}return e.expand=function(e,t,r){for(var i,a=[],o=0,s=0,c=n(e);!(i=c()).done;){var l=i.value,u=t.slice(o,l.rangeInBlock.start.index);a.push(u,l.replace);var p=s+u.length+l.replace.length,h=new t3(l.block,l.rangeInBlock,{start:s+u.length,end:p});null==r||r.addMapRange(h),o=l.rangeInBlock.end.index,s=p}return a.push(t.slice(o)),a.join("").replace(/\n\s*\n+/g,"\n")},e}(),t6=/*#__PURE__*/function(){function e(){}return e.parse=function(t,r){e._reset();for(var i,a=n(r);!(i=a()).done;){var o=i.value;e._addPredefinedMacro(o.name,o.value)}return this.lexer=new t9(t),e._parseDirectives(this.lexer)},e._reset=function(){this._expandSegmentsStack.length=0,this._expandSegmentsStack.push([]),this._definedMacros.clear(),this._addPredefinedMacro("GL_ES"),this._errors.length=0},e._addPredefinedMacro=function(e,t){var r,n=t_.pool.get();n.set(t$.id,e),void 0!=t&&(r=t_.pool.get()).set(t$.id,t),this._definedMacros.set(e,new t2(n,r))},e._parseDirectives=function(e){for(var t;t=e.scanToken();)switch(t.type){case t$.id:this._parseMacro(e,t);break;case t0.define:this._parseDefine(e);break;case t0.undef:this._parseUndef(e);break;case t0.if:this._parseIfDirective(e,t0.if);break;case t0.ifndef:this._parseIfDirective(e,t0.ifndef);break;case t0.ifdef:this._parseIfDirective(e,t0.ifdef)}return this._errors.length>0?null:t5.expand(this._getExpandSegments(),e.source,e.sourceMap)},e._getExpandSegments=function(){return this._expandSegmentsStack[this._expandSegmentsStack.length-1]},e._reportError=function(e,t,r,n){var i=th.createGSError(t,tp.PreprocessorError,r,e,n);this._errors.push(i)},e._parseIfDirective=function(e,t){var r,n=t===t0.if?3:t===t0.ifdef?6:7,i=e.currentIndex-n,a=!1;if(t===t0.if)r=this._parseConstantExpression(e);else{var o=e.scanWord().lexeme;if(o.startsWith("GL_"))a=!0;else{var s=this._definedMacros.get(o);r=t===t0.ifdef?!!s:!s}}e.skipSpace(!0);var c=e.scanMacroBranchBody(),l=c.body,u=c.nextDirective;if(!a){if(r){var p=u.type===t0.endif?e.getShaderPosition(0):e.scanRemainMacro(),h=this._expandMacroChunk(l.lexeme,l.location,e);this._addContentReplace(e.file,rc.createPosition(i),p,h.content,e.blockRange,h.sourceMap)}else this._addEmptyReplace(e,i),this._processConditionalDirective(u.type,e)}},e._processConditionalDirective=function(e,t){if(e!==t0.endif){var r=t.currentIndex;if(e===t0.else){var n=t.scanMacroBranchBody().body,i=this._expandMacroChunk(n.lexeme,n.location,t);this._addContentReplace(t.file,rc.createPosition(r),t.getShaderPosition(0),i.content,t.blockRange,i.sourceMap)}else if(e===t0.elif){var a=this._parseConstantExpression(t),o=t.scanMacroBranchBody(),s=o.body,c=o.nextDirective;if(a){var l=c.type===t0.endif?t.currentIndex:t.scanRemainMacro().index,u=this._expandMacroChunk(s.lexeme,s.location,t);this._addContentReplace(t.file,rc.createPosition(r),rc.createPosition(l),u.content,t.blockRange,u.sourceMap)}else this._addContentReplace(t.file,rc.createPosition(r),rc.createPosition(t.currentIndex),"",t.blockRange),this._processConditionalDirective(c.type,t)}}},e._parseConstantExpression=function(e){return e.skipSpace(!0),this._parseLogicalOrExpression(e)},e._parseLogicalOrExpression=function(e){var t=this._parseLogicalAndExpression(e),r=e.peek(2);if(r&&"||"===r){e.advance(2),e.skipSpace(!1);var n=this._parseLogicalOrExpression(e);return t||n}return t},e._parseLogicalAndExpression=function(e){var t=this._parseEqualityExpression(e),r=e.peek(2);if(r&&"&&"===r){e.advance(2),e.skipSpace(!1);var n=this._parseLogicalAndExpression(e);return t&&n}return t},e._parseEqualityExpression=function(e){var t=this._parseRelationalExpression(e),r=e.peek(2);if(r&&["==","!="].includes(r)){e.advance(2),e.skipSpace(!1);var n=this._parseEqualityExpression(e);switch(r){case"==":return t===n;case"!=":return t!==n}}return t},e._parseRelationalExpression=function(e){var t=this._parseShiftExpression(e),r=e.peek(2);if("="!==r[1]&&(r=r[0]),r&&[">","<",">=","<="].includes(r)){var n=e.getShaderPosition(0);e.advance(r.length),e.skipSpace(!1);var i=this._parseRelationalExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(n,"invalid operator in relation expression.",e.source,e.file);return}switch(r){case">":return t>i;case"<":return t<i;case">=":return t>=i;case"<=":return t<=i}}return t},e._parseShiftExpression=function(e){var t=this._parseAdditiveExpression(e),r=e.peek(2);if(r&&[">>","<<"].includes(r)){var n=e.getShaderPosition(0);e.advance(2),e.skipSpace(!1);var i=this._parseShiftExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(n,"invalid operator in shift expression.",e.source,e.file);return}switch(r){case">>":return t>>i;case"<<":return t<<i}}return t},e._parseAdditiveExpression=function(e){var t=this._parseMulticativeExpression(e);if([">","<"].includes(e.getCurChar())){var r=e.getShaderPosition(0);e.advance(1);var n=e.getCurChar();e.skipSpace(!1);var i=this._parseAdditiveExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t)return this._reportError(r,"invalid operator.",e.source,e.file),!1;switch(n){case"+":return t+i;case"-":return t-i}}return t},e._parseMulticativeExpression=function(e){var t=this._parseUnaryExpression(e);if(e.skipSpace(!1),["*","/","%"].includes(e.getCurChar())){var r=e.getShaderPosition(0),n=e.getCurChar();e.skipSpace(!1);var i=this._parseMulticativeExpression(e);if((void 0===t?"undefined":tZ(t))!==(void 0===i?"undefined":tZ(i))&&"number"!=typeof t){this._reportError(r,"invalid operator.",e.source,e.file);return}switch(n){case"*":return t*i;case"/":return t/i;case"%":return t%i}}return t},e._parseUnaryExpression=function(e){var t=e.getCurChar();if(["+","-","!"].includes(t)){var r=e.getShaderPosition(0);e.advance(1),e.skipSpace(!1);var n=this._parseParenthesisExpression(e);switch(("!"===t&&"boolean"!=typeof n||"!"!==t&&"number"!=typeof n)&&this._reportError(r,"invalid operator.",e.source,e.file),t){case"+":return n;case"-":return-n;case"!":return!n}}return this._parseParenthesisExpression(e)},e._parseParenthesisExpression=function(e){if("("===e.getCurChar()){e.advance(1),e.skipSpace(!1);var t=this._parseConstantExpression(e);return e.scanToChar(")"),e.advance(1),t}return this._parseConstant(e)},e._parseConstant=function(e){if(tK.isAlpha(e.getCurCharCode())){var t=e.scanWord();if(t.type===t0.defined){var r="("===e.peekNonSpace(),n=e.scanWord();return r&&(e.scanToChar(")"),e.advance(1)),!!this._definedMacros.get(n.lexeme)}var i=this._definedMacros.get(t.lexeme);if(!i)return!1;if(!i.body)return!0;i.isFunction&&this._reportError(t.location,"invalid function macro usage",e.source,e.file);var a=Number(i.body.lexeme);return Number.isInteger(a)||this._reportError(t.location,"invalid const macro: "+t.lexeme,e.source,e.file),a}if(tK.isDigit(e.getCurCharCode()))return Number(e.scanInteger().lexeme);this._reportError(e.getShaderPosition(0),"invalid token: "+e.getCurChar(),e.source,e.file)},e._parseMacroFunctionArgs=function(e,t,r){for(var n=e.length,i=t+r.length;i<n&&40!==e.charCodeAt(i);)i++;for(var a=[],o=1,s=i+1,c=s;c<n&&o>0;){var l=e.charCodeAt(c);if(40===l)o++;else if(41===l){if(0==--o){var u=e.substring(s,c).trim();u.length>0&&a.push(u);break}}else if(44===l&&1===o){var p=e.substring(s,c).trim();p.length>0&&a.push(p),s=c+1}c++}return{args:a,endIndex:c+1}},e._expandMacroBody=function(e){for(var t=this._expandVisitedMacros,r=++this._expandVersionId,n=e,i=!0;i;){i=!1;for(var a=n.length,o=0;o<a;){var s,c,l=n.charCodeAt(o);if(!tK.isAlpha(l)){o++;continue}for(var u=o;o<a&&tK.isAlnum(n.charCodeAt(o));)o++;var p=n.substring(u,o),h=this._definedMacros.get(p);if(h&&t[p]!==r){t[p]=r;var _=void 0,f=void 0;if(h.isFunction){var d=this._parseMacroFunctionArgs(n,u,p),m=d.args,S=d.endIndex;_=h.expandFunctionBody(m),f=S}else _=null!=(c=null==(s=h.body)?void 0:s.lexeme)?c:"",f=o;n=n.substring(0,u)+_+n.substring(f),i=!0;break}}}return n},e._expandMacroChunk=function(e,t,r){this._expandSegmentsStack.push([]),n="string"==typeof r?new t9(e,r):new t9(e,r.file,t);var n,i=this._parseDirectives(n);return this._expandSegmentsStack.pop(),{content:i,sourceMap:n.sourceMap}},e._addEmptyReplace=function(e,t){this._addContentReplace(e.file,rc.createPosition(t),e.getShaderPosition(0),"",e.blockRange)},e._addContentReplace=function(e,t,r,n,i,a){var o=new t1(e,i,a),s=rc.createRange(t,r);this._getExpandSegments().push({block:o,rangeInBlock:s,replace:n})},e._parseDefine=function(e){var t,r=e.getShaderPosition(7),n=e.scanWord(),i=n.lexeme,a=n.location,o=a.end;this._definedMacros.get(i)&&i.startsWith("GL_")&&this._reportError(a,"Redefined macro: "+i,e.source,e.file),"("===e.getCurChar()&&(t=e.scanWordsUntilTerminator(")"),o=e.getShaderPosition(0));var s=new t2(n,e.scanMacroBody(),rc.createRange(r,o),t);this._definedMacros.set(i,s),this._addContentReplace(e.file,r,e.getShaderPosition(0),"",e.blockRange)},e._parseUndef=function(e){var t=e.getShaderPosition(6),r=e.scanWord();this._definedMacros.delete(r.lexeme),this._addContentReplace(e.file,t,e.getShaderPosition(0),"",e.blockRange)},e._parseMacro=function(e,t){var r=this._definedMacros.get(t.lexeme);if(r){var n=t.location;if(r.isFunction){var i=this._parseMacroFunctionArgs(e.source,n.start.index,t.lexeme),a=i.args,o=i.endIndex,s=r.expandFunctionBody(a),c=this._expandMacroBody(s),l=o-n.end.index;e.advance(l),this._addContentReplace(e.file,n.start,e.getShaderPosition(0),c,e.blockRange)}else{var u,p,h=null!=(p=null==(u=r.body)?void 0:u.lexeme)?p:"",_=this._expandMacroBody(h);this._addContentReplace(e.file,n.start,n.end,_,e.blockRange)}}},e.convertSourceIndex=function(e){return this.lexer.sourceMap.map(e)},e}();t6._definedMacros=new Map,t6._expandSegmentsStack=[[]],t6._expandVisitedMacros={},t6._expandVersionId=1,t6._errors=[];var t7=/*#__PURE__*/function(){function e(e){this.firstSetMap=new Map,this.followSetMap=new Map,this.actionTable=new Map,this.gotoTable=new Map,this._firstSetNTStack=[],this.grammar=e}var r=e.prototype;return r.generate=function(){this.computeFirstSet(),this.buildStateTable()},r.buildStateTable=function(){var e=[new tv(this.grammar.productions[0],0,[ti.EOF])],t=ty.create(e);this._extendState(t)},r._extendState=function(e){if(e.needReInfer){this._closure(e);for(var t,r=this._inferNextState(e),i=n(r);!(t=i()).done;){var a=t.value;this._extendState(a)}}},r._closure=function(e){for(var t,r=n(e.cores);!(t=r()).done;){var i=t.value;i.canReduce()||this._extendStateItem(e,i)}return e.closured=!0,e},r._extendStateItem=function(e,t){if(!tg.isTerminal(t.curSymbol)){var r=this.grammar.getProductionList(t.curSymbol);if(t.nextSymbol){for(var i=new Set,a=!1,o=1,s=t.symbolByOffset(1);s;s=t.symbolByOffset(++o)){if(tg.isTerminal(s)){i.add(s),a=!0;break}c=this.firstSetMap.get(s);for(var c,l,u=n(c);!(l=u()).done;){var p=l.value;i.add(p)}if(!c.has(ti.EPSILON))break}if(!a&&(null==c?void 0:c.has(ti.EPSILON)))for(var h,_=n(t.lookaheadSet);!(h=_()).done;){var f=h.value;i.add(f)}for(var d,m=n(r);!(d=m()).done;){var S=d.value,g=e.createStateItem(S,0);e.items.has(g)&&tg.isSubSet(i,g.lookaheadSet)||(e.items.add(g),g.addLookahead(i),this._extendStateItem(e,g))}}else for(var v,y=n(r);!(v=y()).done;){var x=v.value,E=e.createStateItem(x,0);e.items.has(E)&&tg.isSubSet(t.lookaheadSet,E.lookaheadSet)||(e.items.add(E),E.addLookahead(t.lookaheadSet),this._extendStateItem(e,E))}}},r._inferNextState=function(e){var t=new Map,r=null!=(a=this.actionTable.get(e.id))?a:new Map,i=null!=(o=this.gotoTable.get(e.id))?o:new Map;this.actionTable.set(e.id,r),this.gotoTable.set(e.id,i);for(var a,o,s,c=n(e.items);!(s=c()).done;){var l=s.value;if(l.canReduce()){var u=void 0;u=l.production.goal!==td.START?{action:tS.Reduce,target:l.production.id}:{action:tS.Accept};for(var p,h=n(l.lookaheadSet);!(p=h()).done;){var _=p.value;this._addAction(r,_,u)}}else{var f=l.advance();tg.addMapSetItem(t,l.curSymbol,f)}l.needReInfer=!1}for(var d,m=new Set,S=n(t.entries());!(d=S()).done;){var g=d.value,v=g[0],y=g[1],x=ty.create(Array.from(y));tg.isTerminal(v)?this._addAction(r,v,{action:tS.Shift,target:x.id}):i.set(v,x.id),m.add(x)}return m},r._addAction=function(e,r,n){var i=e.get(r);if(i&&!tg.isActionEqual(i,n)){if(r===ta.ELSE&&i.action===tS.Shift&&n.action===tS.Reduce)return;t.Logger.warn("conflict detect: <Terminal "+tg.toString(r)+"> \n",tg.printAction(i),"\n",tg.printAction(n))}e.set(r,n)},r.computeFirstSet=function(){for(var e,t=n(this.grammar.productions.slice(1));!(e=t()).done;){var r=e.value;this._computeFirstSetForNT(r.goal)}},r._computeFirstSetForNT=function(e){var t=this._firstSetNTStack.findIndex(function(t){return t===e});if(-1!==t){for(var r=this.firstSetMap.get(e),i=this._firstSetNTStack.length,a=i-1;a>t;a--){var o=this._firstSetNTStack[a];this.firstSetMap.set(o,r)}return r}this._firstSetNTStack.push(e);var s=this.grammar.getProductionList(e),c=new Set;this.firstSetMap.set(e,c),this.grammar.isNullableNT(e)&&c.add(ti.EPSILON);for(var l,u=n(s);!(l=u()).done;){for(var p=l.value,h=0;h<p.derivation.length;h++){var _=p.derivation[h];if(tg.isTerminal(_)){c.add(_);break}for(var f,d=this._computeFirstSetForNT(_),m=n(d);!(f=m()).done;){var S=f.value;S!==ti.EPSILON&&c.add(S)}if(!this.grammar.isNullableNT(_))break}h===p.derivation.length&&c.add(ti.EPSILON)}return this._firstSetNTStack.pop(),c},e}(),t8=/*#__PURE__*/function(){function e(e,t){this.startSymbol=e,t.unshift(new tm(td.START,[e])),this.productions=t}var t=e.prototype;return t.getProductionList=function(e){return this.productions.filter(function(t){return t.goal===e})},t.isNullableNT=function(e){return this.productions.find(function(t){return t.goal===e&&t.derivation[0]===ti.EPSILON})},t.getProductionByID=function(e){return tm.pool.get(e)},e.create=function(t,r){return new e(t,r.map(function(e){return new tm(e[0],e.slice(1))}))},e}(),re=[].concat(tg.createProductionWithOptions(td.gs_shader_program,[[td.global_declaration],[td.gs_shader_program,td.global_declaration]],tt.GLShaderProgram.pool),tg.createProductionWithOptions(td.global_declaration,[[td.precision_specifier],[td.variable_declaration_statement],[td.struct_specifier],[td.function_definition],[td.global_macro_if_statement],[td.macro_undef],[ta.MACRO_DEFINE_EXPRESSION]],tt.GlobalDeclaration.pool),tg.createProductionWithOptions(td.macro_call_symbol,[[ta.MACRO_CALL]],tt.MacroCallSymbol.pool),tg.createProductionWithOptions(td.macro_call_function,[[td.macro_call_symbol,ti.LEFT_PAREN,ti.RIGHT_PAREN],[td.macro_call_symbol,ti.LEFT_PAREN,td.function_call_parameter_list,ti.RIGHT_PAREN]],tt.MacroCallFunction.pool),tg.createProductionWithOptions(td.macro_undef,[[ta.MACRO_UNDEF,ti.ID],[ta.MACRO_UNDEF,ta.MACRO_CALL]],tt.MacroUndef.pool),tg.createProductionWithOptions(td.macro_push_context,[[ta.MACRO_IF,ta.MACRO_CONDITIONAL_EXPRESSION],[ta.MACRO_IFDEF,ti.ID],[ta.MACRO_IFNDEF,ti.ID],[ta.MACRO_IFDEF,td.macro_call_symbol],[ta.MACRO_IFNDEF,td.macro_call_symbol]],tt.MacroPushContext.pool),tg.createProductionWithOptions(td.macro_pop_context,[[ta.MACRO_ENDIF]],tt.MacroPopContext.pool),tg.createProductionWithOptions(td.macro_elif_expression,[[ta.MACRO_ELIF,ta.MACRO_CONDITIONAL_EXPRESSION]],tt.MacroElifExpression.pool),tg.createProductionWithOptions(td.macro_else_expression,[[ta.MACRO_ELSE]],tt.MacroElseExpression.pool),tg.createProductionWithOptions(td.global_macro_declaration,[[td.global_declaration],[td.global_macro_declaration,td.global_declaration]],tt.GlobalMacroDeclaration.pool),tg.createProductionWithOptions(td.global_macro_if_statement,[[td.macro_push_context,td.global_macro_declaration,td.global_macro_branch],[td.macro_push_context,td.global_macro_branch]],tt.GlobalMacroIfStatement.pool),tg.createProductionWithOptions(td.global_macro_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.global_macro_declaration,td.global_macro_branch],[td.macro_else_expression,td.global_macro_declaration,td.macro_pop_context],[td.macro_elif_expression,td.global_macro_branch],[td.macro_else_expression,td.macro_pop_context]],tt.GlobalMacroBranch.pool),tg.createProductionWithOptions(td.variable_declaration,[[td.fully_specified_type,ti.ID],[td.fully_specified_type,ti.ID,td.array_specifier],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.VariableDeclaration.pool),tg.createProductionWithOptions(td.variable_declaration_list,[[td.variable_declaration],[td.variable_declaration_list,ti.COMMA,ti.ID],[td.variable_declaration_list,ti.COMMA,ti.ID,td.array_specifier]],tt.VariableDeclarationList.pool),tg.createProductionWithOptions(td.variable_declaration_statement,[[td.variable_declaration_list,ti.SEMICOLON]]),tg.createProductionWithOptions(td.ext_builtin_type_specifier_nonarray,[[ta.VOID],[ta.FLOAT],[ta.BOOL],[ta.INT],[ta.UINT],[ta.VEC2],[ta.VEC3],[ta.VEC4],[ta.BVEC2],[ta.BVEC3],[ta.BVEC4],[ta.IVEC2],[ta.IVEC3],[ta.IVEC4],[ta.UVEC2],[ta.UVEC3],[ta.UVEC4],[ta.MAT2],[ta.MAT3],[ta.MAT4],[ta.MAT2X3],[ta.MAT2X4],[ta.MAT3X2],[ta.MAT3X4],[ta.MAT4X2],[ta.MAT4X3],[ta.SAMPLER2D],[ta.SAMPLER3D],[ta.SAMPLER_CUBE],[ta.SAMPLER2D_SHADOW],[ta.SAMPLER_CUBE_SHADOW],[ta.SAMPLER2D_ARRAY],[ta.SAMPLER2D_ARRAY_SHADOW],[ta.I_SAMPLER2D],[ta.I_SAMPLER3D],[ta.I_SAMPLER_CUBE],[ta.I_SAMPLER2D_ARRAY],[ta.U_SAMPLER2D],[ta.U_SAMPLER3D],[ta.U_SAMPLER_CUBE],[ta.U_SAMPLER2D_ARRAY]],tt.ExtBuiltinTypeSpecifierNonArray.pool),tg.createProductionWithOptions(td.type_specifier_nonarray,[[ti.ID],[td.ext_builtin_type_specifier_nonarray]],tt.TypeSpecifierNonArray.pool),tg.createProductionWithOptions(td.fully_specified_type,[[td.type_specifier],[td.type_qualifier,td.type_specifier]],tt.FullySpecifiedType.pool),tg.createProductionWithOptions(td.type_specifier,[[td.type_specifier_nonarray],[td.ext_builtin_type_specifier_nonarray,td.array_specifier]],tt.TypeSpecifier.pool),tg.createProductionWithOptions(td.type_qualifier,[[td.single_type_qualifier],[td.type_qualifier,td.single_type_qualifier]],tt.TypeQualifier.pool),tg.createProductionWithOptions(td.single_type_qualifier,[[td.storage_qualifier],[td.precision_qualifier],[td.interpolation_qualifier],[td.invariant_qualifier],[ta.PRECISE]],tt.SingleTypeQualifier.pool),tg.createProductionWithOptions(td.storage_qualifier,[[ta.CONST],[ta.IN],[ta.INOUT],[ta.OUT],[ta.CENTROID]],tt.StorageQualifier.pool),tg.createProductionWithOptions(td.interpolation_qualifier,[[ta.SMOOTH],[ta.FLAT]],tt.InterpolationQualifier.pool),tg.createProductionWithOptions(td.invariant_qualifier,[[ta.INVARIANT]],tt.InvariantQualifier.pool),tg.createProductionWithOptions(td.precision_qualifier,[[ta.HIGHP],[ta.MEDIUMP],[ta.LOWP]],tt.PrecisionQualifier.pool),tg.createProductionWithOptions(td.struct_specifier,[[ta.STRUCT,ti.ID,ti.LEFT_BRACE,td.struct_declaration_list,ti.RIGHT_BRACE,ti.SEMICOLON],[ta.STRUCT,ti.LEFT_BRACE,td.struct_declaration_list,ti.RIGHT_BRACE,ti.SEMICOLON]],tt.StructSpecifier.pool),tg.createProductionWithOptions(td.struct_declaration_list,[[td.struct_declaration],[td.struct_declaration_list,td.struct_declaration]],tt.StructDeclarationList.pool),tg.createProductionWithOptions(td.struct_declaration,[[td.type_specifier,td.struct_declarator_list,ti.SEMICOLON],[td.type_qualifier,td.type_specifier,td.struct_declarator_list,ti.SEMICOLON],[td.layout_qualifier,td.type_specifier,td.struct_declarator,ti.SEMICOLON],[td.macro_struct_declaration]],tt.StructDeclaration.pool),tg.createProductionWithOptions(td.macro_struct_declaration,[[td.macro_push_context,td.struct_declaration_list,td.macro_struct_branch],[td.macro_push_context,td.macro_struct_branch]],tt.MacroStructDeclaration.pool),tg.createProductionWithOptions(td.macro_struct_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.struct_declaration_list,td.macro_struct_branch],[td.macro_else_expression,td.struct_declaration_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_struct_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroStructBranch.pool),tg.createProductionWithOptions(td.layout_qualifier,[[ta.LAYOUT,ti.LEFT_PAREN,ta.LOCATION,ti.EQUAL,ti.INT_CONSTANT,ti.RIGHT_PAREN]],tt.LayoutQualifier.pool),tg.createProductionWithOptions(td.struct_declarator_list,[[td.struct_declarator],[td.struct_declarator_list,ti.COMMA,td.struct_declarator]],tt.StructDeclaratorList.pool),tg.createProductionWithOptions(td.struct_declarator,[[ti.ID],[ti.ID,td.array_specifier]],tt.StructDeclarator.pool),tg.createProductionWithOptions(td.array_specifier,[[ti.LEFT_BRACKET,ti.RIGHT_BRACKET],[ti.LEFT_BRACKET,td.integer_constant_expression,ti.RIGHT_BRACKET]],tt.ArraySpecifier.pool),tg.createProductionWithOptions(td.integer_constant_expression_operator,[[ti.PLUS],[ti.DASH],[ti.STAR],[ti.SLASH],[ti.PERCENT]],tt.IntegerConstantExpressionOperator.pool),tg.createProductionWithOptions(td.integer_constant_expression,[[td.variable_identifier],[ti.INT_CONSTANT],[td.integer_constant_expression,td.integer_constant_expression_operator,ti.INT_CONSTANT],[td.integer_constant_expression,td.integer_constant_expression_operator,td.variable_identifier]],tt.IntegerConstantExpression.pool),tg.createProductionWithOptions(td.conditional_expression,[[td.logical_or_expression],[td.logical_or_expression,ti.QUESTION,td.expression,ti.COLON,td.assignment_expression]],tt.ConditionalExpression.pool),tg.createProductionWithOptions(td.logical_or_expression,[[td.logical_xor_expression],[td.logical_or_expression,ti.OR_OP,td.logical_xor_expression]],tt.LogicalOrExpression.pool),tg.createProductionWithOptions(td.logical_xor_expression,[[td.logical_and_expression],[td.logical_xor_expression,ti.XOR_OP,td.logical_and_expression]],tt.LogicalXorExpression.pool),tg.createProductionWithOptions(td.logical_and_expression,[[td.inclusive_or_expression],[td.logical_and_expression,ti.AND_OP,td.inclusive_or_expression]],tt.LogicalAndExpression.pool),tg.createProductionWithOptions(td.inclusive_or_expression,[[td.exclusive_or_expression],[td.inclusive_or_expression,ti.VERTICAL_BAR,td.exclusive_or_expression]],tt.InclusiveOrExpression.pool),tg.createProductionWithOptions(td.exclusive_or_expression,[[td.and_expression],[td.exclusive_or_expression,ti.CARET,td.and_expression]],tt.ExclusiveOrExpression.pool),tg.createProductionWithOptions(td.and_expression,[[td.equality_expression],[td.and_expression,ti.AMPERSAND,td.equality_expression]],tt.AndExpression.pool),tg.createProductionWithOptions(td.equality_expression,[[td.relational_expression],[td.equality_expression,ti.EQ_OP,td.relational_expression],[td.equality_expression,ti.NE_OP,td.relational_expression]],tt.EqualityExpression.pool),tg.createProductionWithOptions(td.relational_expression,[[td.shift_expression],[td.relational_expression,ti.LEFT_ANGLE,td.shift_expression],[td.relational_expression,ti.RIGHT_ANGLE,td.shift_expression],[td.relational_expression,ti.LE_OP,td.shift_expression],[td.relational_expression,ti.GE_OP,td.shift_expression]],tt.RelationalExpression.pool),tg.createProductionWithOptions(td.shift_expression,[[td.additive_expression],[td.shift_expression,ti.LEFT_OP,td.additive_expression],[td.shift_expression,ti.RIGHT_OP,td.additive_expression]],tt.ShiftExpression.pool),tg.createProductionWithOptions(td.additive_expression,[[td.multiplicative_expression],[td.additive_expression,ti.PLUS,td.multiplicative_expression],[td.additive_expression,ti.DASH,td.multiplicative_expression]],tt.AdditiveExpression.pool),tg.createProductionWithOptions(td.multiplicative_expression,[[td.unary_expression],[td.multiplicative_expression,ti.STAR,td.unary_expression],[td.multiplicative_expression,ti.SLASH,td.unary_expression],[td.multiplicative_expression,ti.PERCENT,td.unary_expression]],tt.MultiplicativeExpression.pool),tg.createProductionWithOptions(td.unary_expression,[[td.postfix_expression],[ti.INC_OP,td.unary_expression],[ti.DEC_OP,td.unary_expression],[td.unary_operator,td.unary_expression]],tt.UnaryExpression.pool),tg.createProductionWithOptions(td.unary_operator,[[ti.PLUS],[ti.DASH],[ti.BANG],[ti.TILDE]],tt.UnaryOperator.pool),tg.createProductionWithOptions(td.postfix_expression,[[td.primary_expression],[td.postfix_expression,ti.LEFT_BRACKET,td.expression,ti.RIGHT_BRACKET],[td.function_call],[td.postfix_expression,ti.DOT,ti.ID],[td.postfix_expression,ti.DOT,td.function_call],[td.postfix_expression,ti.INC_OP],[td.postfix_expression,ti.DEC_OP]],tt.PostfixExpression.pool),tg.createProductionWithOptions(td.primary_expression,[[td.variable_identifier],[ti.INT_CONSTANT],[ti.FLOAT_CONSTANT],[ta.True],[ta.False],[ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN]],tt.PrimaryExpression.pool),tg.createProductionWithOptions(td.expression,[[td.assignment_expression],[td.expression,ti.COMMA,td.assignment_expression]],tt.Expression.pool),tg.createProductionWithOptions(td.assignment_expression,[[td.conditional_expression],[td.unary_expression,td.assignment_operator,td.assignment_expression]],tt.AssignmentExpression.pool),tg.createProductionWithOptions(td.assignment_operator,[[ti.EQUAL],[ti.MUL_ASSIGN],[ti.DIV_ASSIGN],[ti.MOD_ASSIGN],[ti.ADD_ASSIGN],[ti.SUB_ASSIGN],[ti.LEFT_ASSIGN],[ti.RIGHT_ASSIGN],[ti.AND_ASSIGN],[ti.XOR_ASSIGN],[ti.OR_ASSIGN]],tt.AssignmentOperator.pool),tg.createProductionWithOptions(td.function_call,[[td.function_call_generic]],tt.FunctionCall.pool),tg.createProductionWithOptions(td.function_call_generic,[[td.function_identifier,ti.LEFT_PAREN,td.function_call_parameter_list,ti.RIGHT_PAREN],[td.function_identifier,ti.LEFT_PAREN,ti.RIGHT_PAREN],[td.function_identifier,ta.VOID,ti.RIGHT_PAREN]],tt.FunctionCallGeneric.pool),tg.createProductionWithOptions(td.function_call_parameter_list,[[td.assignment_expression],[td.function_call_parameter_list,ti.COMMA,td.assignment_expression],[td.macro_call_arg_block],[td.function_call_parameter_list,td.macro_call_arg_block]],tt.FunctionCallParameterList.pool),tg.createProductionWithOptions(td.macro_call_arg_case_list,[[td.assignment_expression],[ti.COMMA,td.assignment_expression],[td.macro_call_arg_block],[td.macro_call_arg_case_list,td.macro_call_arg_block],[td.macro_call_arg_case_list,ti.COMMA,td.assignment_expression]],tt.MacroCallArgCaseList.pool),tg.createProductionWithOptions(td.macro_call_arg_block,[[td.macro_push_context,td.macro_call_arg_branch],[td.macro_push_context,td.macro_call_arg_case_list,td.macro_call_arg_branch]],tt.MacroCallArgBlock.pool),tg.createProductionWithOptions(td.macro_call_arg_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.macro_call_arg_case_list,td.macro_call_arg_branch],[td.macro_else_expression,td.macro_call_arg_case_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_call_arg_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroCallArgBranch.pool),tg.createProductionWithOptions(td.function_identifier,[[td.type_specifier]],tt.FunctionIdentifier.pool),tg.createProductionWithOptions(td.function_definition,[[td.function_prototype,td.compound_statement_no_scope]],tt.FunctionDefinition.pool),tg.createProductionWithOptions(td.function_prototype,[[td.function_declarator,ti.RIGHT_PAREN]],tt.FunctionProtoType.pool),tg.createProductionWithOptions(td.function_declarator,[[td.function_header],[td.function_header,td.function_parameter_list]],tt.FunctionDeclarator.pool),tg.createProductionWithOptions(td.function_header,[[td.fully_specified_type,ti.ID,ti.LEFT_PAREN]],tt.FunctionHeader.pool),tg.createProductionWithOptions(td.function_parameter_list,[[td.parameter_declaration],[td.function_parameter_list,ti.COMMA,td.parameter_declaration],[td.macro_param_block],[td.function_parameter_list,td.macro_param_block]],tt.FunctionParameterList.pool),tg.createProductionWithOptions(td.macro_param_case_list,[[td.parameter_declaration],[ti.COMMA,td.parameter_declaration],[td.macro_param_block],[td.macro_param_case_list,td.macro_param_block],[td.macro_param_case_list,ti.COMMA,td.parameter_declaration]],tt.MacroParamCaseList.pool),tg.createProductionWithOptions(td.macro_param_block,[[td.macro_push_context,td.macro_parameter_branch],[td.macro_push_context,td.macro_param_case_list,td.macro_parameter_branch]],tt.MacroParamBlock.pool),tg.createProductionWithOptions(td.macro_parameter_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.macro_param_case_list,td.macro_parameter_branch],[td.macro_else_expression,td.macro_param_case_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_parameter_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroParameterBranch.pool),tg.createProductionWithOptions(td.parameter_declaration,[[td.type_qualifier,td.parameter_declarator],[td.parameter_declarator],[td.macro_call_symbol],[td.macro_call_function]],tt.ParameterDeclaration.pool),tg.createProductionWithOptions(td.parameter_declarator,[[td.type_specifier,ti.ID],[td.type_specifier,ti.ID,td.array_specifier]],tt.ParameterDeclarator.pool),tg.createProductionWithOptions(td.statement_list,[[td.statement],[td.statement_list,td.statement]],tt.StatementList.pool),tg.createProductionWithOptions(td.statement,[[td.compound_statement],[td.simple_statement]],tt.Statement.pool),tg.createProductionWithOptions(td.compound_statement_no_scope,[[ti.LEFT_BRACE,ti.RIGHT_BRACE],[ti.LEFT_BRACE,td.statement_list,ti.RIGHT_BRACE]],tt.CompoundStatementNoScope.pool),tg.createProductionWithOptions(td.compound_statement,[[ti.LEFT_BRACE,ti.RIGHT_BRACE],[td.scope_brace,td.statement_list,td.scope_end_brace]],tt.CompoundStatement.pool),tg.createProductionWithOptions(td.simple_statement,[[td.declaration],[td.expression_statement],[td.selection_statement],[td.iteration_statement],[td.jump_statement],[td.macro_if_statement],[td.macro_undef],[ta.MACRO_DEFINE_EXPRESSION]],tt.SimpleStatement.pool),tg.createProductionWithOptions(td.declaration,[[td.function_prototype,ti.SEMICOLON],[td.init_declarator_list,ti.SEMICOLON],[ta.PRECISION,td.precision_qualifier,td.ext_builtin_type_specifier_nonarray,ti.SEMICOLON],[td.type_qualifier,ti.ID,ti.SEMICOLON],[td.type_qualifier,ti.ID,td.identifier_list,ti.SEMICOLON]],tt.Declaration.pool),tg.createProductionWithOptions(td.identifier_list,[[ti.COMMA,ti.ID],[td.identifier_list,ti.COMMA,ti.ID]],tt.IdentifierList.pool),tg.createProductionWithOptions(td.init_declarator_list,[[td.single_declaration],[td.init_declarator_list,ti.COMMA,ti.ID],[td.init_declarator_list,ti.COMMA,ti.ID,td.array_specifier],[td.init_declarator_list,ti.COMMA,ti.ID,td.array_specifier,ti.EQUAL,td.initializer],[td.init_declarator_list,ti.COMMA,ti.ID,ti.EQUAL,td.initializer]],tt.InitDeclaratorList.pool),tg.createProductionWithOptions(td.single_declaration,[[td.fully_specified_type,ti.ID],[td.fully_specified_type,ti.ID,td.array_specifier],[td.fully_specified_type,ti.ID,td.array_specifier,ti.EQUAL,td.initializer],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.SingleDeclaration.pool),tg.createProductionWithOptions(td.initializer,[[td.assignment_expression],[ti.LEFT_BRACE,td.initializer_list,ti.RIGHT_BRACE]],tt.Initializer.pool),tg.createProductionWithOptions(td.initializer_list,[[td.initializer],[td.initializer_list,ti.COMMA,td.initializer]],tt.InitializerList.pool),tg.createProductionWithOptions(td.expression_statement,[[ti.SEMICOLON],[td.expression,ti.SEMICOLON]],tt.ExpressionStatement.pool),tg.createProductionWithOptions(td.selection_statement,[[ta.IF,ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN,td.statement],[ta.IF,ti.LEFT_PAREN,td.expression,ti.RIGHT_PAREN,td.statement,ta.ELSE,td.statement]],tt.SelectionStatement.pool),tg.createProductionWithOptions(td.iteration_statement,[[ta.WHILE,ti.LEFT_PAREN,td.condition,ti.RIGHT_PAREN,td.statement],[ta.FOR,ti.LEFT_PAREN,td.for_init_statement,td.for_rest_statement,ti.RIGHT_PAREN,td.statement]],tt.IterationStatement.pool),tg.createProductionWithOptions(td.precision_specifier,[[ta.PRECISION,td.precision_qualifier,td.ext_builtin_type_specifier_nonarray,ti.SEMICOLON]],tt.PrecisionSpecifier.pool),tg.createProductionWithOptions(td.for_init_statement,[[td.expression_statement],[td.declaration]],tt.ForInitStatement.pool),tg.createProductionWithOptions(td.condition,[[td.expression],[td.fully_specified_type,ti.ID,ti.EQUAL,td.initializer]],tt.Condition.pool),tg.createProductionWithOptions(td.for_rest_statement,[[td.conditionopt,ti.SEMICOLON],[td.conditionopt,ti.SEMICOLON,td.expression]],tt.ForRestStatement.pool),tg.createProductionWithOptions(td.conditionopt,[[ti.EPSILON],[td.condition]],tt.ConditionOpt.pool),tg.createProductionWithOptions(td.jump_statement,[[ta.CONTINUE,ti.SEMICOLON],[ta.BREAK,ti.SEMICOLON],[ta.RETURN,ti.SEMICOLON],[ta.RETURN,td.expression,ti.SEMICOLON],[ta.DISCARD,ti.SEMICOLON]],tt.JumpStatement.pool),tg.createProductionWithOptions(td.scope_brace,[[ti.LEFT_BRACE]],tt.ScopeBrace.pool),tg.createProductionWithOptions(td.scope_end_brace,[[ti.RIGHT_BRACE]],tt.ScopeEndBrace.pool),tg.createProductionWithOptions(td.variable_identifier,[[ti.ID],[td.macro_call_symbol],[td.macro_call_function]],tt.VariableIdentifier.pool),tg.createProductionWithOptions(td.macro_if_statement,[[td.macro_push_context,td.statement_list,td.macro_branch],[td.macro_push_context,td.macro_branch]],tt.MacroIfStatement.pool),tg.createProductionWithOptions(td.macro_branch,[[td.macro_pop_context],[td.macro_elif_expression,td.statement_list,td.macro_branch],[td.macro_else_expression,td.statement_list,td.macro_pop_context],[td.macro_elif_expression,td.macro_branch],[td.macro_else_expression,td.macro_pop_context]],tt.MacroBranch.pool)),rt=function(e){for(var t=0;t<re.length;t++){var r=re[t][1];r&&e.addTranslationRule(t,r)}},rr=/*#__PURE__*/function(){function e(e,t,r){this._traceBackStack=[],this.actionTable=e,this.gotoTable=t,this.grammar=r,this.sematicAnalyzer=new tF}var r=e.prototype;return r.parse=function(e,r){this.sematicAnalyzer.reset(r);var n=performance.now(),i=this._traceBackStack,a=this.sematicAnalyzer;i.push(0);for(var s=e.next(),c=0;;){c+=1;var l=s.value,u=this.stateActionTable.get(l.type);if((null==u?void 0:u.action)===tS.Shift)i.push(l,u.target),s=e.next();else if((null==u?void 0:u.action)===tS.Accept)return t.Logger.info("[Task - AST compilation] Accept! State automata run "+c+" times! cost time "+(performance.now()-n)+"ms"),null==a.acceptRule||a.acceptRule.call(a,a),a.semanticStack.pop();else if((null==u?void 0:u.action)===tS.Reduce){for(var p=u.target,h=this.grammar.getProductionByID(p),_=a.getTranslationRule(h.id),f=[],d=h.derivation.length-1;d>=0;d--)if(h.derivation[d]!==ti.EPSILON){i.pop();var m=i.pop();if(o(m,t_))f.unshift(m);else{var S=a.semanticStack.pop();f.unshift(S)}}null==_||_.apply(void 0,[].concat([a],f));var g=this.stateGotoTable;i.push(h.goal);var v=null==g?void 0:g.get(h.goal);i.push(v);continue}else{var y=th.createGSError("Unexpected token "+l.lexeme,tp.CompilationError,rc._processingPassText,l.location);return this.sematicAnalyzer.errors.push(y),null}}},r._printStack=function(e){for(var r="",n=0;n<this._traceBackStack.length-1;n++){var i,a=this._traceBackStack[n++],o=this._traceBackStack[n];r+="State"+a+" - "+(null!=(i=o.lexeme)?i:tx.toString(o))+"; "}r+="State"+this._traceBackStack[this._traceBackStack.length-1]+" --- "+e.lexeme,t.Logger.info(r)},e.create=function(){if(!this._singleton){var t=t8.create(td.gs_shader_program,re.map(function(e){return e[0]})),r=new t7(t);r.generate(),this._singleton=new e(r.actionTable,r.gotoTable,t),rt(this._singleton.sematicAnalyzer)}return this._singleton},c(e,[{key:"curState",get:function(){return this._traceBackStack[this._traceBackStack.length-1]}},{key:"stateActionTable",get:function(){return this.actionTable.get(this.curState)}},{key:"stateGotoTable",get:function(){return this.gotoTable.get(this.curState)}},{key:"errors",get:function(){return this.sematicAnalyzer.errors}}]),e}();function rn(){return(rn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var ri=/*#__PURE__*/function(){function e(){}return e.createRenderStates=function(){return{constantMap:{},variableMap:{}}},e.createShaderSource=function(e){return{name:e,subShaders:[],pendingContents:[],renderStates:this.createRenderStates()}},e.createSubShaderSource=function(e){return{name:e,passes:[],pendingContents:[],tags:{},renderStates:this.createRenderStates()}},e.createShaderPassSource=function(e){return{name:e,pendingContents:[],tags:{},renderStates:this.createRenderStates()}},e.createUsePass=function(e){return{name:e,pendingContents:[],isUsePass:!0,tags:{},renderStates:this.createRenderStates()}},e}(),ra=/*#__PURE__*/function(){function e(e,t,r){this.ident=e,this.type=t,this.value=r,this.isInMacroBranch=!1}var t=e.prototype;return t.set=function(e,t,r){this.ident=e,this.type=t,this.value=r},t.equal=function(e){return this.type===e.type},e}(),ro=/*#__PURE__*/function(e){function r(){var t;return t=e.apply(this,arguments)||this,t.hasPendingContent=!1,t}a(r,e);var n=r.prototype;return n.scanNumber=function(){this.skipCommentsAndSpace();var e=this._currentIndex,t=this._source,n=this._currentIndex;return n=r._scanDigits(t,n),"."===t[n]&&(n=r._scanDigits(t,n+1)),this.advance(n-this._currentIndex),Number(t.substring(e,n))},n.scanColor=function(){this.scanLexeme("(");var e=0,r=0,n=0,i=1;return e=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),r=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),n=this.scanNumber(),this.skipCommentsAndSpace(),")"!==this.peek(1)&&(this.scanLexeme(","),i=this.scanNumber(),this.skipCommentsAndSpace()))),this.scanLexeme(")"),new t.Color(e,r,n,i)},n.scanToken=function(){for(;;){if(this.skipCommentsAndSpace(),this.isEnd())return;var e=this.getShaderPosition(0);if(tK.isAlpha(this.getCurCharCode())){var t=this._scanWord(e);if(null!==t)return t;this.hasPendingContent=!0;continue}var n=this.getCurChar(),i=r._symbolLexemeTable[n];if(void 0!==i){this.advance(1);var a=t_.pool.get();return a.set(i,n,e),a}this.advance(1)}},n.scanToCharacter=function(e){for(;this.getCurChar()!==e&&!this.isEnd();)this.advance(1);this.advance(1)},n.createCompileError=function(e,t){return th.createGSError(e,tp.CompilationError,this.source,null!=t?t:this.getShaderPosition(0))},n._scanWord=function(e){for(;tK.isAlnum(this.getCurCharCode())&&!this.isEnd();)this.advance(1);var t,n=this.getShaderPosition(0);if(!this._validateWordBoundaries(e.index,n.index))return null;var i=this._source.substring(e.index,n.index),a=null!=(t=r._keywordLexemeTable[i])?t:ti.ID,o=rc.createRange(e,n),s=t_.pool.get();return s.set(a,i,o),s},n._validateWordBoundaries=function(e,t){var r=this._source;if(e>0){var n=r.charCodeAt(e-1);if(!this._isValidWordBoundary(n))return!1}if(t<r.length){var i=r.charCodeAt(t);if(!this._isValidWordBoundary(i))return!1}return!0},n._isValidWordBoundary=function(e){return tK.isWhiteSpaceChar(e,!0)||r._isWordSeparatorChar(e)},r._isWordSeparatorChar=function(e){return 123===e||125===e||61===e||59===e||46===e||91===e||40===e},r._scanDigits=function(e,t){for(var r=t;r<e.length;){var n=e.charCodeAt(r);if(tK.isDigit(n))r++;else break}return r},r}(tK);ro._keywordLexemeTable={RenderQueueType:ta.GSRenderQueueType,BlendState:ta.GSBlendState,DepthState:ta.GSDepthState,StencilState:ta.GSStencilState,RasterState:ta.GSRasterState,EditorProperties:ta.GSEditorProperties,EditorMacros:ta.GSEditorMacros,Editor:ta.GSEditor,Tags:ta.GSTags,VertexShader:ta.GSVertexShader,FragmentShader:ta.GSFragmentShader,SubShader:ta.GSSubShader,Pass:ta.GSPass,BlendFactor:ta.GSBlendFactor,BlendOperation:ta.GSBlendOperation,Bool:ta.GSBool,Number:ta.GSNumber,Color:ta.GSColor,CompareFunction:ta.GSCompareFunction,StencilOperation:ta.GSStencilOperation,CullMode:ta.GSCullMode,UsePass:ta.GSUsePass,true:ta.True,false:ta.False},ro._symbolLexemeTable={"{":ta.LeftBrace,"}":ta.RightBrace,"=":ta.Equal};var rs=/*#__PURE__*/function(){function e(){}return e.parse=function(e){var r=performance.now();this.errors.length=0,this._symbolTableStack.clear(),this._pushScope();var n=this._lexer;n.setSource(e);for(var i=this._parseShader(n),a=i.pendingContents,o=i.renderStates,s=0,c=i.subShaders.length;s<c;s++){var l=i.subShaders[s],u=a.concat(l.pendingContents),p={constantMap:rn({},o.constantMap),variableMap:rn({},o.variableMap)};this._mergeRenderStates(p,l.renderStates);for(var h=0,_=l.passes.length;h<_;h++){var f=l.passes[h],d={constantMap:rn({},p.constantMap),variableMap:rn({},p.variableMap)};if(this._mergeRenderStates(d,f.renderStates),f.renderStates=d,!f.isUsePass){var m=u.concat(f.pendingContents);f.contents=m.map(function(e){return e.content}).join("\n")}}}return t.Logger.info("[Task - Source compilation] cost time "+(performance.now()-r)+"ms"),i},e._parseShader=function(e){e.scanLexeme("Shader");var t=e.scanPairedChar('"','"',!1,!1),r=ri.createShaderSource(t);e.scanLexeme("{");var n=1;e.skipCommentsAndSpace();for(var i=e.getShaderPosition(0),a=r.pendingContents;;){var o=e.scanToken();switch(o.type){case ta.GSSubShader:this._addPendingContents(i,o.lexeme.length,a);var s=this._parseSubShader();r.subShaders.push(s),i=e.getShaderPosition(0);break;case ta.GSEditorProperties:case ta.GSEditorMacros:case ta.GSEditor:this._addPendingContents(i,o.lexeme.length,a),e.scanPairedChar("{","}",!0,!1),i=e.getShaderPosition(0);break;case ta.LeftBrace:++n;break;case ta.RightBrace:if(0==--n)return this._addPendingContents(i,o.lexeme.length,a),this._popScope(),r;break;default:i=this._parseRenderState(o,i,a,r.renderStates)}}},e._parseRenderStateDeclarationOrAssignment=function(e,t){var r=this._lexer,n=r.scanToken();if(n.type===ti.ID){r.scanLexeme("{");var i=this._parseRenderStateProperties(t.lexeme),a=new ra(n.lexeme,t.type,i);this._symbolTableStack.insert(a)}else if("="===n.lexeme){var o,s=r.scanToken();if("{"===s.lexeme)o=this._parseRenderStateProperties(t.lexeme);else{r.scanLexeme(";");var c=this._lookupSymbol;c.set(s.lexeme,t.type);var l=this._symbolTableStack.lookup(c);if(!(null==l?void 0:l.value)){this._createCompileError('Invalid "'+t.lexeme+'" variable: '+s.lexeme,s.location);return}o=l.value}this._mergeRenderStates(e,o)}},e._mergeRenderStates=function(e,t){var r=e.constantMap,n=e.variableMap,i=t.constantMap,a=t.variableMap;for(var o in i)delete n[o],r[o]=i[o];for(var s in a)delete r[s],n[s]=a[s]},e._parseVariableDeclaration=function(){var e=this._lexer,t=e.scanToken();e.scanLexeme(";");var r=new ra(t.lexeme,t.type);this._symbolTableStack.insert(r)},e._pushScope=function(){var e=new tL;this._symbolTableStack.pushScope(e)},e._popScope=function(){this._symbolTableStack.popScope()},e._parseRenderStateProperties=function(e){for(var t=this._lexer,r=ri.createRenderStates();"}"!==t.getCurChar();)this._parseRenderStateProperty(e,r),t.skipCommentsAndSpace();return t.advance(1),r},e._createCompileError=function(e,t){var r=this._lexer.createCompileError(e,t);this.errors.push(r)},e._parseRenderStateProperty=function(e,r){var n=this._lexer,i=n.scanToken().lexeme,a=i;if("BlendState"===e&&"BlendColor"!==i&&"AlphaToCoverage"!==i){var o=0,s=n.scanTwoExpectedLexemes("[","=");if("["===s)o=n.scanNumber(),n.scanLexeme("]"),n.scanLexeme("=");else if("="!==s){this._createCompileError("Invalid syntax, expect '[' or '=', but got unexpected token"),n.scanToCharacter(";");return}a+=o}else n.scanLexeme("=");var c=t.RenderStateElementKey[e+a];if(void 0===c){this._createCompileError("Invalid render state property "+i),n.scanToCharacter(";");return}n.skipCommentsAndSpace();var l=n.getCurCharCode();if(tK.isDigit(l)||46===l)h=n.scanNumber();else{var u=n.scanToken(),p=u.type;if(p===ta.True)h=!0;else if(p===ta.False)h=!1;else if(p===ta.GSColor)h=n.scanColor();else if("."===n.getCurChar()){n.advance(1);var h,_,f=n.scanToken();if(void 0==(h=null==(_=this._renderStateConstMap[u.lexeme])?void 0:_[f.lexeme])){this._createCompileError("Invalid engine constant: "+u.lexeme+"."+f.lexeme,f.location),n.scanToCharacter(";");return}}else{h=u.lexeme;var d=this._lookupSymbol;if(d.set(u.lexeme,ti.ID),!this._symbolTableStack.lookup(d)){this._createCompileError("Invalid "+e+" variable: "+u.lexeme,u.location),n.scanToCharacter(";");return}}}n.scanLexeme(";"),"string"==typeof h?r.variableMap[c]=h:r.constantMap[c]=h},e._parseRenderQueueDeclarationOrAssignment=function(e){var r=this._lexer,n=r.scanToken();if(n.type===ti.ID){r.scanLexeme(";");var i=new ra(n.lexeme,ta.GSRenderQueueType);this._symbolTableStack.insert(i);return}if("="!==n.lexeme){this._createCompileError("Invalid syntax, expect character '=', but got "+n.lexeme,n.location);return}var a=r.scanToken();r.scanLexeme(";");var o=this._renderStateConstMap.RenderQueueType[a.lexeme],s=t.RenderStateElementKey.RenderQueueType;if(void 0==o){e.variableMap[s]=a.lexeme;var c=this._lookupSymbol;if(c.set(a.lexeme,ta.GSRenderQueueType),!this._symbolTableStack.lookup(c)){this._createCompileError("Invalid RenderQueueType variable: "+a.lexeme,a.location);return}}else e.constantMap[s]=o},e._addPendingContents=function(e,t,r){var n=this._lexer;if(n.hasPendingContent){var i=n.currentIndex-t;r.push({range:{start:e,end:rn({},n.getShaderPosition(0),{index:i-1})},content:n.source.substring(e.index,i-1)}),n.hasPendingContent=!1}},e._parseSubShader=function(){var e=this._lexer;this._pushScope();var t=1,r=e.scanPairedChar('"','"',!1,!1),n=ri.createSubShaderSource(r);e.scanLexeme("{"),e.skipCommentsAndSpace();for(var i=e.getShaderPosition(0);;){var a=e.scanToken();switch(a.type){case ta.GSPass:this._addPendingContents(i,a.lexeme.length,n.pendingContents);var o=this._parsePass();n.passes.push(o),i=e.getShaderPosition(0);break;case ta.GSUsePass:this._addPendingContents(i,a.lexeme.length,n.pendingContents);var s=e.scanPairedChar('"','"',!1,!1);n.passes.push(ri.createUsePass(s)),i=e.getShaderPosition(0);break;case ta.LeftBrace:++t;break;case ta.RightBrace:if(0==--t)return this._addPendingContents(i,a.lexeme.length,n.pendingContents),this._popScope(),n;break;default:i=this._parseRenderStateAndTags(a,i,n.pendingContents,n.renderStates,n.tags)}}},e._parseTags=function(e){var t=this._lexer;for(t.scanLexeme("{");;){var r=t.scanToken();t.scanLexeme("=");var n=t.scanPairedChar('"','"',!1,!1);if(t.skipCommentsAndSpace(),e[r.lexeme]=n,"}"===t.peek(1)){t.advance(1);return}t.scanLexeme(",")}},e._parsePass=function(){this._pushScope();var e=this._lexer,r=e.scanPairedChar('"','"',!1,!1),n=ri.createShaderPassSource(r);e.scanLexeme("{");var i=1;e.skipCommentsAndSpace();for(var a=e.getShaderPosition(0);;){var o=e.scanToken();switch(o.type){case ta.GSVertexShader:case ta.GSFragmentShader:this._addPendingContents(a,o.lexeme.length,n.pendingContents),e.scanLexeme("=");var s=e.scanToken();if(n[o.lexeme]){var c=th.createGSError("Reassign main entry",tp.CompilationError,e.source,e.getShaderPosition(0));throw t.Logger.error(c.toString()),c}n[o.type===ta.GSVertexShader?"vertexEntry":"fragmentEntry"]=s.lexeme,e.scanLexeme(";"),a=e.getShaderPosition(0);break;case ta.LeftBrace:++i;break;case ta.RightBrace:if(0==--i)return this._addPendingContents(a,o.lexeme.length,n.pendingContents),this._popScope(),n;break;default:a=this._parseRenderStateAndTags(o,a,n.pendingContents,n.renderStates,n.tags)}}},e._parseRenderStateAndTags=function(e,t,r,n,i){return e.type===ta.GSTags?(this._addPendingContents(t,e.lexeme.length,r),this._parseTags(i),t=this._lexer.getShaderPosition(0)):t=this._parseRenderState(e,t,r,n),t},e._parseRenderState=function(e,t,r,n){switch(e.type){case ta.GSBlendState:case ta.GSDepthState:case ta.GSRasterState:case ta.GSStencilState:this._addPendingContents(t,e.lexeme.length,r),this._parseRenderStateDeclarationOrAssignment(n,e),t=this._lexer.getShaderPosition(0);break;case ta.GSBlendFactor:case ta.GSBlendOperation:case ta.GSBool:case ta.GSNumber:case ta.GSColor:case ta.GSCompareFunction:case ta.GSStencilOperation:case ta.GSCullMode:this._addPendingContents(t,e.lexeme.length,r),this._parseVariableDeclaration(),t=this._lexer.getShaderPosition(0);break;case ta.GSRenderQueueType:this._addPendingContents(t,e.lexeme.length,r),this._parseRenderQueueDeclarationOrAssignment(n),t=this._lexer.getShaderPosition(0);break;default:this._lexer.hasPendingContent=!0}return t},e}();rs.errors=[],rs._renderStateConstMap={RenderQueueType:t.RenderQueueType,CompareFunction:t.CompareFunction,StencilOperation:t.StencilOperation,BlendOperation:t.BlendOperation,BlendFactor:t.BlendFactor,CullMode:t.CullMode},rs._symbolTableStack=new tP,rs._lexer=new ro,rs._lookupSymbol=new ra("",null);var rc=/*#__PURE__*/function(){function e(){}var r=e.prototype;return r._parseShaderSource=function(e){th.clearAllShaderLabObjectPool();var t=rs.parse(e);return this._logErrors(rs.errors),t},r._parseShaderPass=function(r,n,i,a,o){var s=performance.now(),c={};tE._repeatIncludeSet.clear();var l=tE.parse(r,o,c);t.Logger.info("[Task - Pre processor] cost time "+(performance.now()-s)+"ms");var u=new tJ(l,c).tokenize(),p=e._parser;e._processingPassText=l;var h=p.parse(u,c);if(this._logErrors(p.errors),h){var _=a===t.ShaderLanguage.GLSLES100?tX.getVisitor():tY.getVisitor(),f=performance.now(),d=_.visitShaderProgram(h,n,i);return t.Logger.info("[Task - CodeGen] cost time: "+(performance.now()-f)+"ms"),t.Logger.info("[Task - Total compilation] cost time: "+(performance.now()-s)+"ms"),e._processingPassText=void 0,this._logErrors(_.errors),d}},r._parseMacros=function(e,r){var n=performance.now(),i=t6.parse(e,r);return t.Logger.info("[Task - parse macros] cost time: "+(performance.now()-n)+"ms"),this._logErrors(t6._errors),i},r._logErrors=function(e){if(0!==e.length&&t.Logger.isEnabled){t.Logger.error(""+e.length+" errors occur!");for(var r,i=n(e);!(r=i()).done;){var a=r.value;t.Logger.error(a.toString())}}},e.createPosition=function(e,t,r){var n=this._shaderPositionPool.get();return n.set(e,t,r),n},e.createRange=function(e,t){var r=this._shaderRangePool.get();return r.set(e,t),r},e}();rc._parser=rr.create(),rc._shaderPositionPool=th.createObjectPool(tn),rc._shaderRangePool=th.createObjectPool(tr);var rl="1.6.11";console.log("Galacean Engine ShaderLab Version: "+rl+" | Mode: Verbose"),e.GSError=tu,e.GSErrorName=tp,e.ShaderLab=rc,e.version=rl,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=browser.verbose.min.js.map
|