diff --git a/src/eval.rs b/src/eval.rs index 77aae78..4e9f23a 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -17,6 +17,12 @@ impl Evaluator { } } +trait Evaluable { + type Output; + fn is_reducible(&self) -> bool; + fn reduce(self) -> Self::Output; +} + impl Evaluator { fn reduce_node(&mut self, mut node: ASTNode) -> String { loop {