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.
- package/README.md +15 -9
- package/build/index.d.ts +8 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +6 -6
- package/build/src/backends/android.js +8 -4
- package/build/src/backends/dart.d.ts +19 -0
- package/build/src/backends/dart.d.ts.map +1 -1
- package/build/src/backends/dart.js +28 -16
- package/build/src/backends/flutter.d.ts +51 -0
- package/build/src/backends/flutter.d.ts.map +1 -0
- package/build/src/backends/flutter.js +1362 -0
- package/build/src/backends/identifiers.d.ts +6 -0
- package/build/src/backends/identifiers.d.ts.map +1 -1
- package/build/src/backends/identifiers.js +28 -5
- package/build/src/backends/ios.js +2 -2
- package/build/src/backends/native-validation.d.ts +2 -2
- package/build/src/backends/native-validation.d.ts.map +1 -1
- package/build/src/backends/native-validation.js +2 -2
- package/build/src/backends/program.d.ts +4 -4
- package/build/src/backends/program.d.ts.map +1 -1
- package/build/src/backends/program.js +4 -4
- package/build/src/backends/scalars.d.ts.map +1 -1
- package/build/src/backends/scalars.js +2 -1
- package/build/src/backends/shared.d.ts +7 -0
- package/build/src/backends/shared.d.ts.map +1 -1
- package/build/src/backends/shared.js +14 -9
- package/build/src/backends/zig-runtime.d.ts +5 -0
- package/build/src/backends/zig-runtime.d.ts.map +1 -0
- package/build/src/backends/zig-runtime.js +92 -0
- package/build/src/backends/zig-validation.d.ts +9 -0
- package/build/src/backends/zig-validation.d.ts.map +1 -0
- package/build/src/backends/zig-validation.js +73 -0
- package/build/src/backends/zig.d.ts +42 -0
- package/build/src/backends/zig.d.ts.map +1 -0
- package/build/src/backends/zig.js +584 -0
- package/build/src/frontends/scalars.d.ts.map +1 -1
- package/build/src/frontends/scalars.js +2 -1
- package/build/src/frontends/zig-parser.d.ts +31 -0
- package/build/src/frontends/zig-parser.d.ts.map +1 -0
- package/build/src/frontends/zig-parser.js +17 -0
- package/build/src/frontends/zig.d.ts +14 -0
- package/build/src/frontends/zig.d.ts.map +1 -0
- package/build/src/frontends/zig.js +970 -0
- package/build/src/language-registry.d.ts.map +1 -1
- package/build/src/language-registry.js +40 -1
- package/build/src/mapping.js +2 -2
- package/build/src/semantic/provenance.js +3 -3
- package/build/src/semantic/types.d.ts +154 -4
- package/build/src/semantic/types.d.ts.map +1 -1
- package/build/src/semantic/types.js +39 -3
- package/build/src/semantic/validate.js +2 -2
- package/build/src/toolchains.d.ts +6 -0
- package/build/src/toolchains.d.ts.map +1 -1
- package/build/src/toolchains.js +2 -1
- package/build/src/zig-bindings.d.ts +10 -0
- package/build/src/zig-bindings.d.ts.map +1 -0
- package/build/src/zig-bindings.js +54 -0
- package/docs/android.md +7 -3
- package/docs/architecture.md +13 -5
- package/docs/flutter.md +47 -0
- package/docs/goals.md +1 -1
- package/docs/language-support.md +16 -5
- package/docs/parser-qualification.md +31 -1
- package/docs/source-maps.md +7 -3
- package/docs/testing.md +47 -4
- package/docs/zig.md +33 -0
- package/index.js +5 -5
- package/node_modules/semantifold-tree-sitter-zig-internal/LICENSE +15 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/README.md +5 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/LICENSE +21 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/README.md +21 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/binding.gyp +29 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding.cc +20 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/binding_test.js +9 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.d.ts +28 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/bindings/node/index.js +11 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/grammar.js +900 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/package.json +57 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/folds.scm +23 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/highlights.scm +291 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/indents.scm +22 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/queries/injections.scm +10 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/grammar.json +6570 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/node-types.json +3178 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/parser.c +169829 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/alloc.h +54 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/array.h +291 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/src/tree_sitter/parser.h +266 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter-zig.wasm +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/@tree-sitter-grammars/tree-sitter-zig/tree-sitter.json +38 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/LICENSE +21 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/README.md +128 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/binding.gyp +80 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/index.js +916 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/package.json +76 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-arm64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-arm64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/addon_data.h +47 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/binding.cc +35 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.cc +140 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/conversions.h +22 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.cc +106 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/language.h +17 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.cc +70 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/logger.h +19 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.cc +1088 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/node.h +30 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.cc +306 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/parser.h +35 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.cc +397 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/query.h +40 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.cc +316 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree.h +45 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/src/tree_cursor.h +52 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/tree-sitter.d.ts +1042 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1318 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +501 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +223 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +297 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +435 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +49 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +920 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2165 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +266 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +62 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +206 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4187 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +899 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +130 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1066 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +712 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +83 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +109 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1302 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1859 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/package.json +21 -0
- package/node_modules/semantifold-tree-sitter-zig-internal/src/zig.js +134 -0
- package/package.json +11 -6
- package/src/backends/android.js +7 -3
- package/src/backends/dart.js +28 -15
- package/src/backends/flutter.js +1465 -0
- package/src/backends/identifiers.js +28 -4
- package/src/backends/ios.js +1 -1
- package/src/backends/native-validation.js +1 -1
- package/src/backends/program.js +3 -3
- package/src/backends/scalars.js +1 -0
- package/src/backends/shared.js +15 -11
- package/src/backends/zig-runtime.js +93 -0
- package/src/backends/zig-validation.js +68 -0
- package/src/backends/zig.js +579 -0
- package/src/frontends/scalars.js +1 -0
- package/src/frontends/zig-parser.js +20 -0
- package/src/frontends/zig.js +994 -0
- package/src/language-registry.js +40 -0
- package/src/mapping.js +1 -1
- package/src/semantic/provenance.js +2 -2
- package/src/semantic/types.js +41 -2
- package/src/semantic/validate.js +1 -1
- package/src/toolchains.js +1 -0
- package/src/zig-bindings.js +46 -0
package/src/language-registry.js
CHANGED
|
@@ -9,6 +9,7 @@ import {generateGoModule} from "./backends/go.js"
|
|
|
9
9
|
import {generateRustProject} from "./backends/rust.js"
|
|
10
10
|
import {generateSwift} from "./backends/swift.js"
|
|
11
11
|
import {generateDartPackage} from "./backends/dart.js"
|
|
12
|
+
import {generateZigProject} from "./backends/zig.js"
|
|
12
13
|
import {generateJavaScript} from "./backends/javascript.js"
|
|
13
14
|
import {generatePhp} from "./backends/php.js"
|
|
14
15
|
import {generatePython} from "./backends/python.js"
|
|
@@ -17,6 +18,7 @@ import {generateTypeScript} from "./backends/typescript.js"
|
|
|
17
18
|
import {generateBrowserWasm} from "./backends/wasm.js"
|
|
18
19
|
import {generateIosApplication} from "./backends/ios.js"
|
|
19
20
|
import {generateAndroidApplication} from "./backends/android.js"
|
|
21
|
+
import {generateFlutterApplication} from "./backends/flutter.js"
|
|
20
22
|
import {parseJava} from "./frontends/java.js"
|
|
21
23
|
import {parseKotlin} from "./frontends/kotlin.js"
|
|
22
24
|
import {parseCSharp} from "./frontends/csharp.js"
|
|
@@ -24,6 +26,7 @@ import {parseGo} from "./frontends/go.js"
|
|
|
24
26
|
import {parseRust} from "./frontends/rust.js"
|
|
25
27
|
import {parseSwift} from "./frontends/swift.js"
|
|
26
28
|
import {parseDart} from "./frontends/dart.js"
|
|
29
|
+
import {parseZig} from "./frontends/zig.js"
|
|
27
30
|
import {parseCpp} from "./frontends/cpp.js"
|
|
28
31
|
import {generateCpp} from "./backends/cpp.js"
|
|
29
32
|
import {parseC} from "./frontends/c.js"
|
|
@@ -373,6 +376,12 @@ const goFrontend = ({filename, source}) => parseGo({filename, source})
|
|
|
373
376
|
*/
|
|
374
377
|
const dartFrontend = ({filename, source}) => parseDart({filename, source})
|
|
375
378
|
|
|
379
|
+
/**
|
|
380
|
+
* Zig registry frontend wrapper.
|
|
381
|
+
* @type {Frontend}
|
|
382
|
+
*/
|
|
383
|
+
const zigFrontend = ({filename, source}) => parseZig({filename, source})
|
|
384
|
+
|
|
376
385
|
const records = [
|
|
377
386
|
language({
|
|
378
387
|
acceptance: {stages: ["parse", "generate", "execute"], toolchains: ["php82"]},
|
|
@@ -490,6 +499,28 @@ const records = [
|
|
|
490
499
|
mediaType: "text/x-dart",
|
|
491
500
|
textBackend: generateDartPackage
|
|
492
501
|
}),
|
|
502
|
+
language({
|
|
503
|
+
acceptance: {stages: ["parse", "generate", "compile", "validate", "execute"], toolchains: ["zig"]},
|
|
504
|
+
artifactMultiplicity: "multiple",
|
|
505
|
+
defaultFilename: "src/main.zig",
|
|
506
|
+
features: {
|
|
507
|
+
closedRecords: false,
|
|
508
|
+
conditionControlledLoops: false,
|
|
509
|
+
effectfulCapabilitiesAndResources: false,
|
|
510
|
+
generalFunctionsAndCalls: true,
|
|
511
|
+
immutableCollections: false,
|
|
512
|
+
optionalValues: false,
|
|
513
|
+
orderedListIteration: false,
|
|
514
|
+
orderedMapIteration: false,
|
|
515
|
+
referenceClasses: false,
|
|
516
|
+
typedErrors: false,
|
|
517
|
+
typeParametersAndGenerics: false
|
|
518
|
+
},
|
|
519
|
+
frontend: zigFrontend,
|
|
520
|
+
id: "zig",
|
|
521
|
+
mediaType: "text/x-zig",
|
|
522
|
+
textBackend: generateZigProject
|
|
523
|
+
}),
|
|
493
524
|
{
|
|
494
525
|
acceptance: {stages: ["generate", "validate", "instantiate", "execute"], toolchains: ["wasm-validate", "node", "chromium"]},
|
|
495
526
|
applicationBackend: generateBrowserWasm,
|
|
@@ -519,6 +550,15 @@ const records = [
|
|
|
519
550
|
id: "ios",
|
|
520
551
|
mapping: {binaryRanges: true, richText: true, sourceMapV3: true},
|
|
521
552
|
roundTrip: false
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
acceptance: {stages: ["generate", "restore", "compile", "validate", "instantiate", "execute"], toolchains: ["flutter", "android"]},
|
|
556
|
+
applicationBackend: generateFlutterApplication,
|
|
557
|
+
artifactMultiplicity: "multiple",
|
|
558
|
+
features: {closedRecords: false, conditionControlledLoops: false, effectfulCapabilitiesAndResources: false, generalFunctionsAndCalls: false, immutableCollections: false, optionalValues: false, orderedListIteration: false, orderedMapIteration: false, referenceClasses: false, typedErrors: false, typeParametersAndGenerics: false},
|
|
559
|
+
id: "flutter",
|
|
560
|
+
mapping: {binaryRanges: true, richText: true, sourceMapV3: true},
|
|
561
|
+
roundTrip: false
|
|
522
562
|
}
|
|
523
563
|
]
|
|
524
564
|
|
package/src/mapping.js
CHANGED
|
@@ -1120,7 +1120,7 @@ function validPoint(value) {
|
|
|
1120
1120
|
*/
|
|
1121
1121
|
function isSemanticLanguage(value) {
|
|
1122
1122
|
return value == "php" || value == "ruby" || value == "javascript" || value == "typescript" || value == "java" ||
|
|
1123
|
-
value == "kotlin" || value == "python" || value == "csharp" || value == "go" || value == "c" || value == "cpp" || value == "rust" || value == "swift" || value == "dart"
|
|
1123
|
+
value == "kotlin" || value == "python" || value == "csharp" || value == "go" || value == "c" || value == "cpp" || value == "rust" || value == "swift" || value == "dart" || value == "zig"
|
|
1124
1124
|
}
|
|
1125
1125
|
|
|
1126
1126
|
/**
|
|
@@ -204,7 +204,7 @@ export function createGenerationIndex(module, providedSources = []) {
|
|
|
204
204
|
*/
|
|
205
205
|
function addSource(filename, content, language) {
|
|
206
206
|
if (typeof filename != "string" || content !== null && typeof content != "string" ||
|
|
207
|
-
language !== null && !["php", "ruby", "javascript", "typescript", "java", "kotlin", "python", "csharp", "go", "c", "cpp", "rust", "swift", "dart"].includes(language)) {
|
|
207
|
+
language !== null && !["php", "ruby", "javascript", "typescript", "java", "kotlin", "python", "csharp", "go", "c", "cpp", "rust", "swift", "dart", "zig"].includes(language)) {
|
|
208
208
|
throw new TypeError("Malformed semantic source registry entry.")
|
|
209
209
|
}
|
|
210
210
|
|
|
@@ -261,7 +261,7 @@ function usableSourceProvenance(provenance) {
|
|
|
261
261
|
if (!source || typeof source.id != "string" || sourceIds.has(source.id) || typeof source.filename != "string" ||
|
|
262
262
|
source.filename.length == 0 ||
|
|
263
263
|
source.content !== null && typeof source.content != "string" || source.language !== null &&
|
|
264
|
-
!["php", "ruby", "javascript", "typescript", "java", "kotlin", "python", "csharp", "go", "c", "cpp", "rust", "swift", "dart"].includes(source.language)) return undefined
|
|
264
|
+
!["php", "ruby", "javascript", "typescript", "java", "kotlin", "python", "csharp", "go", "c", "cpp", "rust", "swift", "dart", "zig"].includes(source.language)) return undefined
|
|
265
265
|
sourceIds.add(source.id)
|
|
266
266
|
}
|
|
267
267
|
|
package/src/semantic/types.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
|
|
3
|
-
/** @typedef {"php" | "ruby" | "javascript" | "typescript" | "java" | "kotlin" | "python" | "csharp" | "go" | "c" | "cpp" | "rust" | "swift" | "dart"} SemanticLanguage */
|
|
3
|
+
/** @typedef {"php" | "ruby" | "javascript" | "typescript" | "java" | "kotlin" | "python" | "csharp" | "go" | "c" | "cpp" | "rust" | "swift" | "dart" | "zig"} SemanticLanguage */
|
|
4
4
|
/** @typedef {SemanticLanguage} TextBackendLanguage */
|
|
5
|
-
/** @typedef {TextBackendLanguage | "wasm" | "ios" | "android"} BackendLanguage */
|
|
5
|
+
/** @typedef {TextBackendLanguage | "wasm" | "ios" | "android" | "flutter"} BackendLanguage */
|
|
6
6
|
/** @typedef {SemanticLanguage | "html"} GeneratedTextLanguage */
|
|
7
7
|
/** @typedef {"integer" | "boolean" | "string"} SemanticTypeName */
|
|
8
8
|
/** @typedef {SemanticTypeName | "void"} FunctionReturnTypeName */
|
|
@@ -103,6 +103,45 @@
|
|
|
103
103
|
* @property {string} sha256 - Lowercase SHA-256 of exact UTF-8 text or bytes.
|
|
104
104
|
*/
|
|
105
105
|
|
|
106
|
+
/**
|
|
107
|
+
* @typedef FlutterApplicationConfigurationInput
|
|
108
|
+
* @property {string} [packageName] - Lowercase Dart package identity.
|
|
109
|
+
* @property {string} [organization] - Lowercase reverse-DNS owning organization.
|
|
110
|
+
* @property {string} [applicationId] - Lowercase reverse-DNS Android application identity extending the organization.
|
|
111
|
+
* @property {string} [activityClassName] - Generated Java launcher Activity class name.
|
|
112
|
+
* @property {string} [displayName] - User-visible application label.
|
|
113
|
+
* @property {23} [minimumSdk] - Qualified minimum Android API.
|
|
114
|
+
* @property {35} [targetSdk] - Qualified target Android API.
|
|
115
|
+
* @property {35} [compileSdk] - Qualified compile Android API.
|
|
116
|
+
* @property {"35.0.0"} [buildToolsVersion] - Qualified Android Build Tools version.
|
|
117
|
+
* @property {number} [versionCode] - Positive Android/Flutter build number.
|
|
118
|
+
* @property {string} [versionName] - Canonical application version name.
|
|
119
|
+
* @property {unknown[]} [permissions] - Validated as the closed empty permission set.
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @typedef FlutterApplicationConfiguration
|
|
124
|
+
* @property {string} packageName - Validated Dart package identity.
|
|
125
|
+
* @property {string} organization - Validated owning organization.
|
|
126
|
+
* @property {string} applicationId - Validated Android application identity.
|
|
127
|
+
* @property {string} activityClassName - Generated Java launcher Activity class name.
|
|
128
|
+
* @property {string} displayName - User-visible application label.
|
|
129
|
+
* @property {23} minimumSdk - Qualified minimum Android API.
|
|
130
|
+
* @property {35} targetSdk - Qualified target Android API.
|
|
131
|
+
* @property {35} compileSdk - Qualified compile Android API.
|
|
132
|
+
* @property {"35.0.0"} buildToolsVersion - Qualified Android Build Tools version.
|
|
133
|
+
* @property {number} versionCode - Positive Android/Flutter build number.
|
|
134
|
+
* @property {string} versionName - Canonical application version name.
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* @typedef FlutterApplicationAssetInput
|
|
139
|
+
* @property {string} path - Safe path below the generated Flutter assets root.
|
|
140
|
+
* @property {string | Uint8Array} content - Exact caller-provided text or bytes.
|
|
141
|
+
* @property {string} mediaType - Explicit artifact media type.
|
|
142
|
+
* @property {string} sha256 - Lowercase SHA-256 of exact UTF-8 text or bytes.
|
|
143
|
+
*/
|
|
144
|
+
|
|
106
145
|
/**
|
|
107
146
|
* @typedef LanguageRoleCapabilities
|
|
108
147
|
* @property {boolean} frontend - Parser adapter availability.
|
package/src/semantic/validate.js
CHANGED
|
@@ -8,7 +8,7 @@ import {parserRangeFor} from "./provenance.js"
|
|
|
8
8
|
import {validateEffectGraph} from "./effects.js"
|
|
9
9
|
import {validateResourceLifetimes} from "./lifetime.js"
|
|
10
10
|
|
|
11
|
-
const task005Languages = new Set(["php", "ruby", "javascript", "typescript", "java", "dart"])
|
|
11
|
+
const task005Languages = new Set(["php", "ruby", "javascript", "typescript", "java", "dart", "zig"])
|
|
12
12
|
|
|
13
13
|
/** @typedef {Map<string, import("./types.js").RecordDeclaration>} RecordRegistry */
|
|
14
14
|
/** @typedef {Map<string, import("./types.js").ClassDeclaration>} ClassRegistry */
|
package/src/toolchains.js
CHANGED
|
@@ -30,6 +30,7 @@ export const canonicalToolchains = deepFreeze({
|
|
|
30
30
|
clang: definition("clang", "SEMANTIFOLD_CLANG", ["--version"], /^Ubuntu clang version 21\.1\.8 [^\n]+\nTarget: x86_64-pc-linux-gnu\n/u),
|
|
31
31
|
rustc: definition("rustc", "SEMANTIFOLD_RUSTC", ["--version", "--verbose"], /^rustc 1\.98\.1 \(48a229cea 2026-09-01\)\nbinary: rustc\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\ncommit-date: 2026-09-01\nhost: x86_64-unknown-linux-gnu\nrelease: 1\.98\.1\nLLVM version: 22\.1\.8$/u),
|
|
32
32
|
cargo: definition("cargo", "SEMANTIFOLD_CARGO", ["--version", "--verbose"], /^cargo 1\.98\.1 \(797e8a9bc 2026-08-05\)\nrelease: 1\.98\.1\ncommit-hash: 797e8a9bca276c1c9f9f738d2a20f484fa4eea9d\ncommit-date: 2026-08-05\nhost: x86_64-unknown-linux-gnu\n/u),
|
|
33
|
+
zig: definition("zig", "SEMANTIFOLD_ZIG", ["version"], /^0\.15\.2$/u),
|
|
33
34
|
swiftc: definition("swiftc", "SEMANTIFOLD_SWIFTC", ["--driver-mode=swiftc", "--version"], /^Swift version 6\.3\.3 \(swift-6\.3\.3-RELEASE\)\nTarget: x86_64-unknown-linux-gnu$/u),
|
|
34
35
|
"wasm-validate": definition("wasm-validate", "SEMANTIFOLD_WASM_VALIDATE", ["--version"], /^1\.0\.36$/u),
|
|
35
36
|
chromium: definition("chromium", "SEMANTIFOLD_CHROMIUM", ["--version"], /^Google Chrome 152\.0\.7977\.82$/u)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Collects semantic binding reads and explicit assignment targets for Zig's compile-error-level binding checks.
|
|
5
|
+
* @param {import("./semantic/types.js").Block} block - Complete function or entry block.
|
|
6
|
+
* @returns {{reads: Set<string>, writes: Set<string>}} Binding usage by exact source name.
|
|
7
|
+
*/
|
|
8
|
+
export function collectZigBindingUsage(block) {
|
|
9
|
+
const reads = new Set()
|
|
10
|
+
const writes = new Set()
|
|
11
|
+
/**
|
|
12
|
+
* Records every binding read in one expression.
|
|
13
|
+
* @param {import("./semantic/types.js").Expression} expression - Expression to traverse.
|
|
14
|
+
*/
|
|
15
|
+
const expression = (expression) => {
|
|
16
|
+
if (expression.kind == "IdentifierExpression") reads.add(expression.name)
|
|
17
|
+
else if (expression.kind == "CallExpression") expression.arguments.forEach(argument => expressionVisit(argument))
|
|
18
|
+
else if (expression.kind == "UnaryExpression") expressionVisit(expression.operand)
|
|
19
|
+
else if (expression.kind == "BinaryExpression") {
|
|
20
|
+
expressionVisit(expression.left)
|
|
21
|
+
expressionVisit(expression.right)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const expressionVisit = expression
|
|
25
|
+
/**
|
|
26
|
+
* Records reads and writes throughout one block subtree.
|
|
27
|
+
* @param {import("./semantic/types.js").Block} current - Block to traverse.
|
|
28
|
+
*/
|
|
29
|
+
const visit = (current) => {
|
|
30
|
+
for (const statement of current.statements) {
|
|
31
|
+
if (statement.kind == "LocalDeclaration") expressionVisit(statement.initializer)
|
|
32
|
+
else if (statement.kind == "AssignmentStatement") {
|
|
33
|
+
writes.add(statement.target.name)
|
|
34
|
+
expressionVisit(statement.expression)
|
|
35
|
+
} else if (statement.kind == "IfStatement") {
|
|
36
|
+
expressionVisit(statement.condition)
|
|
37
|
+
visit(statement.consequent)
|
|
38
|
+
if (statement.alternate) visit(statement.alternate)
|
|
39
|
+
} else if (statement.kind == "ExpressionStatement" || statement.kind == "PrintStatement") expressionVisit(statement.expression)
|
|
40
|
+
else if (statement.kind == "ReturnStatement" && statement.expression) expressionVisit(statement.expression)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
visit(block)
|
|
45
|
+
return {reads, writes}
|
|
46
|
+
}
|