1use mago_ast::Program;
2use mago_interner::ThreadedInterner;
3use mago_walker::MutWalker;
4
5use crate::context::Context;
6use crate::table::SymbolTable;
7use crate::walker::SymbolWalker;
8
9mod context;
10mod walker;
11
12pub mod symbol;
13pub mod table;
14
15pub fn get_symbols(interner: &ThreadedInterner, program: &Program) -> SymbolTable {
27 let mut walker = SymbolWalker::new();
28 let mut context = Context::new(interner);
29
30 walker.walk_program(program, &mut context);
31
32 walker.symbols
33}