}
| /* check-synth */
CHECK_SYNTH_TOK
- { PARSER_STATE->checkThatLogicIsSet(); }
{
+ PARSER_STATE->checkThatLogicIsSet();
cmd.reset(new CheckSynthCommand());
}
+ | /* set-feature */
+ SET_FEATURE_TOK keyword[name] symbolicExpr[expr]
+ {
+ PARSER_STATE->checkThatLogicIsSet();
+ // ":grammars" is defined in the SyGuS version 2.1 standard and is by
+ // default supported, all other features are not.
+ if (name != ":grammars")
+ {
+ std::stringstream ss;
+ ss << "SyGuS feature " << name << " not currently supported";
+ PARSER_STATE->warning(ss.str());
+ }
+ cmd.reset(new EmptyCommand());
+ }
| command[&cmd]
;
DECLARE_VAR_TOK : { PARSER_STATE->sygus()}?'declare-var';
CONSTRAINT_TOK : { PARSER_STATE->sygus()}?'constraint';
INV_CONSTRAINT_TOK : { PARSER_STATE->sygus()}?'inv-constraint';
-SET_OPTIONS_TOK : { PARSER_STATE->sygus() }? 'set-options';
+SET_FEATURE_TOK : { PARSER_STATE->sygus() }? 'set-feature';
SYGUS_CONSTANT_TOK : { PARSER_STATE->sygus() }? 'Constant';
SYGUS_VARIABLE_TOK : { PARSER_STATE->sygus() }? 'Variable';
regress0/sygus/print-debug.sy
regress0/sygus/print-define-fun.sy
regress0/sygus/real-si-all.sy
+ regress0/sygus/setFeature.sy
regress0/sygus/strings-unconstrained.sy
regress0/sygus/sygus-no-wf.sy
regress0/sygus/sygus-uf.sy
--- /dev/null
+; REQUIRES: no-competition
+; EXPECT-ERROR: setFeature.sy:5.29: SyGuS feature :recursion not currently supported
+(set-logic ALL)
+(set-feature :grammars true)
+(set-feature :recursion false)