3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 05:18:44 +00:00
z3/src/api/js
Walden Yan ede9e5ffc2
[WIP] More TS Binding Features (#6412)
* feat: basic quantfier support

* feat: added isQuantifier

* feat: expanded functions

* wip: (lambda broken)

* temp fix to LambdaImpl typing issue

* feat: function type inference

* formatting with prettier

* fix: imported from invalid module

* fix isBool bug and dumping to smtlib

* substitution and model.updateValue

* api to add custom func interps to model

* fix: building

* properly handling uint32 -> number conversion in z3 TS wrapper

* added simplify

* remame Add->Sum and Mul->Product

* formatting
2023-02-11 15:48:29 -08:00
..
examples [WIP] More TS Binding Features (#6412) 2023-02-11 15:48:29 -08:00
scripts [WIP] More TS Binding Features (#6412) 2023-02-11 15:48:29 -08:00
src [WIP] More TS Binding Features (#6412) 2023-02-11 15:48:29 -08:00
.nvmrc Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00
.prettierrc.json Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00
jest.config.js Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00
package-lock.json [WIP] More TS Binding Features (#6412) 2023-02-11 15:48:29 -08:00
package.json [WIP] More TS Binding Features (#6412) 2023-02-11 15:48:29 -08:00
PUBLISHED_README.md Remove usages of Z3_bool, just use bool. 2022-07-30 05:49:05 +02:00
README.md add pointer to build parameters to README #6518 2023-01-02 16:49:31 -08:00
tsconfig.build.json Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00
tsconfig.json Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00
typedoc.json Add high level bindings for js (#6048) 2022-06-14 09:55:58 -07:00

TypeScript Bindings

This directory contains JavaScript code to automatically derive TypeScript bindings for the C API, which are published on npm as z3-solver.

The readme for the bindings themselves is located in PUBLISHED_README.md.

Building

You'll need to have emscripten set up, along with all of its dependencies. The easiest way to do that is with emsdk.

Then run npm i to install dependencies, npm run build:ts to build the TypeScript wrapper, and npm run build:wasm to build the wasm artifact.

Build on your own

Consult the file build-wasm.ts for configurations used for building wasm.

Tests

Current tests are very minimal: test-ts-api.ts contains a couple real cases translated very mechanically from this file.