mod ast;
mod program;
mod visitor;
use visitor::*;
use crate::{CompilerState, Pass};
use leo_ast::{ProgramReconstructor as _, Variant};
use leo_errors::Result;
use leo_span::Symbol;
pub struct ProcessingScript;
impl Pass for ProcessingScript {
type Input = ();
type Output = ();
const NAME: &'static str = "ProcessingScript";
fn do_pass(_input: Self::Input, state: &mut CompilerState) -> Result<Self::Output> {
let mut ast = std::mem::take(&mut state.ast);
let mut visitor =
ProcessingScriptVisitor { state, current_variant: Variant::Inline, program_name: Symbol::default() };
ast.ast = visitor.reconstruct_program(ast.ast);
visitor.state.ast = ast;
Ok(())
}
}