tipc
A TIP to LLVM compiler
Public Member Functions | Static Public Member Functions | List of all members
PrettyPrinter Class Reference

GNU Style PrettyPrinter. More...

#include <PrettyPrinter.h>

Inheritance diagram for PrettyPrinter:
Inheritance graph
[legend]
Collaboration diagram for PrettyPrinter:
Collaboration graph
[legend]

Public Member Functions

 PrettyPrinter ()
 
 PrettyPrinter (std::ostream &os, char indentChar, int indentSize)
 
virtual void endVisit (ASTProgram *element) override
 
virtual bool visit (ASTFunction *element) override
 
virtual void endVisit (ASTFunction *element) override
 
virtual void endVisit (ASTNumberExpr *element) override
 
virtual void endVisit (ASTVariableExpr *element) override
 
virtual void endVisit (ASTBinaryExpr *element) override
 
virtual void endVisit (ASTInputExpr *element) override
 
virtual void endVisit (ASTFunAppExpr *element) override
 
virtual void endVisit (ASTAllocExpr *element) override
 
virtual void endVisit (ASTRefExpr *element) override
 
virtual void endVisit (ASTDeRefExpr *element) override
 
virtual void endVisit (ASTNullExpr *element) override
 
virtual void endVisit (ASTFieldExpr *element) override
 
virtual void endVisit (ASTRecordExpr *element) override
 
virtual void endVisit (ASTAccessExpr *element) override
 
virtual void endVisit (ASTDeclNode *element) override
 
virtual void endVisit (ASTDeclStmt *element) override
 
virtual void endVisit (ASTAssignStmt *element) override
 
virtual bool visit (ASTBlockStmt *element) override
 
virtual void endVisit (ASTBlockStmt *element) override
 
virtual bool visit (ASTWhileStmt *element) override
 
virtual void endVisit (ASTWhileStmt *element) override
 
virtual bool visit (ASTIfStmt *element) override
 
virtual void endVisit (ASTIfStmt *element) override
 
virtual void endVisit (ASTOutputStmt *element) override
 
virtual void endVisit (ASTReturnStmt *element) override
 
virtual void endVisit (ASTErrorStmt *element) override
 
- Public Member Functions inherited from ASTVisitor
virtual bool visit (ASTProgram *element)
 
virtual bool visit (ASTNumberExpr *element)
 
virtual bool visit (ASTVariableExpr *element)
 
virtual bool visit (ASTBinaryExpr *element)
 
virtual bool visit (ASTInputExpr *element)
 
virtual bool visit (ASTFunAppExpr *element)
 
virtual bool visit (ASTAllocExpr *element)
 
virtual bool visit (ASTRefExpr *element)
 
virtual bool visit (ASTDeRefExpr *element)
 
virtual bool visit (ASTNullExpr *element)
 
virtual bool visit (ASTFieldExpr *element)
 
virtual bool visit (ASTRecordExpr *element)
 
virtual bool visit (ASTAccessExpr *element)
 
virtual bool visit (ASTDeclNode *element)
 
virtual bool visit (ASTDeclStmt *element)
 
virtual bool visit (ASTAssignStmt *element)
 
virtual bool visit (ASTOutputStmt *element)
 
virtual bool visit (ASTReturnStmt *element)
 
virtual bool visit (ASTErrorStmt *element)
 

Static Public Member Functions

static void print (ASTProgram *p, std::ostream &os, char c, int n)
 

Detailed Description

GNU Style PrettyPrinter.

Visitor to produce a textual representation of a program represented as an AST. The visitor is parameterized by the whitespace character and the preferred number of those characters to use for formatting the program. The output is written to a provided std::ostream.

There are two primary entry points to this class. The print method prints entire programs and the print2 method prints any sub-tree of the program.

This visitor uses primarily a post-order traversal of the AST, by overriding endVisit methods, and therefore uses a LIFO protocol for storing and accessing values computed during the traversal, i.e., in visitResults.

Constructor & Destructor Documentation

◆ PrettyPrinter() [1/2]

PrettyPrinter::PrettyPrinter ( )
inline

◆ PrettyPrinter() [2/2]

PrettyPrinter::PrettyPrinter ( std::ostream &  os,
char  indentChar,
int  indentSize 
)
inline

Member Function Documentation

◆ endVisit() [1/23]

void PrettyPrinter::endVisit ( ASTAccessExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [2/23]

void PrettyPrinter::endVisit ( ASTAllocExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [3/23]

void PrettyPrinter::endVisit ( ASTAssignStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [4/23]

void PrettyPrinter::endVisit ( ASTBinaryExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [5/23]

void PrettyPrinter::endVisit ( ASTBlockStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [6/23]

void PrettyPrinter::endVisit ( ASTDeclNode element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [7/23]

void PrettyPrinter::endVisit ( ASTDeclStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [8/23]

void PrettyPrinter::endVisit ( ASTDeRefExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [9/23]

void PrettyPrinter::endVisit ( ASTErrorStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [10/23]

void PrettyPrinter::endVisit ( ASTFieldExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [11/23]

void PrettyPrinter::endVisit ( ASTFunAppExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [12/23]

void PrettyPrinter::endVisit ( ASTFunction element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [13/23]

void PrettyPrinter::endVisit ( ASTIfStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [14/23]

void PrettyPrinter::endVisit ( ASTInputExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [15/23]

void PrettyPrinter::endVisit ( ASTNullExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [16/23]

void PrettyPrinter::endVisit ( ASTNumberExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [17/23]

void PrettyPrinter::endVisit ( ASTOutputStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [18/23]

void PrettyPrinter::endVisit ( ASTProgram element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [19/23]

void PrettyPrinter::endVisit ( ASTRecordExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [20/23]

void PrettyPrinter::endVisit ( ASTRefExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [21/23]

void PrettyPrinter::endVisit ( ASTReturnStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [22/23]

void PrettyPrinter::endVisit ( ASTVariableExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [23/23]

void PrettyPrinter::endVisit ( ASTWhileStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ print()

void PrettyPrinter::print ( ASTProgram p,
std::ostream &  os,
char  c,
int  n 
)
static

◆ visit() [1/4]

bool PrettyPrinter::visit ( ASTBlockStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ visit() [2/4]

bool PrettyPrinter::visit ( ASTFunction element)
overridevirtual

Reimplemented from ASTVisitor.

◆ visit() [3/4]

bool PrettyPrinter::visit ( ASTIfStmt element)
overridevirtual

Reimplemented from ASTVisitor.

◆ visit() [4/4]

bool PrettyPrinter::visit ( ASTWhileStmt element)
overridevirtual

Reimplemented from ASTVisitor.


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