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  

print_tree_visitor Class Reference
[phases defined in c-breeze (some of which are available from the command line).]

puts the AST on an output stream. More...

#include <print_tree_visitor.h>

Inheritance diagram for print_tree_visitor:

tree_visitor Visitor List of all members.

Public Member Functions

 print_tree_visitor (ostream &out, numbering_map *num)
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_sue (sueNode *the_sue)
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_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)

Static Public Member Functions

void print (Node *n, ostream &out)

Private Member Functions

void indent (Node *n) const
void in ()
void out ()

Private Attributes

ostream & _out
int _indent
numbering_map_num

Detailed Description

puts the AST on an output stream.

Definition at line 45 of file print_tree_visitor.h.


Constructor & Destructor Documentation

print_tree_visitor::print_tree_visitor ostream &    out,
numbering_map   num
 

Definition at line 61 of file print_tree_visitor.cc.


Member Function Documentation

void print_tree_visitor::at_array arrayNode   the_array [virtual]
 

Reimplemented from tree_visitor.

Definition at line 190 of file print_tree_visitor.cc.

References _out, tree_visitor::at_array(), arrayNode::dim(), in(), indent(), out(), arrayNode::size(), and typeNode::type_qualifiers_name().

void print_tree_visitor::at_attrib attribNode   the_attrib [virtual]
 

Reimplemented from tree_visitor.

Definition at line 721 of file print_tree_visitor.cc.

References _out, tree_visitor::at_attrib(), in(), indent(), attribNode::name(), and out().

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().

void print_tree_visitor::at_binary binaryNode   the_binary [virtual]
 

Reimplemented from tree_visitor.

Definition at line 310 of file print_tree_visitor.cc.

References _out, tree_visitor::at_binary(), in(), indent(), binaryNode::left(), binaryNode::op(), out(), Operator::print(), and binaryNode::right().

void print_tree_visitor::at_block blockNode   the_block [virtual]
 

Reimplemented from tree_visitor.

Definition at line 441 of file print_tree_visitor.cc.

References _out, tree_visitor::at_block(), blockNode::decls(), in(), indent(), out(), and blockNode::stmts().

void print_tree_visitor::at_break breakNode   the_break [virtual]
 

Reimplemented from tree_visitor.

Definition at line 687 of file print_tree_visitor.cc.

References _out, tree_visitor::at_break(), breakNode::container(), in(), indent(), and out().

void print_tree_visitor::at_call callNode   the_call [virtual]
 

Reimplemented from tree_visitor.

Definition at line 402 of file print_tree_visitor.cc.

References _out, callNode::args(), tree_visitor::at_call(), in(), indent(), callNode::name(), out(), and callNode::proc().

void print_tree_visitor::at_case caseNode   the_case [virtual]
 

Reimplemented from tree_visitor.

Definition at line 512 of file print_tree_visitor.cc.

References _out, tree_visitor::at_case(), caseNode::container(), caseNode::expr(), in(), indent(), out(), and targetNode::stmt().

void print_tree_visitor::at_cast castNode   the_cast [virtual]
 

Reimplemented from tree_visitor.

Definition at line 347 of file print_tree_visitor.cc.

References _out, tree_visitor::at_cast(), castNode::expr(), in(), indent(), castNode::is_implicit(), and out().

void print_tree_visitor::at_comma commaNode   the_comma [virtual]
 

Reimplemented from tree_visitor.

Definition at line 367 of file print_tree_visitor.cc.

References _out, tree_visitor::at_comma(), in(), indent(), and out().

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().

void print_tree_visitor::at_const constNode   the_const [virtual]
 

Reimplemented from tree_visitor.

Definition at line 283 of file print_tree_visitor.cc.

References _out, tree_visitor::at_const(), in(), indent(), out(), and constNode::text().

void print_tree_visitor::at_continue continueNode   the_continue [virtual]
 

Reimplemented from tree_visitor.

Definition at line 672 of file print_tree_visitor.cc.

References _out, tree_visitor::at_continue(), continueNode::container(), in(), indent(), and out().

void print_tree_visitor::at_decl declNode   the_decl [virtual]
 

Reimplemented from tree_visitor.

Definition at line 96 of file print_tree_visitor.cc.

References _out, tree_visitor::at_decl(), declNode::decl_location(), declNode::decl_location_name(), in(), indent(), declNode::name(), out(), declNode::storage_class(), and declNode::storage_class_name().

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().

void print_tree_visitor::at_do doNode   the_do [virtual]
 

Reimplemented from tree_visitor.

Definition at line 610 of file print_tree_visitor.cc.

References _out, tree_visitor::at_do(), loopNode::body(), loopNode::cond(), in(), indent(), and out().

void print_tree_visitor::at_enum enumNode   the_enum [virtual]
 

Reimplemented from tree_visitor.

Definition at line 258 of file print_tree_visitor.cc.

References at_sue().

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().

