X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramsyntax.cpp;h=8cb276d9b6dcdef94e2afaccc7ba907ab580f675;hp=e67784fe8626a24522b43db5e203cb78354108bc;hb=8e14c298d9eaa47b81e27d5c25174bda958b445f;hpb=57c1139e4fe21aeca7118b18eb3ba6fa43d7bf90 diff --git a/source/programsyntax.cpp b/source/programsyntax.cpp index e67784fe..8cb276d9 100644 --- a/source/programsyntax.cpp +++ b/source/programsyntax.cpp @@ -6,6 +6,15 @@ namespace Msp { namespace GL { namespace ProgramSyntax { +template +NodeContainer::NodeContainer(const NodeContainer &c): + C(c) +{ + for(typename C::iterator i=this->begin(); i!=this->end(); ++i) + *i = (*i)->clone(); +} + + Block::Block(): use_braces(false) { } @@ -94,6 +103,12 @@ void Import::visit(NodeVisitor &visitor) } +void Precision::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + void Layout::visit(NodeVisitor &visitor) { visitor.visit(*this); @@ -184,6 +199,12 @@ void Return::visit(NodeVisitor &visitor) } +void Jump::visit(NodeVisitor &visitor) +{ + visitor.visit(*this); +} + + void NodeVisitor::visit(Assignment &assign) { visit(static_cast(assign));