11#ifndef ARK_COMPILER_INTERMEDIATEREPRESENTATION_ENTITY_HPP
12#define ARK_COMPILER_INTERMEDIATEREPRESENTATION_ENTITY_HPP
83 using Block = std::vector<Entity>;
The different instructions used by the compiler and virtual machine.
Describe an instruction and its immediate argument.
uint16_t secondaryArg() const
std::size_t sourceLine() const
static Entity GotoIf(const Entity &label, bool cond)
std::size_t m_source_line
bool hasValidSourceLocation() const
uint16_t primaryArg() const
void setSourceLocation(const std::string &filename, std::size_t line)
const std::string & filename() const
std::string m_source_file
std::vector< Entity > Block
constexpr uint16_t MaxValueForDualArg
The maximum value an argument can have when an IR entity has two arguments.
Instruction
The different bytecodes are stored here.