17 Enums
17.1 InstructionCode
rust
enum InstructionCode {
// flow instructions 0x00 - 0x0f
EXIT = 0x00,
CLOSE_AND_STORE = 0x01, // ;
SUBSCOPE_START = 0x02, // (
SUBSCOPE_END = 0x03, // )
CACHE_POINT = 0x04, // cache dxb from this point on
CACHE_RESET = 0x05, // reset dxb scope cache
// primitive / fundamental types 0x10 - 0x2f
STD_TYPE_TEXT = 0x10,
STD_TYPE_INT = 0x11,
STD_TYPE_FLOAT = 0x12,
STD_TYPE_BOOLEAN = 0x13,
STD_TYPE_NULL = 0x14,
STD_TYPE_VOID = 0x15,
STD_TYPE_BUFFER = 0x16,
STD_TYPE_CODE_BLOCK = 0x17,
STD_TYPE_UNIT = 0x18,
STD_TYPE_TIME = 0x19,
STD_TYPE_URL = 0x1a,
STD_TYPE_ARRAY = 0x1b,
STD_TYPE_OBJECT = 0x1c,
STD_TYPE_SET = 0x1d,
STD_TYPE_MAP = 0x1e,
STD_TYPE_TUPLE = 0x1f,
STD_TYPE_FUNCTION = 0x20,
STD_TYPE_STREAM = 0x21,
STD_TYPE_ANY = 0x22,
STD_TYPE_ASSERTION = 0x23,
STD_TYPE_TASK = 0x24,
STD_TYPE_ITERATOR = 0x25,
// internal variables and other shorthands 0x30 - 0x4f
VAR_RESULT = 0x30,
SET_VAR_RESULT = 0x31,
SET_VAR_RESULT_REFERENCE =
0x32,
VAR_RESULT_ACTION = 0x33,
VAR_SUB_RESULT = 0x34,
SET_VAR_SUB_RESULT = 0x35,
SET_VAR_SUB_RESULT_REFERENCE =
0x36,
VAR_SUB_RESULT_ACTION =
0x37,
VAR_VOID = 0x38,
SET_VAR_VOID = 0x39,
SET_VAR_VOID_REFERENCE =
0x3a,
VAR_VOID_ACTION = 0x3b,
_VAR_ORIGIN = 0x3c,
_SET_VAR_ORIGIN = 0x3d,
_SET_VAR_ORIGIN_REFERENCE =
0x3e,
_VAR_ORIGIN_ACTION = 0x3f,
VAR_IT = 0x40,
SET_VAR_IT = 0x41,
SET_VAR_IT_REFERENCE= 0x42,
VAR_IT_ACTION = 0x43,
VAR_REMOTE = 0x44,
VAR_REMOTE_ACTION = 0x45,
VAR_ORIGIN = 0x46,
VAR_ENDPOINT = 0x47,
// VAR_ENCRYPTED = 0x48,
// VAR_SIGNED = 0x49,
// VAR_TIMESTAMP = 0x4a,
VAR_META = 0x4b,
VAR_PUBLIC = 0x4c,
VAR_THIS = 0x4d,
VAR_LOCATION = 0x4e,
VAR_ENV = 0x4f,
VAR_ENTRYPOINT = 0x48,
VAR_STD = 0x49,
// runtime commands 0x50 - 0x7f
RETURN = 0x50, // return
TEMPLATE = 0x51, // template
EXTENDS = 0x52, // extends
IMPLEMENTS = 0x53, // implements
MATCHES = 0x54, // matches
DEBUGGER = 0x55, // debugger
JUMP = 0x56, // jump labelname
JUMP_TRUE = 0x57, // jumpTrue labelname
JUMP_FALSE = 0x58, // jumpFalse labelname (TODO replace with 0xa)
COUNT = 0x59, // count x
ABOUT = 0x5a, // about x
NEW = 0x5b, // new <x> ()
DELETE_POINTER = 0x5c, // delete $aa
COPY = 0x5f, // copy $aa
CLONE = 0x60, // clone $aa
ORIGIN = 0x61, // origin $aa
SUBSCRIBERS = 0x62, // subscribers $aa
PLAIN_SCOPE = 0x63, // scope xy;
// don't use 0x64 (magic number)
TRANSFORM = 0x65, // transform x <Int>
OBSERVE = 0x66, // observe x ()=>()
RUN = 0x67, // run xy;
AWAIT = 0x68, // await xy;
DEFER = 0x69, // defer xy;
FUNCTION = 0x6a, // function ()
ASSERT = 0x6b, // assert
ITERATOR = 0x6c, // iterator ()
NEXT = 0x6d, // next it
FREEZE = 0x6e, // freeze
SEAL = 0x6f, // seal
HAS = 0x70, // x has y
KEYS = 0x71, // keys x
GET_TYPE = 0x72, // type $aa
GET = 0x73, // request file://..., request @user::34
RANGE = 0x74, // ..
RESOLVE_RELATIVE_PATH =
0x75, // ./abc
DO = 0x76, // do xy;
DEFAULT = 0x77, // x default y
COLLAPSE = 0x78, // ... x
RESPONSE = 0x79, // response x
CLONE_COLLAPSE = 0x88, // collapse
// comparators 0x80 - 0x8f
EQUAL_VALUE = 0x80, // ==
NOT_EQUAL_VALUE = 0x81, // ~=
EQUAL = 0x82, // ===
NOT_EQUAL = 0x83, // ~==
GREATER = 0x84, // >
LESS = 0x85, // <
GREATER_EQUAL = 0x86, // >=
LESS_EQUAL = 0x87, // <=
// logical + algebraic operators 0x90 - 0x9f
AND = 0x90, // &
OR = 0x91, // |
ADD = 0x92, // +
SUBTRACT = 0x93, // -
MULTIPLY = 0x94, // *
DIVIDE = 0x95, // /
NOT = 0x96, // ~
MODULO = 0x97, // %
POWER = 0x98, // ^
INCREMENT = 0x99, // ++
DECREMENT = 0x9a, // --
// pointers & variables 0xa0 - 0xbf
INTERNAL_VAR = 0xa4, // #xyz 0x0000-0x00ff = variables passed on between scopes, 0x0100-0xfdff = normal variables, 0xfe00-0xffff = it variables (#it.0, #it.1, ...) for function arguments
SET_INTERNAL_VAR = 0xa5, // #aa = ...
INIT_INTERNAL_VAR = 0xa6, // #aa := ...
INTERNAL_VAR_ACTION = 0xa7, // #x += ...
SET_INTERNAL_VAR_REFERENCE =
0xa8, // #x $= ...
LABEL = 0xa9, // $x
SET_LABEL = 0xaa, // $x = ...,
INIT_LABEL = 0xab, // $x := ...
LABEL_ACTION = 0xac, // $x += ...
POINTER = 0xad, // $x
SET_POINTER = 0xae, // $aa = ...
INIT_POINTER = 0xaf, // $aa := ...
POINTER_ACTION = 0xb0, // $aa += ...
CREATE_POINTER = 0xb1, // $$ ()
CHILD_GET = 0xb2, // .y
CHILD_SET = 0xb3, // .y = a
CHILD_SET_REFERENCE = 0xb4, // .y $= a
CHILD_ACTION = 0xb5, // .y += a, ...
CHILD_GET_REF = 0xb6, // ->y
WILDCARD = 0xb7, // *
// values 0xc0 - 0xdf
TEXT = 0xc0,
INT_8 = 0xc1, // byte
INT_16 = 0xc2,
INT_32 = 0xc3,
INT_64 = 0xc4,
FLOAT_64 = 0xc5,
TRUE = 0xc6,
FALSE = 0xc7,
NULL = 0xc8,
VOID = 0xc9,
BUFFER = 0xca,
SCOPE_BLOCK = 0xcb,
QUANTITY = 0xcc,
FLOAT_AS_INT_32 = 0xcd,
FLOAT_AS_INT_8 = 0xde,
SHORT_TEXT = 0xce, // string with max. 255 characters
PERSON_ALIAS = 0xcf,
PERSON_ALIAS_WILDCARD =
0xd0,
INSTITUTION_ALIAS = 0xd1,
INSTITUTION_ALIAS_WILDCARD =
0xd2,
BOT = 0xd3,
BOT_WILDCARD = 0xd4,
ENDPOINT = 0xd5,
ENDPOINT_WILDCARD = 0xd6,
URL = 0xd8, //file://... , https://...
TYPE = 0xd9, // <type>
EXTENDED_TYPE = 0xda, // <type/xy()>
CONJUNCTION = 0xdb, // x&y&z
DISJUNCTION = 0xdc, // x|y|z
TIME = 0xdd, // ~2022-10-10~
// arrays, objects and tuples 0xe0 - 0xef
ARRAY_START = 0xe0, // array / or array
ARRAY_END = 0xe1,
OBJECT_START = 0xe2, // {}
OBJECT_END = 0xe3,
TUPLE_START = 0xe4, // (a,b,c)
TUPLE_END = 0xe5,
ELEMENT_WITH_KEY = 0xe6, // for object elements
ELEMENT_WITH_INT_KEY= 0xe7, // for array elements
ELEMENT_WITH_DYNAMIC_KEY =
0xe8, // for object elements with dynamic key
KEY_PERMISSION = 0xe9, // for object elements with permission prefix
ELEMENT = 0xea, // for array elements
INTERNAL_OBJECT_SLOT = 0xef, // for object internal slots
// special instructions 0xf0 - 0xff
SYNC = 0xf0, // <==
STOP_SYNC = 0xf1, // </=
STREAM = 0xf2, // << stream
STOP_STREAM = 0xf3, // </ stream
EXTEND = 0xf4, // ...
YEET = 0xf5, // !
REMOTE = 0xf6, // ::
_SYNC_SILENT = 0xf7 // <==:
}
IMPLEMENTS
17.2 BlockType
rust
enum Protocol.BlockType {
}
17.3 DeviceType
rust
enum Protocol.DeviceType {
}