semantifold 0.4.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.
Files changed (203) hide show
  1. package/README.md +13 -7
  2. package/build/index.d.ts +12 -8
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +10 -7
  5. package/build/src/backends/android.d.ts +49 -0
  6. package/build/src/backends/android.d.ts.map +1 -0
  7. package/build/src/backends/android.js +1278 -0
  8. package/build/src/backends/identifiers.d.ts +6 -0
  9. package/build/src/backends/identifiers.d.ts.map +1 -1
  10. package/build/src/backends/identifiers.js +30 -1
  11. package/build/src/backends/ios.js +2 -2
  12. package/build/src/backends/kotlin.d.ts +10 -0
  13. package/build/src/backends/kotlin.d.ts.map +1 -1
  14. package/build/src/backends/kotlin.js +11 -9
  15. package/build/src/backends/native-validation.d.ts +2 -2
  16. package/build/src/backends/native-validation.d.ts.map +1 -1
  17. package/build/src/backends/native-validation.js +2 -2
  18. package/build/src/backends/program.d.ts +6 -4
  19. package/build/src/backends/program.d.ts.map +1 -1
  20. package/build/src/backends/program.js +5 -4
  21. package/build/src/backends/scalars.d.ts.map +1 -1
  22. package/build/src/backends/scalars.js +2 -1
  23. package/build/src/backends/shared.d.ts.map +1 -1
  24. package/build/src/backends/shared.js +20 -4
  25. package/build/src/backends/writer.d.ts +21 -1
  26. package/build/src/backends/writer.d.ts.map +1 -1
  27. package/build/src/backends/writer.js +25 -2
  28. package/build/src/backends/zig-runtime.d.ts +5 -0
  29. package/build/src/backends/zig-runtime.d.ts.map +1 -0
  30. package/build/src/backends/zig-runtime.js +92 -0
  31. package/build/src/backends/zig-validation.d.ts +9 -0
  32. package/build/src/backends/zig-validation.d.ts.map +1 -0
  33. package/build/src/backends/zig-validation.js +73 -0
  34. package/build/src/backends/zig.d.ts +42 -0
  35. package/build/src/backends/zig.d.ts.map +1 -0
  36. package/build/src/backends/zig.js +584 -0
  37. package/build/src/frontends/scalars.d.ts.map +1 -1
  38. package/build/src/frontends/scalars.js +2 -1
  39. package/build/src/frontends/zig-parser.d.ts +31 -0
  40. package/build/src/frontends/zig-parser.d.ts.map +1 -0
  41. package/build/src/frontends/zig-parser.js +17 -0
  42. package/build/src/frontends/zig.d.ts +14 -0
  43. package/build/src/frontends/zig.d.ts.map +1 -0
  44. package/build/src/frontends/zig.js +970 -0
  45. package/build/src/language-registry.d.ts.map +1 -1
  46. package/build/src/language-registry.js +40 -1
  47. package/build/src/mapping.js +2 -2
  48. package/build/src/semantic/provenance.js +3 -3
  49. package/build/src/semantic/types.d.ts +184 -4
  50. package/build/src/semantic/types.d.ts.map +1 -1
  51. package/build/src/semantic/types.js +45 -3
  52. package/build/src/semantic/validate.js +2 -2
  53. package/build/src/toolchains.d.ts +6 -0
  54. package/build/src/toolchains.d.ts.map +1 -1
  55. package/build/src/toolchains.js +2 -1
  56. package/build/src/zig-bindings.d.ts +10 -0
  57. package/build/src/zig-bindings.d.ts.map +1 -0
  58. package/build/src/zig-bindings.js +54 -0
  59. package/docs/android.md +79 -0
  60. package/docs/architecture.md +13 -5
  61. package/docs/goals.md +1 -1
  62. package/docs/ios.md +1 -1
  63. package/docs/language-support.md +15 -4
  64. package/docs/parser-qualification.md +31 -1
  65. package/docs/source-maps.md +7 -3
  66. package/docs/specification.md +5 -0
  67. package/docs/testing.md +40 -3
  68. package/docs/zig.md +33 -0
  69. package/index.js +9 -6
  70. package/node_modules/semantifold-tree-sitter-zig-internal/LICENSE +15 -0
  71. package/node_modules/semantifold-tree-sitter-zig-internal/README.md +5 -0
  72. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/LICENSE +21 -0
  73. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/README.md +21 -0
  74. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/binding.gyp +29 -0
  75. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding.cc +20 -0
  76. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding_test.js +9 -0
  77. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.d.ts +28 -0
  78. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.js +11 -0
  79. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/grammar.js +900 -0
  80. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/package.json +57 -0
  81. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/darwin-arm64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  82. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/darwin-x64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  83. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/linux-arm64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  84. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/linux-x64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  85. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/win32-arm64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  86. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/prebuilds/win32-x64/@tree-sitter-grammars+tree-sitter-zig.node +0 -0
  87. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/folds.scm +23 -0
  88. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/highlights.scm +291 -0
  89. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/indents.scm +22 -0
  90. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/injections.scm +10 -0
  91. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/grammar.json +6570 -0
  92. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/node-types.json +3178 -0
  93. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/parser.c +169829 -0
  94. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/alloc.h +54 -0
  95. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/array.h +291 -0
  96. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/parser.h +266 -0
  97. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter-zig.wasm +0 -0
  98. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter.json +38 -0
  99. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/LICENSE +21 -0
  100. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/README.md +128 -0
  101. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/binding.gyp +80 -0
  102. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/index.js +916 -0
  103. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/package.json +76 -0
  104. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
  105. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
  106. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-arm64/tree-sitter.node +0 -0
  107. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
  108. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-arm64/tree-sitter.node +0 -0
  109. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
  110. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/addon_data.h +47 -0
  111. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/binding.cc +35 -0
  112. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.cc +140 -0
  113. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.h +22 -0
  114. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.cc +106 -0
  115. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.h +17 -0
  116. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.cc +70 -0
  117. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.h +19 -0
  118. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
  119. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
  120. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.cc +1088 -0
  121. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.h +30 -0
  122. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.cc +306 -0
  123. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.h +35 -0
  124. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.cc +397 -0
  125. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.h +40 -0
  126. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.cc +316 -0
  127. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.h +45 -0
  128. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
  129. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.h +52 -0
  130. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/tree-sitter.d.ts +1042 -0
  131. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1318 -0
  132. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
  133. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
  134. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
  135. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
  136. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
  137. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
  138. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +501 -0
  139. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
  140. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
  141. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +223 -0
  142. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +297 -0
  143. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
  144. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +435 -0
  145. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +49 -0
  146. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
  147. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +920 -0
  148. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2165 -0
  149. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +266 -0
  150. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +62 -0
  151. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +206 -0
  152. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4187 -0
  153. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
  154. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
  155. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +899 -0
  156. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +130 -0
  157. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1066 -0
  158. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
  159. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
  160. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
  161. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +712 -0
  162. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
  163. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
  164. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
  165. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
  166. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
  167. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
  168. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
  169. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
  170. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
  171. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
  172. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
  173. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +83 -0
  174. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
  175. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +109 -0
  176. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1302 -0
  177. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1859 -0
  178. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
  179. package/node_modules/semantifold-tree-sitter-zig-internal/package.json +21 -0
  180. package/node_modules/semantifold-tree-sitter-zig-internal/src/zig.js +134 -0
  181. package/package.json +11 -6
  182. package/src/backends/android.js +1374 -0
  183. package/src/backends/identifiers.js +30 -0
  184. package/src/backends/ios.js +1 -1
  185. package/src/backends/kotlin.js +11 -8
  186. package/src/backends/native-validation.js +1 -1
  187. package/src/backends/program.js +4 -3
  188. package/src/backends/scalars.js +1 -0
  189. package/src/backends/shared.js +22 -3
  190. package/src/backends/writer.js +27 -2
  191. package/src/backends/zig-runtime.js +93 -0
  192. package/src/backends/zig-validation.js +68 -0
  193. package/src/backends/zig.js +579 -0
  194. package/src/frontends/scalars.js +1 -0
  195. package/src/frontends/zig-parser.js +20 -0
  196. package/src/frontends/zig.js +994 -0
  197. package/src/language-registry.js +40 -0
  198. package/src/mapping.js +1 -1
  199. package/src/semantic/provenance.js +2 -2
  200. package/src/semantic/types.js +47 -2
  201. package/src/semantic/validate.js +1 -1
  202. package/src/toolchains.js +1 -0
  203. package/src/zig-bindings.js +46 -0
