From 0bab4c7969ce2102cd106d5cc071ed64d9fb0b1f Mon Sep 17 00:00:00 2001 From: martcpp Date: Tue, 8 Jul 2025 19:16:38 +0100 Subject: [PATCH] this for testing purpose --- src/main.rs | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index ec2fe6c..d3fae31 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,17 +11,45 @@ fn main() { // println!("Token kind: {:?}, literal: {}", token.kind, token.literal); // println!("Token {:?}", token); - let input = "+=(){};"; - let mut lexer = Lexer::new(input); - println!("Lexer initialized with input: {}", input); - // println!("Current character: {:?}", lexer); + // let input = "+=(){};"; + // let mut lexer = Lexer::new(input); + // println!("Lexer initialized with input: {}", input); + // // println!("Current character: {:?}", lexer); - for (idx,token) in lexer.input.clone().into_iter().enumerate() { - println!("Token at index {}: {}", idx, token); - println!("Current character: {:?}", lexer.next_token()); - } + // for (idx,token) in lexer.input.clone().into_iter().enumerate() { + // println!("Token at index {}: {}", idx, token); + // println!("Current character: {:?}", lexer.next_token()); + // } - // println!(" last Current character: {:?}", lexer.next_token()); + // // println!(" last Current character: {:?}", lexer.next_token()); + read_token(); - -} \ No newline at end of file +} + + +fn read_token() { + let input ="=+(){},;"; + println!("Reading tokens from input: {}", input.len()); + let expect_token = vec![ + Token::new (Tokenkind::Assign,String::from("=")), + Token::new (Tokenkind::Plus, String::from("+")), + Token::new (Tokenkind::Lparen, String::from("(")), + Token::new (Tokenkind::Rparen, String::from(")")), + Token::new (Tokenkind::Lbrace, String::from("{")), + Token::new (Tokenkind::Rbrace, String::from("}")), + Token::new(Tokenkind::Comma, String::from(",")), + Token::new (Tokenkind::Semicolon,String::from(";")), + Token::new(Tokenkind::Eof, String::new()), // Eof token + ]; + println!("Expecting {} tokens", expect_token.len()); + println!("Expecting tokens: {:#?}", expect_token); + + let mut lexer = Lexer::new(input); + println!("Lexer initialized with input: {:?}", lexer); + for (idx,exp_token) in expect_token.iter().enumerate() { + let recv_token = lexer.next_token(); + println!("Reading token at index: {}: expected token: {:?}", idx, exp_token); + println!("reading token at: {} \n expected token: {} \n found token: {}",idx,exp_token.kind,recv_token.kind); + //println!("read literal at: {} \n expected literal: {} \n found literal: {}",idx,exp_token.literal,recv_token.literal); // Move to the next character + } + } \ No newline at end of file