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 = 0xA1 , Ark::internal::VAL_TABLE_START = 0xA2 , Ark::internal::CODE_SEGMENT_START = 0xA3 ,
  Ark::internal::NUMBER_TYPE = 0xF1 , Ark::internal::STRING_TYPE = 0xF2 , Ark::internal::FUNC_TYPE = 0xF3 , Ark::internal::FILENAMES_TABLE_START = 0xA4 ,
  Ark::internal::INST_LOC_TABLE_START = 0xA5 , Ark::internal::LOAD_SYMBOL = 0x01 , Ark::internal::LOAD_SYMBOL_BY_INDEX = 0x02 , Ark::internal::LOAD_CONST = 0x03 ,
  Ark::internal::POP_JUMP_IF_TRUE = 0x04 , Ark::internal::STORE = 0x05 , Ark::internal::SET_VAL = 0x06 , Ark::internal::POP_JUMP_IF_FALSE = 0x07 ,
  Ark::internal::JUMP = 0x08 , Ark::internal::RET = 0x09 , Ark::internal::HALT = 0x0a , Ark::internal::CALL = 0x0b ,
  Ark::internal::CAPTURE = 0x0c , Ark::internal::BUILTIN = 0x0d , Ark::internal::DEL = 0x0e , Ark::internal::MAKE_CLOSURE = 0x0f ,
  Ark::internal::GET_FIELD = 0x10 , Ark::internal::PLUGIN = 0x11 , Ark::internal::LIST = 0x12 , Ark::internal::APPEND = 0x13 ,
  Ark::internal::CONCAT = 0x14 , Ark::internal::APPEND_IN_PLACE = 0x15 , Ark::internal::CONCAT_IN_PLACE = 0x16 , Ark::internal::POP_LIST = 0x17 ,
  Ark::internal::POP_LIST_IN_PLACE = 0x18 , Ark::internal::SET_AT_INDEX = 0x19 , Ark::internal::SET_AT_2_INDEX = 0x1a , Ark::internal::POP = 0x1b ,
  Ark::internal::DUP = 0x1c , Ark::internal::CREATE_SCOPE = 0x1d , Ark::internal::RESET_SCOPE = 0x1e , Ark::internal::POP_SCOPE = 0x1f ,
  Ark::internal::FIRST_OPERATOR = 0x20 , Ark::internal::ADD = 0x20 , Ark::internal::SUB = 0x21 , Ark::internal::MUL = 0x22 ,
  Ark::internal::DIV = 0x23 , Ark::internal::GT = 0x24 , Ark::internal::LT = 0x25 , Ark::internal::LE = 0x26 ,
  Ark::internal::GE = 0x27 , Ark::internal::NEQ = 0x28 , Ark::internal::EQ = 0x29 , Ark::internal::LEN = 0x2a ,
  Ark::internal::EMPTY = 0x2b , Ark::internal::TAIL = 0x2c , Ark::internal::HEAD = 0x2d , Ark::internal::ISNIL = 0x2e ,
  Ark::internal::ASSERT = 0x2f , Ark::internal::TO_NUM = 0x30 , Ark::internal::TO_STR = 0x31 , Ark::internal::AT = 0x32 ,
  Ark::internal::AT_AT = 0x33 , Ark::internal::MOD = 0x34 , Ark::internal::TYPE = 0x35 , Ark::internal::HASFIELD = 0x36 ,
  Ark::internal::NOT = 0x37 , Ark::internal::LOAD_CONST_LOAD_CONST = 0x38 , Ark::internal::LOAD_CONST_STORE = 0x39 , Ark::internal::LOAD_CONST_SET_VAL = 0x3a ,
  Ark::internal::STORE_FROM = 0x3b , Ark::internal::STORE_FROM_INDEX = 0x3c , Ark::internal::SET_VAL_FROM = 0x3d , Ark::internal::SET_VAL_FROM_INDEX = 0x3e ,
  Ark::internal::INCREMENT = 0x3f , Ark::internal::INCREMENT_BY_INDEX = 0x40 , Ark::internal::DECREMENT = 0x41 , Ark::internal::DECREMENT_BY_INDEX = 0x42 ,
  Ark::internal::STORE_TAIL = 0x43 , Ark::internal::STORE_TAIL_BY_INDEX = 0x44 , Ark::internal::STORE_HEAD = 0x45 , Ark::internal::STORE_HEAD_BY_INDEX = 0x46 ,
  Ark::internal::SET_VAL_TAIL = 0x47 , Ark::internal::SET_VAL_TAIL_BY_INDEX = 0x48 , Ark::internal::SET_VAL_HEAD = 0x49 , Ark::internal::SET_VAL_HEAD_BY_INDEX = 0x4a ,
  Ark::internal::CALL_BUILTIN = 0x4b , Ark::internal::InstructionsCount
}
 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)
Date
2020-10-27

Definition in file Instructions.hpp.