semantifold 0.5.0 → 0.7.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 (201) hide show
  1. package/README.md +15 -9
  2. package/build/index.d.ts +8 -8
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +6 -6
  5. package/build/src/backends/android.js +8 -4
  6. package/build/src/backends/dart.d.ts +19 -0
  7. package/build/src/backends/dart.d.ts.map +1 -1
  8. package/build/src/backends/dart.js +28 -16
  9. package/build/src/backends/flutter.d.ts +51 -0
  10. package/build/src/backends/flutter.d.ts.map +1 -0
  11. package/build/src/backends/flutter.js +1362 -0
  12. package/build/src/backends/identifiers.d.ts +6 -0
  13. package/build/src/backends/identifiers.d.ts.map +1 -1
  14. package/build/src/backends/identifiers.js +28 -5
  15. package/build/src/backends/ios.js +2 -2
  16. package/build/src/backends/native-validation.d.ts +2 -2
  17. package/build/src/backends/native-validation.d.ts.map +1 -1
  18. package/build/src/backends/native-validation.js +2 -2
  19. package/build/src/backends/program.d.ts +4 -4
  20. package/build/src/backends/program.d.ts.map +1 -1
  21. package/build/src/backends/program.js +4 -4
  22. package/build/src/backends/scalars.d.ts.map +1 -1
  23. package/build/src/backends/scalars.js +2 -1
  24. package/build/src/backends/shared.d.ts +7 -0
  25. package/build/src/backends/shared.d.ts.map +1 -1
  26. package/build/src/backends/shared.js +14 -9
  27. package/build/src/backends/zig-runtime.d.ts +5 -0
  28. package/build/src/backends/zig-runtime.d.ts.map +1 -0
  29. package/build/src/backends/zig-runtime.js +92 -0
  30. package/build/src/backends/zig-validation.d.ts +9 -0
  31. package/build/src/backends/zig-validation.d.ts.map +1 -0
  32. package/build/src/backends/zig-validation.js +73 -0
  33. package/build/src/backends/zig.d.ts +42 -0
  34. package/build/src/backends/zig.d.ts.map +1 -0
  35. package/build/src/backends/zig.js +584 -0
  36. package/build/src/frontends/scalars.d.ts.map +1 -1
  37. package/build/src/frontends/scalars.js +2 -1
  38. package/build/src/frontends/zig-parser.d.ts +31 -0
  39. package/build/src/frontends/zig-parser.d.ts.map +1 -0
  40. package/build/src/frontends/zig-parser.js +17 -0
  41. package/build/src/frontends/zig.d.ts +14 -0
  42. package/build/src/frontends/zig.d.ts.map +1 -0
  43. package/build/src/frontends/zig.js +970 -0
  44. package/build/src/language-registry.d.ts.map +1 -1
  45. package/build/src/language-registry.js +40 -1
  46. package/build/src/mapping.js +2 -2
  47. package/build/src/semantic/provenance.js +3 -3
  48. package/build/src/semantic/types.d.ts +154 -4
  49. package/build/src/semantic/types.d.ts.map +1 -1
  50. package/build/src/semantic/types.js +39 -3
  51. package/build/src/semantic/validate.js +2 -2
  52. package/build/src/toolchains.d.ts +6 -0
  53. package/build/src/toolchains.d.ts.map +1 -1
  54. package/build/src/toolchains.js +2 -1
  55. package/build/src/zig-bindings.d.ts +10 -0
  56. package/build/src/zig-bindings.d.ts.map +1 -0
  57. package/build/src/zig-bindings.js +54 -0
  58. package/docs/android.md +7 -3
  59. package/docs/architecture.md +13 -5
  60. package/docs/flutter.md +47 -0
  61. package/docs/goals.md +1 -1
  62. package/docs/language-support.md +16 -5
  63. package/docs/parser-qualification.md +31 -1
  64. package/docs/source-maps.md +7 -3
  65. package/docs/testing.md +47 -4
  66. package/docs/zig.md +33 -0
  67. package/index.js +5 -5
  68. package/node_modules/semantifold-tree-sitter-zig-internal/LICENSE +15 -0
  69. package/node_modules/semantifold-tree-sitter-zig-internal/README.md +5 -0
  70. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/LICENSE +21 -0
  71. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/README.md +21 -0
  72. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/binding.gyp +29 -0
  73. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding.cc +20 -0
  74. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding_test.js +9 -0
  75. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.d.ts +28 -0
  76. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.js +11 -0
  77. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/grammar.js +900 -0
  78. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/package.json +57 -0
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/folds.scm +23 -0
  86. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/highlights.scm +291 -0
  87. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/indents.scm +22 -0
  88. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/injections.scm +10 -0
  89. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/grammar.json +6570 -0
  90. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/node-types.json +3178 -0
  91. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/parser.c +169829 -0
  92. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/alloc.h +54 -0
  93. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/array.h +291 -0
  94. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/parser.h +266 -0
  95. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter-zig.wasm +0 -0
  96. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter.json +38 -0
  97. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/LICENSE +21 -0
  98. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/README.md +128 -0
  99. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/binding.gyp +80 -0
  100. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/index.js +916 -0
  101. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/package.json +76 -0
  102. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
  103. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
  104. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-arm64/tree-sitter.node +0 -0
  105. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
  106. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-arm64/tree-sitter.node +0 -0
  107. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
  108. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/addon_data.h +47 -0
  109. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/binding.cc +35 -0
  110. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.cc +140 -0
  111. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.h +22 -0
  112. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.cc +106 -0
  113. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.h +17 -0
  114. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.cc +70 -0
  115. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.h +19 -0
  116. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
  117. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
  118. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.cc +1088 -0
  119. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.h +30 -0
  120. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.cc +306 -0
  121. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.h +35 -0
  122. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.cc +397 -0
  123. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.h +40 -0
  124. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.cc +316 -0
  125. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.h +45 -0
  126. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
  127. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.h +52 -0
  128. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/tree-sitter.d.ts +1042 -0
  129. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1318 -0
  130. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
  131. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
  132. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
  133. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
  134. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
  135. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
  136. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +501 -0
  137. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
  138. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
  139. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +223 -0
  140. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +297 -0
  141. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
  142. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +435 -0
  143. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +49 -0
  144. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
  145. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +920 -0
  146. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2165 -0
  147. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +266 -0
  148. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +62 -0
  149. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +206 -0
  150. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4187 -0
  151. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
  152. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
  153. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +899 -0
  154. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +130 -0
  155. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1066 -0
  156. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
  157. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
  158. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
  159. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +712 -0
  160. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
  161. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
  162. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
  163. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
  164. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
  165. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
  166. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
  167. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
  168. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
  169. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
  170. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
  171. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +83 -0
  172. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
  173. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +109 -0
  174. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1302 -0
  175. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1859 -0
  176. package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
  177. package/node_modules/semantifold-tree-sitter-zig-internal/package.json +21 -0
  178. package/node_modules/semantifold-tree-sitter-zig-internal/src/zig.js +134 -0
  179. package/package.json +11 -6
  180. package/src/backends/android.js +7 -3
  181. package/src/backends/dart.js +28 -15
  182. package/src/backends/flutter.js +1465 -0
  183. package/src/backends/identifiers.js +28 -4
  184. package/src/backends/ios.js +1 -1
  185. package/src/backends/native-validation.js +1 -1
  186. package/src/backends/program.js +3 -3
  187. package/src/backends/scalars.js +1 -0
  188. package/src/backends/shared.js +15 -11
  189. package/src/backends/zig-runtime.js +93 -0
  190. package/src/backends/zig-validation.js +68 -0
  191. package/src/backends/zig.js +579 -0
  192. package/src/frontends/scalars.js +1 -0
  193. package/src/frontends/zig-parser.js +20 -0
  194. package/src/frontends/zig.js +994 -0
  195. package/src/language-registry.js +40 -0
  196. package/src/mapping.js +1 -1
  197. package/src/semantic/provenance.js +2 -2
  198. package/src/semantic/types.js +41 -2
  199. package/src/semantic/validate.js +1 -1
  200. package/src/toolchains.js +1 -0
  201. package/src/zig-bindings.js +46 -0
