]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programsyntax.cpp
Consistently use the NodeList and NodeArray types
[libs/gl.git] / source / programsyntax.cpp
index 4438c16ed03cb7bd7a3c5c94e86fe01d98235e25..edd38eaa84285c5924699d9671bc8fb3178a287b 100644 (file)
@@ -103,6 +103,12 @@ void Import::visit(NodeVisitor &visitor)
 }
 
 
+void Precision::visit(NodeVisitor &visitor)
+{
+       visitor.visit(*this);
+}
+
+
 void Layout::visit(NodeVisitor &visitor)
 {
        visitor.visit(*this);
@@ -193,6 +199,12 @@ void Return::visit(NodeVisitor &visitor)
 }
 
 
+void Jump::visit(NodeVisitor &visitor)
+{
+       visitor.visit(*this);
+}
+
+
 void NodeVisitor::visit(Assignment &assign)
 {
        visit(static_cast<BinaryExpression &>(assign));
@@ -201,7 +213,7 @@ void NodeVisitor::visit(Assignment &assign)
 
 void TraversingVisitor::visit(Block &block)
 {
-       for(list<RefPtr<Node> >::iterator i=block.body.begin(); i!=block.body.end(); ++i)
+       for(NodeList<Statement>::iterator i=block.body.begin(); i!=block.body.end(); ++i)
                (*i)->visit(*this);
 }
 
@@ -228,7 +240,7 @@ void TraversingVisitor::visit(BinaryExpression &binary)
 
 void TraversingVisitor::visit(FunctionCall &call)
 {
-       for(vector<RefPtr<Expression> >::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i)
+       for(NodeArray<Expression>::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i)
                (*i)->visit(*this);
 }
 
@@ -264,7 +276,7 @@ void TraversingVisitor::visit(InterfaceBlock &iface)
 
 void TraversingVisitor::visit(FunctionDeclaration &func)
 {
-       for(vector<RefPtr<VariableDeclaration> >::iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
+       for(NodeArray<VariableDeclaration>::iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
                (*i)->visit(*this);
        func.body.visit(*this);
 }
@@ -278,7 +290,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)