├── .editorconfig ├── .gitattributes ├── .github └── workflows │ ├── ci.yaml │ ├── release.yaml │ └── web.yaml ├── .gitignore ├── CONTRIBUTING ├── Cargo.lock ├── Cargo.toml ├── GRAMMAR.txt ├── LICENSE ├── README.md ├── benches └── main.rs ├── bin ├── forbid └── package ├── crates └── val-wasm │ ├── Cargo.toml │ └── src │ ├── ast_node.rs │ ├── error.rs │ ├── lib.rs │ └── range.rs ├── examples ├── factorial.val ├── fibonacci.val ├── hof.val ├── loop.val ├── math.val ├── newton.val ├── primes.val └── strings.val ├── justfile ├── mise.toml ├── rustfmt.toml ├── screenshot.png ├── src ├── arguments.rs ├── ast.rs ├── config.rs ├── consts.rs ├── environment.rs ├── error.rs ├── eval_result.rs ├── evaluator.rs ├── float_ext.rs ├── function.rs ├── highlighter.rs ├── lib.rs ├── main.rs ├── parser.rs ├── rounding_mode.rs └── value.rs ├── tests └── integration.rs ├── tools └── example-generator │ ├── .python-version │ ├── justfile │ ├── main.py │ ├── pyproject.toml │ └── uv.lock └── www ├── .eslintrc.cjs ├── .gitignore ├── .prettierignore ├── .prettierrc ├── bun.lock ├── components.json ├── index.html ├── package.json ├── packages └── val-wasm │ ├── package.json │ ├── val.d.ts │ ├── val.js │ ├── val_bg.wasm │ └── val_bg.wasm.d.ts ├── public └── icon.svg ├── src ├── App.tsx ├── assets │ ├── examples │ │ ├── factorial.val │ │ ├── fibonacci.val │ │ ├── hoc.val │ │ ├── hof.val │ │ ├── loop.val │ │ ├── math.val │ │ ├── newton.val │ │ ├── newton_sqrt.val │ │ ├── primes.val │ │ └── strings.val │ └── react.svg ├── components │ ├── ast-node.tsx │ ├── editor-settings-dialog.tsx │ ├── editor.tsx │ └── ui │ │ ├── button.tsx │ │ ├── dialog.tsx │ │ ├── label.tsx │ │ ├── resizable.tsx │ │ ├── select.tsx │ │ ├── sonner.tsx │ │ └── switch.tsx ├── hooks │ └── use-persisted-state.tsx ├── index.css ├── lib │ ├── examples.ts │ ├── highlight.ts │ ├── types.ts │ └── utils.ts ├── main.tsx ├── providers │ └── editor-settings-provider.tsx └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.val linguist-language=Rust 2 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/.github/workflows/release.yaml -------------------------------------------------------------------------------- /.github/workflows/web.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/.github/workflows/web.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.DS_Store 2 | /target 3 | -------------------------------------------------------------------------------- /CONTRIBUTING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/CONTRIBUTING -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/Cargo.toml -------------------------------------------------------------------------------- /GRAMMAR.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/GRAMMAR.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/README.md -------------------------------------------------------------------------------- /benches/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/benches/main.rs -------------------------------------------------------------------------------- /bin/forbid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/bin/forbid -------------------------------------------------------------------------------- /bin/package: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/bin/package -------------------------------------------------------------------------------- /crates/val-wasm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/crates/val-wasm/Cargo.toml -------------------------------------------------------------------------------- /crates/val-wasm/src/ast_node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/crates/val-wasm/src/ast_node.rs -------------------------------------------------------------------------------- /crates/val-wasm/src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/crates/val-wasm/src/error.rs -------------------------------------------------------------------------------- /crates/val-wasm/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/crates/val-wasm/src/lib.rs -------------------------------------------------------------------------------- /crates/val-wasm/src/range.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/crates/val-wasm/src/range.rs -------------------------------------------------------------------------------- /examples/factorial.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/factorial.val -------------------------------------------------------------------------------- /examples/fibonacci.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/fibonacci.val -------------------------------------------------------------------------------- /examples/hof.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/hof.val -------------------------------------------------------------------------------- /examples/loop.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/loop.val -------------------------------------------------------------------------------- /examples/math.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/math.val -------------------------------------------------------------------------------- /examples/newton.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/newton.val -------------------------------------------------------------------------------- /examples/primes.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/primes.val -------------------------------------------------------------------------------- /examples/strings.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/examples/strings.val -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/justfile -------------------------------------------------------------------------------- /mise.toml: -------------------------------------------------------------------------------- 1 | [tools] 2 | python = "3.12" 3 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/screenshot.png -------------------------------------------------------------------------------- /src/arguments.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/arguments.rs -------------------------------------------------------------------------------- /src/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/ast.rs -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/config.rs -------------------------------------------------------------------------------- /src/consts.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/consts.rs -------------------------------------------------------------------------------- /src/environment.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/environment.rs -------------------------------------------------------------------------------- /src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/error.rs -------------------------------------------------------------------------------- /src/eval_result.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/eval_result.rs -------------------------------------------------------------------------------- /src/evaluator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/evaluator.rs -------------------------------------------------------------------------------- /src/float_ext.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/float_ext.rs -------------------------------------------------------------------------------- /src/function.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/function.rs -------------------------------------------------------------------------------- /src/highlighter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/highlighter.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/parser.rs -------------------------------------------------------------------------------- /src/rounding_mode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/rounding_mode.rs -------------------------------------------------------------------------------- /src/value.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/src/value.rs -------------------------------------------------------------------------------- /tests/integration.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/tests/integration.rs -------------------------------------------------------------------------------- /tools/example-generator/.python-version: -------------------------------------------------------------------------------- 1 | 3.12.3 2 | -------------------------------------------------------------------------------- /tools/example-generator/justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/tools/example-generator/justfile -------------------------------------------------------------------------------- /tools/example-generator/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/tools/example-generator/main.py -------------------------------------------------------------------------------- /tools/example-generator/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/tools/example-generator/pyproject.toml -------------------------------------------------------------------------------- /tools/example-generator/uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/tools/example-generator/uv.lock -------------------------------------------------------------------------------- /www/.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/.eslintrc.cjs -------------------------------------------------------------------------------- /www/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/.gitignore -------------------------------------------------------------------------------- /www/.prettierignore: -------------------------------------------------------------------------------- 1 | packages/val-wasm 2 | -------------------------------------------------------------------------------- /www/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/.prettierrc -------------------------------------------------------------------------------- /www/bun.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/bun.lock -------------------------------------------------------------------------------- /www/components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/components.json -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/index.html -------------------------------------------------------------------------------- /www/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/package.json -------------------------------------------------------------------------------- /www/packages/val-wasm/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/packages/val-wasm/package.json -------------------------------------------------------------------------------- /www/packages/val-wasm/val.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/packages/val-wasm/val.d.ts -------------------------------------------------------------------------------- /www/packages/val-wasm/val.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/packages/val-wasm/val.js -------------------------------------------------------------------------------- /www/packages/val-wasm/val_bg.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/packages/val-wasm/val_bg.wasm -------------------------------------------------------------------------------- /www/packages/val-wasm/val_bg.wasm.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/packages/val-wasm/val_bg.wasm.d.ts -------------------------------------------------------------------------------- /www/public/icon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/public/icon.svg -------------------------------------------------------------------------------- /www/src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/App.tsx -------------------------------------------------------------------------------- /www/src/assets/examples/factorial.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/factorial.val -------------------------------------------------------------------------------- /www/src/assets/examples/fibonacci.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/fibonacci.val -------------------------------------------------------------------------------- /www/src/assets/examples/hoc.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/hoc.val -------------------------------------------------------------------------------- /www/src/assets/examples/hof.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/hof.val -------------------------------------------------------------------------------- /www/src/assets/examples/loop.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/loop.val -------------------------------------------------------------------------------- /www/src/assets/examples/math.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/math.val -------------------------------------------------------------------------------- /www/src/assets/examples/newton.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/newton.val -------------------------------------------------------------------------------- /www/src/assets/examples/newton_sqrt.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/newton_sqrt.val -------------------------------------------------------------------------------- /www/src/assets/examples/primes.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/primes.val -------------------------------------------------------------------------------- /www/src/assets/examples/strings.val: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/examples/strings.val -------------------------------------------------------------------------------- /www/src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/assets/react.svg -------------------------------------------------------------------------------- /www/src/components/ast-node.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ast-node.tsx -------------------------------------------------------------------------------- /www/src/components/editor-settings-dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/editor-settings-dialog.tsx -------------------------------------------------------------------------------- /www/src/components/editor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/editor.tsx -------------------------------------------------------------------------------- /www/src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/button.tsx -------------------------------------------------------------------------------- /www/src/components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/dialog.tsx -------------------------------------------------------------------------------- /www/src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/label.tsx -------------------------------------------------------------------------------- /www/src/components/ui/resizable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/resizable.tsx -------------------------------------------------------------------------------- /www/src/components/ui/select.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/select.tsx -------------------------------------------------------------------------------- /www/src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /www/src/components/ui/switch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/components/ui/switch.tsx -------------------------------------------------------------------------------- /www/src/hooks/use-persisted-state.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/hooks/use-persisted-state.tsx -------------------------------------------------------------------------------- /www/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/index.css -------------------------------------------------------------------------------- /www/src/lib/examples.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/lib/examples.ts -------------------------------------------------------------------------------- /www/src/lib/highlight.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/lib/highlight.ts -------------------------------------------------------------------------------- /www/src/lib/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/lib/types.ts -------------------------------------------------------------------------------- /www/src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/lib/utils.ts -------------------------------------------------------------------------------- /www/src/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/main.tsx -------------------------------------------------------------------------------- /www/src/providers/editor-settings-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/src/providers/editor-settings-provider.tsx -------------------------------------------------------------------------------- /www/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /www/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/tsconfig.json -------------------------------------------------------------------------------- /www/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/tsconfig.node.json -------------------------------------------------------------------------------- /www/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terror/val/HEAD/www/vite.config.ts --------------------------------------------------------------------------------