diff --git a/examples/hello_world.fx b/examples/hello_world.fx index f75275c..88d6854 100644 --- a/examples/hello_world.fx +++ b/examples/hello_world.fx @@ -1,7 +1,7 @@ // This is a comment fn main() { - let x = 2; + let x = "Hello World"; return x; } diff --git a/src/parser/mod.rs b/src/parser/mod.rs index e900042..a16f8fa 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -129,7 +129,7 @@ impl Parser { while let Err(_) = self.peek_token(TokenKind::CurlyBracesClose) { let statement = self.parse_statement()?; - println!("{:?}", statement); + dbg!("{:?}", &statement); statements.push(statement); } @@ -144,7 +144,7 @@ impl Parser { fn parse_statement(&mut self) -> Result { let token = self.next_token(); - println!("parse_statement: {:?}", token); + dbg!(&token); match token.kind { TokenKind::Keyword(Keyword::Let) => { let state = self.parse_declare(); @@ -169,6 +169,10 @@ impl Parser { let state = Expression::Int(token.raw.parse::().map_err(|e| e.to_string())?); Ok(state) } + TokenKind::Literal(Value::Str) => { + let state = Expression::Str(token.raw); + Ok(state) + } TokenKind::Identifier(val) => { let state = Expression::Variable(val); Ok(state) diff --git a/src/parser/node_type.rs b/src/parser/node_type.rs index 6ff33b1..2c544a9 100644 --- a/src/parser/node_type.rs +++ b/src/parser/node_type.rs @@ -29,6 +29,7 @@ pub enum Statement { #[derive(Debug, Eq, PartialEq)] pub enum Expression { Int(u32), + Str(String), Char(u8), FunctionCall(String, Vec), Variable(String),