summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-08-06 20:28:15 -0500
committerAndres Noetzli <andres.noetzli@gmail.com>2018-08-06 18:28:15 -0700
commite4e3ac9d4dc62cad7f88f57bb0e80a3f2b32eecc (patch)
treee53ce4f15a118b9bf482af8f3e6a448934d78413 /src
parent79121aeeb03bf70323208d5059e23dfb62a83903 (diff)
Remove support for Enum sygus syntax. (#2264)
Diffstat (limited to 'src')
-rw-r--r--src/parser/smt2/Smt2.g70
1 files changed, 23 insertions, 47 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g
index 31d8b1a80..c512ee1da 100644
--- a/src/parser/smt2/Smt2.g
+++ b/src/parser/smt2/Smt2.g
@@ -919,7 +919,6 @@ sygusCommand [std::unique_ptr<CVC4::Command>* cmd]
sygusGTerm[CVC4::SygusGTerm& sgt, std::string& fun]
@declarations {
std::string name, name2;
- bool readEnum = false;
Kind k;
Type t;
CVC4::DatatypeConstructor* ctor = NULL;
@@ -1080,48 +1079,36 @@ sygusGTerm[CVC4::SygusGTerm& sgt, std::string& fun]
sgt.d_gterm_type = SygusGTerm::gterm_op;
}
| symbol[name,CHECK_NONE,SYM_VARIABLE]
- ( SYGUS_ENUM_CONS_TOK symbol[name2,CHECK_NONE,SYM_VARIABLE]
- { readEnum = true; }
- )?
- { if( readEnum ){
- name = name + "__Enum__" + name2;
- Debug("parser-sygus") << "Sygus grammar " << fun << " : Enum constant "
+ {
+ if( name[0] == '-' ){ //hack for unary minus
+ Debug("parser-sygus") << "Sygus grammar " << fun
+ << " : unary minus integer literal " << name
+ << std::endl;
+ sgt.d_expr = MK_CONST(Rational(name));
+ sgt.d_name = name;
+ sgt.d_gterm_type = SygusGTerm::gterm_op;
+ }else if( PARSER_STATE->isDeclared(name,SYM_VARIABLE) ){
+ Debug("parser-sygus") << "Sygus grammar " << fun << " : symbol "
<< name << std::endl;
- Expr c = PARSER_STATE->getVariable(name);
- sgt.d_expr = MK_EXPR(kind::APPLY_CONSTRUCTOR,c);
+ sgt.d_expr = PARSER_STATE->getVariable(name);
sgt.d_name = name;
sgt.d_gterm_type = SygusGTerm::gterm_op;
}else{
- if( name[0] == '-' ){ //hack for unary minus
+ //prepend function name to base sorts when reading an operator
+ std::stringstream ss;
+ ss << fun << "_" << name;
+ name = ss.str();
+ if( PARSER_STATE->isDeclared(name, SYM_SORT) ){
+ Debug("parser-sygus") << "Sygus grammar " << fun
+ << " : nested sort " << name << std::endl;
+ sgt.d_type = PARSER_STATE->getSort(name);
+ sgt.d_gterm_type = SygusGTerm::gterm_nested_sort;
+ }else{
Debug("parser-sygus") << "Sygus grammar " << fun
- << " : unary minus integer literal " << name
+ << " : unresolved symbol " << name
<< std::endl;
- sgt.d_expr = MK_CONST(Rational(name));
+ sgt.d_gterm_type = SygusGTerm::gterm_unresolved;
sgt.d_name = name;
- sgt.d_gterm_type = SygusGTerm::gterm_op;
- }else if( PARSER_STATE->isDeclared(name,SYM_VARIABLE) ){
- Debug("parser-sygus") << "Sygus grammar " << fun << " : symbol "
- << name << std::endl;
- sgt.d_expr = PARSER_STATE->getVariable(name);
- sgt.d_name = name;
- sgt.d_gterm_type = SygusGTerm::gterm_op;
- }else{
- //prepend function name to base sorts when reading an operator
- std::stringstream ss;
- ss << fun << "_" << name;
- name = ss.str();
- if( PARSER_STATE->isDeclared(name, SYM_SORT) ){
- Debug("parser-sygus") << "Sygus grammar " << fun
- << " : nested sort " << name << std::endl;
- sgt.d_type = PARSER_STATE->getSort(name);
- sgt.d_gterm_type = SygusGTerm::gterm_nested_sort;
- }else{
- Debug("parser-sygus") << "Sygus grammar " << fun
- << " : unresolved symbol " << name
- << std::endl;
- sgt.d_gterm_type = SygusGTerm::gterm_unresolved;
- sgt.d_name = name;
- }
}
}
}
@@ -2219,15 +2206,6 @@ termNonVariable[CVC4::Expr& expr, CVC4::Expr& expr2]
}
}
}
- | symbol[name,CHECK_NONE,SYM_VARIABLE] SYGUS_ENUM_CONS_TOK
- symbol[name2,CHECK_NONE,SYM_VARIABLE]
- { std::string cname = name + "__Enum__" + name2;
- Debug("parser-sygus") << "Check for enum const " << cname << std::endl;
- expr = PARSER_STATE->getVariable(cname);
- // expr.getType().isConstructor() &&
- // ConstructorType(expr.getType()).getArity()==0;
- expr = MK_EXPR(CVC4::kind::APPLY_CONSTRUCTOR, expr);
- }
/* attributed expressions */
| LPAREN_TOK ATTRIBUTE_TOK term[expr, f2]
@@ -3169,8 +3147,6 @@ DECLARE_PRIMED_VAR_TOK : 'declare-primed-var';
CONSTRAINT_TOK : 'constraint';
INV_CONSTRAINT_TOK : 'inv-constraint';
SET_OPTIONS_TOK : 'set-options';
-SYGUS_ENUM_TOK : { PARSER_STATE->sygus() }? 'Enum';
-SYGUS_ENUM_CONS_TOK : { PARSER_STATE->sygus() }? '::';
SYGUS_CONSTANT_TOK : { PARSER_STATE->sygus() }? 'Constant';
SYGUS_VARIABLE_TOK : { PARSER_STATE->sygus() }? 'Variable';
SYGUS_INPUT_VARIABLE_TOK : { PARSER_STATE->sygus() }? 'InputVariable';
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback