use vb6parse::*;
fn main() {
let bad_code = r#"Attribute VB_Name = "BadModule"
Public Sub BrokenFunction()
x = 5 +
' Missing closing and the expression is incomplete
Public Sub AnotherFunction()
MsgBox "This one is fine"
End Sub
"#;
let source = SourceFile::from_string("BadModule.bas", bad_code);
let result = ModuleFile::parse(&source);
let (module, failures) = result.unpack();
if let Some(module) = module {
println!("✓ Parsed module: {}", module.name);
println!(" (Despite {} errors)", failures.len());
} else {
println!("✗ Parsing completely failed");
}
if !failures.is_empty() {
println!("\nParsing Issues:");
for failure in failures {
println!(
" Line {}-{}: {:?}",
failure.line_start, failure.line_end, failure.kind
);
failure.print();
}
}
}