refactor(transformer): transformer example output semantic + transformer errors (#5852)

This commit is contained in:
overlookmotel 2024-09-18 11:08:27 +00:00
parent 2e93548816
commit b9c45646d1

View file

@ -38,13 +38,22 @@ fn main() {
println!("{source_text}\n"); println!("{source_text}\n");
let mut program = ret.program; let mut program = ret.program;
let trivias = ret.trivias;
let (symbols, scopes) = SemanticBuilder::new(&source_text) let ret = SemanticBuilder::new(&source_text)
// Estimate transformer will triple scopes, symbols, references // Estimate transformer will triple scopes, symbols, references
.with_excess_capacity(2.0) .with_excess_capacity(2.0)
.build(&program) .build(&program);
.semantic
.into_symbol_table_and_scope_tree(); if !ret.errors.is_empty() {
println!("Semantic Errors:");
for error in ret.errors {
let error = error.with_source_code(source_text.clone());
println!("{error:?}");
}
}
let (symbols, scopes) = ret.semantic.into_symbol_table_and_scope_tree();
let transform_options = if let Some(targets) = &targets { let transform_options = if let Some(targets) = &targets {
TransformOptions::from_preset_env(&EnvOptions { TransformOptions::from_preset_env(&EnvOptions {
@ -56,16 +65,24 @@ fn main() {
TransformOptions::enable_all() TransformOptions::enable_all()
}; };
let _ = Transformer::new( let ret = Transformer::new(
&allocator, &allocator,
path, path,
source_type, source_type,
&source_text, &source_text,
ret.trivias.clone(), trivias.clone(),
transform_options, transform_options,
) )
.build_with_symbols_and_scopes(symbols, scopes, &mut program); .build_with_symbols_and_scopes(symbols, scopes, &mut program);
if !ret.errors.is_empty() {
println!("Transformer Errors:");
for error in ret.errors {
let error = error.with_source_code(source_text.clone());
println!("{error:?}");
}
}
let printed = CodeGenerator::new().build(&program).source_text; let printed = CodeGenerator::new().build(&program).source_text;
println!("Transformed:\n"); println!("Transformed:\n");
println!("{printed}"); println!("{printed}");