diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-02-20 14:49:02 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-20 14:49:02 -0600 |
commit | 5489ef01beb91e256e343e2fd2d734b48b42ad6e (patch) | |
tree | f6a535c768ae4f3cfbbed765b0697300f4412657 /src/parser/parser.cpp | |
parent | 32fdf625f66b8ebf260756962a53d63eec771c12 (diff) |
Remove front-end support for Chain (#3767)
Diffstat (limited to 'src/parser/parser.cpp')
-rw-r--r-- | src/parser/parser.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parser/parser.cpp b/src/parser/parser.cpp index 32d555718..664fa209d 100644 --- a/src/parser/parser.cpp +++ b/src/parser/parser.cpp @@ -515,6 +515,22 @@ Expr Parser::mkHoApply(Expr expr, std::vector<Expr>& args) return expr; } +api::Term Parser::mkChain(api::Kind k, const std::vector<api::Term>& args) +{ + if (args.size() == 2) + { + // if this is the case exactly 1 pair will be generated so the + // AND is not required + return d_solver->mkTerm(k, args[0], args[1]); + } + std::vector<api::Term> children; + for (size_t i = 0, nargsmo = args.size() - 1; i < nargsmo; i++) + { + children.push_back(d_solver->mkTerm(k, args[i], args[i + 1])); + } + return d_solver->mkTerm(api::AND, children); +} + bool Parser::isDeclared(const std::string& name, SymbolType type) { switch (type) { case SYM_VARIABLE: |