C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

tree_visitor Class Reference

#include <tree_visitor.h>

Inheritance diagram for tree_visitor:

Visitor print_tree_visitor List of all members.

Public Member Functions

virtual void at_unit (unitNode *the_unit)
virtual void at_decl (declNode *the_decl)
virtual void at_proc (procNode *the_proc)
virtual void at_prim (primNode *the_prim)
virtual void at_tdef (tdefNode *the_tdef)
virtual void at_ptr (ptrNode *the_ptr)
virtual void at_array (arrayNode *the_array)
virtual void at_func (funcNode *the_func)
virtual void at_struct (structNode *the_struct)
virtual void at_union (unionNode *the_union)
virtual void at_enum (enumNode *the_enum)
virtual void at_suespec (suespecNode *the_suespec)
virtual void at_const (constNode *the_const)
virtual void at_id (idNode *the_id)
virtual void at_binary (binaryNode *the_binary)
virtual void at_unary (unaryNode *the_unary)
virtual void at_cast (castNode *the_cast)
virtual void at_comma (commaNode *the_comma)
virtual void at_ternary (ternaryNode *the_ternary)
virtual void at_call (callNode *the_call)
virtual void at_initializer (initializerNode *the_initializer)
virtual void at_block (blockNode *the_block)
virtual void at_exprstmt (exprstmtNode *the_exprstmt)
virtual void at_label (labelNode *the_label)
virtual void at_case (caseNode *the_case)
virtual void at_if (ifNode *the_if)
virtual void at_switch (switchNode *the_switch)
virtual void at_while (whileNode *the_while)
virtual void at_do (doNode *the_do)
virtual void at_for (forNode *the_for)
virtual void at_goto (gotoNode *the_goto)
virtual void at_continue (continueNode *the_continue)
virtual void at_break (breakNode *the_break)
virtual void at_return (returnNode *the_return)
virtual void at_attrib (attribNode *the_attrib)
virtual void at_text (textNode *the_text)
"at_" methods
These methods define the functions that should be performed when different classes of Nodes are visited. The most specific "at_" method that matches a given Node's class will be called.

virtual void at_node (Node *the_node)
virtual void at_def (defNode *the_def)
virtual void at_subdecl (subdeclNode *the_subdecl)
virtual void at_type (typeNode *the_type)
virtual void at_sue (sueNode *the_sue)
virtual void at_expr (exprNode *the_expr)
virtual void at_index (indexNode *the_index)
virtual void at_stmt (stmtNode *the_stmt)
virtual void at_basicblock (basicblockNode *the_basicblock)
virtual void at_target (targetNode *the_target)
virtual void at_selection (selectionNode *the_selection)
virtual void at_loop (loopNode *the_loop)
virtual void at_jump (jumpNode *the_jump)
virtual void at_operand (operandNode *the_oper)
virtual void at_conditiongoto (conditiongotoNode *the_condgoto)
virtual void at_threeAddr (threeAddrNode *the_3addr)

Member Function Documentation

virtual void tree_visitor::at_array (  arrayNode *    the_array )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 97 of file tree_visitor.h.

References arrayNode::dim(), typeNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_array().

virtual void tree_visitor::at_attrib (  attribNode *    the_attrib )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 323 of file tree_visitor.h.

References attribNode::arg(), and Node::visit().

Referenced by print_tree_visitor::at_attrib().

virtual void Visitor::at_basicblock (  basicblockNode *    the_basicblock )  [inline, virtual, inherited]
 

Definition at line 202 of file visitor.h.

References Visitor::at_block().

Referenced by basicblockNode::visit().

virtual void tree_visitor::at_binary (  binaryNode *    the_binary )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 149 of file tree_visitor.h.

References binaryNode::left(), binaryNode::right(), exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_binary().

virtual void tree_visitor::at_block (  blockNode *    the_block )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 224 of file tree_visitor.h.

