Skip to content

Commit 1816532

Browse files
committed
add: parse single-path identifier followed by parenthesized arguments as
a user-defined predicate call
1 parent dce2328 commit 1816532

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

src/annot.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,17 @@ where
478478
FormulaOrTerm::Term(var, sort.clone())
479479
}
480480
_ => {
481+
if let Some(TokenTree::Delimited(_, _, Delimiter::Parenthesis, _args)) = self.look_ahead_token_tree(1) {
482+
self.consume();
483+
let pred_symbol = chc::UserDefinedPredSymbol::new(ident.name.to_string());
484+
let pred = chc::Pred::UserDefined(pred_symbol);
485+
486+
let args = self.parse_datatype_ctor_args()?;
487+
488+
let atom = chc::Atom::new(pred, args);
489+
let formula = chc::Formula::Atom(atom);
490+
return Ok(FormulaOrTerm::Formula(formula));
491+
}
481492
let (v, sort) = self.resolve(*ident)?;
482493
FormulaOrTerm::Term(chc::Term::var(v), sort)
483494
}

0 commit comments

Comments
 (0)