shaderkit 0.5.0 → 0.6.0
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/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ast.ts +1 -1
- package/src/generator.ts +1 -1
- package/src/parser.ts +3 -2
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const w=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","fn","for","if","let","loop","override","return","struct","switch","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],k=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_FragColor","gl_FragDepthEXT","texture2D","textureCube","texture2DProj","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2","buffer","shared","gl_HelperInvocation","gl_NumWorkGroups","gl_WorkGroupSize","gl_WorkGroupID","gl_LocalInvocationID","gl_GlobalInvocationID","gl_LocalInvocationIndex","gl_MaxImageUnits","gl_MaxVertexImageUniforms","gl_MaxFragmentImageUniforms","gl_MaxComputeImageUniforms","gl_MaxCombinedImageUniforms","gl_MaxCombinedShaderOutputResources","gl_MaxComputeWorkGroupCount","gl_MaxComputeWorkGroupSize","gl_MaxComputeUniformComponents","gl_MaxComputeTextureImageUnits","gl_MaxComputeAtomicCounters","gl_MaxComputeAtomicCounterBuffers","gl_MaxVertexAtomicCounters","gl_MaxFragmentAtomicCounters","gl_MaxCombinedAtomicCounters","gl_MaxAtomicCounterBindings","gl_MaxFragmentAtomicCounterBuffers","gl_MaxVertexAtomicCounterBuffers","gl_MaxCombinedAtomicCounterBuffers","gl_MaxAtomicCounterBufferSize","imageSize","packUnorm4x8","packSnorm4x8","unpackUnorm4x8","unpackSnorm4x8","bitfieldExtract","bitfieldInsert","bitfieldReverse","bitCount","findLSB","findMSB","uaddCarry","usubBorrow","umulExtended","imulExtended","atomicCounterIncrement","atomicCounterDecrement","atomicCounter","atomicAdd","atomicMin","atomicMax","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompSwap","imageLoad","imageStore","barrier","memoryBarrier","memoryBarrierAtomicCounter","memoryBarrierBuffer","memoryBarrierImage","memoryBarrierShared","groupMemoryBarrier"],L=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],U=[...L,"#","\\"],P=[...L,"->","@"];function E(e){return e?`layout(${Object.entries(e).map(([r,t])=>t===!0?r:`${r}=${t}`).join(",")})`:""}function s(e){if(!e)return"";switch(e.type){case"Identifier":return e.name;case"Literal":return e.value;case"ArraySpecifier":return`${e.typeSpecifier.name}${e.dimensions.map(r=>`[${s(r)}]`).join("")}`;case"ExpressionStatement":return`${s(e.expression)};`;case"BlockStatement":return`{${e.body.map(s).join("")}}`;case"DiscardStatement":return"discard;";case"PreprocessorStatement":{let r="";return e.value&&(e.name==="include"?r=` <${s(e.value[0])}>`:e.name==="extension"?r=` ${e.value.map(s).join(":")}`:e.value.length&&(r=` ${e.value.map(s).join(" ")}`)),`
|
|
2
2
|
#${e.name}${r}
|
|
3
|
-
`}case"PrecisionQualifierStatement":return`precision ${e.precision} ${e.typeSpecifier.name};`;case"InvariantQualifierStatement":return`invariant ${s(e.typeSpecifier)};`;case"LayoutQualifierStatement":return`${E(e.layout)}${e.qualifier};`;case"ReturnStatement":return e.argument?`return ${s(e.argument)};`:"return;";case"BreakStatement":return"break;";case"ContinueStatement":return"continue;";case"IfStatement":{const r=e.alternate?` else${s(e.consequent)}`:"";return`if(${s(e.test)})${s(e.consequent)}${r}`}case"SwitchStatement":return`switch(${s(e.discriminant)}){${e.cases.map(s).join("")}}`;case"SwitchCase":return`case ${e.test?s(e.test):"default"}:{${e.consequent.map(s).join(";")}}`;case"WhileStatement":return`while (${s(e.test)}) ${s(e.body)}`;case"DoWhileStatement":return`do ${s(e.body)}while(${s(e.test)})`;case"ForStatement":return`for(${s(e.init)};${s(e.test)};${s(e.update)})${s(e.body)}`;case"FunctionDeclaration":{const r=e.qualifiers.length?`${e.qualifiers.join(" ")} `:"",t=e.body?s(e.body):";";return`${r}${s(e.typeSpecifier)} ${s(e.id)}(${e.params.map(s).join(",")})${t}`}case"FunctionParameter":{const r=e.qualifiers.length?`${e.qualifiers.join(" ")} `:"",t=e.id?` ${s(e.id)}`:"";return`${r}${s(e.typeSpecifier)}${t}`}case"VariableDeclaration":{const r=e.declarations[0],t=E(r.layout),a=r.qualifiers.length?`${r.qualifiers.join(" ")} `:"";return`${t}${a}${s(r.typeSpecifier)} ${e.declarations.map(s).join(",")};`}case"VariableDeclarator":{const r=e.init?`=${s(e.init)}`:"";return`${s(e.id)}${r}`}case"StructuredBufferDeclaration":{const r=E(e.layout),t=e.id?`${s(e.id)}`:"";return`${r}${e.qualifiers.join(" ")} ${s(e.typeSpecifier)}{${e.members.map(s).join("")}}${t};`}case"StructDeclaration":return`struct ${s(e.id)}{${e.members.map(s).join("")}};`;case"ArrayExpression":return`${s(e.typeSpecifier)}(${e.elements.map(s).join(",")})`;case"UnaryExpression":case"UpdateExpression":return e.prefix?`${e.operator}${s(e.argument)}`:`${s(e.argument)}${e.operator}`;case"BinaryExpression":case"AssignmentExpression":case"LogicalExpression":return`${s(e.left)}${e.operator}${s(e.right)}`;case"MemberExpression":return e.computed?`${s(e.object)}[${s(e.property)}]`:`${s(e.object)}.${s(e.property)}`;case"ConditionalExpression":return`${s(e.test)}?${s(e.
|
|
3
|
+
`}case"PrecisionQualifierStatement":return`precision ${e.precision} ${e.typeSpecifier.name};`;case"InvariantQualifierStatement":return`invariant ${s(e.typeSpecifier)};`;case"LayoutQualifierStatement":return`${E(e.layout)}${e.qualifier};`;case"ReturnStatement":return e.argument?`return ${s(e.argument)};`:"return;";case"BreakStatement":return"break;";case"ContinueStatement":return"continue;";case"IfStatement":{const r=e.alternate?` else${s(e.consequent)}`:"";return`if(${s(e.test)})${s(e.consequent)}${r}`}case"SwitchStatement":return`switch(${s(e.discriminant)}){${e.cases.map(s).join("")}}`;case"SwitchCase":return`case ${e.test?s(e.test):"default"}:{${e.consequent.map(s).join(";")}}`;case"WhileStatement":return`while (${s(e.test)}) ${s(e.body)}`;case"DoWhileStatement":return`do ${s(e.body)}while(${s(e.test)})`;case"ForStatement":return`for(${s(e.init)};${s(e.test)};${s(e.update)})${s(e.body)}`;case"FunctionDeclaration":{const r=e.qualifiers.length?`${e.qualifiers.join(" ")} `:"",t=e.body?s(e.body):";";return`${r}${s(e.typeSpecifier)} ${s(e.id)}(${e.params.map(s).join(",")})${t}`}case"FunctionParameter":{const r=e.qualifiers.length?`${e.qualifiers.join(" ")} `:"",t=e.id?` ${s(e.id)}`:"";return`${r}${s(e.typeSpecifier)}${t}`}case"VariableDeclaration":{const r=e.declarations[0],t=E(r.layout),a=r.qualifiers.length?`${r.qualifiers.join(" ")} `:"";return`${t}${a}${s(r.typeSpecifier)} ${e.declarations.map(s).join(",")};`}case"VariableDeclarator":{const r=e.init?`=${s(e.init)}`:"";return`${s(e.id)}${r}`}case"StructuredBufferDeclaration":{const r=E(e.layout),t=e.id?`${s(e.id)}`:"";return`${r}${e.qualifiers.join(" ")} ${s(e.typeSpecifier)}{${e.members.map(s).join("")}}${t};`}case"StructDeclaration":return`struct ${s(e.id)}{${e.members.map(s).join("")}};`;case"ArrayExpression":return`${s(e.typeSpecifier)}(${e.elements.map(s).join(",")})`;case"UnaryExpression":case"UpdateExpression":return e.prefix?`${e.operator}${s(e.argument)}`:`${s(e.argument)}${e.operator}`;case"BinaryExpression":case"AssignmentExpression":case"LogicalExpression":return`${s(e.left)}${e.operator}${s(e.right)}`;case"MemberExpression":return e.computed?`${s(e.object)}[${s(e.property)}]`:`${s(e.object)}.${s(e.property)}`;case"ConditionalExpression":return`${s(e.test)}?${s(e.alternate)}:${s(e.consequent)}`;case"CallExpression":return`${s(e.callee)}(${e.arguments.map(s).join(",")})`;case"Program":return`${e.body.map(s).join("")}`;default:return e}}function J(e,r){return s(e).replaceAll(`
|
|
4
4
|
|
|
5
5
|
`,`
|
|
6
6
|
`).replaceAll("] ","]").trim()}const ee=/\bfn\s+\w+\s*\(|\b(var|let|const)\s+\w+\s*[:=]/,q=/((\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?|\d+[eEpP][-+]?\d+)[fFhH]?/y,j=/(0[xX][\w\d]+|\d+)[iIuU]?/y,te=/^(true|false)$/,re=48,ae=57,ne=65,ie=90,oe=10,se=13,ue=9,le=32,ce=95,pe=46,F=47,R=42,me=35,fe=64,C=e=>re<=e&&e<=ae,de=e=>(e&=-33,ne<=e&&e<=ie),xe=e=>e===oe||e===se,T=e=>xe(e)||e===ue||e===le,G=e=>de(e)||C(e)||e===ce,ge=e=>e===me||e===fe;function O(e,r,t){return e.lastIndex=t,e.exec(r)?.[0]}function A(e,r=0){const t=[];let a=-1;const[i,u]=ee.test(e)?[w,P]:[k,U];for(;r<e.length;){let o=e[r];const m=e.charCodeAt(r++);if(T(m)){for(;T(e.charCodeAt(r));)o+=e[r++];t.push({type:"whitespace",value:o})}else if(C(m)||m===pe&&C(e.charCodeAt(r)))(o=O(q,e,r-1))?(r=q.lastIndex,t.push({type:"float",value:o})):(o=O(j,e,r-1))&&(r=j.lastIndex,t.push({type:"int",value:o}));else if(G(m)){for(;G(e.charCodeAt(r));)o+=e[r++];te.test(o)?t.push({type:"bool",value:o}):i.includes(ge(a)?String.fromCharCode(a)+o:o)?t.push({type:"keyword",value:o}):t.push({type:"identifier",value:o})}else if(m===F&&(e.charCodeAt(r)===F||e.charCodeAt(r)===R)){const f=e.charCodeAt(r)===R?"*/":`
|
|
7
7
|
`;for(;r<e.length&&!o.endsWith(f);)o+=e[r++];t.push({type:"comment",value:o.trim()})}else{for(const f of u)f.length>o.length&&e.startsWith(f,r-1)&&(o=f);r+=o.length-1,t.push({type:"symbol",value:o})}a=m}return t}const V=/*@__PURE__*/RegExp.prototype.test.bind(/^\w/),ve=/*@__PURE__*/RegExp.prototype.test.bind(/[^\w\\]/),W=/*@__PURE__*/RegExp.prototype.test.bind(/^[_A-Za-z]/),ye=/*@__PURE__*/RegExp.prototype.test.bind(/[;{}\\@]/),z=/*@__PURE__*/RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/),he=/\bfn\s+\w+\s*\(|\b(var|let|const)\s+\w+\s*[:=]/,be=/\\\s+/gm,_e=/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm;function Se(e,{mangle:r=!1,mangleMap:t=/*@__PURE__*/new Map,mangleExternals:a=!1}={}){e=e.replace(be,""),e=e.replace(_e,"$1\\$2");const i=he.test(e)?w:k,u=/*@__PURE__*/new Map,o=A(e).filter(c=>c.type!=="whitespace"&&c.type!=="comment");let m=-1,f=-1,$=-1,x="";for(let c=0;c<o.length;c++){const d=o[c];if((z(d.value)||ye(o[c-1]?.value))&&(f=c),d.value==="{"&&W(o[c-1]?.value)?$=c-1:d.value==="}"&&($=-1),V(d.value)&&V(o[c-1]?.value)&&(x+=" "),ve(d.value)&&(o[c-2]?.value==="#"&&o[c-1]?.value==="include"||o[c-2]?.value==="#"&&o[c-1]?.value==="if"||o[c-2]?.value==="#"&&o[c-1]?.value==="elif"||o[c-3]?.value==="#"&&o[c-2]?.value==="define"))if(d.value==="("){for(;c<o.length;){const h=o[c++];if(x+=h.value,h.value===")")break}x+=" "+o[c].value;continue}else x+=" ";let y=d.value;if(o[c-1]?.value==="."&&(y=`${o[c-2]?.value}.`+y),d.type==="identifier"&&y!=="main"&&(typeof r=="boolean"?r:r(d,c,o))){const h=o[c-1]?.value==="}"&&o[c+1]?.value===";",D=z(o[f]?.value),B=D&&o[c-1]?.value===",";let g=t.get(y)??u.get(y);if(!g&&$===-1&&(W(o[c-1]?.value)||h||B||o[c-1]?.type==="symbol"&&o[c+1]?.value===":")&&(a||!D)){const I=a&&D||o[c-2]?.value==="#"||h||B||o[c-1]?.value==="fn"&&(o[c-2]?.value===")"||o[c-3]?.value==="@")?t:u;for(;!g||I.has(g)||i.includes(g);){g="",m++;let _=m;for(;_>0;)g=String.fromCharCode(97+(_-1)%26)+g,_=Math.floor(_/26)}I.set(y,g)}x+=g??d.value}else d.value==="#"&&o[c-1]?.value!=="\\"?x+=`
|
|
8
8
|
#`:d.value==="\\"?x+=`
|
|
9
|
-
`:x+=d.value}return x.trim()}const X={"~":14,"!":14,"--":14,"++":14,"-":14,"+":14},N={"--":15,"++":15,"(":0,"[":16,".":16},Q={"||":3,"^^":4,"&&":5,"|":6,"^":7,"&":8,"==":10,">":10,">=":10,"<":10,"<=":10,"!=":10,"<<":11,">>":11,"+":12,"-":12,"*":13,"/":13,"%":13},H={"=":2,"+=":2,"&=":2,"|=":2,"^=":2,"/=":2,"*=":2,"%=":2,"<<=":2,">>=":2,"-=":2,"?":9},Y=/^(const|buffer|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp|coherent|volatile|restrict|readonly|writeonly)$/,$e={"(":1,"[":1,"{":1,")":-1,"]":-1,"}":-1};function M(e){return $e[e.value]??0}function n(e,r){const t=e.shift();if(t===void 0&&r!==void 0)throw new SyntaxError(`Expected "${r}"`);if(t===void 0)throw new SyntaxError("Unexpected end of input");if(r!==void 0&&t.value!==r)throw new SyntaxError(`Expected "${r}" got "${t.value}"`);return t}function p(e,r=0){let t=n(e),a;if(t.type==="identifier"||t.type==="keyword")a={type:"Identifier",name:t.value};else if(t.type==="bool"||t.type==="float"||t.type==="int")a={type:"Literal",value:t.value};else if(t.type==="symbol"&&t.value==="(")a=p(e,0),n(e,")");else if(t.type==="symbol"&&t.value in X){const i=X[t.value],u=p(e,i);t.value==="--"||t.value==="++"?a={type:"UpdateExpression",operator:t.value,prefix:!0,argument:u}:a={type:"UnaryExpression",operator:t.value,prefix:!0,argument:u}}else throw new SyntaxError(`Unexpected token: "${t.value}"`);for(;e.length;)if(t=e[0],t.value in N){if(N[t.value]<r)break;if(n(e),t.value==="("){const i=[];for(;e[0]?.value!==")";)i.push(p(e,0)),e[0]?.value!==")"&&n(e,",");n(e,")"),a={type:"CallExpression",callee:a,arguments:i}}else if(t.value==="["){const i=e[0]?.value!=="]"?p(e,0):null;if(n(e,"]"),e[0]?.value==="("){n(e,"(");const u=[];for(;e[0]?.value!==")";)u.push(p(e,0)),e[0]?.value!==")"&&n(e,",");n(e,")"),a={type:"ArrayExpression",typeSpecifier:{type:"ArraySpecifier",typeSpecifier:a,dimensions:[i]},elements:u}}else a={type:"MemberExpression",object:a,property:i,computed:!0}}else if(t.value==="."){const i=p(e,0);a={type:"MemberExpression",object:a,property:i,computed:!1}}else t.value==="--"||t.value==="++"?a={type:"UpdateExpression",operator:t.value,prefix:!1,argument:a}:a={type:"UnaryExpression",operator:t.value,prefix:!1,argument:a}}else if(t.value in Q){const i=Q[t.value],u=i-1,o=i;if(u<r)break;if(n(e),t.value==="||"||t.value==="&&"||t.value==="^^"){const m=p(e,o);a={type:"LogicalExpression",operator:t.value,left:a,right:m}}else{const m=p(e,o);a={type:"BinaryExpression",operator:t.value,left:a,right:m}}}else if(t.value in H){const i=H[t.value],u=i,o=i-1;if(u<r)break;if(n(e),t.value==="?"){const m=p(e,0);n(e,":");const f=p(e,o);a={type:"ConditionalExpression",test:a,alternate:m,consequent:f}}else{const m=p(e,o);a={type:"AssignmentExpression",operator:t.value,left:a,right:m}}}else break;return a}function S(e){let r={type:"Identifier",name:n(e).value};if(e[0]?.value==="["){const t=[];for(;e[0]?.value==="[";)n(e,"["),e[0]?.value!=="]"?t.push(p(e)):t.push(null),n(e,"]");r={type:"ArraySpecifier",typeSpecifier:r,dimensions:t}}return r}function De(e,r,t,a){const i=S(e);let u=null;return e[0]?.value==="="&&(n(e,"="),u=p(e)),{type:"VariableDeclarator",id:i,qualifiers:t,typeSpecifier:r,layout:a,init:u}}function Z(e,r,t=[],a=null){const i=[];if(e[0]?.value!==";")for(;e.length&&(i.push(De(e,r,t,a)),e[0]?.value===",");)n(e,",");return n(e,";"),{type:"VariableDeclaration",declarations:i}}function we(e,r,t=[],a=null){const i=v(e).body;let u=null;return e[0]?.value!==";"&&(u=p(e)),n(e,";"),{type:"StructuredBufferDeclaration",id:u,qualifiers:t,typeSpecifier:r,layout:a,members:i}}function ke(e,r,t=[]){const a={type:"Identifier",name:n(e).value};n(e,"(");const i=[];for(;e[0]&&e[0].value!==")";){const o=[];for(;e[0]&&Y.test(e[0].value);)o.push(n(e).value);const m=S(e);let f=null;e[0]?.type!=="symbol"&&(f=S(e)),i.push({type:"FunctionParameter",id:f,qualifiers:o,typeSpecifier:m}),e[0]?.value===","&&n(e,",")}n(e,")");let u=null;return e[0].value===";"?n(e,";"):u=v(e),{type:"FunctionDeclaration",id:a,qualifiers:t,typeSpecifier:r,params:i,body:u}}function Ee(e,r){const t=n(e).value;return n(e,";"),{type:"LayoutQualifierStatement",layout:r,qualifier:t}}function Ce(e){n(e,"invariant");const r=p(e);return n(e,";"),{type:"InvariantQualifierStatement",typeSpecifier:r}}function Ae(e){let r=null;if(e[0].value==="layout"){for(n(e,"layout"),n(e,"("),r={};e[0]&&e[0].value!==")";){const i=p(e);if(i.type==="AssignmentExpression"&&i.left.type==="Identifier"&&i.right.type==="Literal")r[i.left.name]=i.right.value;else if(i.type==="Identifier")r[i.name]=!0;else throw new TypeError("Unexpected expression");e[0]&&e[0].value!==")"&&n(e,",")}n(e,")")}if(r!==null&&e[1]?.value===";")return Ee(e,r);if(r===null&&e[0]?.value==="invariant"&&e[1]?.type==="identifier")return Ce(e);const t=[];for(;e[0]&&Y.test(e[0].value);)t.push(n(e).value);const a=S(e);return e[0]?.value==="{"?we(e,a,t,r):e[1]?.value==="("?ke(e,a,t):Z(e,a,t,r)}function Me(e){n(e,"struct");const r={type:"Identifier",name:n(e).value};n(e,"{");const t=[];for(;e[0]&&e[0].value!=="}";)t.push(...b(e));if(n(e,"}"),e[0]?.type==="identifier"){const a=r.name,i=e.shift().value;e.push({type:"identifier",value:a},{type:"identifier",value:i},{type:"symbol",value:";"})}return n(e,";"),{type:"StructDeclaration",id:r,members:t}}function Be(e){return n(e,"continue"),n(e,";"),{type:"ContinueStatement"}}function Ie(e){return n(e,"break"),n(e,";"),{type:"BreakStatement"}}function Le(e){return n(e,"discard"),n(e,";"),{type:"DiscardStatement"}}function Ue(e){n(e,"return");let r=null;return e[0]?.value!==";"&&(r=p(e)),n(e,";"),{type:"ReturnStatement",argument:r}}function K(e){n(e,"if"),n(e,"(");const r=p(e);n(e,")");const t=v(e);let a=null;return e[0]&&e[0].value==="else"&&(n(e,"else"),e[0]&&e[0].value==="if"?a=K(e):a=v(e)),{type:"IfStatement",test:r,consequent:t,alternate:a}}function Pe(e){n(e,"while"),n(e,"(");const r=p(e);n(e,")");const t=v(e);return{type:"WhileStatement",test:r,body:t}}function qe(e){n(e,"for"),n(e,"(");const r=p(e),t=Z(e,r),a=p(e);n(e,";");const i=p(e);n(e,")");const u=v(e);return{type:"ForStatement",init:t,test:a,update:i,body:u}}function je(e){n(e,"do");const r=v(e);n(e,"while"),n(e,"(");const t=p(e);return n(e,")"),n(e,";"),{type:"DoWhileStatement",test:t,body:r}}function Fe(e){n(e,"switch");const r=p(e),t=[];for(;e.length;){const a=n(e);if(a.value==="}")break;if(a.value==="case"){const i=p(e);n(e,":");const u=b(e);t.push({type:"SwitchCase",test:i,consequent:u})}else if(a.value==="default"){n(e,":");const i=b(e);t.push({type:"SwitchCase",test:null,consequent:i})}}return{type:"SwitchStatement",discriminant:r,cases:t}}function Re(e){n(e,"precision");const r=n(e).value,t={type:"Identifier",name:n(e).value};return n(e,";"),{type:"PrecisionQualifierStatement",precision:r,typeSpecifier:t}}function Te(e){n(e,"#");let r="",t=null;if(e[0]?.value!=="\\"){if(r=n(e).value,r==="define"){const a=p(e);e[0]?.value==="\\"?t=[a]:t=[a,p(e)]}else if(r==="extension"){const a=p(e);n(e,":");const i=p(e);t=[a,i]}else if(r==="include")n(e,"<"),t=[{type:"Identifier",name:n(e).value}],n(e,">");else if(r!=="else"&&r!=="endif")for(t=[];e.length&&e[0].value!=="\\";)t.push(p(e))}return n(e,"\\"),{type:"PreprocessorStatement",name:r,value:t}}function Ge(e){const r=e[0];if(!r||r.type!=="identifier"&&r.type!=="keyword")return!1;if(r.value==="layout")return!0;let t=1,a=0;for(;t<e.length&&(a>0||M(e[t])>0);)a+=M(e[t++]);return e[t]?.type!=="symbol"}function b(e){const r=[];let t=0;for(;e.length;){const a=e[0];if(t+=M(a),t<0)break;let i=null;if(a.value==="case"||a.value==="default")break;if(a.value==="#")i=Te(e);else if(a.value==="struct")i=Me(e);else if(a.value==="continue")i=Be(e);else if(a.value==="break")i=Ie(e);else if(a.value==="discard")i=Le(e);else if(a.value==="return")i=Ue(e);else if(a.value==="if")i=K(e);else if(a.value==="while")i=Pe(e);else if(a.value==="for")i=qe(e);else if(a.value==="do")i=je(e);else if(a.value==="switch")i=Fe(e);else if(a.value==="precision")i=Re(e);else if(Ge(e))i=Ae(e);else{const u=p(e);n(e,";"),i={type:"ExpressionStatement",expression:u}}r.push(i)}return r}function v(e){n(e,"{");const r=b(e);return n(e,"}"),{type:"BlockStatement",body:r}}const Oe=/\\\s+/gm,Ve=/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm;function We(e){e=e.replace(Oe,""),e=e.replace(Ve,"$1\\$2");const r=A(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment");return{type:"Program",body:b(r)}}function l(e,r,t=[]){const a=t,i=r[e.type];switch((i?.enter??i)?.(e,a),t=[...t,e],e.type){case"ArraySpecifier":l(e.typeSpecifier,r,t);for(const u of e.dimensions)u&&l(u,r,t);break;case"ExpressionStatement":l(e.expression,r,t);break;case"BlockStatement":for(const u of e.body)l(u,r,t);break;case"PreprocessorStatement":if(e.value)for(const u of e.value)l(u,r,t);break;case"PrecisionQualifierStatement":l(e.typeSpecifier,r,t);break;case"InvariantQualifierStatement":l(e.typeSpecifier,r,t);break;case"ReturnStatement":e.argument&&l(e.argument,r,t);break;case"IfStatement":l(e.test,r,t),l(e.consequent,r,t),e.alternate&&l(e.alternate,r,t);break;case"SwitchStatement":l(e.discriminant,r,t);for(const u of e.cases)l(u,r,t);break;case"SwitchCase":e.test&&l(e.test,r,t);for(const u of e.consequent)l(u,r,t);break;case"WhileStatement":case"DoWhileStatement":l(e.test,r,t),l(e.body,r,t);break;case"ForStatement":e.init&&l(e.init,r,t),e.test&&l(e.test,r,t),e.update&&l(e.update,r,t),l(e.body,r,t);break;case"FunctionDeclaration":l(e.typeSpecifier,r,t),l(e.id,r,t),e.body&&l(e.body,r,t);break;case"FunctionParameter":l(e.typeSpecifier,r,t),e.id&&l(e.id,r,t);break;case"VariableDeclaration":for(const u of e.declarations)l(u,r,t);break;case"VariableDeclarator":l(e.typeSpecifier,r,t),l(e.id,r,t),e.init&&l(e.init,r,t);break;case"StructuredBufferDeclaration":l(e.typeSpecifier,r,t);for(const u of e.members)l(u,r,t);e.id&&l(e.id,r,t);break;case"StructDeclaration":l(e.id,r,t);for(const u of e.members)l(u,r,t);break;case"ArrayExpression":l(e.typeSpecifier,r,t);for(const u of e.elements)l(u,r,t);break;case"UnaryExpression":case"UpdateExpression":l(e.argument,r,t);break;case"BinaryExpression":case"AssignmentExpression":case"LogicalExpression":l(e.left,r,t),l(e.right,r,t);break;case"MemberExpression":l(e.object,r,t),l(e.property,r,t);break;case"ConditionalExpression":l(e.test,r,t),l(e.consequent,r,t),l(e.alternate,r,t);break;case"CallExpression":l(e.callee,r,t);for(const u of e.arguments)l(u,r,t);break;case"Program":for(const u of e.body)l(u,r,t);break}i?.exit?.(e,a)}export{k as GLSL_KEYWORDS,U as GLSL_SYMBOLS,w as WGSL_KEYWORDS,P as WGSL_SYMBOLS,J as generate,Se as minify,We as parse,A as tokenize,l as visit};
|
|
9
|
+
`:x+=d.value}return x.trim()}const X={"~":14,"!":14,"--":14,"++":14,"-":14,"+":14},N={"--":15,"++":15,"(":16,"[":17,".":17},Q={"||":3,"^^":4,"&&":5,"|":6,"^":7,"&":8,"==":10,">":10,">=":10,"<":10,"<=":10,"!=":10,"<<":11,">>":11,"+":12,"-":12,"*":13,"/":13,"%":13},H={"=":2,"+=":2,"&=":2,"|=":2,"^=":2,"/=":2,"*=":2,"%=":2,"<<=":2,">>=":2,"-=":2,"?":9},Y=/^(const|buffer|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp|coherent|volatile|restrict|readonly|writeonly|attribute|varying)$/,$e={"(":1,"[":1,"{":1,")":-1,"]":-1,"}":-1};function M(e){return $e[e.value]??0}function n(e,r){const t=e.shift();if(t===void 0&&r!==void 0)throw new SyntaxError(`Expected "${r}"`);if(t===void 0)throw new SyntaxError("Unexpected end of input");if(r!==void 0&&t.value!==r)throw new SyntaxError(`Expected "${r}" got "${t.value}"`);return t}function p(e,r=0){let t=n(e),a;if(t.type==="identifier"||t.type==="keyword")a={type:"Identifier",name:t.value};else if(t.type==="bool"||t.type==="float"||t.type==="int")a={type:"Literal",value:t.value};else if(t.type==="symbol"&&t.value==="(")a=p(e,0),n(e,")");else if(t.type==="symbol"&&t.value in X){const i=X[t.value],u=p(e,i);t.value==="--"||t.value==="++"?a={type:"UpdateExpression",operator:t.value,prefix:!0,argument:u}:a={type:"UnaryExpression",operator:t.value,prefix:!0,argument:u}}else throw new SyntaxError(`Unexpected token: "${t.value}"`);for(;e.length;)if(t=e[0],t.value in N){if(N[t.value]<r)break;if(n(e),t.value==="("){const i=[];for(;e[0]?.value!==")";)i.push(p(e,0)),e[0]?.value!==")"&&n(e,",");n(e,")"),a={type:"CallExpression",callee:a,arguments:i}}else if(t.value==="["){const i=e[0]?.value!=="]"?p(e,0):null;if(n(e,"]"),e[0]?.value==="("){n(e,"(");const u=[];for(;e[0]?.value!==")";)u.push(p(e,0)),e[0]?.value!==")"&&n(e,",");n(e,")"),a={type:"ArrayExpression",typeSpecifier:{type:"ArraySpecifier",typeSpecifier:a,dimensions:[i]},elements:u}}else a={type:"MemberExpression",object:a,property:i,computed:!0}}else if(t.value==="."){const i=p(e,0);a={type:"MemberExpression",object:a,property:i,computed:!1}}else t.value==="--"||t.value==="++"?a={type:"UpdateExpression",operator:t.value,prefix:!1,argument:a}:a={type:"UnaryExpression",operator:t.value,prefix:!1,argument:a}}else if(t.value in Q){const i=Q[t.value],u=i-1,o=i;if(u<r)break;if(n(e),t.value==="||"||t.value==="&&"||t.value==="^^"){const m=p(e,o);a={type:"LogicalExpression",operator:t.value,left:a,right:m}}else{const m=p(e,o);a={type:"BinaryExpression",operator:t.value,left:a,right:m}}}else if(t.value in H){const i=H[t.value],u=i,o=i-1;if(u<r)break;if(n(e),t.value==="?"){const m=p(e,0);n(e,":");const f=p(e,o);a={type:"ConditionalExpression",test:a,alternate:m,consequent:f}}else{const m=p(e,o);a={type:"AssignmentExpression",operator:t.value,left:a,right:m}}}else break;return a}function S(e){let r={type:"Identifier",name:n(e).value};if(e[0]?.value==="["){const t=[];for(;e[0]?.value==="[";)n(e,"["),e[0]?.value!=="]"?t.push(p(e)):t.push(null),n(e,"]");r={type:"ArraySpecifier",typeSpecifier:r,dimensions:t}}return r}function De(e,r,t,a){const i=S(e);let u=null;return e[0]?.value==="="&&(n(e,"="),u=p(e)),{type:"VariableDeclarator",id:i,qualifiers:t,typeSpecifier:r,layout:a,init:u}}function Z(e,r,t=[],a=null){const i=[];if(e[0]?.value!==";")for(;e.length&&(i.push(De(e,r,t,a)),e[0]?.value===",");)n(e,",");return n(e,";"),{type:"VariableDeclaration",declarations:i}}function we(e,r,t=[],a=null){const i=v(e).body;let u=null;return e[0]?.value!==";"&&(u=p(e)),n(e,";"),{type:"StructuredBufferDeclaration",id:u,qualifiers:t,typeSpecifier:r,layout:a,members:i}}function ke(e,r,t=[]){const a={type:"Identifier",name:n(e).value};n(e,"(");const i=[];for(;e[0]&&e[0].value!==")";){const o=[];for(;e[0]&&Y.test(e[0].value);)o.push(n(e).value);const m=S(e);let f=null;e[0]?.type!=="symbol"&&(f=S(e)),i.push({type:"FunctionParameter",id:f,qualifiers:o,typeSpecifier:m}),e[0]?.value===","&&n(e,",")}n(e,")");let u=null;return e[0].value===";"?n(e,";"):u=v(e),{type:"FunctionDeclaration",id:a,qualifiers:t,typeSpecifier:r,params:i,body:u}}function Ee(e,r){const t=n(e).value;return n(e,";"),{type:"LayoutQualifierStatement",layout:r,qualifier:t}}function Ce(e){n(e,"invariant");const r=p(e);return n(e,";"),{type:"InvariantQualifierStatement",typeSpecifier:r}}function Ae(e){let r=null;if(e[0].value==="layout"){for(n(e,"layout"),n(e,"("),r={};e[0]&&e[0].value!==")";){const i=p(e);if(i.type==="AssignmentExpression"&&i.left.type==="Identifier"&&i.right.type==="Literal")r[i.left.name]=i.right.value;else if(i.type==="Identifier")r[i.name]=!0;else throw new TypeError("Unexpected expression");e[0]&&e[0].value!==")"&&n(e,",")}n(e,")")}if(r!==null&&e[1]?.value===";")return Ee(e,r);if(r===null&&e[0]?.value==="invariant"&&e[1]?.type==="identifier")return Ce(e);const t=[];for(;e[0]&&Y.test(e[0].value);)t.push(n(e).value);const a=S(e);return e[0]?.value==="{"?we(e,a,t,r):e[1]?.value==="("?ke(e,a,t):Z(e,a,t,r)}function Me(e){n(e,"struct");const r={type:"Identifier",name:n(e).value};n(e,"{");const t=[];for(;e[0]&&e[0].value!=="}";)t.push(...b(e));if(n(e,"}"),e[0]?.type==="identifier"){const a=r.name,i=e.shift().value;e.push({type:"identifier",value:a},{type:"identifier",value:i},{type:"symbol",value:";"})}return n(e,";"),{type:"StructDeclaration",id:r,members:t}}function Be(e){return n(e,"continue"),n(e,";"),{type:"ContinueStatement"}}function Ie(e){return n(e,"break"),n(e,";"),{type:"BreakStatement"}}function Le(e){return n(e,"discard"),n(e,";"),{type:"DiscardStatement"}}function Ue(e){n(e,"return");let r=null;return e[0]?.value!==";"&&(r=p(e)),n(e,";"),{type:"ReturnStatement",argument:r}}function K(e){n(e,"if"),n(e,"(");const r=p(e);n(e,")");const t=v(e);let a=null;return e[0]&&e[0].value==="else"&&(n(e,"else"),e[0]&&e[0].value==="if"?a=K(e):a=v(e)),{type:"IfStatement",test:r,consequent:t,alternate:a}}function Pe(e){n(e,"while"),n(e,"(");const r=p(e);n(e,")");const t=v(e);return{type:"WhileStatement",test:r,body:t}}function qe(e){n(e,"for"),n(e,"(");const r=p(e),t=Z(e,r),a=p(e);n(e,";");const i=p(e);n(e,")");const u=v(e);return{type:"ForStatement",init:t,test:a,update:i,body:u}}function je(e){n(e,"do");const r=v(e);n(e,"while"),n(e,"(");const t=p(e);return n(e,")"),n(e,";"),{type:"DoWhileStatement",test:t,body:r}}function Fe(e){n(e,"switch");const r=p(e),t=[];for(;e.length;){const a=n(e);if(a.value==="}")break;if(a.value==="case"){const i=p(e);n(e,":");const u=b(e);t.push({type:"SwitchCase",test:i,consequent:u})}else if(a.value==="default"){n(e,":");const i=b(e);t.push({type:"SwitchCase",test:null,consequent:i})}}return{type:"SwitchStatement",discriminant:r,cases:t}}function Re(e){n(e,"precision");const r=n(e).value,t={type:"Identifier",name:n(e).value};return n(e,";"),{type:"PrecisionQualifierStatement",precision:r,typeSpecifier:t}}function Te(e){n(e,"#");let r="",t=null;if(e[0]?.value!=="\\"){if(r=n(e).value,r==="define"){const a=p(e);e[0]?.value==="\\"?t=[a]:t=[a,p(e)]}else if(r==="extension"){const a=p(e);n(e,":");const i=p(e);t=[a,i]}else if(r==="include")n(e,"<"),t=[{type:"Identifier",name:n(e).value}],n(e,">");else if(r!=="else"&&r!=="endif")for(t=[];e.length&&e[0].value!=="\\";)t.push(p(e))}return n(e,"\\"),{type:"PreprocessorStatement",name:r,value:t}}function Ge(e){const r=e[0];if(!r||r.type!=="identifier"&&r.type!=="keyword")return!1;if(r.value==="layout")return!0;let t=1,a=0;for(;t<e.length&&(a>0||M(e[t])>0);)a+=M(e[t++]);return e[t]?.type!=="symbol"}function b(e){const r=[];let t=0;for(;e.length;){const a=e[0];if(t+=M(a),t<0)break;let i=null;if(a.value==="case"||a.value==="default")break;if(a.value==="#")i=Te(e);else if(a.value==="struct")i=Me(e);else if(a.value==="continue")i=Be(e);else if(a.value==="break")i=Ie(e);else if(a.value==="discard")i=Le(e);else if(a.value==="return")i=Ue(e);else if(a.value==="if")i=K(e);else if(a.value==="while")i=Pe(e);else if(a.value==="for")i=qe(e);else if(a.value==="do")i=je(e);else if(a.value==="switch")i=Fe(e);else if(a.value==="precision")i=Re(e);else if(Ge(e))i=Ae(e);else{const u=p(e);n(e,";"),i={type:"ExpressionStatement",expression:u}}r.push(i)}return r}function v(e){n(e,"{");const r=b(e);return n(e,"}"),{type:"BlockStatement",body:r}}const Oe=/\\\s+/gm,Ve=/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm;function We(e){e=e.replace(Oe,""),e=e.replace(Ve,"$1\\$2");const r=A(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment");return{type:"Program",body:b(r)}}function l(e,r,t=[]){const a=t,i=r[e.type];switch((i?.enter??i)?.(e,a),t=[...t,e],e.type){case"ArraySpecifier":l(e.typeSpecifier,r,t);for(const u of e.dimensions)u&&l(u,r,t);break;case"ExpressionStatement":l(e.expression,r,t);break;case"BlockStatement":for(const u of e.body)l(u,r,t);break;case"PreprocessorStatement":if(e.value)for(const u of e.value)l(u,r,t);break;case"PrecisionQualifierStatement":l(e.typeSpecifier,r,t);break;case"InvariantQualifierStatement":l(e.typeSpecifier,r,t);break;case"ReturnStatement":e.argument&&l(e.argument,r,t);break;case"IfStatement":l(e.test,r,t),l(e.consequent,r,t),e.alternate&&l(e.alternate,r,t);break;case"SwitchStatement":l(e.discriminant,r,t);for(const u of e.cases)l(u,r,t);break;case"SwitchCase":e.test&&l(e.test,r,t);for(const u of e.consequent)l(u,r,t);break;case"WhileStatement":case"DoWhileStatement":l(e.test,r,t),l(e.body,r,t);break;case"ForStatement":e.init&&l(e.init,r,t),e.test&&l(e.test,r,t),e.update&&l(e.update,r,t),l(e.body,r,t);break;case"FunctionDeclaration":l(e.typeSpecifier,r,t),l(e.id,r,t),e.body&&l(e.body,r,t);break;case"FunctionParameter":l(e.typeSpecifier,r,t),e.id&&l(e.id,r,t);break;case"VariableDeclaration":for(const u of e.declarations)l(u,r,t);break;case"VariableDeclarator":l(e.typeSpecifier,r,t),l(e.id,r,t),e.init&&l(e.init,r,t);break;case"StructuredBufferDeclaration":l(e.typeSpecifier,r,t);for(const u of e.members)l(u,r,t);e.id&&l(e.id,r,t);break;case"StructDeclaration":l(e.id,r,t);for(const u of e.members)l(u,r,t);break;case"ArrayExpression":l(e.typeSpecifier,r,t);for(const u of e.elements)l(u,r,t);break;case"UnaryExpression":case"UpdateExpression":l(e.argument,r,t);break;case"BinaryExpression":case"AssignmentExpression":case"LogicalExpression":l(e.left,r,t),l(e.right,r,t);break;case"MemberExpression":l(e.object,r,t),l(e.property,r,t);break;case"ConditionalExpression":l(e.test,r,t),l(e.consequent,r,t),l(e.alternate,r,t);break;case"CallExpression":l(e.callee,r,t);for(const u of e.arguments)l(u,r,t);break;case"Program":for(const u of e.body)l(u,r,t);break}i?.exit?.(e,a)}export{k as GLSL_KEYWORDS,U as GLSL_SYMBOLS,w as WGSL_KEYWORDS,P as WGSL_SYMBOLS,J as generate,Se as minify,We as parse,A as tokenize,l as visit};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/constants.ts","../src/generator.ts","../src/tokenizer.ts","../src/minifier.ts","../src/parser.ts","../src/visitor.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","formatLayout","layout","k","v","format","node","d","value","alternate","qualifiers","body","id","head","init","scope","generate","program","options","WGSL_REGEX","FLOAT_REGEX","INT_REGEX","BOOL_REGEX","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","DOT","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","matchAsPrefix","regex","string","start","tokenize","code","index","tokens","prev","KEYWORDS","char","terminator","symbol","isWord","xe","isSymbol","isName","he","j","NEWLINE_REGEX","DIRECTIVE_REGEX","minify","mangle","mangleMap","mangleExternals","mangleCache","l","s","token","mangleIndex","lineIndex","blockIndex","minified","i","isStorage","isScoped","next","prefix","namespace","storage","list","renamed","cache","PREFIX_OPERATOR_PRECEDENCE","POSTFIX_OPERATOR_PRECEDENCE","INFIX_OPERATOR_PRECEDENCE_LEFT","INFIX_OPERATOR_PRECEDENCE_RIGHT","QUALIFIER_REGEX","SCOPE_DELTAS","getScopeDelta","consume","expected","parseExpression","minBindingPower","lhs","rightBindingPower","rhs","args","elements","precedence","leftBindingPower","mhs","parseTypeSpecifier","typeSpecifier","dimensions","parseVariableDeclarator","parseVariable","declarations","parseBufferInterface","members","parseBlock","parseFunction","params","parseLayoutQualifier","qualifier","parseInvariant","parseIndeterminate","expression","parseStruct","parseStatements","type","name","parseContinue","parseBreak","parseDiscard","parseReturn","argument","parseIf","test","consequent","parseWhile","parseFor","update","parseDoWhile","parseSwitch","discriminant","cases","parsePrecision","precision","parsePreprocessor","left","right","isVariable","scopeIndex","statement","parse","visit","visitors","ancestors","parentAncestors","visitor","dimension","kase","declaration","member","element"],"mappings":"AACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SAEA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SAEA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OAGA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WACA,gBACA,cACA,mBACA,QACA,WACA,MACA,MACA,MAGA,cACA,UACA,cACA,aACA,gBACA,aACA,mBACA,oBACA,mBACA,iBACA,uBACA,cACA,oBACA,kBACA,wBAGA,OACA,OACA,SAGA,WAKA,eACA,kBACA,YACA,cACA,gBACA,kBACA,sBACA,oBACA,mBACA,uBACA,qBAGA,YAIA,gBACA,oBAMA,SACA,SAGA,sBAGA,mBACA,mBACA,iBACA,uBACA,wBACA,0BAGA,mBACA,4BACA,8BACA,6BACA,8BACA,sCACA,8BACA,6BACA,iCACA,iCACA,8BACA,oCACA,6BACA,+BACA,+BACA,8BACA,qCACA,mCACA,qCACA,gCAGA,YACA,eACA,eACA,iBACA,iBAGA,kBACA,iBACA,kBACA,WACA,UACA,UACA,YACA,aACA,eACA,eAGA,yBACA,yBACA,gBAGA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,iBAGA,YACA,aAGA,UAGA,gBACA,6BACA,sBACA,qBACA,sBACA,oBACF,EAEMC,EAAU,CAEd,KACA,KACA,KAGA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAGA,IACA,KACA,KACA,IAGA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,KACA,KAGA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,IACF,EAGaC,EAAe,CAC1B,GAAGD,EAEH,IAEA,IACF,EAGaE,EAAe,CAC1B,GAAGF,EAEH,KAEA,GACF,EC1+BA,SAASG,EAAaC,EAAyD,CACxEA,OAAAA,EAEE,UAAU,OAAO,QAAQA,CAAM,EACnC,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAOA,IAAM,GAAOD,EAAI,GAAGA,CAAC,IAAIC,CAAC,EAAG,EAC9C,KAAK,GAAG,CAAC,IAJQ,EAKtB,CAGA,SAASC,EAAOC,EAA0B,CACpC,GAAA,CAACA,EAAa,MAAA,GAElB,OAAQA,EAAK,KAAM,CACjB,IAAK,aACH,OAAOA,EAAK,KACd,IAAK,UACH,OAAOA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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/constants.ts","../src/generator.ts","../src/tokenizer.ts","../src/minifier.ts","../src/parser.ts","../src/visitor.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","formatLayout","layout","k","v","format","node","d","value","alternate","qualifiers","body","id","head","init","scope","generate","program","options","WGSL_REGEX","FLOAT_REGEX","INT_REGEX","BOOL_REGEX","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","DOT","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","matchAsPrefix","regex","string","start","tokenize","code","index","tokens","prev","KEYWORDS","char","terminator","symbol","isWord","xe","isSymbol","isName","he","j","NEWLINE_REGEX","DIRECTIVE_REGEX","minify","mangle","mangleMap","mangleExternals","mangleCache","l","s","token","mangleIndex","lineIndex","blockIndex","minified","i","isStorage","isScoped","next","prefix","namespace","storage","list","renamed","cache","PREFIX_OPERATOR_PRECEDENCE","POSTFIX_OPERATOR_PRECEDENCE","INFIX_OPERATOR_PRECEDENCE_LEFT","INFIX_OPERATOR_PRECEDENCE_RIGHT","QUALIFIER_REGEX","SCOPE_DELTAS","getScopeDelta","consume","expected","parseExpression","minBindingPower","lhs","rightBindingPower","rhs","args","elements","precedence","leftBindingPower","mhs","parseTypeSpecifier","typeSpecifier","dimensions","parseVariableDeclarator","parseVariable","declarations","parseBufferInterface","members","parseBlock","parseFunction","params","parseLayoutQualifier","qualifier","parseInvariant","parseIndeterminate","expression","parseStruct","parseStatements","type","name","parseContinue","parseBreak","parseDiscard","parseReturn","argument","parseIf","test","consequent","parseWhile","parseFor","update","parseDoWhile","parseSwitch","discriminant","cases","parsePrecision","precision","parsePreprocessor","left","right","isVariable","scopeIndex","statement","parse","visit","visitors","ancestors","parentAncestors","visitor","dimension","kase","declaration","member","element"],"mappings":"AACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SAEA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SAEA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OAGA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WACA,gBACA,cACA,mBACA,QACA,WACA,MACA,MACA,MAGA,cACA,UACA,cACA,aACA,gBACA,aACA,mBACA,oBACA,mBACA,iBACA,uBACA,cACA,oBACA,kBACA,wBAGA,OACA,OACA,SAGA,WAKA,eACA,kBACA,YACA,cACA,gBACA,kBACA,sBACA,oBACA,mBACA,uBACA,qBAGA,YAIA,gBACA,oBAMA,SACA,SAGA,sBAGA,mBACA,mBACA,iBACA,uBACA,wBACA,0BAGA,mBACA,4BACA,8BACA,6BACA,8BACA,sCACA,8BACA,6BACA,iCACA,iCACA,8BACA,oCACA,6BACA,+BACA,+BACA,8BACA,qCACA,mCACA,qCACA,gCAGA,YACA,eACA,eACA,iBACA,iBAGA,kBACA,iBACA,kBACA,WACA,UACA,UACA,YACA,aACA,eACA,eAGA,yBACA,yBACA,gBAGA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,iBAGA,YACA,aAGA,UAGA,gBACA,6BACA,sBACA,qBACA,sBACA,oBACF,EAEMC,EAAU,CAEd,KACA,KACA,KAGA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAGA,IACA,KACA,KACA,IAGA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,KACA,KAGA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,IACF,EAGaC,EAAe,CAC1B,GAAGD,EAEH,IAEA,IACF,EAGaE,EAAe,CAC1B,GAAGF,EAEH,KAEA,GACF,EC1+BA,SAASG,EAAaC,EAAyD,CACxEA,OAAAA,EAEE,UAAU,OAAO,QAAQA,CAAM,EACnC,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAOA,IAAM,GAAOD,EAAI,GAAGA,CAAC,IAAIC,CAAC,EAAG,EAC9C,KAAK,GAAG,CAAC,IAJQ,EAKtB,CAGA,SAASC,EAAOC,EAA0B,CACpC,GAAA,CAACA,EAAa,MAAA,GAElB,OAAQA,EAAK,KAAM,CACjB,IAAK,aACH,OAAOA,EAAK,KACd,IAAK,UACH,OAAOA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"}
|
package/package.json
CHANGED
package/src/ast.ts
CHANGED
|
@@ -274,7 +274,7 @@ export interface ForStatement extends Node {
|
|
|
274
274
|
|
|
275
275
|
export type ConstantQualifier = 'const'
|
|
276
276
|
export type ParameterQualifier = 'in' | 'out' | 'inout'
|
|
277
|
-
export type StorageQualifier = 'uniform' | 'in' | 'out'
|
|
277
|
+
export type StorageQualifier = 'uniform' | 'in' | 'out' | 'attribute' | 'varying'
|
|
278
278
|
export type InterfaceStorageQualifier = 'uniform' | 'buffer'
|
|
279
279
|
export type MemoryQualifier = 'coherent' | 'volatile' | 'restrict' | 'readonly' | 'writeonly'
|
|
280
280
|
|
package/src/generator.ts
CHANGED
|
@@ -106,7 +106,7 @@ function format(node: AST | null): string {
|
|
|
106
106
|
? `${format(node.object)}[${format(node.property)}]`
|
|
107
107
|
: `${format(node.object)}.${format(node.property)}`
|
|
108
108
|
case 'ConditionalExpression':
|
|
109
|
-
return `${format(node.test)}?${format(node.
|
|
109
|
+
return `${format(node.test)}?${format(node.alternate)}:${format(node.consequent)}`
|
|
110
110
|
case 'CallExpression':
|
|
111
111
|
return `${format(node.callee)}(${node.arguments.map(format).join(',')})`
|
|
112
112
|
case 'Program':
|
package/src/parser.ts
CHANGED
|
@@ -61,6 +61,7 @@ enum Precedence {
|
|
|
61
61
|
MULTIPLY,
|
|
62
62
|
UNARY_PREFIX,
|
|
63
63
|
UNARY_POSTFIX,
|
|
64
|
+
CALL,
|
|
64
65
|
MEMBER,
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -76,7 +77,7 @@ const PREFIX_OPERATOR_PRECEDENCE: Record<string, Precedence> = {
|
|
|
76
77
|
const POSTFIX_OPERATOR_PRECEDENCE: Record<string, Precedence> = {
|
|
77
78
|
'--': Precedence.UNARY_POSTFIX,
|
|
78
79
|
'++': Precedence.UNARY_POSTFIX,
|
|
79
|
-
'(': Precedence.
|
|
80
|
+
'(': Precedence.CALL,
|
|
80
81
|
'[': Precedence.MEMBER,
|
|
81
82
|
'.': Precedence.MEMBER,
|
|
82
83
|
}
|
|
@@ -119,7 +120,7 @@ const INFIX_OPERATOR_PRECEDENCE_RIGHT: Record<string, Precedence> = {
|
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
const QUALIFIER_REGEX =
|
|
122
|
-
/^(const|buffer|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp|coherent|volatile|restrict|readonly|writeonly)$/
|
|
123
|
+
/^(const|buffer|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp|coherent|volatile|restrict|readonly|writeonly|attribute|varying)$/
|
|
123
124
|
|
|
124
125
|
const SCOPE_DELTAS: Record<string, number> = {
|
|
125
126
|
// Open
|