ArkScript
A small, fast, functional and scripting language for video games
Instructions.hpp File Reference

The different instructions used by the compiler and virtual machine. More...

#include <array>
Include dependency graph for Instructions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Ark
 
namespace  Ark::internal
 

Enumerations

enum  Ark::internal::Instruction : uint8_t {
  Ark::internal::NOP = 0x00 , Ark::internal::SYM_TABLE_START = 0x01 , Ark::internal::VAL_TABLE_START = 0x02 , Ark::internal::NUMBER_TYPE = 0x01 ,
  Ark::internal::STRING_TYPE = 0x02 , Ark::internal::FUNC_TYPE = 0x03 , Ark::internal::CODE_SEGMENT_START = 0x03 , Ark::internal::LOAD_SYMBOL = 0x01 ,
  Ark::internal::LOAD_CONST = 0x02 , Ark::internal::POP_JUMP_IF_TRUE = 0x03 , Ark::internal::STORE = 0x04 , Ark::internal::SET_VAL = 0x05 ,
  Ark::internal::POP_JUMP_IF_FALSE = 0x06 , Ark::internal::JUMP = 0x07 , Ark::internal::RET = 0x08 , Ark::internal::HALT = 0x09 ,
  Ark::internal::CALL = 0x0a , Ark::internal::CAPTURE = 0x0b , Ark::internal::BUILTIN = 0x0c , Ark::internal::DEL = 0x0d ,
  Ark::internal::MAKE_CLOSURE = 0x0e , Ark::internal::GET_FIELD = 0x0f , Ark::internal::PLUGIN = 0x10 , Ark::internal::LIST = 0x11 ,
  Ark::internal::APPEND = 0x12 , Ark::internal::CONCAT = 0x13 , Ark::internal::APPEND_IN_PLACE = 0x14 , Ark::internal::CONCAT_IN_PLACE = 0x15 ,
  Ark::internal::POP_LIST = 0x16 , Ark::internal::POP_LIST_IN_PLACE = 0x17 , Ark::internal::SET_AT_INDEX = 0x18 , Ark::internal::SET_AT_2_INDEX = 0x19 ,
  Ark::internal::POP = 0x1a , Ark::internal::DUP = 0x1b , Ark::internal::CREATE_SCOPE = 0x1c , Ark::internal::POP_SCOPE = 0x1d ,
  Ark::internal::FIRST_OPERATOR = 0x1e , Ark::internal::ADD = 0x1e , Ark::internal::SUB = 0x1f , Ark::internal::MUL = 0x20 ,
  Ark::internal::DIV = 0x21 , Ark::internal::GT = 0x22 , Ark::internal::LT = 0x23 , Ark::internal::LE = 0x24 ,
  Ark::internal::GE = 0x25 , Ark::internal::NEQ = 0x26 , Ark::internal::EQ = 0x27 , Ark::internal::LEN = 0x28 ,
  Ark::internal::EMPTY = 0x29 , Ark::internal::TAIL = 0x2a , Ark::internal::HEAD = 0x2b , Ark::internal::ISNIL = 0x2c ,
  Ark::internal::ASSERT = 0x2d , Ark::internal::TO_NUM = 0x2e , Ark::internal::TO_STR = 0x2f , Ark::internal::AT = 0x30 ,
  Ark::internal::AT_AT = 0x31 , Ark::internal::MOD = 0x32 , Ark::internal::TYPE = 0x33 , Ark::internal::HASFIELD = 0x34 ,
  Ark::internal::NOT = 0x35 , Ark::internal::LOAD_CONST_LOAD_CONST = 0x36 , Ark::internal::LOAD_CONST_STORE = 0x37 , Ark::internal::LOAD_CONST_SET_VAL = 0x38 ,
  Ark::internal::STORE_FROM = 0x39 , Ark::internal::SET_VAL_FROM = 0x3a , Ark::internal::INCREMENT = 0x3b , Ark::internal::DECREMENT = 0x3c ,
  Ark::internal::STORE_TAIL = 0x3d , Ark::internal::STORE_HEAD = 0x3e , Ark::internal::SET_VAL_TAIL = 0x3f , Ark::internal::SET_VAL_HEAD = 0x40 ,
  Ark::internal::CALL_BUILTIN = 0x41
}
 The different bytecodes are stored here. More...
 

Variables

constexpr std::array Ark::internal::InstructionNames
 

Detailed Description

The different instructions used by the compiler and virtual machine.

Author
Alexandre Plateau (lexpl.nosp@m.t.de.nosp@m.v@gma.nosp@m.il.c.nosp@m.om)
Version
0.1
Date
2020-10-27

Definition in file Instructions.hpp.