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
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+1 -1
View File
@@ -239,7 +239,7 @@ impl Parser {
literal: String::from(&self.cur_token.literal), literal: String::from(&self.cur_token.literal),
type_: self.cur_token.type_, 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) { if self.peek_token_is(TokenType::Semicolon) {
+5 -3
View File
@@ -3,7 +3,7 @@ use std::rc::Rc;
use crate::evaluator; use crate::evaluator;
use crate::lexer::new; use crate::lexer::new;
use crate::object::Environment; use crate::object::{Environment, ObjectType};
use crate::parser::Parser; use crate::parser::Parser;
use crate::parser::new_parser; use crate::parser::new_parser;
@@ -30,8 +30,10 @@ pub fn start_repl() {
for err in parser.errors() { for err in parser.errors() {
eprintln!("ERROR: {}", err); eprintln!("ERROR: {}", err);
} }
if !evaluated.is_none() { if let Some(obj) = evaluated {
println!("{}", evaluated.unwrap().inspect()); if obj.object_type() != ObjectType::NULL {
println!("{}", obj.inspect());
}
} }
} }
} }