Gyoji Compiler
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
Gyoji::mir::OperationLocalDeclare Class Reference

Declare a local variable in scope. More...

#include <operations.hpp>

Inheritance diagram for Gyoji::mir::OperationLocalDeclare:
Inheritance graph
[legend]
Collaboration diagram for Gyoji::mir::OperationLocalDeclare:
Collaboration graph
[legend]

Public Member Functions

virtual ~OperationLocalDeclare ()
 Move along, nothing to see here.
 
const std::stringget_variable () const
 
const Typeget_variable_type () const
 
- Public Member Functions inherited from Gyoji::mir::Operation
 Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result)
 
 Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand)
 
 Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand_a, size_t _operand_b)
 
 Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand_a, size_t _operand_b, size_t _operand_c)
 
virtual ~Operation ()
 Move along, nothing to see here.
 
void dump (FILE *out) const
 
OperationType get_type () const
 Opcode of this operation.
 
const std::vector< size_t > & get_operands () const
 Get the operands.
 
size_t get_result () const
 Get the result of this operation.
 
bool is_terminating () const
 Returns true if this is a terminating operation for a block.
 
const Gyoji::context::SourceReferenceget_source_ref () const
 Get the reference to the source which originated this operation.
 

Protected Member Functions

virtual std::string get_description () const
 Produce a description of the operation.
 
- Protected Member Functions inherited from Gyoji::mir::Operation
void add_operand (size_t operand)
 Add an operand.
 

Additional Inherited Members

- Public Types inherited from Gyoji::mir::Operation
enum  OperationType {
  OP_FUNCTION_CALL , OP_SYMBOL , OP_WIDEN_SIGNED , OP_WIDEN_UNSIGNED ,
  OP_WIDEN_FLOAT , OP_ARRAY_INDEX , OP_DOT , OP_LOCAL_DECLARE ,
  OP_LOCAL_UNDECLARE , OP_LOCAL_VARIABLE , OP_LITERAL_CHAR , OP_LITERAL_STRING ,
  OP_LITERAL_INT , OP_LITERAL_FLOAT , OP_LITERAL_BOOL , OP_LITERAL_NULL ,
  OP_ADDRESSOF , OP_DEREFERENCE , OP_NEGATE , OP_BITWISE_NOT ,
  OP_LOGICAL_NOT , OP_SIZEOF_TYPE , OP_ADD , OP_SUBTRACT ,
  OP_MULTIPLY , OP_DIVIDE , OP_MODULO , OP_LOGICAL_AND ,
  OP_LOGICAL_OR , OP_BITWISE_AND , OP_BITWISE_OR , OP_BITWISE_XOR ,
  OP_SHIFT_LEFT , OP_SHIFT_RIGHT , OP_COMPARE_LESS , OP_COMPARE_GREATER ,
  OP_COMPARE_LESS_EQUAL , OP_COMPARE_GREATER_EQUAL , OP_COMPARE_NOT_EQUAL , OP_COMPARE_EQUAL ,
  OP_ASSIGN , OP_JUMP_CONDITIONAL , OP_JUMP , OP_RETURN ,
  OP_RETURN_VOID
}
 Operations of the MIR virtual-machine. More...
 

Detailed Description

Declare a local variable in scope.

This class represents declaring a variable inside the scope of a function. This variable may be in the main scope or may be in a sub-scope. The name of the variable and the associated type are given. The variable is created with that type so that it can be accessed later with an access operation such as a 'load'.

Constructor & Destructor Documentation

◆ ~OperationLocalDeclare()

OperationLocalDeclare::~OperationLocalDeclare ( )
virtual

Move along, nothing to see here.

Move along, nothing to see here.

Member Function Documentation

◆ get_description()

std::string OperationLocalDeclare::get_description ( ) const
protectedvirtual

Produce a description of the operation.

This method returns a full description of the operation including the return-value, operands, and any other ancilary information about the operation. This is a string that is constructed dynamically when needed and is used almost exclusively by the "dump" method to provide debuginng information.

Reimplemented from Gyoji::mir::Operation.

◆ get_variable()

const std::string & OperationLocalDeclare::get_variable ( ) const

Name of the variable to declare.

◆ get_variable_type()

const Type * OperationLocalDeclare::get_variable_type ( ) const

Returns a pointer to the immutable type of the variable.


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