use vb6parse::io::SourceStream;
const VB6_CODE: &str = r#"Private Sub Form_Load()
Dim x As Integer
Dim message As String
x = 42
message = "Hello, World!"
MsgBox message
End Sub
' This is a comment
Public Function Calculate(a As Integer, b As Integer) As Integer
Calculate = a + b
End Function"#;
fn main() {
let mut stream = SourceStream::new("example.bas", VB6_CODE);
println!("=== SourceStream Example ===");
println!("File: {}", stream.file_name());
println!("================================");
println!();
println!("{VB6_CODE}");
println!();
println!("================================");
println!();
println!("Content length: {} characters", stream.contents.len());
println!("Initial offset: {}\n", stream.offset());
println!();
println!("=== Line Operations ===");
if let Some((line, newline)) = stream.take_until_newline() {
println!("First line: '{line}'");
if let Some(nl) = newline {
println!("Newline character(s): '{nl:?}'");
}
}
let start_of_line = stream.start_of_line();
let end_of_line = stream.end_of_line();
println!("Start of current line: {start_of_line}");
println!("End of current line: {end_of_line}");
}