Crate garble_lang
source · [−]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
.Compiles a
crate::ast::Program
to a crate::circuit::Circuit
.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::Token
s.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::Pattern
after typechecking.crate::ast::Program
after typechecking.crate::ast::Stmt
after typechecking.crate::ast::VariantExpr
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.