Expand description

A purely functional programming language with a Rust-like syntax that compiles to logic gates for secure multi-party computation.

Modules

The untyped Abstract Syntax Tree (AST).
Type-checker, transforming an untyped crate::ast::Program into a typed crate::ast::Program.
The Circuit representation used by the compiler.
Simple helper for lexical scopes used by crate::check() and crate::compile().
Evaluates a crate::circuit::Circuit with inputs supplied by different parties.
A subset of crate::ast::Expr that is used as input / output by an crate::eval::Evaluator.
Parses a stream of crate::scan::Tokens into an untyped crate::ast::Program.
Splits a source code into a stream of crate::token::Tokens.
Tokens produced by crate::scan::scan.

Enums

Errors that can occur during compile time, while a program is scanned, parsed or type-checked.
A generic error that combines compile-time and run-time errors.

Functions

Scans, parses and type-checks a program.
Scans, parses, type-checks and then compiles a program to a circuit of gates.

Type Definitions

crate::ast::Expr after typechecking.
crate::ast::FnDef after typechecking.
crate::ast::Stmt after typechecking.
crate::ast::Expr without any associated type information.
crate::ast::FnDef without any associated type information.
crate::ast::Pattern without any associated type information.
crate::ast::Program without any associated type information.
crate::ast::Stmt without any associated type information.