Skip to main content

Crate nova_ast

Crate nova_ast 

Source
Expand description

Abstract Syntax Tree node definitions for the Nova language.

All nodes carry Spanned<T> wrappers so the parser, type checker, and diagnostics always have precise source locations.

Major node categories live in sub-modules re-exported here:

  • item — top-level items (functions, records, traits, …)
  • expr — expressions
  • pattern — match patterns
  • ty — type expressions

Re-exports§

pub use expr::BinOp;
pub use expr::Expr;
pub use expr::FieldInit;
pub use expr::Literal;
pub use expr::MatchArm;
pub use expr::StringPart;
pub use expr::UnOp;
pub use item::AssignOp;
pub use item::AssocTypeBinding;
pub use item::ConstDecl;
pub use item::ExternBlock;
pub use item::Function;
pub use item::ImplBlock;
pub use item::Import;
pub use item::Module as ModuleDecl;
pub use item::Param;
pub use item::Record;
pub use item::RecordField;
pub use item::TraitDecl;
pub use item::TraitItem;
pub use item::TypeDecl;
pub use item::Visibility;
pub use item::WhereBound;
pub use pattern::Pattern;
pub use ty::Type;
pub use ty::TypeParam;

Modules§

expr
Expression AST nodes.
item
Top-level item AST nodes.
pattern
Pattern AST nodes (used in let, match arms, for loops).
ty
Type expression AST nodes.

Structs§

Block
A { ... } block — a sequence of statements with an optional trailing expression.
File
The top-level compilation unit — one .nova source file.
Path
A path::to::item reference.

Enums§

Item
Every kind of top-level item that can appear in a Nova file.
Stmt
A statement — may appear inside a block.