From 18e704e13c11d9b385d5a32756c2f3062924a2b4 Mon Sep 17 00:00:00 2001 From: Tristan Date: Wed, 7 May 2025 03:48:35 -0400 Subject: [PATCH] thought I updated the main --- src/main.rs | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 5fd0a80..e35acc3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,12 +47,37 @@ fn run_file(path: &str) { // runs source code fn run(source: String) { + println!("Source: {}", source.trim()); // Optional: print the source + let mut lexer = Lexer::new(source); let tokens = lexer.scan_tokens(); - for token in tokens { - println!("{:?}", token); - } + // old code begins + // println!("Tokens:"); + // for token in &tokens { // Iterate by reference if you use tokens later + // println!("{:?}", token); + // } + // println!("---"); + // old code ends - delete if not needed - // pass tokens to parser and interpreter + let mut parser = Parser::new(tokens); // Create a new parser instance + + println!("Parsed Statements (AST):"); + loop { + + if parser.is_at_end() { // Add is_at_end to Parser if not already public + break; + } + + match parser.parse_statement() { + Some(statement) => { + println!("{:?}", statement); + } + None => { + println!("Parser returned None, might be an error or unhandled EOF by parse_statement."); + break; + } + } + + } } \ No newline at end of file