about summary refs log tree commit diff
path: root/users/tazjin/rlox/src/main.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-02-27T23·13+0200
committertazjin <mail@tazj.in>2021-02-28T11·14+0000
commit995d024f03d99726de5b22bdf5aaa04a88e00b4a (patch)
tree036adadc3ca8787e7b85c74a88e4eb7d8ea8b882 /users/tazjin/rlox/src/main.rs
parent0c9a7de5be0ac54f068a5f4db7eb400b3bd63282 (diff)
feat(tazjin/rlox): Wire up bytecode interpreter & print results r/2247
This makes the bytecode interpreter actually usable.

Change-Id: I24afc7ce461c6673dc42581378f6e14da7aece5c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2566
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Diffstat (limited to 'users/tazjin/rlox/src/main.rs')
-rw-r--r--users/tazjin/rlox/src/main.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/users/tazjin/rlox/src/main.rs b/users/tazjin/rlox/src/main.rs
index 2b4e365d41..2d8cf4f354 100644
--- a/users/tazjin/rlox/src/main.rs
+++ b/users/tazjin/rlox/src/main.rs
@@ -11,7 +11,7 @@ mod treewalk;
 /// Trait for making the different interpreters callable in the same
 /// way.
 pub trait Lox {
-    type Value;
+    type Value: std::fmt::Debug;
     type Error: std::fmt::Display;
 
     fn create() -> Self;
@@ -69,9 +69,12 @@ fn run_prompt<I: Lox>() {
 }
 
 fn run<I: Lox>(lox: &mut I, code: String) {
-    if let Err(errors) = lox.interpret(code) {
-        for error in errors {
-            eprintln!("{}", error);
+    match lox.interpret(code) {
+        Ok(result) => println!("=> {:?}", result),
+        Err(errors) => {
+            for error in errors {
+                eprintln!("{}", error);
+            }
         }
     }
 }