]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/Parser.cpp
more information in parsed source and output
[l2e.git] / src / loader / Parser.cpp
index 68fb32674dcebcbae2464d6fc55c24c7d2ede687..6ced1be4ee38707641c9cd7be956c73b6812082a 100644 (file)
@@ -75,15 +75,17 @@ Declaration *Parser::ProbeDefinition() {
        Tokenizer::Token t(GetToken());
        tok.Putback(t);
        if (BeginOfPropertyList(t)) {
-               PropertyList *propertyList(ParsePropertyList());
-               Definition *dfn(new Definition(typeName, identifier));
-               dfn->SetValue(propertyList);
-               return dfn;
+               auto_ptr<PropertyList> propertyList(ParsePropertyList());
+               auto_ptr<Definition> dfn(new Definition(typeName, identifier));
+               dfn->SetValue(propertyList.release());
+               product.AddDefinition(dfn.get());
+               return dfn.release();
        } else if (BeginningOfLiteral(t)) {
-               Literal *literal(ParseLiteral());
-               Definition *dfn(new Definition(typeName, identifier));
-               dfn->SetValue(literal);
-               return dfn;
+               auto_ptr<Literal> literal(ParseLiteral());
+               auto_ptr<Definition> dfn(new Definition(typeName, identifier));
+               dfn->SetValue(literal.release());
+               product.AddDefinition(dfn.get());
+               return dfn.release();
        } else {
                return new Declaration(typeName, identifier);
        }