void print_tree_visitor::at_exprstmt exprstmtNode   the_exprstmt [virtual]
 

Reimplemented from tree_visitor.

Definition at line 461 of file print_tree_visitor.cc.

References _out, tree_visitor::at_exprstmt(), exprstmtNode::expr(), in(), indent(), and out().

void print_tree_visitor::at_for forNode   the_for [virtual]
 

Reimplemented from tree_visitor.

Definition at line 630 of file print_tree_visitor.cc.

References _out, tree_visitor::at_for(), loopNode::body(), loopNode::cond(), in(), indent(), forNode::init(), forNode::next(), and out().

void print_tree_visitor::at_func funcNode   the_func [virtual]
 

Reimplemented from tree_visitor.

Definition at line 207 of file print_tree_visitor.cc.

References _out, tree_visitor::at_func(), in(), indent(), out(), and typeNode::type_qualifiers_name().

void print_tree_visitor::at_goto gotoNode   the_goto [virtual]
 

Reimplemented from tree_visitor.

Definition at line 656 of file print_tree_visitor.cc.

References _out, tree_visitor::at_goto(), in(), indent(), gotoNode::label(), gotoNode::name(), and out().

void print_tree_visitor::at_id idNode   the_id [virtual]
 

Reimplemented from tree_visitor.

Definition at line 295 of file print_tree_visitor.cc.

References _out, tree_visitor::at_id(), idNode::decl(), in(), indent(), idNode::name(), and out().

void print_tree_visitor::at_if ifNode   the_if [virtual]
 

Reimplemented from tree_visitor.

Definition at line 535 of file print_tree_visitor.cc.

References _out, tree_visitor::at_if(), selectionNode::expr(), ifNode::false_br(), in(), indent(), out(), and ifNode::true_br().

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().

void print_tree_visitor::at_initializer initializerNode   the_initializer [virtual]
 

Reimplemented from tree_visitor.

Definition at line 424 of file print_tree_visitor.cc.

References _out, tree_visitor::at_initializer(), initializerNode::exprs(), in(), indent(), and out().

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().

void print_tree_visitor::at_label labelNode   the_label [virtual]
 

Reimplemented from tree_visitor.

Definition at line 478 of file print_tree_visitor.cc.

References _out, tree_visitor::at_label(), goto_list, goto_list_p, in(), indent(), labelNode::name(), out(), labelNode::references(), and targetNode::stmt().

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().

void print_tree_visitor::at_prim primNode   the_prim [virtual]
 

Reimplemented from tree_visitor.

Definition at line 140 of file print_tree_visitor.cc.

References _out, tree_visitor::at_prim(), primNode::basic(), in(), indent(), out(), basic_type::to_string(), and typeNode::type_qualifiers_name().

void print_tree_visitor::at_proc procNode   the_proc [virtual]
 

Reimplemented from tree_visitor.

Definition at line 120 of file print_tree_visitor.cc.

References _out, tree_visitor::at_proc(), procNode::body(), procNode::decl(), in(), indent(), and out().

void print_tree_visitor::at_ptr ptrNode   the_ptr [virtual]
 

Reimplemented from tree_visitor.

Definition at line 178 of file print_tree_visitor.cc.

References _out, tree_visitor::at_ptr(), in(), indent(), out(), and typeNode::type_qualifiers_name().

void print_tree_visitor::at_return returnNode   the_return [virtual]
 

Reimplemented from tree_visitor.

Definition at line 702 of file print_tree_visitor.cc.

References _out, tree_visitor::at_return(), returnNode::expr(), in(), indent(), out(), and returnNode::proc().

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().

void print_tree_visitor::at_struct structNode   the_struct [virtual]
 

Reimplemented from tree_visitor.

Definition at line 252 of file print_tree_visitor.cc.

References at_sue().

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().

void print_tree_visitor::at_sue sueNode   the_sue [virtual]
 

Reimplemented from Visitor.

Definition at line 219 of file print_tree_visitor.cc.

References _out, sueNode::elaborated(), Enum, in(), indent(), suespecNode::name(), out(), sueNode::spec(), Struct, Node::typ(), Union, and suespecNode::visit().

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

void print_tree_visitor::at_suespec suespecNode   the_suespec [virtual]
 

Reimplemented from tree_visitor.

Definition at line 262 of file print_tree_visitor.cc.

References _out, suespecNode::align(), tree_visitor::at_suespec(), suespecNode::complete(), in(), indent(), out(), suespecNode::size(), typeNode::type_qualifiers_name(), and suespecNode::visited().

void print_tree_visitor::at_switch switchNode   the_switch [virtual]
 

Reimplemented from tree_visitor.

Definition at line 558 of file print_tree_visitor.cc.

References _out, tree_visitor::at_switch(), switchNode::cases(), selectionNode::expr(), in(), indent(), out(), selectionNode::stmt(), target_list, and target_list_p.

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().

