+ template<typename T>
+ void remove_from_map(std::map<std::string, T *> &, const std::string &, T &);
+
+ virtual void visit(Block &);
+ 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 &);
+ virtual void visit(VariableDeclaration &);
+ virtual void visit(FunctionDeclaration &);
+ virtual void visit(Iteration &);