mirror of
https://github.com/anoma/juvix.git
synced 2024-11-30 05:42:26 +03:00
55598e0f95
* Implements code generation through Rust. * CLI: adds two `dev` compilation targets: 1. `rust` for generating Rust code 2. `native-rust` for generating a native executable via Rust * Adds end-to-end tests for compilation from Juvix to native executable via Rust. * A target for RISC0 needs to be added in a separate PR building on this one.
20 lines
450 B
Plaintext
20 lines
450 B
Plaintext
-- implicit builtin bool
|
|
-- Builtin nat requires builtin bool when translated to integers, because
|
|
-- matching is translated to comparison operators and cases on booleans.
|
|
module test045;
|
|
|
|
builtin nat
|
|
type Nat :=
|
|
| zero : Nat
|
|
| suc : Nat → Nat;
|
|
|
|
syntax fixity additive := binary {assoc := left};
|
|
|
|
syntax operator + additive;
|
|
|
|
+ : Nat → Nat → Nat
|
|
| zero b := b
|
|
| (suc a) b := suc (a + b);
|
|
|
|
main : Nat := suc zero + suc (suc (suc zero));
|