Phasor 2.2.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
CodeGen.hpp File Reference
#include "../AST/AST.hpp"
#include "../Runtime/Value.hpp"
#include <cstdint>
#include <map>
#include <string>
#include <vector>
Include dependency graph for CodeGen.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Phasor::Instruction
 Instruction with up to 5 operands Format: instruction operand1, operand2, operand3, operand4, operand5 Each instruction uses only the operands it needs. More...
struct  Phasor::StructInfo
 Struct metadata stored alongside bytecode (struct section). More...
struct  Phasor::Bytecode
 Complete bytecode structure. More...
class  Phasor::CodeGenerator
 Code generator for Phasor VM. More...

Namespaces

namespace  Phasor
 The Phasor Programming Language and Runtime.

Enumerations

enum class  Phasor::OpCode : uint8_t {
  Phasor::PUSH_CONST , Phasor::POP , Phasor::IADD , Phasor::ISUBTRACT ,
  Phasor::IMULTIPLY , Phasor::IDIVIDE , Phasor::IMODULO , Phasor::FLADD ,
  Phasor::FLSUBTRACT , Phasor::FLMULTIPLY , Phasor::FLDIVIDE , Phasor::FLMODULO ,
  Phasor::SQRT , Phasor::POW , Phasor::LOG , Phasor::EXP ,
  Phasor::SIN , Phasor::COS , Phasor::TAN , Phasor::NEGATE ,
  Phasor::NOT , Phasor::IAND , Phasor::IOR , Phasor::FLAND ,
  Phasor::FLOR , Phasor::IEQUAL , Phasor::INOT_EQUAL , Phasor::ILESS_THAN ,
  Phasor::IGREATER_THAN , Phasor::ILESS_EQUAL , Phasor::IGREATER_EQUAL , Phasor::FLEQUAL ,
  Phasor::FLNOT_EQUAL , Phasor::FLLESS_THAN , Phasor::FLGREATER_THAN , Phasor::FLLESS_EQUAL ,
  Phasor::FLGREATER_EQUAL , Phasor::JUMP , Phasor::JUMP_IF_FALSE , Phasor::JUMP_IF_TRUE ,
  Phasor::JUMP_BACK , Phasor::STORE_VAR , Phasor::LOAD_VAR , Phasor::PRINT ,
  Phasor::PRINTERROR , Phasor::READLINE , Phasor::IMPORT , Phasor::HALT ,
  Phasor::CALL_NATIVE , Phasor::CALL , Phasor::SYSTEM , Phasor::SYSTEM_OUT ,
  Phasor::SYSTEM_ERR , Phasor::RETURN , Phasor::TRUE_P , Phasor::FALSE_P ,
  Phasor::NULL_VAL , Phasor::LEN , Phasor::CHAR_AT , Phasor::SUBSTR ,
  Phasor::NEW_STRUCT , Phasor::GET_FIELD , Phasor::SET_FIELD , Phasor::NEW_STRUCT_INSTANCE_STATIC ,
  Phasor::GET_FIELD_STATIC , Phasor::SET_FIELD_STATIC , Phasor::MOV , Phasor::LOAD_CONST_R ,
  Phasor::LOAD_VAR_R , Phasor::STORE_VAR_R , Phasor::PUSH_R , Phasor::PUSH2_R ,
  Phasor::POP_R , Phasor::POP2_R , Phasor::IADD_R , Phasor::ISUB_R ,
  Phasor::IMUL_R , Phasor::IDIV_R , Phasor::IMOD_R , Phasor::FLADD_R ,
  Phasor::FLSUB_R , Phasor::FLMUL_R , Phasor::FLDIV_R , Phasor::FLMOD_R ,
  Phasor::SQRT_R , Phasor::POW_R , Phasor::LOG_R , Phasor::EXP_R ,
  Phasor::SIN_R , Phasor::COS_R , Phasor::TAN_R , Phasor::IAND_R ,
  Phasor::IOR_R , Phasor::IEQ_R , Phasor::INE_R , Phasor::ILT_R ,
  Phasor::IGT_R , Phasor::ILE_R , Phasor::IGE_R , Phasor::FLAND_R ,
  Phasor::FLOR_R , Phasor::FLEQ_R , Phasor::FLNE_R , Phasor::FLLT_R ,
  Phasor::FLGT_R , Phasor::FLLE_R , Phasor::FLGE_R , Phasor::NEG_R ,
  Phasor::NOT_R , Phasor::PRINT_R , Phasor::PRINTERROR_R , Phasor::READLINE_R ,
  Phasor::SYSTEM_R , Phasor::SYSTEM_OUT_R , Phasor::SYSTEM_ERR_R
}