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

Symbol-table lookup. More...

#include <operations.hpp>

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

Public Member Functions

 OperationSymbol (const Gyoji::context::SourceReference &_src_ref, size_t _result, std::string _symbol_name)
 Construct symbol-table lookup operation.
 
virtual ~OperationSymbol ()
 Move along, nothing to see here.
 
const std::stringget_symbol_name () 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

Symbol-table lookup.

This subclass of Operation represents a lookup of a symbol in the global symbol table for things like function names and global variables.

Constructor & Destructor Documentation

◆ OperationSymbol()

OperationSymbol::OperationSymbol ( const Gyoji::context::SourceReference _src_ref,
size_t  _result,
std::string  _symbol_name 
)

Construct symbol-table lookup operation.

This constructor creates a symbol-table lookup operation to look up the symbol given.

◆ ~OperationSymbol()

OperationSymbol::~OperationSymbol ( )
virtual

Move along, nothing to see here.

Move along, nothing to see here.

Member Function Documentation

◆ get_description()

std::string OperationSymbol::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_symbol_name()

const std::string & OperationSymbol::get_symbol_name ( ) const

Returns the name of the symbol to look up in the global symbol table.


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