summaryrefslogtreecommitdiff
path: root/src/expr
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2017-03-16 11:37:53 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2017-03-16 11:38:09 -0500
commit966f38dc17ee316fdb069ec2a427c4f79f1f73b2 (patch)
tree1a1b60435daffa8b59eea589ef04c26b50f8a724 /src/expr
parent594301e6f2893ebe9baba5083ff084933b1e9da9 (diff)
Parsing support for SMT LIB 2.6. Minor fixes for printing datatypes. Fix for mkGroundTerm for parametric datatypes. Minor change to run_regression to allow regressions to override input language. Minor refactoring to Cvc.g.
Diffstat (limited to 'src/expr')
-rw-r--r--src/expr/datatype.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/expr/datatype.cpp b/src/expr/datatype.cpp
index 02edab533..ac93114b7 100644
--- a/src/expr/datatype.cpp
+++ b/src/expr/datatype.cpp
@@ -395,6 +395,7 @@ Expr Datatype::mkGroundTerm( Type t ) const throw(IllegalArgumentException) {
PrettyCheckArgument(isResolved(), this, "this datatype is not yet resolved");
ExprManagerScope ems(d_self);
+ Debug("datatypes") << "mkGroundTerm of type " << t << std::endl;
// is this already in the cache ?
std::map< Type, Expr >::iterator it = d_ground_term.find( t );
@@ -437,8 +438,8 @@ Expr getSubtermWithType( Expr e, Type t, bool isTop ){
}
Expr Datatype::computeGroundTerm( Type t, std::vector< Type >& processing ) const throw(IllegalArgumentException) {
- if( std::find( processing.begin(), processing.end(), d_self )==processing.end() ){
- processing.push_back( d_self );
+ if( std::find( processing.begin(), processing.end(), t )==processing.end() ){
+ processing.push_back( t );
for( unsigned r=0; r<2; r++ ){
for(const_iterator i = begin(), i_end = end(); i != i_end; ++i) {
//do nullary constructors first
@@ -462,7 +463,7 @@ Expr Datatype::computeGroundTerm( Type t, std::vector< Type >& processing ) cons
}
processing.pop_back();
}else{
- Debug("datatypes") << "...already processing " << t << std::endl;
+ Debug("datatypes") << "...already processing " << t << " " << d_self << std::endl;
}
return Expr();
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback