diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2013-09-05 20:59:18 -0400 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2013-09-09 17:50:09 -0400 |
commit | e5044d89c715ac6c0d41a731b58a9c672d2d524e (patch) | |
tree | 564d0fde03be9525b0912800849f92016b681192 /src/parser | |
parent | b747578dee53489326bf53743cfc4f83c467cbfd (diff) |
Fix declare-datatypes dumping bug (bug 385).
Diffstat (limited to 'src/parser')
-rw-r--r-- | src/parser/cvc/Cvc.g | 6 | ||||
-rw-r--r-- | src/parser/parser.cpp | 6 | ||||
-rw-r--r-- | src/parser/parser.h | 3 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/parser/cvc/Cvc.g b/src/parser/cvc/Cvc.g index cbdee9c74..03d1e7a8a 100644 --- a/src/parser/cvc/Cvc.g +++ b/src/parser/cvc/Cvc.g @@ -1951,15 +1951,15 @@ datatypeDef[std::vector<CVC4::Datatype>& datatypes] * below. */ : identifier[id,CHECK_NONE,SYM_SORT] { PARSER_STATE->pushScope(); } ( LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] { - t = PARSER_STATE->mkSort(id2); + t = PARSER_STATE->mkSort(id2, ExprManager::SORT_FLAG_PLACEHOLDER); params.push_back( t ); } ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] { - t = PARSER_STATE->mkSort(id2); + t = PARSER_STATE->mkSort(id2, ExprManager::SORT_FLAG_PLACEHOLDER); params.push_back( t ); } )* RBRACKET )? - { datatypes.push_back(Datatype(id,params)); + { datatypes.push_back(Datatype(id, params)); if(!PARSER_STATE->isUnresolvedType(id)) { // if not unresolved, must be undeclared PARSER_STATE->checkDeclaration(id, CHECK_UNDECLARED, SYM_SORT); diff --git a/src/parser/parser.cpp b/src/parser/parser.cpp index 42ca27caf..5d9b6c7ae 100644 --- a/src/parser/parser.cpp +++ b/src/parser/parser.cpp @@ -231,9 +231,9 @@ Parser::defineParameterizedType(const std::string& name, } SortType -Parser::mkSort(const std::string& name) { +Parser::mkSort(const std::string& name, uint32_t flags) { Debug("parser") << "newSort(" << name << ")" << std::endl; - Type type = d_exprManager->mkSort(name); + Type type = d_exprManager->mkSort(name, flags); defineType(name, type); return type; } @@ -248,7 +248,7 @@ Parser::mkSortConstructor(const std::string& name, size_t arity) { } SortType Parser::mkUnresolvedType(const std::string& name) { - SortType unresolved = mkSort(name); + SortType unresolved = mkSort(name, ExprManager::SORT_FLAG_PLACEHOLDER); d_unresolved.insert(unresolved); return unresolved; } diff --git a/src/parser/parser.h b/src/parser/parser.h index d07756cf4..b6ba482b7 100644 --- a/src/parser/parser.h +++ b/src/parser/parser.h @@ -411,7 +411,8 @@ public: /** * Creates a new sort with the given name. */ - SortType mkSort(const std::string& name); + SortType mkSort(const std::string& name, + uint32_t flags = ExprManager::SORT_FLAG_NONE); /** * Creates a new sort constructor with the given name and arity. |