fix: skip null output + panick on unwrap
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
+1
-1
@@ -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
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user