Expand description
The Rust engine of hax.
Modules§
- ast
- The core abstract syntax tree (AST) representation for hax.
- attributes
- Work with hax attributes.
- backends
- Code generation backends.
- debugger
- An interactive debugger server for the rust engine.
- hax_io
- This module helps communicating with
cargo-hax. - import_
thir - This modules allows to import the THIR AST produced by the frontend, and convert it to the engine’s internal AST
- interning
- Interning System
- names
- This module provides a list of handy
DefIdfor the engine. The list ofDefIds 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§
- install_
pretty_ helpers - Install pretty-printing helpers partially applied with a given local allocator.
- pretty_
ast_ docs - Expand a list of values into documents and concatenate them in order.
- pretty_
ast_ intersperse - Convert a collection of values into documents separated by another document.
- setup_
error_ handling_ impl - Use this macro in an implementation of
AstVisitorMutto 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.