fix
[libfirm] / ir / tr / typewalk.h
index cbdef13..5c50a7e 100644 (file)
@@ -1,30 +1,38 @@
 /*
- * Project:     libFIRM
- * File name:   ir/tr/typewalk.h
- * Purpose:     Traverse the type information.
- * Author:      Goetz Lindenmaier
- * Modified by:
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 1999-2003 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
 /**
- * @file typewalk.h
+ * @file    typewalk.h
+ * @brief   Functionality to modify the type graph.
+ * @author  Goetz Lindenmaier
+ * @version $Id$
+ * @summary
  *
  * Traverse the type information.
  *
- * @author Goetz Lindenmaier
- *
  * The walker walks the whole ir graph
  * to find the distinct type trees in the type graph forest.
  * - execute the pre() function before recursion
  * - execute the post() function after recursion
  */
-
-#ifndef _TYPEWALK_H_
-#define _TYPEWALK_H_
+#ifndef FIRM_TR_TYPEWALK_H
+#define FIRM_TR_TYPEWALK_H
 
 #include "type.h"
 #include "type_or_entity.h"
@@ -43,7 +51,7 @@ typedef void type_walk_func(type_or_ent *tore, void *env);
  * @param clss    points to the visited class
  * @param env     free environment pointer
  */
-typedef void class_walk_func(type *clss, void *env);
+typedef void class_walk_func(ir_type *clss, void *env);
 
 /** Touches every type and entity in unspecified order.  If new
  *  types/entities are created during the traversal these will
@@ -57,9 +65,9 @@ void type_walk(type_walk_func *pre, type_walk_func *post, void *env);
  *  type walk at the irgs entity, the irgs frame type and all types and
  *  entities that are attributes to firm nodes. */
 void type_walk_irg(ir_graph *irg,
-                  type_walk_func *pre,
-                  type_walk_func *post,
-                  void *env);
+           type_walk_func *pre,
+           type_walk_func *post,
+           void *env);
 
 /**
     Touches every class in specified order:
@@ -73,18 +81,24 @@ void type_walk_irg(ir_graph *irg,
     @deprecated will be removed?
 */
 void type_walk_super2sub(type_walk_func *pre,
-                        type_walk_func *post,
-                        void *env);
+             type_walk_func *post,
+             void *env);
 
-/**
-    Touches every class in specified order:
-    - first the super class
-    - second the class itself
-    If new classes are created during the traversal these
-    will be visited, too. */
+/** Walker for class types in inheritance order.
+ *
+ *  Touches every class in specified order:
+ *   - first the super class
+ *   - second the class itself
+ *   If new classes are created during the traversal these
+ *   will be visited, too.
+ * Starts the walk at arbitrary classes.
+ * Executes pre when first visiting a class.  Executes post after
+ * visiting all superclasses.
+ *
+ * The arguments pre, post, env may be NULL. */
 void type_walk_super(type_walk_func *pre,
-                    type_walk_func *post,
-                    void *env);
+             type_walk_func *post,
+             void *env);
 
 /** Same as type_walk_super2sub, but visits only class types.
    Executes pre for a class if all superclasses have been visited.
@@ -95,8 +109,8 @@ void type_walk_super(type_walk_func *pre,
    @bug ?? something is wrong with this.
 */
 void class_walk_super2sub(class_walk_func *pre,
-                         class_walk_func *post,
-                         void *env);
+                          class_walk_func *post,
+                          void *env);
 
 /**
  * the entity walk function.  A function type for entity walkers.
@@ -104,7 +118,7 @@ void class_walk_super2sub(class_walk_func *pre,
  * @param ent     points to the visited entity
  * @param env     free environment pointer
  */
-typedef void entity_walk_func(entity *ent, void *env);
+typedef void entity_walk_func(ir_entity *ent, void *env);
 
 /**
  * Walks over all entities in the type.
@@ -113,8 +127,8 @@ typedef void entity_walk_func(entity *ent, void *env);
  * @param doit  the entity walker function
  * @param env   environment, will be passed to the walker function
  */
-void walk_types_entities(type *tp,
-                        entity_walk_func *doit,
-                        void *env);
+void walk_types_entities(ir_type *tp,
+             entity_walk_func *doit,
+             void *env);
 
-#endif /* _TYPEWALK_H_ */
+#endif /* FIRM_TR_TYPEWALK_H */