}
+void Precision::visit(NodeVisitor &visitor)
+{
+ visitor.visit(*this);
+}
+
+
void Layout::visit(NodeVisitor &visitor)
{
visitor.visit(*this);
}
+void Jump::visit(NodeVisitor &visitor)
+{
+ visitor.visit(*this);
+}
+
+
void NodeVisitor::visit(Assignment &assign)
{
visit(static_cast<BinaryExpression &>(assign));
void TraversingVisitor::visit(Block &block)
{
- for(list<RefPtr<Node> >::iterator i=block.body.begin(); i!=block.body.end(); ++i)
+ for(list<RefPtr<Statement> >::iterator i=block.body.begin(); i!=block.body.end(); ++i)
(*i)->visit(*this);
}
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)