Module analyze

Module analyze 

Source
Expand description

Semantic analysis passes.

Provides analysis passes that transform parsed AST into analyzed form:

  • Name resolution (symbol_table)
  • Dependency analysis and recursion detection (dependencies)
  • Type inference (type_check)
  • Grammar linking (link)
  • Semantic validation (validation)

Re-exports§

pub use dependencies::DependencyAnalysis;
pub use link::LinkOutput;
pub use symbol_table::SymbolTable;
pub use symbol_table::UNNAMED_DEF;
pub use type_check::TypeContext;
pub use type_check::infer_types;
pub use type_check::primary_def_name;
pub use validation::validate_alt_kinds;
pub use validation::validate_anchors;
pub use validation::validate_empty_constructs;
pub use validation::validate_predicates;
pub use visitor::Visitor;
pub use visitor::walk_expr;

Modules§

dependencies
Dependency analysis for definitions.
link
Link pass: resolve node types and fields against tree-sitter grammar.
refs
Utilities for working with definition references in expressions.
symbol_table
Symbol table: name resolution and reference checking.
type_check
Unified type checking pass.
validation
Semantic validation passes.
visitor
AST Visitor pattern.

Functions§

validate_recursion
Validate recursion using the pre-computed dependency analysis.