aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--samples/sample1.code2
-rw-r--r--src/main.rs10
2 files changed, 9 insertions, 3 deletions
diff --git a/samples/sample1.code b/samples/sample1.code
index dff751f..b941226 100644
--- a/samples/sample1.code
+++ b/samples/sample1.code
@@ -1,6 +1,6 @@
foo = "foo";
number-of-the-beast = 666;
-my-number = number-of-the-beast; # value lookup
+cool-number = number-of-the-beast; # value lookup
num = int.zero; # builtin value
int.double = int.multiply 2;
list.multiply-all = reduce int.multiply 1;
diff --git a/src/main.rs b/src/main.rs
index 141c144..f8e18cb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -203,8 +203,14 @@ fn main() {
use std::fs;
let unparsed_file = fs::read_to_string("samples/sample1.code").expect("cannot read file");
- let mut parse_tree =
- parser::Parser::parse(parser::Rule::program, &unparsed_file).expect("unsuccessful parse");
+ let parse_tree_result = parser::Parser::parse(parser::Rule::program, &unparsed_file);
+
+ if parse_tree_result.is_err() {
+ println!("{}", parse_tree_result.unwrap_err());
+ return;
+ }
+
+ let mut parse_tree = parse_tree_result.unwrap();
// println!("parse tree = {:#?}", parse_tree);
let syntax_tree: Program = ast::from_parse_tree(&mut parse_tree);