return types;
}
+void
+AntlrParser::setLogic(const std::string& name) {
+ if( name == "QF_UF" ) {
+ newSort("U");
+ } else {
+ Unhandled("setLogic: " + name);
+ }
+}
+
const BooleanType* AntlrParser::booleanType() {
return d_exprManager->booleanType();
}
*/
void setExpressionManager(ExprManager* expr_manager);
+ /**
+ * Sets the logic for the current benchmark. Declares any logic symbols.
+ *
+ * @param name the name of the logic (e.g., QF_UF, AUFLIA)
+ */
+ void setLogic(const std::string& name);
+
/**
* Parse a command.
* @return a command
SetBenchmarkStatusCommand::BenchmarkStatus b_status = SetBenchmarkStatusCommand::SMT_UNKNOWN;
}
: LOGIC_ATTR logic = identifier
- { smt_command = new SetBenchmarkLogicCommand(logic); }
+ { setLogic(logic);
+ smt_command = new SetBenchmarkLogicCommand(logic); }
| ASSUMPTION_ATTR formula = annotatedFormula
{ smt_command = new AssertCommand(formula); }
| FORMULA_ATTR formula = annotatedFormula