mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-09-19 01:37:34 +03:00
Integrate passes into compiler
This commit is contained in:
parent
2a2a65b416
commit
027bd24cd5
@ -146,30 +146,30 @@ impl<'a> Compiler<'a> {
|
||||
///
|
||||
/// Runs the symbol table pass.
|
||||
///
|
||||
pub fn symbol_table_pass(&self) -> Result<SymbolTable<'_>> {
|
||||
pub fn symbol_table_pass(&self) -> Result<SymbolTable> {
|
||||
CreateSymbolTable::do_pass((&self.ast, self.handler))
|
||||
}
|
||||
|
||||
///
|
||||
/// Runs the type checker pass.
|
||||
///
|
||||
pub fn type_checker_pass(&'a self, symbol_table: &mut SymbolTable<'_>) -> Result<()> {
|
||||
TypeChecker::do_pass((&self.ast, &mut symbol_table.clone(), self.handler))
|
||||
pub fn type_checker_pass(&'a self, symbol_table: SymbolTable) -> Result<SymbolTable> {
|
||||
TypeChecker::do_pass((&self.ast, self.handler, symbol_table))
|
||||
}
|
||||
|
||||
///
|
||||
/// Runs the compiler stages.
|
||||
///
|
||||
pub fn compiler_stages(&self) -> Result<SymbolTable<'_>> {
|
||||
let mut st = self.symbol_table_pass()?;
|
||||
self.type_checker_pass(&mut st)?;
|
||||
pub fn compiler_stages(&self) -> Result<SymbolTable> {
|
||||
let st = self.symbol_table_pass()?;
|
||||
let st = self.type_checker_pass(st)?;
|
||||
Ok(st)
|
||||
}
|
||||
|
||||
///
|
||||
/// Returns a compiled Leo program.
|
||||
///
|
||||
pub fn compile(&mut self) -> Result<SymbolTable<'_>> {
|
||||
pub fn compile(&mut self) -> Result<SymbolTable> {
|
||||
self.parse_program()?;
|
||||
self.compiler_stages()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user