}
+Swizzle::Swizzle():
+ count(0)
+{
+ fill(components, components+4, 0);
+}
+
+void Swizzle::visit(NodeVisitor &visitor)
+{
+ visitor.visit(*this);
+}
+
+
void UnaryExpression::visit(NodeVisitor &visitor)
{
visitor.visit(*this);
}
-StructDeclaration::StructDeclaration()
+StructDeclaration::StructDeclaration():
+ interface_block(0)
{
members.use_braces = true;
}
+StructDeclaration::StructDeclaration(const StructDeclaration &other):
+ TypeDeclaration(other),
+ members(other.members),
+ interface_block(0)
+{ }
+
+StructDeclaration::~StructDeclaration()
+{
+ if(interface_block && interface_block->struct_declaration==this)
+ interface_block->struct_declaration = 0;
+}
+
void StructDeclaration::visit(NodeVisitor &visitor)
{
visitor.visit(*this);
InterfaceBlock::InterfaceBlock():
array(false),
+ type_declaration(0),
+ struct_declaration(0),
linked_block(0)
-{
- members.use_braces = true;
-}
+{ }
InterfaceBlock::InterfaceBlock(const InterfaceBlock &other):
Statement(other),
members(other.members),
instance_name(other.instance_name),
array(other.array),
+ type_declaration(0),
+ struct_declaration(0),
linked_block(0)
{ }
{
if(linked_block && linked_block->linked_block==this)
linked_block->linked_block = 0;
+ if(struct_declaration && struct_declaration->interface_block==this)
+ struct_declaration->interface_block = 0;
}
void InterfaceBlock::visit(NodeVisitor &visitor)