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

#include <PrimaryExpression.hpp>

Inheritance diagram for ast::pe::MethodInvocation:
ast::pe::PrimaryExpression ast::MethodInvocationBase ast::Expression ast::Node ast::PositionAwareNode

Public Member Functions

 MethodInvocation (shptr< ast::Ident > method_name, shptr< Arguments > arguments)
 
virtual void toString (std::ostream &out, unsigned int indent, bool=false) const
 
virtual shptr< Typeget_type (semantic::SemanticAnalysis &sa, shptr< semantic::symbol::SymbolTable > symbolTable) const
 
virtual bool isLValue () const
 
virtual bool standalone () const
 
virtual void accept (ASTVisitor &visitor) const
 
- Public Member Functions inherited from ast::pe::PrimaryExpression
 PrimaryExpression (source_position_t position)
 
virtual std::pair< bool, bool > constBool () const
 
- Public Member Functions inherited from ast::Expression
 Expression (source_position_t position)
 
- Public Member Functions inherited from ast::PositionAwareNode
source_position_t getPosition () const
 
 PositionAwareNode (lexer::Token const &token)
 
 PositionAwareNode (source_position_t const &position)
 
- Public Member Functions inherited from ast::MethodInvocationBase
shptr< ast::TypeperformTypeChecks (shptr< ast::Ident > method_ident, semantic::MethodTable::MethodTableItem const &method_item, semantic::SemanticAnalysis &sa, shptr< semantic::symbol::SymbolTable > symbolTable) const
 
shptr< MethodDeclaration const > getDeclaration () const
 
virtual std::string const & getIdentifier () const
 
virtual shptr< Arguments const > getArguments () const
 

Additional Inherited Members

- Protected Member Functions inherited from ast::MethodInvocationBase
 MethodInvocationBase (shptr< Ident > method_name, shptr< Arguments > arguments)
 
- Protected Attributes inherited from ast::PositionAwareNode
source_position_t position
 
- Protected Attributes inherited from ast::MethodInvocationBase
shptr< Identmethod_name
 
shptr< MethodDeclaration const > declaration
 
shptr< Argumentsarguments
 

Constructor & Destructor Documentation

ast::pe::MethodInvocation::MethodInvocation ( shptr< ast::Ident method_name,
shptr< Arguments arguments 
)

Member Function Documentation

void ast::pe::MethodInvocation::accept ( ASTVisitor visitor) const
virtual

Reimplemented from ast::Expression.

shptr< Type > ast::pe::MethodInvocation::get_type ( semantic::SemanticAnalysis sa,
shptr< semantic::symbol::SymbolTable symbolTable 
) const
virtual

Idea: When getting the type of an Expression, the Expression checks if it's own and it's children Expressions type definitions are valid and then returns it's type. If something is invalid, an error is printed in the Expression that is invalid and an empty pointer is returned.

Implements ast::Expression.

bool ast::pe::MethodInvocation::isLValue ( ) const
virtual

Implements ast::Expression.

bool ast::pe::MethodInvocation::standalone ( ) const
virtual

Reimplemented from ast::pe::PrimaryExpression.

void ast::pe::MethodInvocation::toString ( std::ostream &  out,
unsigned int  indent,
bool  special = false 
) const
virtual

writes a representation of the Node to out, including all children. special invokes "special" behavior for certain nodes MethodDeclaration: print static keyword Block & If: skip indentation Expression: don't print surrounding parens in addition Block doesn't print newline after trailing } if ~indent is passed instead of indent

Implements ast::Node.


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