Expand description
Abstract syntax tree (AST) components of Miden programs, modules, and procedures.
Re-exports§
pub use self::constants::Constant;pub use self::constants::ConstantExpr;pub use self::constants::ConstantOp;pub use self::constants::ConstantValue;pub use self::constants::HashKind;pub use self::path::Path;pub use self::path::PathBuf;pub use self::path::PathComponent;pub use self::path::PathError;pub use self::visit::Visit;pub use self::visit::VisitMut;pub use midenc_hir_type as types;
Modules§
- constants
- path
- visit
- This module provides an implementation of the visitor pattern for the AST of Miden Assembly.
Structs§
- Advice
MapEntry - Alias
- Represents an item that acts like it is locally-defined, but is actually externally-defined.
- Array
Type - Attribute
Set - An AttributeSet provides storage and access to all of the attributes attached to a Miden Assembly item, e.g. procedure definition.
- Block
- Represents a basic block in Miden Assembly syntax.
- DocString
- Represents a documentation string in Miden Assembly
- Enum
Type - A combined type alias and constant declaration corresponding to a C-like enumeration.
- Function
Type - A procedure type signature
- Global
Item Index - Uniquely identifies an item in a set of crate::ast::Module
- Ident
- Represents a generic identifier in Miden Assembly source code.
- Invoke
- Represents a specific invocation
- Item
Index - Represents the index of an item within its respective storage vector in some module
- Local
Symbol Resolver - A resolver for symbol references in the context of some module.
- Meta
KeyValue - Represents the metadata of a key-value crate::ast::Attribute, i.e.
@props(key = value) - Meta
List - Represents the metadata of a named list crate::ast::Attribute, i.e.
@name(item0, .., itemN) - Module
- The abstract syntax tree for a single Miden Assembly module.
- Module
Index - A strongly-typed index into a set of crate::ast::Module
- Pointer
Type - Procedure
- Represents a concrete procedure definition in Miden Assembly syntax
- Procedure
Name - Procedure name.
- Qualified
Procedure Name - Represents a qualified procedure name, e.g.
std::math::u64::add, parsed into it’s constituent Path and ProcedureName components. - Struct
Field - Struct
Type - Type
Alias - A TypeAlias represents a named Type.
- Variant
- A variant of an EnumType.
Enums§
- Alias
Target - A fully-qualified external item that is the target of an alias
- Attribute
- An Attribute represents some named metadata attached to a Miden Assembly procedure.
- Attribute
SetEntry - Represents an entry under a specific key in a AttributeSet
- Borrowed
Meta - Represents a reference to the metadata for an super::Attribute
- Case
Kind Error - Represents the various types of casing errors that can occur, e.g. using an identifier
with
SCREAMING_CASEwhere one withsnake_caseis expected. - Debug
Options - A proxy for miden_core::DebugOptions, but with super::Immediate values.
- Export
- Represents an exportable item from a crate::ast::Module.
- Form
- This type represents the top-level forms of a Miden Assembly module
- Ident
Error - Represents the types of errors that can occur when parsing/validating an Ident
- Immediate
- Represents an instruction immediate, e.g.
add.1oradd.CONST - Instruction
- Represents the set of primitive instructions in Miden Assembly syntax.
- Invocation
Target - Describes targets of
exec,call, andsyscallinstructions. - Invoke
Kind - Represents the kind of an invocation
- Local
Symbol - Represents a symbol within the context of a single module
- Meta
- Represents the metadata provided as arguments to an attribute.
- Meta
Expr - Represents a metadata expression of an crate::ast::Attribute
- Meta
Item - Represents a single metadata item provided as an argument to an attribute.
- Module
Kind - Represents the kind of a Module.
- Op
- Represents the Miden Assembly instruction set syntax
- Symbol
Resolution - Represents the result of resolving a symbol
- Symbol
Resolution Error - Represents an error that occurs during symbol resolution
- System
Event Node - Instructions which inject data into the advice provider.
- Type
Decl - An abstraction over the different types of type declarations allowed in Miden Assembly
- Type
Expr - A syntax-level type expression (i.e. primitive type, reference to nominal type, etc.)
- Visibility
- Represents the visibility of an item (procedure, constant, etc.) globally.
Constants§
- MAX_
STACK_ WORD_ OFFSET - Maximum stack index at which a full word can start.
Traits§
- Symbol
Table - This trait abstracts over any type which acts as a symbol table, e.g. a crate::ast::Module.
- Type
Resolver - Abstracts over resolving an item to a concrete Type, using one of: