diff --git a/html_cover.png b/html_cover.png
new file mode 100644
index 0000000..de27f94
Binary files /dev/null and b/html_cover.png differ
diff --git a/src/parser/mod.rs b/src/parser/mod.rs
index a2f7dca..52704b2 100644
--- a/src/parser/mod.rs
+++ b/src/parser/mod.rs
@@ -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) {
diff --git a/src/repl/mod.rs b/src/repl/mod.rs
index ba09512..5838570 100644
--- a/src/repl/mod.rs
+++ b/src/repl/mod.rs
@@ -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());
+ }
}
}
}