virtual void visit(Block &) { }
virtual void visit(Literal &) { }
virtual void visit(VariableReference &) { }
- virtual void visit(InterfaceBlockReference &) { }
virtual void visit(MemberAccess &) { }
virtual void visit(Swizzle &) { }
virtual void visit(UnaryExpression &) { }
virtual void visit(ImageTypeDeclaration &) { }
virtual void visit(StructDeclaration &) { }
virtual void visit(VariableDeclaration &) { }
- virtual void visit(InterfaceBlock &) { }
virtual void visit(FunctionDeclaration &) { }
virtual void visit(Conditional &) { }
virtual void visit(Iteration &) { }
virtual void visit(InterfaceLayout &);
virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
- virtual void visit(InterfaceBlock &);
virtual void visit(FunctionDeclaration &);
virtual void visit(Conditional &);
virtual void visit(Iteration &);
private:
Stage *stage = 0;
const std::set<Node *> *to_remove = 0;
- bool recursive_remove = false;
public:
void apply(Stage &, const std::set<Node *> &);
void visit(TypeDeclaration &);
virtual void visit(BasicTypeDeclaration &t) { visit(static_cast<TypeDeclaration &>(t)); }
virtual void visit(ImageTypeDeclaration &t) { visit(static_cast<TypeDeclaration &>(t)); }
- virtual void visit(StructDeclaration &t) { visit(static_cast<TypeDeclaration &>(t)); }
+ virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
- virtual void visit(InterfaceBlock &);
virtual void visit(FunctionDeclaration &);
virtual void visit(Iteration &);
};