Crate leo_asg[][src]

Expand description

The abstract semantic graph (ASG) for a Leo program.

This module contains the Asg type, an abstract data type that represents a Leo program as a series of graph nodes. The Asg type is at a greater level of abstraction than an Ast.

A new Asg type can be created from an Ast. Converting to an Asg provides greater type safety by canonicalizing and checking program types.

Re-exports

pub use checks::*;
pub use const_value::*;
pub use error::*;
pub use expression::*;
pub use import::*;
pub use node::*;
pub use prelude::*;
pub use program::*;
pub use reducer::*;
pub use scope::*;
pub use statement::*;
pub use type_::*;
pub use variable::*;
pub use pass::*;
pub use context::*;

Modules

Helper methods to determine the correct return value path in an asg.

Errors encountered when attempting to convert to an asg from an ast.

This module defines an expression node in an asg.

Helper methods for resolving imported packages.

This module defines the program node for an asg.

This module contains the reducer which iterates through ast nodes - converting them into asg nodes and saving relevant information.

This module defines a statement node in an asg.

Structs

The abstract semantic graph (ASG) for a Leo program.

The abstract syntax tree (AST) for a Leo program.

An identifier in the constrained program.

Stores program input values as ASG nodes.

Constants

Functions