Browse Source

Add strings

github-actions
Garrit Franke 3 years ago
parent
commit
7ca96f9a43
  1. 2
      examples/hello_world.fx
  2. 8
      src/parser/mod.rs
  3. 1
      src/parser/node_type.rs

2
examples/hello_world.fx

@ -1,7 +1,7 @@
// This is a comment
fn main() {
let x = 2;
let x = "Hello World";
return x;
}

8
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<Statement, String> {
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::<u32>().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)

1
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<Expression>),
Variable(String),

Loading…
Cancel
Save