mjplusplus  v0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
firm::visitor::BoolExpressionVisitor Class Reference

#include <BoolExpressionVisitor.hpp>

Inheritance diagram for firm::visitor::BoolExpressionVisitor:
firm::visitor::FirmVisitor ast::ASTVisitor

Public Member Functions

 BoolExpressionVisitor (ir_node *thenBlock, ir_node *elseBlock)
 
virtual void visit (shptr< ast::pe::Bool const > boolExpr)
 
virtual void visit (shptr< ast::pe::Ident const > identExpr)
 
virtual void visit (shptr< ast::pe::MethodInvocation const > methodInvocationExpr)
 
virtual void visit (shptr< ast::ue::Not const > notExpr)
 
virtual void visit (shptr< ast::be::Eq const > eqExpr)
 
virtual void visit (shptr< ast::be::AndAnd const > andAndExpr)
 
virtual void visit (shptr< ast::be::OrOr const > orOrExpr)
 
virtual void visit (shptr< ast::be::EqEq const > eqEqExpr)
 
virtual void visit (shptr< ast::be::GreaterThan const > greaterThanExpr)
 
virtual void visit (shptr< ast::be::GreaterThanEq const > greaterThanEqExpr)
 
virtual void visit (shptr< ast::be::Invalid const > invalidExpr)
 
virtual void visit (shptr< ast::be::LessThan const > lessThanExpr)
 
virtual void visit (shptr< ast::be::LessThanEq const > lessThanEqExpr)
 
virtual void visit (shptr< ast::be::NotEq const > notEqExpr)
 
virtual void visit (shptr< ast::po::PostfixExpression const > postfixExpr)
 
- Public Member Functions inherited from firm::visitor::FirmVisitor
 FirmVisitor ()
 
virtual void setOwner (ir_type *owner)
 
virtual ir_type * getOwner () const
 
- Public Member Functions inherited from ast::ASTVisitor
virtual void visit (shptr< Node const > node)
 
virtual void visit (shptr< Arguments const > node)
 
virtual void visit (shptr< be::BinaryExpression const > node)
 
virtual void visit (shptr< be::AndAnd const > node)
 
virtual void visit (shptr< be::Eq const > node)
 
virtual void visit (shptr< be::EqEq const > node)
 
virtual void visit (shptr< be::GreaterThan const > node)
 
virtual void visit (shptr< be::GreaterThanEq const > node)
 
virtual void visit (shptr< be::Invalid const > node)
 
virtual void visit (shptr< be::LessThan const > node)
 
virtual void visit (shptr< be::LessThanEq const > node)
 
virtual void visit (shptr< be::Minus const > node)
 
virtual void visit (shptr< be::Mod const > node)
 
virtual void visit (shptr< be::Mult const > node)
 
virtual void visit (shptr< be::NotEq const > node)
 
virtual void visit (shptr< be::OrOr const > node)
 
virtual void visit (shptr< be::Plus const > node)
 
virtual void visit (shptr< be::Slash const > node)
 
virtual void visit (shptr< ClassDeclaration const > node)
 
virtual void visit (shptr< ClassMember const > node)
 
virtual void visit (shptr< Expression const > node)
 
virtual void visit (shptr< FieldDeclaration const > node)
 
virtual void visit (shptr< Ident const > node)
 
virtual void visit (shptr< MainMethodDeclaration const > node)
 
virtual void visit (shptr< MethodDeclaration const > node)
 
virtual void visit (shptr< pe::PrimaryExpression const > node)
 
virtual void visit (shptr< pe::Bool const > node)
 
virtual void visit (shptr< pe::Ident const > node)
 
virtual void visit (shptr< pe::Integer const > node)
 
virtual void visit (shptr< pe::MethodInvocation const > node)
 
virtual void visit (shptr< pe::NewArrayExpression const > node)
 
virtual void visit (shptr< pe::NewObjectExpression const > node)
 
virtual void visit (shptr< pe::Object const > node)
 
virtual void visit (shptr< po::PostfixExpression const > node)
 
virtual void visit (shptr< po::PostfixOp const > node)
 
virtual void visit (shptr< po::ArrayAccess const > node)
 
virtual void visit (shptr< po::FieldAccess const > node)
 
virtual void visit (shptr< po::MethodInvocation const > node)
 
