From aac8a2a06f557bda1893d891bf812c02b898d897 Mon Sep 17 00:00:00 2001 From: Greg Brown Date: Wed, 25 Nov 2020 20:08:40 +0000 Subject: Add let statements --- src/ast/convert.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/ast/convert.rs') diff --git a/src/ast/convert.rs b/src/ast/convert.rs index f828a16..7ae3147 100644 --- a/src/ast/convert.rs +++ b/src/ast/convert.rs @@ -123,6 +123,7 @@ impl Context { &mut self, name: &T, args: I, + convert_mode: ConvertMode, ) -> Option where String: Borrow, @@ -151,7 +152,7 @@ impl Context { self.variables.insert(var, value); } - let res = Some(term.clone().convert(self)); + let res = Some(term.clone().convert(self, convert_mode)); for (name, value, indices) in old { for (index, binding) in indices { @@ -166,6 +167,12 @@ impl Context { } } +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum ConvertMode { + NoSubstitution, + WithSubstitution, +} + pub trait Convert: std::fmt::Debug { - fn convert(&self, context: &mut Context) -> Term; + fn convert(&self, context: &mut Context, mode: ConvertMode) -> Term; } -- cgit v1.2.3