@@ -0,0 +1,5 @@
1
+ /** Exact Zig 0.15.2 standard-library-only support; the frontend checks every token before collapse. */
2
+ export declare const zigRuntime = "const std = @import(\"std\");\n\nvar semantifold_arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);\n\nfn semantifold_fail(message: []const u8) noreturn {\n std.fs.File.stderr().writeAll(message) catch {};\n std.process.exit(70);\n}\n\nfn semantifold_integer_add(left: i64, right: i64) i64 {\n const result = @addWithOverflow(left, right);\n if (result[1] != 0) semantifold_fail(\"semantifold: integer overflow\\n\");\n return result[0];\n}\n\nfn semantifold_integer_subtract(left: i64, right: i64) i64 {\n const result = @subWithOverflow(left, right);\n if (result[1] != 0) semantifold_fail(\"semantifold: integer overflow\\n\");\n return result[0];\n}\n\nfn semantifold_integer_multiply(left: i64, right: i64) i64 {\n const result = @mulWithOverflow(left, right);\n if (result[1] != 0) semantifold_fail(\"semantifold: integer overflow\\n\");\n return result[0];\n}\n\nfn semantifold_integer_negate(value: i64) i64 {\n return semantifold_integer_subtract(0, value);\n}\n\nfn semantifold_string_concat(left: []const u8, right: []const u8) []const u8 {\n const size = @addWithOverflow(left.len, right.len);\n if (size[1] != 0) semantifold_fail(\"semantifold: allocation failure\\n\");\n const bytes = semantifold_arena.allocator().alloc(u8, size[0]) catch semantifold_fail(\"semantifold: allocation failure\\n\");\n @memcpy(bytes[0..left.len], left);\n @memcpy(bytes[left.len..], right);\n return bytes;\n}\n\nfn semantifold_string_equal(left: []const u8, right: []const u8) bool {\n return std.mem.eql(u8, left, right);\n}\n\nfn semantifold_string_not_equal(left: []const u8, right: []const u8) bool {\n return !std.mem.eql(u8, left, right);\n}\n\nfn semantifold_write(value: []const u8) void {\n const stdout = std.fs.File.stdout();\n stdout.writeAll(value) catch semantifold_fail(\"semantifold: output failure\\n\");\n stdout.writeAll(\"\\n\") catch semantifold_fail(\"semantifold: output failure\\n\");\n}\n\nfn semantifold_print_integer(value: i64) void {\n var buffer: [20]u8 = undefined;\n const bytes = std.fmt.bufPrint(&buffer, \"{d}\", .{value}) catch semantifold_fail(\"semantifold: output failure\\n\");\n semantifold_write(bytes);\n}\n\nfn semantifold_print_boolean(value: bool) void {\n semantifold_write(if (value) \"true\" else \"false\");\n}\n\nfn semantifold_print_string(value: []const u8) void {\n semantifold_write(value);\n}\n";
3
+ /** Fixed native-host Zig build with only the selected optimization option and no package resolution. */
4
+ export declare const zigBuild = "const std = @import(\"std\");\n\npub fn build(b: *std.Build) void {\n const optimize = b.standardOptimizeOption(.{});\n const executable = b.addExecutable(.{\n .name = \"semantifold-generated\",\n .root_module = b.createModule(.{\n .root_source_file = b.path(\"src/main.zig\"),\n .target = b.graph.host,\n .optimize = optimize,\n }),\n });\n b.installArtifact(executable);\n\n const tests = b.addTest(.{ .root_module = executable.root_module });\n const run_tests = b.addRunArtifact(tests);\n const test_step = b.step(\"test\", \"Compile and run tests\");\n test_step.dependOn(&run_tests.step);\n}\n";
5
+ //# sourceMappingURL=zig-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zig-runtime.d.ts","sourceRoot":"","sources":["../../../src/backends/zig-runtime.js"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,eAAO,MAAM,UAAU,g5EAmEtB,CAAA;AAED,wGAAwG;AACxG,eAAO,MAAM,QAAQ,0qBAmBpB,CAAA"}
@@ -0,0 +1,92 @@
1
+ // @ts-check
2
+ /** Exact Zig 0.15.2 standard-library-only support; the frontend checks every token before collapse. */
3
+ export const zigRuntime = `const std = @import("std");
4
+
5
+ var semantifold_arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
6
+
7
+ fn semantifold_fail(message: []const u8) noreturn {
8
+ std.fs.File.stderr().writeAll(message) catch {};
9
+ std.process.exit(70);
10
+ }
11
+
12
+ fn semantifold_integer_add(left: i64, right: i64) i64 {
13
+ const result = @addWithOverflow(left, right);
14
+ if (result[1] != 0) semantifold_fail("semantifold: integer overflow\\n");
15
+ return result[0];
16
+ }
17
+
18
+ fn semantifold_integer_subtract(left: i64, right: i64) i64 {
19
+ const result = @subWithOverflow(left, right);
20
+ if (result[1] != 0) semantifold_fail("semantifold: integer overflow\\n");
21
+ return result[0];
22
+ }
23
+
24
+ fn semantifold_integer_multiply(left: i64, right: i64) i64 {
25
+ const result = @mulWithOverflow(left, right);
26
+ if (result[1] != 0) semantifold_fail("semantifold: integer overflow\\n");
27
+ return result[0];
28
+ }
29
+
30
+ fn semantifold_integer_negate(value: i64) i64 {
31
+ return semantifold_integer_subtract(0, value);
32
+ }
33
+
34
+ fn semantifold_string_concat(left: []const u8, right: []const u8) []const u8 {
35
+ const size = @addWithOverflow(left.len, right.len);
36
+ if (size[1] != 0) semantifold_fail("semantifold: allocation failure\\n");
37
+ const bytes = semantifold_arena.allocator().alloc(u8, size[0]) catch semantifold_fail("semantifold: allocation failure\\n");
38
+ @memcpy(bytes[0..left.len], left);
39
+ @memcpy(bytes[left.len..], right);
40
+ return bytes;
41
+ }
42
+
43
+ fn semantifold_string_equal(left: []const u8, right: []const u8) bool {
44
+ return std.mem.eql(u8, left, right);
45
+ }
46
+
47
+ fn semantifold_string_not_equal(left: []const u8, right: []const u8) bool {
48
+ return !std.mem.eql(u8, left, right);
49
+ }
50
+
51
+ fn semantifold_write(value: []const u8) void {
52
+ const stdout = std.fs.File.stdout();
53
+ stdout.writeAll(value) catch semantifold_fail("semantifold: output failure\\n");
54
+ stdout.writeAll("\\n") catch semantifold_fail("semantifold: output failure\\n");
55
+ }
56
+
57
+ fn semantifold_print_integer(value: i64) void {
58
+ var buffer: [20]u8 = undefined;
59
+ const bytes = std.fmt.bufPrint(&buffer, "{d}", .{value}) catch semantifold_fail("semantifold: output failure\\n");
60
+ semantifold_write(bytes);
61
+ }
62
+
63
+ fn semantifold_print_boolean(value: bool) void {
64
+ semantifold_write(if (value) "true" else "false");
65
+ }
66
+
67
+ fn semantifold_print_string(value: []const u8) void {
68
+ semantifold_write(value);
69
+ }
70
+ `;
71
+ /** Fixed native-host Zig build with only the selected optimization option and no package resolution. */
72
+ export const zigBuild = `const std = @import("std");
73
+
74
+ pub fn build(b: *std.Build) void {
75
+ const optimize = b.standardOptimizeOption(.{});
76
+ const executable = b.addExecutable(.{
77
+ .name = "semantifold-generated",
78
+ .root_module = b.createModule(.{
79
+ .root_source_file = b.path("src/main.zig"),
80
+ .target = b.graph.host,
81
+ .optimize = optimize,
82
+ }),
83
+ });
84
+ b.installArtifact(executable);
85
+
86
+ const tests = b.addTest(.{ .root_module = executable.root_module });
87
+ const run_tests = b.addRunArtifact(tests);
88
+ const test_step = b.step("test", "Compile and run tests");
89
+ test_step.dependOn(&run_tests.step);
90
+ }
91
+ `;
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlnLXJ1bnRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvemlnLXJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLHVHQUF1RztBQUN2RyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtRXpCLENBQUE7QUFFRCx3R0FBd0c7QUFDeEcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJ2QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKiBFeGFjdCBaaWcgMC4xNS4yIHN0YW5kYXJkLWxpYnJhcnktb25seSBzdXBwb3J0OyB0aGUgZnJvbnRlbmQgY2hlY2tzIGV2ZXJ5IHRva2VuIGJlZm9yZSBjb2xsYXBzZS4gKi9cbmV4cG9ydCBjb25zdCB6aWdSdW50aW1lID0gYGNvbnN0IHN0ZCA9IEBpbXBvcnQoXCJzdGRcIik7XG5cbnZhciBzZW1hbnRpZm9sZF9hcmVuYSA9IHN0ZC5oZWFwLkFyZW5hQWxsb2NhdG9yLmluaXQoc3RkLmhlYXAucGFnZV9hbGxvY2F0b3IpO1xuXG5mbiBzZW1hbnRpZm9sZF9mYWlsKG1lc3NhZ2U6IFtdY29uc3QgdTgpIG5vcmV0dXJuIHtcbiAgICBzdGQuZnMuRmlsZS5zdGRlcnIoKS53cml0ZUFsbChtZXNzYWdlKSBjYXRjaCB7fTtcbiAgICBzdGQucHJvY2Vzcy5leGl0KDcwKTtcbn1cblxuZm4gc2VtYW50aWZvbGRfaW50ZWdlcl9hZGQobGVmdDogaTY0LCByaWdodDogaTY0KSBpNjQge1xuICAgIGNvbnN0IHJlc3VsdCA9IEBhZGRXaXRoT3ZlcmZsb3cobGVmdCwgcmlnaHQpO1xuICAgIGlmIChyZXN1bHRbMV0gIT0gMCkgc2VtYW50aWZvbGRfZmFpbChcInNlbWFudGlmb2xkOiBpbnRlZ2VyIG92ZXJmbG93XFxcXG5cIik7XG4gICAgcmV0dXJuIHJlc3VsdFswXTtcbn1cblxuZm4gc2VtYW50aWZvbGRfaW50ZWdlcl9zdWJ0cmFjdChsZWZ0OiBpNjQsIHJpZ2h0OiBpNjQpIGk2NCB7XG4gICAgY29uc3QgcmVzdWx0ID0gQHN1YldpdGhPdmVyZmxvdyhsZWZ0LCByaWdodCk7XG4gICAgaWYgKHJlc3VsdFsxXSAhPSAwKSBzZW1hbnRpZm9sZF9mYWlsKFwic2VtYW50aWZvbGQ6IGludGVnZXIgb3ZlcmZsb3dcXFxcblwiKTtcbiAgICByZXR1cm4gcmVzdWx0WzBdO1xufVxuXG5mbiBzZW1hbnRpZm9sZF9pbnRlZ2VyX211bHRpcGx5KGxlZnQ6IGk2NCwgcmlnaHQ6IGk2NCkgaTY0IHtcbiAgICBjb25zdCByZXN1bHQgPSBAbXVsV2l0aE92ZXJmbG93KGxlZnQsIHJpZ2h0KTtcbiAgICBpZiAocmVzdWx0WzFdICE9IDApIHNlbWFudGlmb2xkX2ZhaWwoXCJzZW1hbnRpZm9sZDogaW50ZWdlciBvdmVyZmxvd1xcXFxuXCIpO1xuICAgIHJldHVybiByZXN1bHRbMF07XG59XG5cbmZuIHNlbWFudGlmb2xkX2ludGVnZXJfbmVnYXRlKHZhbHVlOiBpNjQpIGk2NCB7XG4gICAgcmV0dXJuIHNlbWFudGlmb2xkX2ludGVnZXJfc3VidHJhY3QoMCwgdmFsdWUpO1xufVxuXG5mbiBzZW1hbnRpZm9sZF9zdHJpbmdfY29uY2F0KGxlZnQ6IFtdY29uc3QgdTgsIHJpZ2h0OiBbXWNvbnN0IHU4KSBbXWNvbnN0IHU4IHtcbiAgICBjb25zdCBzaXplID0gQGFkZFdpdGhPdmVyZmxvdyhsZWZ0LmxlbiwgcmlnaHQubGVuKTtcbiAgICBpZiAoc2l6ZVsxXSAhPSAwKSBzZW1hbnRpZm9sZF9mYWlsKFwic2VtYW50aWZvbGQ6IGFsbG9jYXRpb24gZmFpbHVyZVxcXFxuXCIpO1xuICAgIGNvbnN0IGJ5dGVzID0gc2VtYW50aWZvbGRfYXJlbmEuYWxsb2NhdG9yKCkuYWxsb2ModTgsIHNpemVbMF0pIGNhdGNoIHNlbWFudGlmb2xkX2ZhaWwoXCJzZW1hbnRpZm9sZDogYWxsb2NhdGlvbiBmYWlsdXJlXFxcXG5cIik7XG4gICAgQG1lbWNweShieXRlc1swLi5sZWZ0Lmxlbl0sIGxlZnQpO1xuICAgIEBtZW1jcHkoYnl0ZXNbbGVmdC5sZW4uLl0sIHJpZ2h0KTtcbiAgICByZXR1cm4gYnl0ZXM7XG59XG5cbmZuIHNlbWFudGlmb2xkX3N0cmluZ19lcXVhbChsZWZ0OiBbXWNvbnN0IHU4LCByaWdodDogW11jb25zdCB1OCkgYm9vbCB7XG4gICAgcmV0dXJuIHN0ZC5tZW0uZXFsKHU4LCBsZWZ0LCByaWdodCk7XG59XG5cbmZuIHNlbWFudGlmb2xkX3N0cmluZ19ub3RfZXF1YWwobGVmdDogW11jb25zdCB1OCwgcmlnaHQ6IFtdY29uc3QgdTgpIGJvb2wge1xuICAgIHJldHVybiAhc3RkLm1lbS5lcWwodTgsIGxlZnQsIHJpZ2h0KTtcbn1cblxuZm4gc2VtYW50aWZvbGRfd3JpdGUodmFsdWU6IFtdY29uc3QgdTgpIHZvaWQge1xuICAgIGNvbnN0IHN0ZG91dCA9IHN0ZC5mcy5GaWxlLnN0ZG91dCgpO1xuICAgIHN0ZG91dC53cml0ZUFsbCh2YWx1ZSkgY2F0Y2ggc2VtYW50aWZvbGRfZmFpbChcInNlbWFudGlmb2xkOiBvdXRwdXQgZmFpbHVyZVxcXFxuXCIpO1xuICAgIHN0ZG91dC53cml0ZUFsbChcIlxcXFxuXCIpIGNhdGNoIHNlbWFudGlmb2xkX2ZhaWwoXCJzZW1hbnRpZm9sZDogb3V0cHV0IGZhaWx1cmVcXFxcblwiKTtcbn1cblxuZm4gc2VtYW50aWZvbGRfcHJpbnRfaW50ZWdlcih2YWx1ZTogaTY0KSB2b2lkIHtcbiAgICB2YXIgYnVmZmVyOiBbMjBddTggPSB1bmRlZmluZWQ7XG4gICAgY29uc3QgYnl0ZXMgPSBzdGQuZm10LmJ1ZlByaW50KCZidWZmZXIsIFwie2R9XCIsIC57dmFsdWV9KSBjYXRjaCBzZW1hbnRpZm9sZF9mYWlsKFwic2VtYW50aWZvbGQ6IG91dHB1dCBmYWlsdXJlXFxcXG5cIik7XG4gICAgc2VtYW50aWZvbGRfd3JpdGUoYnl0ZXMpO1xufVxuXG5mbiBzZW1hbnRpZm9sZF9wcmludF9ib29sZWFuKHZhbHVlOiBib29sKSB2b2lkIHtcbiAgICBzZW1hbnRpZm9sZF93cml0ZShpZiAodmFsdWUpIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiKTtcbn1cblxuZm4gc2VtYW50aWZvbGRfcHJpbnRfc3RyaW5nKHZhbHVlOiBbXWNvbnN0IHU4KSB2b2lkIHtcbiAgICBzZW1hbnRpZm9sZF93cml0ZSh2YWx1ZSk7XG59XG5gXG5cbi8qKiBGaXhlZCBuYXRpdmUtaG9zdCBaaWcgYnVpbGQgd2l0aCBvbmx5IHRoZSBzZWxlY3RlZCBvcHRpbWl6YXRpb24gb3B0aW9uIGFuZCBubyBwYWNrYWdlIHJlc29sdXRpb24uICovXG5leHBvcnQgY29uc3QgemlnQnVpbGQgPSBgY29uc3Qgc3RkID0gQGltcG9ydChcInN0ZFwiKTtcblxucHViIGZuIGJ1aWxkKGI6ICpzdGQuQnVpbGQpIHZvaWQge1xuICAgIGNvbnN0IG9wdGltaXplID0gYi5zdGFuZGFyZE9wdGltaXplT3B0aW9uKC57fSk7XG4gICAgY29uc3QgZXhlY3V0YWJsZSA9IGIuYWRkRXhlY3V0YWJsZSgue1xuICAgICAgICAubmFtZSA9IFwic2VtYW50aWZvbGQtZ2VuZXJhdGVkXCIsXG4gICAgICAgIC5yb290X21vZHVsZSA9IGIuY3JlYXRlTW9kdWxlKC57XG4gICAgICAgICAgICAucm9vdF9zb3VyY2VfZmlsZSA9IGIucGF0aChcInNyYy9tYWluLnppZ1wiKSxcbiAgICAgICAgICAgIC50YXJnZXQgPSBiLmdyYXBoLmhvc3QsXG4gICAgICAgICAgICAub3B0aW1pemUgPSBvcHRpbWl6ZSxcbiAgICAgICAgfSksXG4gICAgfSk7XG4gICAgYi5pbnN0YWxsQXJ0aWZhY3QoZXhlY3V0YWJsZSk7XG5cbiAgICBjb25zdCB0ZXN0cyA9IGIuYWRkVGVzdCgueyAucm9vdF9tb2R1bGUgPSBleGVjdXRhYmxlLnJvb3RfbW9kdWxlIH0pO1xuICAgIGNvbnN0IHJ1bl90ZXN0cyA9IGIuYWRkUnVuQXJ0aWZhY3QodGVzdHMpO1xuICAgIGNvbnN0IHRlc3Rfc3RlcCA9IGIuc3RlcChcInRlc3RcIiwgXCJDb21waWxlIGFuZCBydW4gdGVzdHNcIik7XG4gICAgdGVzdF9zdGVwLmRlcGVuZE9uKCZydW5fdGVzdHMuc3RlcCk7XG59XG5gXG4iXX0=
@@ -0,0 +1,9 @@
1
+ /** Repository-owned bound for frozen CST traversal and deterministic project generation. */
2
+ export declare const maximumZigSourceLength = 1000000;
3
+ /**
4
+ * Rejects statically impossible UTF-8 arena sizes without changing the semantic graph.
5
+ * @param {import("../semantic/types.js").SemanticModule} module - Fully validated module.
6
+ * @returns {void}
7
+ */
8
+ export declare function validateZigValues(module: import("../semantic/types.js").SemanticModule): void;
9
+ //# sourceMappingURL=zig-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zig-validation.d.ts","sourceRoot":"","sources":["../../../src/backends/zig-validation.js"],"names":[],"mappings":"AAIA,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,UAAY,CAAA;AAE/C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAH7B,OAAO,sBAAsB,EAAE,cAGF,GAF3B,IAAI,CAyDhB"}
@@ -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"}