From 3eaea37afd591e470ef31d662215bce2fa64f06a Mon Sep 17 00:00:00 2001 From: ghostly_zsh Date: Thu, 8 Aug 2024 23:59:04 -0500 Subject: [PATCH] fix lexing decimal number --- kabel/src/lexer.rs | 4 +++- kabel_test/src/main.rs | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kabel/src/lexer.rs b/kabel/src/lexer.rs index c7ebdd17e97332a9e64ced189394995b5cb6f58b..12b3bf229494898b149cf1772a52efacb0df50b8 100644 --- a/kabel/src/lexer.rs +++ b/kabel/src/lexer.rs @@ -290,8 +290,10 @@ impl Lexer { } if self.c == '.' { number.push('.'); - while self.read_char().is_ascii_digit() { + self.read_char(); + while self.peek().is_ascii_digit() { number.push(self.c as char); + self.read_char(); } } // panic = error in this code diff --git a/kabel_test/src/main.rs b/kabel_test/src/main.rs index 7dc017f0569012a2a49dd5928c67d7b0ae191155..d9603948cfc2e49a405de5883cadd21abace9e58 100644 --- a/kabel_test/src/main.rs +++ b/kabel_test/src/main.rs @@ -1,15 +1,13 @@ //use std::{env, fs}; -//use kabel::{debug::{debug_ast, debug_token_array}, run_lexer, run_parser, run_semantic_analysis}; - -use kabel::{run_codegen, run_lexer, run_parser, run_semantic_analysis}; +use kabel::{debug::{debug_ast, debug_token_array}, run_codegen, run_lexer, run_parser, run_semantic_analysis}; fn main() { /*let args: Vec = env::args().collect(); let program = fs::read_to_string(args[1].clone()).unwrap();*/ - let program = "print 4|5;".to_string(); + let program = "print 4.1+5.3;".to_string(); let mut output = "".to_string();