summaryrefslogtreecommitdiff
path: root/src/parser
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-07-29 15:00:07 -0500
committerGitHub <noreply@github.com>2019-07-29 15:00:07 -0500
commitf71a719b8000e901af141a326ac12bce59a6153d (patch)
treeb11379ca5139cfa9c87121c05cb883bcb453da07 /src/parser
parent90eddb069c3c9abf96719ac20aff45b44af86207 (diff)
Model blocker feature (#3112)
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/smt2/Smt2.g14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g
index a95689f1c..663594ce8 100644
--- a/src/parser/smt2/Smt2.g
+++ b/src/parser/smt2/Smt2.g
@@ -1546,6 +1546,18 @@ extendedCommand[std::unique_ptr<CVC4::Command>* cmd]
// We currently do nothing with the type information declared for the heap.
{ cmd->reset(new EmptyCommand()); }
RPAREN_TOK
+ | BLOCK_MODEL_TOK { PARSER_STATE->checkThatLogicIsSet(); }
+ { cmd->reset(new BlockModelCommand()); }
+
+ | BLOCK_MODEL_VALUES_TOK { PARSER_STATE->checkThatLogicIsSet(); }
+ ( LPAREN_TOK termList[terms,e] RPAREN_TOK
+ { cmd->reset(new BlockModelValuesCommand(terms)); }
+ | ~LPAREN_TOK
+ { PARSER_STATE->parseError("The block-model-value command expects a list "
+ "of terms. Perhaps you forgot a pair of "
+ "parentheses?");
+ }
+ )
;
@@ -3052,6 +3064,8 @@ PAR_TOK : { PARSER_STATE->v2_6() }?'par';
TESTER_TOK : { ( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) && PARSER_STATE->isTheoryEnabled(Smt2::THEORY_DATATYPES) }?'is';
MATCH_TOK : { ( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) && PARSER_STATE->isTheoryEnabled(Smt2::THEORY_DATATYPES) }?'match';
GET_MODEL_TOK : 'get-model';
+BLOCK_MODEL_TOK : 'block-model';
+BLOCK_MODEL_VALUES_TOK : 'block-model-values';
ECHO_TOK : 'echo';
REWRITE_RULE_TOK : 'assert-rewrite';
REDUCTION_RULE_TOK : 'assert-reduction';
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback