X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fprogramsyntax.cpp;fp=source%2Fprogramsyntax.cpp;h=5b39d7f3036a4f90e9f495f9ff2f172e02cc59e2;hb=73ce62f3b9c2bbfc1e655a9df343389a733dc795;hp=09ba82c31fddd42bd10ab2d524ae8f9154e37035;hpb=6e6ee01b68056b23c6709d7f60396710dd7623b9;p=libs%2Fgl.git diff --git a/source/programsyntax.cpp b/source/programsyntax.cpp index 09ba82c3..5b39d7f3 100644 --- a/source/programsyntax.cpp +++ b/source/programsyntax.cpp @@ -10,13 +10,61 @@ Block::Block(): use_braces(false) { } -Block::~Block() +void Block::visit(NodeVisitor &visitor) { - for(vector::iterator i=body.begin(); i!=body.end(); ++i) - delete *i; + visitor.visit(*this); } -void Block::visit(NodeVisitor &visitor) + +void Literal::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +void ParenthesizedExpression::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +void VariableReference::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +void MemberAccess::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +UnaryExpression::UnaryExpression(): + prefix(true) +{ } + +void UnaryExpression::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +BinaryExpression::BinaryExpression(): + assignment(false) +{ } + +void BinaryExpression::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + +FunctionCall::FunctionCall(): + constructor(false) +{ } + +void FunctionCall::visit(NodeVisitor &visitor) { visitor.visit(*this); } @@ -71,12 +119,6 @@ FunctionDeclaration::FunctionDeclaration(): definition(false) { } -FunctionDeclaration::~FunctionDeclaration() -{ - for(vector::iterator i=parameters.begin(); i!=parameters.end(); ++i) - delete *i; -} - void FunctionDeclaration::visit(NodeVisitor &visitor) { visitor.visit(*this); @@ -95,15 +137,6 @@ void Return::visit(NodeVisitor &visitor) } -Iteration::Iteration(): - init_statement(0) -{ } - -Iteration::~Iteration() -{ - delete init_statement; -} - void Iteration::visit(NodeVisitor &visitor) { visitor.visit(*this);