@@ -0,0 +1,73 @@
1
+ // @ts-check
2
+ import { unsupportedCapability } from "../diagnostic.js";
3
+ /** Repository-owned bound for frozen CST traversal and deterministic project generation. */
4
+ export const maximumZigSourceLength = 1_000_000;
5
+ /**
6
+ * Rejects statically impossible UTF-8 arena sizes without changing the semantic graph.
7
+ * @param {import("../semantic/types.js").SemanticModule} module - Fully validated module.
8
+ * @returns {void}
9
+ */
10
+ export function validateZigValues(module) {
11
+ /**
12
+ * Infers a known UTF-8 byte size while validating literal shape.
13
+ * @param {import("../semantic/types.js").Expression} expression - Expression to inspect.
14
+ * @param {Map<string, bigint | undefined>} sizes - Known binding sizes.
15
+ * @returns {bigint | undefined} Known byte size when statically available.
16
+ */
17
+ const size = (expression, sizes) => {
18
+ if (expression.kind == "IntegerLiteral" && (!Number.isSafeInteger(expression.value) || expression.value < 0 || Object.is(expression.value, -0))) {
19
+ unsupportedCapability("zig", "non-safe or noncanonical i64 literal", expression.location);
20
+ }
21
+ if (expression.kind == "StringLiteral")
22
+ return BigInt(Buffer.byteLength(expression.value, "utf8"));
23
+ if (expression.kind == "IdentifierExpression")
24
+ return sizes.get(expression.name);
25
+ if (expression.kind == "CallExpression")
26
+ expression.arguments.forEach(argument => size(argument, sizes));
27
+ else if (expression.kind == "UnaryExpression")
28
+ size(expression.operand, sizes);
29
+ else if (expression.kind == "BinaryExpression") {
30
+ const left = size(expression.left, sizes);
31
+ const right = size(expression.right, sizes);
32
+ if (expression.operation == "StringConcat") {
33
+ if ((left ?? 0n) + (right ?? 0n) > 9223372036854775807n) {
34
+ unsupportedCapability("zig", "known immutable UTF-8 slice exceeds the qualified native allocation limit", expression.location);
35
+ }
36
+ if (left !== undefined && right !== undefined)
37
+ return left + right;
38
+ }
39
+ }
40
+ return undefined;
41
+ };
42
+ /**
43
+ * Propagates conservative known string sizes through one block.
44
+ * @param {import("../semantic/types.js").Block} block - Block to inspect.
45
+ * @param {Map<string, bigint | undefined>} inherited - Sizes visible on entry.
46
+ * @returns {Map<string, bigint | undefined>} Sizes known after the block.
47
+ */
48
+ const visit = (block, inherited) => {
49
+ const sizes = new Map(inherited);
50
+ for (const statement of block.statements) {
51
+ if (statement.kind == "LocalDeclaration")
52
+ sizes.set(statement.name, size(statement.initializer, sizes));
53
+ else if (statement.kind == "AssignmentStatement")
54
+ sizes.set(statement.target.name, size(statement.expression, sizes));
55
+ else if (statement.kind == "IfStatement") {
56
+ size(statement.condition, sizes);
57
+ const left = visit(statement.consequent, sizes);
58
+ const right = statement.alternate ? visit(statement.alternate, sizes) : sizes;
59
+ for (const name of sizes.keys())
60
+ sizes.set(name, left.get(name) === right.get(name) ? left.get(name) : undefined);
61
+ }
62
+ else if (statement.kind == "ExpressionStatement" || statement.kind == "PrintStatement" || statement.kind == "ReturnStatement") {
63
+ if (statement.expression)
64
+ size(statement.expression, sizes);
65
+ }
66
+ }
67
+ return sizes;
68
+ };
69
+ for (const declaration of module.functions)
70
+ visit(declaration.body, new Map());
71
+ visit(module.entryPoint.body, new Map());
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlnLXZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvemlnLXZhbGlkYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDRGQUE0RjtBQUM1RixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLENBQUE7QUFFL0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFNO0lBQ3RDOzs7OztPQUtHO0lBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDakMsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEoscUJBQXFCLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzRixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLGVBQWU7WUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUNsRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLElBQUksc0JBQXNCO1lBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoRixJQUFJLFVBQVUsQ0FBQyxJQUFJLElBQUksZ0JBQWdCO1lBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxP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LFNBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQTtJQUVELEtBQUssTUFBTSxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVM7UUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDOUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7dW5zdXBwb3J0ZWRDYXBhYmlsaXR5fSBmcm9tIFwiLi4vZGlhZ25vc3RpYy5qc1wiXG5cbi8qKiBSZXBvc2l0b3J5LW93bmVkIGJvdW5kIGZvciBmcm96ZW4gQ1NUIHRyYXZlcnNhbCBhbmQgZGV0ZXJtaW5pc3RpYyBwcm9qZWN0IGdlbmVyYXRpb24uICovXG5leHBvcnQgY29uc3QgbWF4aW11bVppZ1NvdXJjZUxlbmd0aCA9IDFfMDAwXzAwMFxuXG4vKipcbiAqIFJlamVjdHMgc3RhdGljYWxseSBpbXBvc3NpYmxlIFVURi04IGFyZW5hIHNpemVzIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHNlbWFudGljIGdyYXBoLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY01vZHVsZX0gbW9kdWxlIC0gRnVsbHkgdmFsaWRhdGVkIG1vZHVsZS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVaaWdWYWx1ZXMobW9kdWxlKSB7XG4gIC8qKlxuICAgKiBJbmZlcnMgYSBrbm93biBVVEYtOCBieXRlIHNpemUgd2hpbGUgdmFsaWRhdGluZyBsaXRlcmFsIHNoYXBlLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkV4cHJlc3Npb259IGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7TWFwPHN0cmluZywgYmlnaW50IHwgdW5kZWZpbmVkPn0gc2l6ZXMgLSBLbm93biBiaW5kaW5nIHNpemVzLlxuICAgKiBAcmV0dXJucyB7YmlnaW50IHwgdW5kZWZpbmVkfSBLbm93biBieXRlIHNpemUgd2hlbiBzdGF0aWNhbGx5IGF2YWlsYWJsZS5cbiAgICovXG4gIGNvbnN0IHNpemUgPSAoZXhwcmVzc2lvbiwgc2l6ZXMpID0+IHtcbiAgICBpZiAoZXhwcmVzc2lvbi5raW5kID09IFwiSW50ZWdlckxpdGVyYWxcIiAmJiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGV4cHJlc3Npb24udmFsdWUpIHx8IGV4cHJlc3Npb24udmFsdWUgPCAwIHx8IE9iamVjdC5pcyhleHByZXNzaW9uLnZhbHVlLCAtMCkpKSB7XG4gICAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkoXCJ6aWdcIiwgXCJub24tc2FmZSBvciBub25jYW5vbmljYWwgaTY0IGxpdGVyYWxcIiwgZXhwcmVzc2lvbi5sb2NhdGlvbilcbiAgICB9XG4gICAgaWYgKGV4cHJlc3Npb24ua2luZCA9PSBcIlN0cmluZ0xpdGVyYWxcIikgcmV0dXJuIEJpZ0ludChCdWZmZXIuYnl0ZUxlbmd0aChleHByZXNzaW9uLnZhbHVlLCBcInV0ZjhcIikpXG4gICAgaWYgKGV4cHJlc3Npb24ua2luZCA9PSBcIklkZW50aWZpZXJFeHByZXNzaW9uXCIpIHJldHVybiBzaXplcy5nZXQoZXhwcmVzc2lvbi5uYW1lKVxuICAgIGlmIChleHByZXNzaW9uLmtpbmQgPT0gXCJDYWxsRXhwcmVzc2lvblwiKSBleHByZXNzaW9uLmFyZ3VtZW50cy5mb3JFYWNoKGFyZ3VtZW50ID0+IHNpemUoYXJndW1lbnQsIHNpemVzKSlcbiAgICBlbHNlIGlmIChleHByZXNzaW9uLmtpbmQgPT0gXCJVbmFyeUV4cHJlc3Npb25cIikgc2l6ZShleHByZXNzaW9uLm9wZXJhbmQsIHNpemVzKVxuICAgIGVsc2UgaWYgKGV4cHJlc3Npb24ua2luZCA9PSBcIkJpbmFyeUV4cHJlc3Npb25cIikge1xuICAgICAgY29uc3QgbGVmdCA9IHNpemUoZXhwcmVzc2lvbi5sZWZ0LCBzaXplcylcbiAgICAgIGNvbnN0IHJpZ2h0ID0gc2l6ZShleHByZXNzaW9uLnJpZ2h0LCBzaXplcylcblxuICAgICAgaWYgKGV4cHJlc3Npb24ub3BlcmF0aW9uID09IFwiU3RyaW5nQ29uY2F0XCIpIHtcbiAgICAgICAgaWYgKChsZWZ0ID8/IDBuKSArIChyaWdodCA/PyAwbikgPiA5MjIzMzcyMDM2ODU0Nzc1ODA3bikge1xuICAgICAgICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShcInppZ1wiLCBcImtub3duIGltbXV0YWJsZSBVVEYtOCBzbGljZSBleGNlZWRzIHRoZSBxdWFsaWZpZWQgbmF0aXZlIGFsbG9jYXRpb24gbGltaXRcIiwgZXhwcmVzc2lvbi5sb2NhdGlvbilcbiAgICAgICAgfVxuICAgICAgICBpZiAobGVmdCAhPT0gdW5kZWZpbmVkICYmIHJpZ2h0ICE9PSB1bmRlZmluZWQpIHJldHVybiBsZWZ0ICsgcmlnaHRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIC8qKlxuICAgKiBQcm9wYWdhdGVzIGNvbnNlcnZhdGl2ZSBrbm93biBzdHJpbmcgc2l6ZXMgdGhyb3VnaCBvbmUgYmxvY2suXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmxvY2t9IGJsb2NrIC0gQmxvY2sgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtNYXA8c3RyaW5nLCBiaWdpbnQgfCB1bmRlZmluZWQ+fSBpbmhlcml0ZWQgLSBTaXplcyB2aXNpYmxlIG9uIGVudHJ5LlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgYmlnaW50IHwgdW5kZWZpbmVkPn0gU2l6ZXMga25vd24gYWZ0ZXIgdGhlIGJsb2NrLlxuICAgKi9cbiAgY29uc3QgdmlzaXQgPSAoYmxvY2ssIGluaGVyaXRlZCkgPT4ge1xuICAgIGNvbnN0IHNpemVzID0gbmV3IE1hcChpbmhlcml0ZWQpXG5cbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBibG9jay5zdGF0ZW1lbnRzKSB7XG4gICAgICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJMb2NhbERlY2xhcmF0aW9uXCIpIHNpemVzLnNldChzdGF0ZW1lbnQubmFtZSwgc2l6ZShzdGF0ZW1lbnQuaW5pdGlhbGl6ZXIsIHNpemVzKSlcbiAgICAgIGVsc2UgaWYgKHN0YXRlbWVudC5raW5kID09IFwiQXNzaWdubWVudFN0YXRlbWVudFwiKSBzaXplcy5zZXQoc3RhdGVtZW50LnRhcmdldC5uYW1lLCBzaXplKHN0YXRlbWVudC5leHByZXNzaW9uLCBzaXplcykpXG4gICAgICBlbHNlIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIklmU3RhdGVtZW50XCIpIHtcbiAgICAgICAgc2l6ZShzdGF0ZW1lbnQuY29uZGl0aW9uLCBzaXplcylcbiAgICAgICAgY29uc3QgbGVmdCA9IHZpc2l0KHN0YXRlbWVudC5jb25zZXF1ZW50LCBzaXplcylcbiAgICAgICAgY29uc3QgcmlnaHQgPSBzdGF0ZW1lbnQuYWx0ZXJuYXRlID8gdmlzaXQoc3RhdGVtZW50LmFsdGVybmF0ZSwgc2l6ZXMpIDogc2l6ZXNcblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2Ygc2l6ZXMua2V5cygpKSBzaXplcy5zZXQobmFtZSwgbGVmdC5nZXQobmFtZSkgPT09IHJpZ2h0LmdldChuYW1lKSA/IGxlZnQuZ2V0KG5hbWUpIDogdW5kZWZpbmVkKVxuICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIiB8fCBzdGF0ZW1lbnQua2luZCA9PSBcIlByaW50U3RhdGVtZW50XCIgfHwgc3RhdGVtZW50LmtpbmQgPT0gXCJSZXR1cm5TdGF0ZW1lbnRcIikge1xuICAgICAgICBpZiAoc3RhdGVtZW50LmV4cHJlc3Npb24pIHNpemUoc3RhdGVtZW50LmV4cHJlc3Npb24sIHNpemVzKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2l6ZXNcbiAgfVxuXG4gIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgbW9kdWxlLmZ1bmN0aW9ucykgdmlzaXQoZGVjbGFyYXRpb24uYm9keSwgbmV3IE1hcCgpKVxuICB2aXNpdChtb2R1bGUuZW50cnlQb2ludC5ib2R5LCBuZXcgTWFwKCkpXG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ export type SemanticModule = import("../semantic/types.js").SemanticModule;
2
+ export type SemanticNode = import("../semantic/types.js").SemanticNode;
3
+ export type Expression = import("../semantic/types.js").Expression;
4
+ export type Statement = import("../semantic/types.js").Statement;
5
+ export type Scalar = import("../semantic/types.js").FunctionReturnTypeName;
6
+ export type ZigPlannedValue = {
7
+ expression: Expression;
8
+ path: string;
9
+ type: Scalar;
10
+ name?: string;
11
+ };
12
+ export type ZigPlannedStep = {
13
+ result: ZigPlannedValue;
14
+ operands: ZigPlannedValue[];
15
+ rightSteps?: ZigPlannedStep[];
16
+ };
17
+ export type ZigStatementPlan = {
18
+ id: string;
19
+ steps: ZigPlannedStep[];
20
+ terminal?: ZigPlannedStep;
21
+ value?: ZigPlannedValue;
22
+ };
23
+ /**
24
+ * Produces a deterministic dependency-free Zig 0.15.2 native project after complete preflight.
25
+ * @param {{filename?: string, mapDirective?: unknown, module: SemanticModule, sourceMapFilename?: unknown, sources?: {filename: string, content: string, language?: import("../semantic/types.js").SemanticLanguage}[]}} input - Artifact request.
26
+ * @returns {{artifacts: import("../semantic/types.js").GeneratedSetArtifact[], target: string}} Candidate project.
27
+ */
28
+ export declare function generateZigProject({ filename, mapDirective, module, sourceMapFilename, sources }: {
29
+ filename?: string;
30
+ mapDirective?: unknown;
31
+ module: SemanticModule;
32
+ sourceMapFilename?: unknown;
33
+ sources?: {
34
+ filename: string;
35
+ content: string;
36
+ language?: import("../semantic/types.js").SemanticLanguage;
37
+ }[];
38
+ }): {
39
+ artifacts: import("../semantic/types.js").GeneratedSetArtifact[];
40
+ target: string;
41
+ };
42
+ //# sourceMappingURL=zig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zig.d.ts","sourceRoot":"","sources":["../../../src/backends/zig.js"],"names":[],"mappings":"AAcI,YAAyD,cAAc,GAA7D,OAAO,sBAAsB,EAAE,cAAc,CAAgB;AACvE,YAAuD,YAAY,GAAzD,OAAO,sBAAsB,EAAE,YAAY,CAAc;AACnE,YAAqD,UAAU,GAArD,OAAO,sBAAsB,EAAE,UAAU,CAAY;AAC/D,YAAoD,SAAS,GAAnD,OAAO,sBAAsB,EAAE,SAAS,CAAW;AAC7D,YAAiE,MAAM,GAA7D,OAAO,sBAAsB,EAAE,sBAAsB,CAAQ;AACvE,YAA+E,eAAe,GAApF;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,CAAiB;AAC9F,YAAiG,cAAc,GAArG;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;CAAC,CAAgB;AAC/G,YAAqG,gBAAgB,GAA3G;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CAAC,CAAkB;AA6LzH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAC,EAHpF;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAA;KAAC,EAAE,CAAA;CAGxH,GAFlF;IAAC,SAAS,EAAE,OAAO,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CA4B9F"}