shaderkit 0.1.1 → 0.1.3

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 CHANGED
@@ -268,20 +268,20 @@ const WGSL_KEYWORDS = [
268
268
  "writeonly",
269
269
  "yield",
270
270
  // 15.4 Context-Dependent Name Tokens - Attributes
271
- "align",
272
- "binding",
273
- "builtin",
274
- "compute",
275
- "const",
276
- "fragment",
277
- "group",
278
- "id",
279
- "interpolate",
280
- "invariant",
281
- "location",
282
- "size",
283
- "vertex",
284
- "workgroup_size",
271
+ "@align",
272
+ "@binding",
273
+ "@builtin",
274
+ "@compute",
275
+ "@const",
276
+ "@fragment",
277
+ "@group",
278
+ "@id",
279
+ "@interpolate",
280
+ "@invariant",
281
+ "@location",
282
+ "@size",
283
+ "@vertex",
284
+ "@workgroup_size",
285
285
  // 15.4 Context-Dependent Name Tokens - Interpolation Types
286
286
  "perspective",
287
287
  "linear",
@@ -629,19 +629,19 @@ const GLSL_KEYWORDS = [
629
629
  "namespace",
630
630
  "using",
631
631
  // 3.5 Preprocessor
632
- "define",
633
- "undef",
634
- "if",
635
- "ifdef",
636
- "ifndef",
637
- "else",
638
- "elif",
639
- "endif",
640
- "error",
641
- "pragma",
642
- "extension",
643
- "version",
644
- "line",
632
+ "#define",
633
+ "#undef",
634
+ "#if",
635
+ "#ifdef",
636
+ "#ifndef",
637
+ "#else",
638
+ "#elif",
639
+ "#endif",
640
+ "#error",
641
+ "#pragma",
642
+ "#extension",
643
+ "#version",
644
+ "#line",
645
645
  // 3.5 Preprocessor - Operators
646
646
  "defined",
647
647
  // 3.5 Preprocessor - Macros
@@ -772,7 +772,7 @@ const GLSL_KEYWORDS = [
772
772
  "dFdy",
773
773
  "fwidth",
774
774
  // Additional directives
775
- "include",
775
+ "#include",
776
776
  // WEBGL_multi_draw https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw
777
777
  "gl_DrawID",
778
778
  // vertex only
@@ -782,10 +782,6 @@ const GLSL_KEYWORDS = [
782
782
  "GL_OVR_multiview2"
783
783
  ];
784
784
  const SYMBOLS = [
785
- // Preprocessor (GLSL)
786
- "#",
787
- // Function arrow (WGSL)
788
- "->",
789
785
  // Comments
790
786
  "//",
791
787
  "/*",
@@ -815,6 +811,7 @@ const SYMBOLS = [
815
811
  "!",
816
812
  "+",
817
813
  "-",
814
+ "*",
818
815
  "/",
819
816
  "&",
820
817
  "|",
@@ -829,6 +826,7 @@ const SYMBOLS = [
829
826
  "!=",
830
827
  "+=",
831
828
  "-=",
829
+ "*=",
832
830
  "/=",
833
831
  "&=",
834
832
  "|=",
@@ -837,7 +835,21 @@ const SYMBOLS = [
837
835
  "<<=",
838
836
  ">>="
839
837
  ];
840
- const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\b/);
838
+ const GLSL_SYMBOLS = [
839
+ ...SYMBOLS,
840
+ // Preprocessor
841
+ "#",
842
+ // Line continuation
843
+ "\\"
844
+ ];
845
+ const WGSL_SYMBOLS = [
846
+ ...SYMBOLS,
847
+ // Function arrow
848
+ "->",
849
+ // Attribute
850
+ "@"
851
+ ];
852
+ const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/);
841
853
  const isFloat = RegExp.prototype.test.bind(/\.|[eEpP][-+]?\d|[fFhH]$/);
842
854
  const isBool = RegExp.prototype.test.bind(/^(true|false)$/);
843
855
  const ZERO = 48;
@@ -854,15 +866,19 @@ const DOT = 46;
854
866
  const UNDERSCORE = 95;
855
867
  const SLASH = 47;
856
868
  const STAR = 42;
869
+ const HASH = 35;
870
+ const AT = 64;
857
871
  const isDigit = (c) => ZERO <= c && c <= NINE;
858
872
  const isAlpha = (c) => (c &= ~32, A <= c && c <= Z);
859
873
  const isLine = (c) => c === LF || c === CR;
860
874
  const isSpace = (c) => isLine(c) || c === TAB || c === SPACE;
861
875
  const isNumber = (c) => isAlpha(c) || isDigit(c) || c === PLUS || c === MINUS || c === DOT;
862
876
  const isIdent = (c) => isAlpha(c) || isDigit(c) || c === UNDERSCORE;
877
+ const isMacro = (c) => c === HASH || c === AT;
863
878
  function tokenize(code, index = 0) {
864
879
  const tokens = [];
865
- const KEYWORDS = isWGSL(code) ? WGSL_KEYWORDS : GLSL_KEYWORDS;
880
+ let prev = -1;
881
+ const [KEYWORDS, SYMBOLS2] = isWGSL(code) ? [WGSL_KEYWORDS, WGSL_SYMBOLS] : [GLSL_KEYWORDS, GLSL_SYMBOLS];
866
882
  while (index < code.length) {
867
883
  let value = code[index];
868
884
  const char = code.charCodeAt(index++);
@@ -882,7 +898,7 @@ function tokenize(code, index = 0) {
882
898
  value += code[index++];
883
899
  if (isBool(value))
884
900
  tokens.push({ type: "bool", value });
885
- else if (KEYWORDS.includes(value))
901
+ else if (KEYWORDS.includes(isMacro(prev) ? String.fromCharCode(prev) + value : value))
886
902
  tokens.push({ type: "keyword", value });
887
903
  else
888
904
  tokens.push({ type: "identifier", value });
@@ -892,13 +908,14 @@ function tokenize(code, index = 0) {
892
908
  value += code[index++];
893
909
  tokens.push({ type: "comment", value });
894
910
  } else {
895
- for (const symbol of SYMBOLS) {
911
+ for (const symbol of SYMBOLS2) {
896
912
  if (symbol.length > value.length && code.startsWith(symbol, index - 1))
897
913
  value = symbol;
898
914
  }
899
915
  index += value.length - 1;
900
916
  tokens.push({ type: "symbol", value });
901
917
  }
918
+ prev = char;
902
919
  }
903
920
  return tokens;
904
921
  }
@@ -957,8 +974,9 @@ function minify(code, { mangle = false, mangleMap = /* @__PURE__ */ new Map(), m
957
974
  return minified.trim();
958
975
  }
959
976
  exports.GLSL_KEYWORDS = GLSL_KEYWORDS;
960
- exports.SYMBOLS = SYMBOLS;
977
+ exports.GLSL_SYMBOLS = GLSL_SYMBOLS;
961
978
  exports.WGSL_KEYWORDS = WGSL_KEYWORDS;
979
+ exports.WGSL_SYMBOLS = WGSL_SYMBOLS;
962
980
  exports.minify = minify;
963
981
  exports.tokenize = tokenize;
964
982
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":[],"mappings":";;AACO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EA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"}
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["SYMBOLS"],"mappings":";;AACO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EA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"}
package/dist/index.mjs CHANGED
@@ -266,20 +266,20 @@ const WGSL_KEYWORDS = [
266
266
  "writeonly",
267
267
  "yield",
268
268
  // 15.4 Context-Dependent Name Tokens - Attributes
269
- "align",
270
- "binding",
271
- "builtin",
272
- "compute",
273
- "const",
274
- "fragment",
275
- "group",
276
- "id",
277
- "interpolate",
278
- "invariant",
279
- "location",
280
- "size",
281
- "vertex",
282
- "workgroup_size",
269
+ "@align",
270
+ "@binding",
271
+ "@builtin",
272
+ "@compute",
273
+ "@const",
274
+ "@fragment",
275
+ "@group",
276
+ "@id",
277
+ "@interpolate",
278
+ "@invariant",
279
+ "@location",
280
+ "@size",
281
+ "@vertex",
282
+ "@workgroup_size",
283
283
  // 15.4 Context-Dependent Name Tokens - Interpolation Types
284
284
  "perspective",
285
285
  "linear",
@@ -627,19 +627,19 @@ const GLSL_KEYWORDS = [
627
627
  "namespace",
628
628
  "using",
629
629
  // 3.5 Preprocessor
630
- "define",
631
- "undef",
632
- "if",
633
- "ifdef",
634
- "ifndef",
635
- "else",
636
- "elif",
637
- "endif",
638
- "error",
639
- "pragma",
640
- "extension",
641
- "version",
642
- "line",
630
+ "#define",
631
+ "#undef",
632
+ "#if",
633
+ "#ifdef",
634
+ "#ifndef",
635
+ "#else",
636
+ "#elif",
637
+ "#endif",
638
+ "#error",
639
+ "#pragma",
640
+ "#extension",
641
+ "#version",
642
+ "#line",
643
643
  // 3.5 Preprocessor - Operators
644
644
  "defined",
645
645
  // 3.5 Preprocessor - Macros
@@ -770,7 +770,7 @@ const GLSL_KEYWORDS = [
770
770
  "dFdy",
771
771
  "fwidth",
772
772
  // Additional directives
773
- "include",
773
+ "#include",
774
774
  // WEBGL_multi_draw https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw
775
775
  "gl_DrawID",
776
776
  // vertex only
@@ -780,10 +780,6 @@ const GLSL_KEYWORDS = [
780
780
  "GL_OVR_multiview2"
781
781
  ];
782
782
  const SYMBOLS = [
783
- // Preprocessor (GLSL)
784
- "#",
785
- // Function arrow (WGSL)
786
- "->",
787
783
  // Comments
788
784
  "//",
789
785
  "/*",
@@ -813,6 +809,7 @@ const SYMBOLS = [
813
809
  "!",
814
810
  "+",
815
811
  "-",
812
+ "*",
816
813
  "/",
817
814
  "&",
818
815
  "|",
@@ -827,6 +824,7 @@ const SYMBOLS = [
827
824
  "!=",
828
825
  "+=",
829
826
  "-=",
827
+ "*=",
830
828
  "/=",
831
829
  "&=",
832
830
  "|=",
@@ -835,7 +833,21 @@ const SYMBOLS = [
835
833
  "<<=",
836
834
  ">>="
837
835
  ];
838
- const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\b/);
836
+ const GLSL_SYMBOLS = [
837
+ ...SYMBOLS,
838
+ // Preprocessor
839
+ "#",
840
+ // Line continuation
841
+ "\\"
842
+ ];
843
+ const WGSL_SYMBOLS = [
844
+ ...SYMBOLS,
845
+ // Function arrow
846
+ "->",
847
+ // Attribute
848
+ "@"
849
+ ];
850
+ const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/);
839
851
  const isFloat = RegExp.prototype.test.bind(/\.|[eEpP][-+]?\d|[fFhH]$/);
840
852
  const isBool = RegExp.prototype.test.bind(/^(true|false)$/);
841
853
  const ZERO = 48;
@@ -852,15 +864,19 @@ const DOT = 46;
852
864
  const UNDERSCORE = 95;
853
865
  const SLASH = 47;
854
866
  const STAR = 42;
867
+ const HASH = 35;
868
+ const AT = 64;
855
869
  const isDigit = (c) => ZERO <= c && c <= NINE;
856
870
  const isAlpha = (c) => (c &= ~32, A <= c && c <= Z);
857
871
  const isLine = (c) => c === LF || c === CR;
858
872
  const isSpace = (c) => isLine(c) || c === TAB || c === SPACE;
859
873
  const isNumber = (c) => isAlpha(c) || isDigit(c) || c === PLUS || c === MINUS || c === DOT;
860
874
  const isIdent = (c) => isAlpha(c) || isDigit(c) || c === UNDERSCORE;
875
+ const isMacro = (c) => c === HASH || c === AT;
861
876
  function tokenize(code, index = 0) {
862
877
  const tokens = [];
863
- const KEYWORDS = isWGSL(code) ? WGSL_KEYWORDS : GLSL_KEYWORDS;
878
+ let prev = -1;
879
+ const [KEYWORDS, SYMBOLS2] = isWGSL(code) ? [WGSL_KEYWORDS, WGSL_SYMBOLS] : [GLSL_KEYWORDS, GLSL_SYMBOLS];
864
880
  while (index < code.length) {
865
881
  let value = code[index];
866
882
  const char = code.charCodeAt(index++);
@@ -880,7 +896,7 @@ function tokenize(code, index = 0) {
880
896
  value += code[index++];
881
897
  if (isBool(value))
882
898
  tokens.push({ type: "bool", value });
883
- else if (KEYWORDS.includes(value))
899
+ else if (KEYWORDS.includes(isMacro(prev) ? String.fromCharCode(prev) + value : value))
884
900
  tokens.push({ type: "keyword", value });
885
901
  else
886
902
  tokens.push({ type: "identifier", value });
@@ -890,13 +906,14 @@ function tokenize(code, index = 0) {
890
906
  value += code[index++];
891
907
  tokens.push({ type: "comment", value });
892
908
  } else {
893
- for (const symbol of SYMBOLS) {
909
+ for (const symbol of SYMBOLS2) {
894
910
  if (symbol.length > value.length && code.startsWith(symbol, index - 1))
895
911
  value = symbol;
896
912
  }
897
913
  index += value.length - 1;
898
914
  tokens.push({ type: "symbol", value });
899
915
  }
916
+ prev = char;
900
917
  }
901
918
  return tokens;
902
919
  }
@@ -956,8 +973,9 @@ function minify(code, { mangle = false, mangleMap = /* @__PURE__ */ new Map(), m
956
973
  }
957
974
  export {
958
975
  GLSL_KEYWORDS,
959
- SYMBOLS,
976
+ GLSL_SYMBOLS,
960
977
  WGSL_KEYWORDS,
978
+ WGSL_SYMBOLS,
961
979
  minify,
962
980
  tokenize
963
981
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":[],"mappings":"AACO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["SYMBOLS"],"mappings":"AACO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gBAAgB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaderkit",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Tools and IntelliSense for GLSL and WGSL.",
5
5
  "keywords": [
6
6
  "shaders",
package/src/constants.ts CHANGED
@@ -272,20 +272,20 @@ export const WGSL_KEYWORDS = [
272
272
  'yield',
273
273
 
274
274
  // 15.4 Context-Dependent Name Tokens - Attributes
275
- 'align',
276
- 'binding',
277
- 'builtin',
278
- 'compute',
279
- 'const',
280
- 'fragment',
281
- 'group',
282
- 'id',
283
- 'interpolate',
284
- 'invariant',
285
- 'location',
286
- 'size',
287
- 'vertex',
288
- 'workgroup_size',
275
+ '@align',
276
+ '@binding',
277
+ '@builtin',
278
+ '@compute',
279
+ '@const',
280
+ '@fragment',
281
+ '@group',
282
+ '@id',
283
+ '@interpolate',
284
+ '@invariant',
285
+ '@location',
286
+ '@size',
287
+ '@vertex',
288
+ '@workgroup_size',
289
289
 
290
290
  // 15.4 Context-Dependent Name Tokens - Interpolation Types
291
291
  'perspective',
@@ -653,19 +653,19 @@ export const GLSL_KEYWORDS = [
653
653
  'using',
654
654
 
655
655
  // 3.5 Preprocessor
656
- 'define',
657
- 'undef',
658
- 'if',
659
- 'ifdef',
660
- 'ifndef',
661
- 'else',
662
- 'elif',
663
- 'endif',
664
- 'error',
665
- 'pragma',
666
- 'extension',
667
- 'version',
668
- 'line',
656
+ '#define',
657
+ '#undef',
658
+ '#if',
659
+ '#ifdef',
660
+ '#ifndef',
661
+ '#else',
662
+ '#elif',
663
+ '#endif',
664
+ '#error',
665
+ '#pragma',
666
+ '#extension',
667
+ '#version',
668
+ '#line',
669
669
 
670
670
  // 3.5 Preprocessor - Operators
671
671
  'defined',
@@ -811,7 +811,7 @@ export const GLSL_KEYWORDS = [
811
811
  'fwidth',
812
812
 
813
813
  // Additional directives
814
- 'include',
814
+ '#include',
815
815
 
816
816
  // WEBGL_multi_draw https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw
817
817
  'gl_DrawID', // vertex only
@@ -822,15 +822,7 @@ export const GLSL_KEYWORDS = [
822
822
  'GL_OVR_multiview2',
823
823
  ]
824
824
 
825
- // GLSL 3.2 Character Set, 5.1 Operators
826
- // WGSL 15.3 Syntactic Tokens
827
- export const SYMBOLS = [
828
- // Preprocessor (GLSL)
829
- '#',
830
-
831
- // Function arrow (WGSL)
832
- '->',
833
-
825
+ const SYMBOLS = [
834
826
  // Comments
835
827
  '//',
836
828
  '/*',
@@ -863,6 +855,7 @@ export const SYMBOLS = [
863
855
  '!',
864
856
  '+',
865
857
  '-',
858
+ '*',
866
859
  '/',
867
860
  '&',
868
861
  '|',
@@ -878,6 +871,7 @@ export const SYMBOLS = [
878
871
  '!=',
879
872
  '+=',
880
873
  '-=',
874
+ '*=',
881
875
  '/=',
882
876
  '&=',
883
877
  '|=',
@@ -886,3 +880,21 @@ export const SYMBOLS = [
886
880
  '<<=',
887
881
  '>>=',
888
882
  ]
883
+
884
+ // GLSL 3.2 Character Set, 5.1 Operators
885
+ export const GLSL_SYMBOLS = [
886
+ ...SYMBOLS,
887
+ // Preprocessor
888
+ '#',
889
+ // Line continuation
890
+ '\\',
891
+ ]
892
+
893
+ // WGSL 15.3 Syntactic Tokens
894
+ export const WGSL_SYMBOLS = [
895
+ ...SYMBOLS,
896
+ // Function arrow
897
+ '->',
898
+ // Attribute
899
+ '@',
900
+ ]
package/src/tokenizer.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SYMBOLS, WGSL_KEYWORDS, GLSL_KEYWORDS } from './constants'
1
+ import { WGSL_KEYWORDS, WGSL_SYMBOLS, GLSL_KEYWORDS, GLSL_SYMBOLS } from './constants'
2
2
 
3
3
  export type TokenType = 'whitespace' | 'comment' | 'symbol' | 'bool' | 'float' | 'int' | 'identifier' | 'keyword'
4
4
 
@@ -8,7 +8,7 @@ export interface Token<T = TokenType, V = string> {
8
8
  }
9
9
 
10
10
  // Checks for WGSL-specific `fn foo(`, `var bar =`, and `let baz =`
11
- const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\b/)
11
+ const isWGSL = RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/)
12
12
 
13
13
  const isFloat = RegExp.prototype.test.bind(/\.|[eEpP][-+]?\d|[fFhH]$/)
14
14
  const isBool = RegExp.prototype.test.bind(/^(true|false)$/)
@@ -27,6 +27,8 @@ const DOT = 46
27
27
  const UNDERSCORE = 95
28
28
  const SLASH = 47
29
29
  const STAR = 42
30
+ const HASH = 35
31
+ const AT = 64
30
32
 
31
33
  const isDigit = (c: number) => ZERO <= c && c <= NINE
32
34
  const isAlpha = (c: number) => ((c &= ~32), A <= c && c <= Z)
@@ -34,6 +36,7 @@ const isLine = (c: number) => c === LF || c === CR
34
36
  const isSpace = (c: number) => isLine(c) || c === TAB || c === SPACE
35
37
  const isNumber = (c: number) => isAlpha(c) || isDigit(c) || c === PLUS || c === MINUS || c === DOT
36
38
  const isIdent = (c: number) => isAlpha(c) || isDigit(c) || c === UNDERSCORE
39
+ const isMacro = (c: number) => c === HASH || c === AT
37
40
 
38
41
  /**
39
42
  * Tokenizes a string of GLSL or WGSL code.
@@ -41,7 +44,8 @@ const isIdent = (c: number) => isAlpha(c) || isDigit(c) || c === UNDERSCORE
41
44
  export function tokenize(code: string, index: number = 0): Token[] {
42
45
  const tokens: Token[] = []
43
46
 
44
- const KEYWORDS = isWGSL(code) ? WGSL_KEYWORDS : GLSL_KEYWORDS
47
+ let prev: number = -1
48
+ const [KEYWORDS, SYMBOLS] = isWGSL(code) ? [WGSL_KEYWORDS, WGSL_SYMBOLS] : [GLSL_KEYWORDS, GLSL_SYMBOLS]
45
49
  while (index < code.length) {
46
50
  let value = code[index]
47
51
  const char = code.charCodeAt(index++)
@@ -56,7 +60,8 @@ export function tokenize(code: string, index: number = 0): Token[] {
56
60
  } else if (isAlpha(char)) {
57
61
  while (isIdent(code.charCodeAt(index))) value += code[index++]
58
62
  if (isBool(value)) tokens.push({ type: 'bool', value })
59
- else if (KEYWORDS.includes(value)) tokens.push({ type: 'keyword', value })
63
+ else if (KEYWORDS.includes(isMacro(prev) ? String.fromCharCode(prev) + value : value))
64
+ tokens.push({ type: 'keyword', value })
60
65
  else tokens.push({ type: 'identifier', value })
61
66
  } else if (char === SLASH && (code.charCodeAt(index) === SLASH || code.charCodeAt(index) === STAR)) {
62
67
  const isMultiline = code.charCodeAt(index) === STAR
@@ -69,6 +74,7 @@ export function tokenize(code: string, index: number = 0): Token[] {
69
74
  index += value.length - 1
70
75
  tokens.push({ type: 'symbol', value })
71
76
  }
77
+ prev = char
72
78
  }
73
79
 
74
80
  return tokens