From 555f98328590593436652c2e05a8480992f406c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Mon, 4 May 2020 16:48:35 +0200 Subject: [PATCH] Look up predicates --- src/parse/formulas.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/parse/formulas.rs b/src/parse/formulas.rs index e81dee4..cab9c65 100644 --- a/src/parse/formulas.rs +++ b/src/parse/formulas.rs @@ -82,7 +82,8 @@ where D: crate::FindOrCreateFunctionDeclaration + crate::FindOrCreatePredicateDeclaration, { pub fn new(input: &'i str, declarations: &'d D, - variable_declaration_stack: &'v crate::VariableDeclarationStackLayer<'p>) -> Self + variable_declaration_stack: &'v crate::VariableDeclarationStackLayer<'p>) + -> Self { Self { @@ -366,10 +367,8 @@ where crate::parse::error::Location::new(0, Some(0)))) } - // TODO: implement look-up - let declaration = - crate::PredicateDeclaration::new(predicate_name.to_string(), arguments.len()); - let declaration = std::rc::Rc::new(declaration); + let declaration = self.declarations.find_or_create_predicate_declaration(predicate_name, + arguments.len()); return Ok(crate::Formula::predicate(declaration, arguments)); }