virtual void visit (shptr< Program const > node)
 
virtual void visit (shptr< stmt::Statement const > node)
 
virtual void visit (shptr< stmt::Block const > node)
 
virtual void visit (shptr< stmt::ExpressionStatement const > node)
 
virtual void visit (shptr< stmt::IfStatement const > node)
 
virtual void visit (shptr< stmt::LVDStatement const > node)
 
virtual void visit (shptr< stmt::ReturnStatement const > node)
 
virtual void visit (shptr< stmt::WhileStatement const > node)
 
virtual void visit (shptr< Type const > node)
 
virtual void visit (shptr< TypeIdent const > node)
 
virtual void visit (shptr< ue::UnaryExpression const > node)
 
virtual void visit (shptr< ue::Neg const > node)
 
virtual void visit (shptr< ue::Not const > node)
 

Additional Inherited Members

- Protected Attributes inherited from firm::visitor::FirmVisitor
ir_type * owner
 

Constructor & Destructor Documentation

firm::visitor::BoolExpressionVisitor::BoolExpressionVisitor ( ir_node *  thenBlock,
ir_node *  elseBlock 
)

Constructs a BoolExpressionVisitor with the given then- and elseBlock. All boolean expressions are short circuit-evaluated.

Parameters
thenBlock
elseBlock

Member Function Documentation

void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::pe::Bool const >  boolExpr)
virtual

Visits a primary Bool expression and adds the necessary blocks to the graph.

Parameters
boolExprthe visited primary Bool expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::pe::Ident const >  identExpr)
virtual

Visits a primary Ident expression and adds the necessary blocks to the graph.

Parameters
identExprthe visited primary Ident expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::pe::MethodInvocation const >  methodInvocationExpr)
virtual

Visits a primary MethodInvocation expression and adds the necessary blocks to the graph.

Parameters
methodInvocationExprthe visited primary Ident expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::ue::Not const >  notExpr)
virtual

Visits a unary Not expression, swaps the necessary blocks to the graph and then evaluates the child.

Parameters
notExprthe visited unary Not expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::Eq const >  eqExpr)
virtual

Visits the binary '=' (Eq-)expression and adds the necessary blocks to the graph.

Parameters
eqExprthe visited Eq expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::AndAnd const >  andAndExpr)
virtual

Visits the binary '&&' (AndAnd-)expression and adds the necessary blocks to the graph.

Parameters
andAndExprthe visited AndAnd expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::OrOr const >  orOrExpr)
virtual

Visits the binary '||' (OrOr-)expression and adds the necessary blocks to the graph.

Parameters
orOrExprthe visited OrOr expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::EqEq const >  eqEqExpr)
virtual

Visits the binary '==' (EqEq-)expression and and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_equal

Parameters
eqEqExprthe visited EqEq expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::GreaterThan const >  greaterThanExpr)
virtual

Visits the binary '>' (GreaterThan-)expression and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_greater.

Parameters
greaterThanExprthe visited GreaterThan expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::GreaterThanEq const >  greaterThanEqExpr)
virtual

Visits the binary '>=' (GreaterThanEq-)expression and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_greater_equal.

Parameters
greaterThanEqExprthe visited GreaterThanEq expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::Invalid const >  invalidExpr)
virtual

Prints an error. There shouldn't be an Invalid expression in the AST.

Parameters
invalidExprthe visited Invalid expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::LessThan const >  lessThanExpr)
virtual

Visits the binary '<' (LessThan-)expression and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_less.

Parameters
lessThanExprthe visited LessThan expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::LessThanEq const >  lessThanEqExpr)
virtual

Visits the binary '<=' (LessThanEq-)expression and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_less_equal.

Parameters
lessThanEqExprthe visited LessThanEq expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::be::NotEq const >  notEqExpr)
virtual

Visits the binary '!=' (NotEq-)expression and adds the necessary blocks to the graph. Uses ir_relation::ir_relation_unordered_less_greater.

Parameters
notEqExprthe visited NotEq expression
void firm::visitor::BoolExpressionVisitor::visit ( shptr< ast::po::PostfixExpression const >  postfixExpr)
virtual

Visits a PostfixExpression and adds the necessary blocks to the graph.

Parameters
postfixExprthe visited PostfixExpression

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