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::FIRST_COMMAND = 0x01 ,
  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::POP = 0x18 ,
  Ark::internal::DUP = 0x19 , Ark::internal::LAST_COMMAND = 0x19 , Ark::internal::FIRST_OPERATOR = 0x1a , Ark::internal::ADD = 0x1a ,
  Ark::internal::SUB = 0x1b , Ark::internal::MUL = 0x1c , Ark::internal::DIV = 0x1d , Ark::internal::GT = 0x1e ,
  Ark::internal::LT = 0x1f , Ark::internal::LE = 0x20 , Ark::internal::GE = 0x21 , Ark::internal::NEQ = 0x22 ,
  Ark::internal::EQ = 0x23 , Ark::internal::LEN = 0x24 , Ark::internal::EMPTY = 0x25 , Ark::internal::TAIL = 0x26 ,
  Ark::internal::HEAD = 0x27 , Ark::internal::ISNIL = 0x28 , Ark::internal::ASSERT = 0x29 , Ark::internal::TO_NUM = 0x2a ,
  Ark::internal::TO_STR = 0x2b , Ark::internal::AT = 0x2c , Ark::internal::MOD = 0x2d , Ark::internal::TYPE = 0x2e ,
  Ark::internal::HASFIELD = 0x2f , Ark::internal::NOT = 0x30 , Ark::internal::LAST_OPERATOR = 0x30 , Ark::internal::FIRST_SUPER_INSTRUCTION = 0x31 ,
  Ark::internal::LOAD_CONST_LOAD_CONST = 0x31 , Ark::internal::LOAD_CONST_STORE = 0x32 , Ark::internal::LOAD_CONST_SET_VAL = 0x33 , Ark::internal::STORE_FROM = 0x34 ,
  Ark::internal::SET_VAL_FROM = 0x35 , Ark::internal::INCREMENT = 0x36 , Ark::internal::DECREMENT = 0x37 , Ark::internal::STORE_TAIL = 0x38 ,
  Ark::internal::STORE_HEAD = 0x39 , Ark::internal::SET_VAL_TAIL = 0x3a , Ark::internal::SET_VAL_HEAD = 0x3b , Ark::internal::LAST_SUPER_INSTRUCTION = 0x3b ,
  Ark::internal::LAST_INSTRUCTION = 0x3d
}
 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.