References blockNode::decls(), blockNode::stmts(), Node::type(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_block().

virtual void tree_visitor::at_break (  breakNode *    the_break )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 314 of file tree_visitor.h.

Referenced by print_tree_visitor::at_break().

virtual void tree_visitor::at_call (  callNode *    the_call )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 205 of file tree_visitor.h.

References callNode::args(), callNode::name(), exprNode::type(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_call().

virtual void tree_visitor::at_case (  caseNode *    the_case )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 245 of file tree_visitor.h.

References caseNode::expr(), targetNode::stmt(), blockNode::visit(), and Node::visit().

Referenced by print_tree_visitor::at_case().

virtual void tree_visitor::at_cast (  castNode *    the_cast )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 173 of file tree_visitor.h.

References castNode::expr(), exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_cast().

virtual void tree_visitor::at_comma (  commaNode *    the_comma )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 182 of file tree_visitor.h.

References commaNode::exprs(), exprNode::type(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_comma().

virtual void Visitor::at_conditiongoto (  conditiongotoNode *    the_condgoto )  [inline, virtual, inherited]
 

Definition at line 259 of file visitor.h.

References Visitor::at_goto().

Referenced by conditiongotoNode::visit().

virtual void tree_visitor::at_const (  constNode *    the_const )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 137 of file tree_visitor.h.

References exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_const().

virtual void tree_visitor::at_continue (  continueNode *    the_continue )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 311 of file tree_visitor.h.

Referenced by print_tree_visitor::at_continue().

virtual void tree_visitor::at_decl (  declNode *    the_decl )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 63 of file tree_visitor.h.

References declNode::attribs(), declNode::bitsize(), declNode::init(), declNode::type(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_decl().

virtual void Visitor::at_def (  defNode *    the_def )  [inline, virtual, inherited]
 

Definition at line 118 of file visitor.h.

References Visitor::at_node().

Referenced by Visitor::at_decl(), and Visitor::at_proc().

virtual void tree_visitor::at_do (  doNode *    the_do )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 284 of file tree_visitor.h.

References loopNode::body(), loopNode::cond(), Node::visit(), and blockNode::visit().

Referenced by print_tree_visitor::at_do().

virtual void tree_visitor::at_enum (  enumNode *    the_enum )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 126 of file tree_visitor.h.

References sueNode::elaborated(), sueNode::spec(), and suespecNode::visit().

virtual void Visitor::at_expr (  exprNode *    the_expr )  [inline, virtual, inherited]
 

Definition at line 163 of file visitor.h.

References Visitor::at_node().

Referenced by Visitor::at_binary(), Visitor::at_call(), Visitor::at_cast(), Visitor::at_comma(), Visitor::at_index(), Visitor::at_initializer(), Visitor::at_operand(), Visitor::at_ternary(), Visitor::at_unary(), and metaexprNode::visit().

virtual void tree_visitor::at_exprstmt (  exprstmtNode *    the_exprstmt )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 233 of file tree_visitor.h.

References exprstmtNode::expr(), and Node::visit().

Referenced by print_tree_visitor::at_exprstmt().

virtual void tree_visitor::at_for (  forNode *    the_for )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 293 of file tree_visitor.h.

References loopNode::body(), loopNode::cond(), forNode::init(), forNode::next(), blockNode::visit(), and Node::visit().

Referenced by print_tree_visitor::at_for().

virtual void tree_visitor::at_func (  funcNode *    the_func )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 106 of file tree_visitor.h.

References funcNode::args(), funcNode::returns(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_func().

virtual void tree_visitor::at_goto (  gotoNode *    the_goto )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 308 of file tree_visitor.h.

Referenced by print_tree_visitor::at_goto().

virtual void tree_visitor::at_id (  idNode *    the_id )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 143 of file tree_visitor.h.

References exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_id().

virtual void tree_visitor::at_if (  ifNode *    the_if )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 254 of file tree_visitor.h.

References selectionNode::expr(), ifNode::false_br(), ifNode::true_br(), blockNode::visit(), and Node::visit().

Referenced by print_tree_visitor::at_if().

virtual void Visitor::at_index (  indexNode *    the_index )  [inline, virtual, inherited]
 

Definition at line 166 of file visitor.h.

References Visitor::at_expr().

Referenced by Visitor::at_const(), and Visitor::at_id().

virtual void tree_visitor::at_initializer (  initializerNode *    the_initializer )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 216 of file tree_visitor.h.

References initializerNode::exprs(), exprNode::type(), Node::visit(), and visit_list().

Referenced by print_tree_visitor::at_initializer().

virtual void Visitor::at_jump (  jumpNode *    the_jump )  [inline, virtual, inherited]
 

Definition at line 238 of file visitor.h.

References Visitor::at_stmt().

Referenced by Visitor::at_break(), Visitor::at_continue(), Visitor::at_goto(), and Visitor::at_return().

virtual void tree_visitor::at_label (  labelNode *    the_label )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 239 of file tree_visitor.h.

References targetNode::stmt(), and blockNode::visit().

Referenced by print_tree_visitor::at_label().

virtual void Visitor::at_loop (  loopNode *    the_loop )  [inline, virtual, inherited]
 

Definition at line 226 of file visitor.h.

References Visitor::at_stmt().

Referenced by Visitor::at_do(), Visitor::at_for(), and Visitor::at_while().

virtual void Visitor::at_node (  Node *    the_node )  [inline, virtual, inherited]
 

Definition at line 111 of file visitor.h.

Referenced by Visitor::at_def(), Visitor::at_expr(), Visitor::at_stmt(), Visitor::at_text(), Visitor::at_type(), and Visitor::at_unit().

virtual void Visitor::at_operand (  operandNode *    the_oper )  [inline, virtual, inherited]
 

Definition at line 256 of file visitor.h.

References Visitor::at_expr().

Referenced by operandNode::visit().

virtual void tree_visitor::at_prim (  primNode *    the_prim )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 86 of file tree_visitor.h.

Referenced by print_tree_visitor::at_prim().

virtual void tree_visitor::at_proc (  procNode *    the_proc )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 77 of file tree_visitor.h.

References procNode::body(), procNode::decl(), blockNode::visit(), and declNode::visit().

Referenced by print_tree_visitor::at_proc().

virtual void tree_visitor::at_ptr (  ptrNode *    the_ptr )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 92 of file tree_visitor.h.

References typeNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_ptr().

virtual void tree_visitor::at_return (  returnNode *    the_return )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 317 of file tree_visitor.h.

References returnNode::expr(), and Node::visit().

Referenced by print_tree_visitor::at_return().

virtual void Visitor::at_selection (  selectionNode *    the_selection )  [inline, virtual, inherited]
 

Definition at line 217 of file visitor.h.

References Visitor::at_stmt().

Referenced by Visitor::at_if(), and Visitor::at_switch().

virtual void Visitor::at_stmt (  stmtNode *    the_stmt )  [inline, virtual, inherited]
 

Definition at line 196 of file visitor.h.

References Visitor::at_node().

Referenced by Visitor::at_attrib(), Visitor::at_block(), Visitor::at_exprstmt(), Visitor::at_jump(), Visitor::at_loop(), Visitor::at_selection(), Visitor::at_target(), Visitor::at_threeAddr(), and metastmtNode::visit().

virtual void tree_visitor::at_struct (  structNode *    the_struct )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 114 of file tree_visitor.h.

References sueNode::elaborated(), sueNode::spec(), and suespecNode::visit().

virtual void Visitor::at_subdecl (  subdeclNode *    the_subdecl )  [inline, virtual, inherited]
 

Definition at line 124 of file visitor.h.

References Visitor::at_decl().

Referenced by subdeclNode::visit().

virtual void Visitor::at_sue (  sueNode *    the_sue )  [inline, virtual, inherited]
 

Reimplemented in print_tree_visitor.

Definition at line 148 of file visitor.h.

References Visitor::at_type().

Referenced by Visitor::at_enum(), Visitor::at_struct(), and Visitor::at_union().

virtual void tree_visitor::at_suespec (  suespecNode *    the_suespec )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 132 of file tree_visitor.h.

References suespecNode::fields(), and visit_list().

Referenced by print_tree_visitor::at_suespec().

virtual void tree_visitor::at_switch (  switchNode *    the_switch )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 266 of file tree_visitor.h.

References selectionNode::expr(), selectionNode::stmt(), blockNode::visit(), and Node::visit().

Referenced by print_tree_visitor::at_switch().

virtual void Visitor::at_target (  targetNode *    the_target )  [inline, virtual, inherited]
 

Definition at line 208 of file visitor.h.

References Visitor::at_stmt().

Referenced by Visitor::at_case(), and Visitor::at_label().

virtual void tree_visitor::at_tdef (  tdefNode *    the_tdef )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 89 of file tree_visitor.h.

Referenced by print_tree_visitor::at_tdef().

virtual void tree_visitor::at_ternary (  ternaryNode *    the_ternary )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 190 of file tree_visitor.h.

References ternaryNode::cond(), ternaryNode::false_br(), ternaryNode::true_br(), exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_ternary().

virtual void tree_visitor::at_text (  textNode *    the_text )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 329 of file tree_visitor.h.

Referenced by print_tree_visitor::at_text().

virtual void Visitor::at_threeAddr (  threeAddrNode *    the_3addr )  [inline, virtual, inherited]
 

Definition at line 262 of file visitor.h.

References Visitor::at_stmt().

Referenced by threeAddrNode::visit().

virtual void Visitor::at_type (  typeNode *    the_type )  [inline, virtual, inherited]
 

Definition at line 130 of file visitor.h.

References Visitor::at_node().

Referenced by Visitor::at_array(), Visitor::at_func(), Visitor::at_prim(), Visitor::at_ptr(), Visitor::at_sue(), Visitor::at_suespec(), and Visitor::at_tdef().

virtual void tree_visitor::at_unary (  unaryNode *    the_unary )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 161 of file tree_visitor.h.

References unaryNode::expr(), unaryNode::sizeof_type(), exprNode::type(), and Node::visit().

Referenced by print_tree_visitor::at_unary().

virtual void tree_visitor::at_union (  unionNode *    the_union )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 120 of file tree_visitor.h.

References sueNode::elaborated(), sueNode::spec(), and suespecNode::visit().

virtual void tree_visitor::at_unit (  unitNode *    the_unit )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 58 of file tree_visitor.h.

References unitNode::defs(), and visit_list().

Referenced by print_tree_visitor::at_unit().

virtual void tree_visitor::at_while (  whileNode *    the_while )  [inline, virtual]
 

Reimplemented from Visitor.

Reimplemented in print_tree_visitor.

Definition at line 275 of file tree_visitor.h.

References loopNode::body(), loopNode::cond(), blockNode::visit(), and Node::visit().

Referenced by print_tree_visitor::at_while().


The documentation for this class was generated from the following file:

Generated on August 27, 2003
Back to the C-Breeze home page