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

#include <PostfixOpsVisitor.hpp>

Inheritance diagram for firm::visitor::PostfixOpsVisitor:
firm::visitor::VisitorWithResultNode firm::visitor::FirmVisitor ast::ASTVisitor

Public Member Functions

 PostfixOpsVisitor (ExpressionVisitor &expressionVisitor)
 
virtual void visit (shptr< ast::po::FieldAccess const > fieldAccess)
 
virtual void visit (shptr< ast::po::ArrayAccess const > arrayAccess)
 
virtual void visit (shptr< ast::po::MethodInvocation const > methodInvocation)
 
- Public Member Functions inherited from firm::visitor::VisitorWithResultNode
 VisitorWithResultNode ()
 
ir_node * getResultNode () const
 
ir_type * getResultType () const
 
void setDoStore (bool s)
 
int getVarNum () const
 
- 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)
 

Protected Attributes

ExpressionVisitorexpressionVisitor
 
- Protected Attributes inherited from firm::visitor::VisitorWithResultNode
ir_node * resultNode
 
ir_type * resultType
 
bool doStore
 
int varNum
 
- Protected Attributes inherited from firm::visitor::FirmVisitor
ir_type * owner
 

Constructor & Destructor Documentation

firm::visitor::PostfixOpsVisitor::PostfixOpsVisitor ( ExpressionVisitor expressionVisitor)

Constructs a PostfixOpsVisitor from the visited ExpressionVisitor.

Parameters
expressionVisitorthe visited ExpressionVisitor

Member Function Documentation

void firm::visitor::PostfixOpsVisitor::visit ( shptr< ast::po::FieldAccess const >  fieldAccess)
virtual

Evaluates the visited FieldAccess by evaluating its declaration with the help of a VariableDeclVisitor, that is initialized with the current resultNode of this expressionVisitor.

Parameters
fieldAccessthe visited FieldAccess
See also
VariableDeclVisitor
void firm::visitor::PostfixOpsVisitor::visit ( shptr< ast::po::ArrayAccess const >  arrayAccess)
virtual

Gets the node of the array from the expressionVisitor, then evaluates the index-expression using a new ExpressionVisitor and then creates the address node of the element.

Parameters
arrayAccessthe visited ArrayAccess
void firm::visitor::PostfixOpsVisitor::visit ( shptr< ast::po::MethodInvocation const >  methodInvocation)
virtual

Creates a node for the method call with the help of FirmInterface. Sets the resultNode and -Type to node and type of the call.

Parameters
methodInvocationthe visited MethodInvocation
See also
FirmInterface

Member Data Documentation

ExpressionVisitor& firm::visitor::PostfixOpsVisitor::expressionVisitor
protected

The calling ExpressionVisitor


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