void print_tree_visitor::at_tdef tdefNode   the_tdef [virtual]
 

Reimplemented from tree_visitor.

Definition at line 156 of file print_tree_visitor.cc.

References _out, tree_visitor::at_tdef(), tdefNode::def(), in(), indent(), tdefNode::name(), out(), and typeNode::type_qualifiers_name().

void print_tree_visitor::at_ternary ternaryNode   the_ternary [virtual]
 

Reimplemented from tree_visitor.

Definition at line 379 of file print_tree_visitor.cc.

References _out, tree_visitor::at_ternary(), ternaryNode::cond(), ternaryNode::false_br(), in(), indent(), out(), and ternaryNode::true_br().

void print_tree_visitor::at_text textNode   the_text [virtual]
 

Reimplemented from tree_visitor.

Definition at line 733 of file print_tree_visitor.cc.

References _out, tree_visitor::at_text(), in(), indent(), out(), and textNode::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().

void print_tree_visitor::at_unary unaryNode   the_unary [virtual]
 

Reimplemented from tree_visitor.

Definition at line 330 of file print_tree_visitor.cc.

References _out, tree_visitor::at_unary(), unaryNode::expr(), in(), indent(), unaryNode::op(), out(), and Operator::print().

void print_tree_visitor::at_union unionNode   the_union [virtual]
 

Reimplemented from tree_visitor.

Definition at line 255 of file print_tree_visitor.cc.

References at_sue().

void print_tree_visitor::at_unit unitNode   the_unit [virtual]
 

Reimplemented from tree_visitor.

Definition at line 84 of file print_tree_visitor.cc.

References _out, tree_visitor::at_unit(), in(), indent(), and out().

void print_tree_visitor::at_while whileNode   the_while [virtual]
 

Reimplemented from tree_visitor.

Definition at line 590 of file print_tree_visitor.cc.

References _out, tree_visitor::at_while(), loopNode::body(), loopNode::cond(), in(), indent(), and out().

void print_tree_visitor::in   [inline, private]
 

Definition at line 62 of file print_tree_visitor.h.

Referenced by at_array(), at_attrib(), at_binary(), at_block(), at_break(), at_call(), at_case(), at_cast(), at_comma(), at_const(), at_continue(), at_decl(), at_do(), at_exprstmt(), at_for(), at_func(), at_goto(), at_id(), at_if(), at_initializer(), at_label(), at_prim(), at_proc(), at_ptr(), at_return(), at_sue(), at_suespec(), at_switch(), at_tdef(), at_ternary(), at_text(), at_unary(), at_unit(), and at_while().

void print_tree_visitor::indent Node   n const [private]
 

Definition at line 68 of file print_tree_visitor.cc.

References _out.

Referenced by at_array(), at_attrib(), at_binary(), at_block(), at_break(), at_call(), at_case(), at_cast(), at_comma(), at_const(), at_continue(), at_decl(), at_do(), at_exprstmt(), at_for(), at_func(), at_goto(), at_id(), at_if(), at_initializer(), at_label(), at_prim(), at_proc(), at_ptr(), at_return(), at_sue(), at_suespec(), at_switch(), at_tdef(), at_ternary(), at_text(), at_unary(), at_unit(), and at_while().

void print_tree_visitor::out   [inline, private]
 

Definition at line 63 of file print_tree_visitor.h.

Referenced by at_array(), at_attrib(), at_binary(), at_block(), at_break(), at_call(), at_case(), at_cast(), at_comma(), at_const(), at_continue(), at_decl(), at_do(), at_exprstmt(), at_for(), at_func(), at_goto(), at_id(), at_if(), at_initializer(), at_label(), at_prim(), at_proc(), at_ptr(), at_return(), at_sue(), at_suespec(), at_switch(), at_tdef(), at_ternary(), at_text(), at_unary(), at_unit(), and at_while().

void print_tree_visitor::print Node   n,
ostream &    out
[static]
 

Definition at line 47 of file print_tree_visitor.cc.

References df_number_walker::number(), numbering_map, and Node::visit().


Member Data Documentation

int print_tree_visitor::_indent [private]
 

Definition at line 57 of file print_tree_visitor.h.

numbering_map* print_tree_visitor::_num [private]
 

Definition at line 58 of file print_tree_visitor.h.

ostream& print_tree_visitor::_out [private]
 

Definition at line 56 of file print_tree_visitor.h.

Referenced by at_array(), at_attrib(), at_binary(), at_block(), at_break(), at_call(), at_case(), at_cast(), at_comma(), at_const(), at_continue(), at_decl(), at_do(), at_exprstmt(), at_for(), at_func(), at_goto(), at_id(), at_if(), at_initializer(), at_label(), at_prim(), at_proc(), at_ptr(), at_return(), at_sue(), at_suespec(), at_switch(), at_tdef(), at_ternary(), at_text(), at_unary(), at_unit(), at_while(), and indent().


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

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