diff options
author | Greg Brown <gmb60@cam.ac.uk> | 2020-11-25 20:08:40 +0000 |
---|---|---|
committer | Greg Brown <gmb60@cam.ac.uk> | 2020-11-25 20:08:40 +0000 |
commit | aac8a2a06f557bda1893d891bf812c02b898d897 (patch) | |
tree | 0ac6fe7d3be8fbc5c36486196f045c44dcbdf8b9 /src/ast/convert.rs | |
parent | e2cd078cb16834256439ac775cb8cf1e17679181 (diff) |
Add let statements
Diffstat (limited to 'src/ast/convert.rs')
-rw-r--r-- | src/ast/convert.rs | 11 |
1 files changed, 9 insertions, 2 deletions
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<Term> where String: Borrow<T>, @@ -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; } |