Expand description
The Rust engine of hax.
Modules§
- ast
- The core abstract syntax tree (AST) representation for hax.
- backends
- Code generation backends.
- hax_io
- This module helps communicating with
cargo-hax
. - interning
- Interning System
- names
- This module provides a list of handy
DefId
for the engine. The list ofDefId
s comes from the crate/engine/names
: any name mentionned in that crate will be provided here automatically. - ocaml_
engine - This module implements an interface to the OCaml hax engine. Via this interface, the rust engine can communicate with the OCaml engine, and reuse some of its components.
- phase
- A phase rewrites the AST.
- printer
- Printer infrastructure: allocators, traits, and the printing pipeline.
- resugarings
- The “resugaring” phases used by printers.
This module defines resugarings instances (see
[
hax_rust_engine::ast::Resugaring
] for the definition of a resugaring). Each backend defines its own set of resugaring phases. - symbol
- Interned string identifiers used throughout the AST.
Macros§
- impl_
doc_ allocator_ for - Implements
pretty::DocAllocator<'a, A>
for a local types that already implementHasAllocator<'a, A>
. - install_
pretty_ helpers - Install pretty-printing helpers partially applied with a given local allocator.
- setup_
error_ handling_ impl - Use this macro in an implementation of
AstVisitorMut
to get automatic spans and error handling. - todo_
document - Similar to
std::todo
, but returns a document instead of panicking with a message. In addition,todo_document!
accepts a prefix to point to a specific issue number.