fix: skip null output + panick on unwrap

This commit is contained in:
YannAhlgrim
2026-07-12 15:40:06 +02:00
parent 399686fc98
commit 77ff42b1a1
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -239,7 +239,7 @@ impl Parser {
literal: String::from(&self.cur_token.literal),
type_: self.cur_token.type_,
},
expression: self.parse_expression(Precedence::Lowest).unwrap(),
expression: self.parse_expression(Precedence::Lowest)?,
};
if self.peek_token_is(TokenType::Semicolon) {
+5 -3
View File
@@ -3,7 +3,7 @@ use std::rc::Rc;
use crate::evaluator;
use crate::lexer::new;
use crate::object::Environment;
use crate::object::{Environment, ObjectType};
use crate::parser::Parser;
use crate::parser::new_parser;
@@ -30,8 +30,10 @@ pub fn start_repl() {
for err in parser.errors() {
eprintln!("ERROR: {}", err);
}
if !evaluated.is_none() {
println!("{}", evaluated.unwrap().inspect());
if let Some(obj) = evaluated {
if obj.object_type() != ObjectType::NULL {
println!("{}", obj.inspect());
}
}
}
}