//! Collect information about scopes and bindings, used by the emitter. //! //! Scope analysis happens in a separate pass after the AST is built: //! //! 1. Parse the script, check for early errors, and build an AST. //! 2. Traverse the AST and do scope analysis (this crate). //! 3. Traverse the AST and emit bytecode. //! //! The output of this analysis is a `ScopeDataMapAndFunctionMap` //! describing each scope, binding, and function in the AST.
mod builder; pubmod data; pubmod free_name_tracker; mod pass;
externcrate jsparagus_ast as ast; externcrate jsparagus_stencil as stencil;
/// Visit all nodes in the AST, and create a scope data. /// /// `ast` must already have been checked for early errors. This analysis does /// not check for errors, even scope-related errors like redeclaration of a /// `let` variable. pubfn generate_scope_data<'alloc, 'a>(
ast: &'alloc ast::types::Program<'alloc>,
) -> ScopePassResult { letmut scope_pass = pass::ScopePass::new();
scope_pass.visit_program(ast);
scope_pass.into()
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-19)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.