Remove debug stuff
This commit is contained in:
parent
ec48ff8852
commit
10a6a52c04
5 changed files with 40 additions and 5 deletions
|
@ -40,6 +40,39 @@ impl LispState {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
add_function(&mut table, "sub", |x| {
|
||||||
|
if x.len() != 2 {
|
||||||
|
return vec![LispValue::Nil]
|
||||||
|
}
|
||||||
|
|
||||||
|
if let (LispValue::Integer(lhs), LispValue::Integer(rhs)) = (&x[0], &x[1]) {
|
||||||
|
return vec![LispValue::Integer(lhs - rhs)];
|
||||||
|
}
|
||||||
|
vec![LispValue::Nil]
|
||||||
|
});
|
||||||
|
|
||||||
|
add_function(&mut table, "mul", |x| {
|
||||||
|
if x.len() != 2 {
|
||||||
|
return vec![LispValue::Nil]
|
||||||
|
}
|
||||||
|
|
||||||
|
if let (LispValue::Integer(lhs), LispValue::Integer(rhs)) = (&x[0], &x[1]) {
|
||||||
|
return vec![LispValue::Integer(lhs * rhs)];
|
||||||
|
}
|
||||||
|
vec![LispValue::Nil]
|
||||||
|
});
|
||||||
|
|
||||||
|
add_function(&mut table, "div", |x| {
|
||||||
|
if x.len() != 2 {
|
||||||
|
return vec![LispValue::Nil]
|
||||||
|
}
|
||||||
|
|
||||||
|
if let (LispValue::Integer(lhs), LispValue::Integer(rhs)) = (&x[0], &x[1]) {
|
||||||
|
return vec![LispValue::Integer(lhs / rhs)];
|
||||||
|
}
|
||||||
|
vec![LispValue::Nil]
|
||||||
|
});
|
||||||
|
|
||||||
LispState {
|
LispState {
|
||||||
table
|
table
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@ fn main() {
|
||||||
Vec::new()
|
Vec::new()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
println!("{:?}", tokens);
|
|
||||||
let instructions = parse(tokens);
|
let instructions = parse(tokens);
|
||||||
|
|
||||||
let state = LispState::new();
|
let state = LispState::new();
|
||||||
|
|
|
@ -112,7 +112,6 @@ fn parse_exp(tokens: Vec<Token>) -> Vec<OpCode> {
|
||||||
Token::CloseParen => {
|
Token::CloseParen => {
|
||||||
panic!("Unexpected closing parenthesis");
|
panic!("Unexpected closing parenthesis");
|
||||||
},
|
},
|
||||||
_ => todo!()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
i += 1;
|
i += 1;
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
; This is a comment
|
; This is a comment
|
||||||
|
|
||||||
(print (add 1333 12423))
|
(print (add 1 (mul (div 16 2) (mul 13 2))))
|
|
@ -107,7 +107,9 @@ impl Tokenizer {
|
||||||
tokens.push(Token::Integer(self.storage.iter().collect::<String>().parse().unwrap()));
|
tokens.push(Token::Integer(self.storage.iter().collect::<String>().parse().unwrap()));
|
||||||
self.storage.clear();
|
self.storage.clear();
|
||||||
} else {
|
} else {
|
||||||
self.storage.push(char);
|
if char != '_' {
|
||||||
|
self.storage.push(char);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,7 +168,9 @@ impl Tokenizer {
|
||||||
} else if c.is_numeric() || c == '_' {
|
} else if c.is_numeric() || c == '_' {
|
||||||
self.reading_num = true;
|
self.reading_num = true;
|
||||||
self.storage.clear();
|
self.storage.clear();
|
||||||
self.storage.push(c);
|
if c != '_' {
|
||||||
|
self.storage.push(c);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue