diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2017-03-16 11:37:53 -0500 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2017-03-16 11:38:09 -0500 |
commit | 966f38dc17ee316fdb069ec2a427c4f79f1f73b2 (patch) | |
tree | 1a1b60435daffa8b59eea589ef04c26b50f8a724 /src/expr | |
parent | 594301e6f2893ebe9baba5083ff084933b1e9da9 (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.cpp | 7 |
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(); } |