summaryrefslogtreecommitdiff
path: root/src/parser/cvc
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-11-01 13:20:49 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2016-11-01 13:20:49 -0500
commit8e0fce94790249ff7aff84ff4500bb96e2ebb9e9 (patch)
tree25e65718cff712f13688e452ffc1d4b459cd7367 /src/parser/cvc
parent3506b13f4d298095e8405b32b05e838f17dbe809 (diff)
Working memory leak free version, changes interface to pointers.
Diffstat (limited to 'src/parser/cvc')
-rw-r--r--src/parser/cvc/Cvc.g14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/parser/cvc/Cvc.g b/src/parser/cvc/Cvc.g
index e6d7f9d86..7ca6beb60 100644
--- a/src/parser/cvc/Cvc.g
+++ b/src/parser/cvc/Cvc.g
@@ -708,7 +708,7 @@ mainCommand[CVC4::Command*& cmd]
SExpr sexpr;
std::string id;
Type t;
- std::vector<CVC4::Datatype> dts;
+ std::vector<CVC4::Datatype*> dts;
Debug("parser-extra") << "command: " << AntlrInput::tokenText(LT(1)) << std::endl;
std::string s;
}
@@ -769,7 +769,9 @@ mainCommand[CVC4::Command*& cmd]
( COMMA datatypeDef[dts] )*
END_TOK
{ PARSER_STATE->popScope();
- cmd = new DatatypeDeclarationCommand(PARSER_STATE->mkMutualDatatypeTypes(dts)); }
+ std::vector<DatatypeType> dtts;
+ PARSER_STATE->mkMutualDatatypeTypes(dts, dtts);
+ cmd = new DatatypeDeclarationCommand(dtts); }
| CONTEXT_TOK
( ( str[s] | IDENTIFIER { s = AntlrInput::tokenText($IDENTIFIER); } )
@@ -2173,7 +2175,7 @@ iteElseTerm[CVC4::Expr& f]
/**
* Parses a datatype definition
*/
-datatypeDef[std::vector<CVC4::Datatype>& datatypes]
+datatypeDef[std::vector<CVC4::Datatype*>& datatypes]
@init {
std::string id, id2;
Type t;
@@ -2193,7 +2195,7 @@ datatypeDef[std::vector<CVC4::Datatype>& datatypes]
params.push_back( t ); }
)* RBRACKET
)?
- { datatypes.push_back(Datatype(id, params, false));
+ { datatypes.push_back(new Datatype(id, params, false));
if(!PARSER_STATE->isUnresolvedType(id)) {
// if not unresolved, must be undeclared
PARSER_STATE->checkDeclaration(id, CHECK_UNDECLARED, SYM_SORT);
@@ -2207,7 +2209,7 @@ datatypeDef[std::vector<CVC4::Datatype>& datatypes]
/**
* Parses a constructor defintion for type
*/
-constructorDef[CVC4::Datatype& type]
+constructorDef[CVC4::Datatype*& type]
@init {
std::string id;
CVC4::DatatypeConstructor* ctor = NULL;
@@ -2225,7 +2227,7 @@ constructorDef[CVC4::Datatype& type]
RPAREN
)?
{ // make the constructor
- type.addConstructor(*ctor);
+ type->addConstructor(*ctor);
Debug("parser-idt") << "constructor: " << id.c_str() << std::endl;
delete ctor;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback