X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fprogramsyntax.cpp;h=6dea029f2fe024d1fed301a20cf93bd2fc80f430;hb=39488946c441f4007396e438f522609a8b2943ce;hp=8cb276d9b6dcdef94e2afaccc7ba907ab580f675;hpb=a5772e203cc30ce3b449614d03a293fd5b5985ad;p=libs%2Fgl.git diff --git a/source/programsyntax.cpp b/source/programsyntax.cpp index 8cb276d9..6dea029f 100644 --- a/source/programsyntax.cpp +++ b/source/programsyntax.cpp @@ -15,6 +15,12 @@ NodeContainer::NodeContainer(const NodeContainer &c): } +Statement::Statement(): + source(0), + line(1) +{ } + + Block::Block(): use_braces(false) { } @@ -213,7 +219,7 @@ void NodeVisitor::visit(Assignment &assign) void TraversingVisitor::visit(Block &block) { - for(list >::iterator i=block.body.begin(); i!=block.body.end(); ++i) + for(NodeList::iterator i=block.body.begin(); i!=block.body.end(); ++i) (*i)->visit(*this); } @@ -240,7 +246,7 @@ void TraversingVisitor::visit(BinaryExpression &binary) void TraversingVisitor::visit(FunctionCall &call) { - for(vector >::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i) + for(NodeArray::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i) (*i)->visit(*this); } @@ -276,7 +282,7 @@ void TraversingVisitor::visit(InterfaceBlock &iface) void TraversingVisitor::visit(FunctionDeclaration &func) { - for(vector >::iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i) + for(NodeArray::iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i) (*i)->visit(*this); func.body.visit(*this); } @@ -290,7 +296,8 @@ void TraversingVisitor::visit(Conditional &cond) void TraversingVisitor::visit(Iteration &iter) { - iter.init_statement->visit(*this); + if(iter.init_statement) + iter.init_statement->visit(*this); if(iter.condition) iter.condition->visit(*this); if(iter.loop_expression)