Instruction
.See: Description
Class | Description |
---|---|
AllocAddrConst |
ALLOC( ADDR , CONST ) |
AllocAddrExecInstr |
ALLOC( ADDR , EXEC( INSTR ) ) |
BranchExecInstr0Instr1Instr2 |
BRANCH( EXEC( INSTR0 ) , INSTR1 , INSTR2 ) |
ConsoleExecInstr |
CONSOLE( EXEC( INSTR ) ) |
CpedAddrXinstr |
CPED( ADDR , XINSTR ) |
ExecImportExecInstr |
EXEC( IMPORT( EXEC( INSTR ) ) ) |
FallocAddrConst |
FALLOC( ADDR , CONST ) |
FpedAddrExecInstrXinstr |
FPED( ADDR , EXEC( INSTR ) , XINSTR ) |
FreeAddr |
FREE( ADDR ) |
Idle |
IDLE |
IpedXinstr |
IPED( XINSTR ) |
IterXinstr |
ITER( XINSTR ) |
PrintExecInstr |
PRINT( EXEC( INSTR ) ) |
PushAddExecInstr0ExecInstr1 |
PUSH( ADD( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushCmpExecInstr0ExecInstr1 |
PUSH( CMP( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushConst |
PUSH( CONST ) |
PushDefAddr |
PUSH( DEF( ADDR ) ) |
PushDivExecInstr0ExecInstr1 |
PUSH( DIV( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushEqlExecInstr0ExecInstr1 |
PUSH( EQL( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushEvalAddr |
PUSH( EVAL( ADDR ) ) |
PushGetAddrExecInstr |
PUSH( Get( ADDR , EXEC( INSTR ) ) ) |
PushLndExecInstr0ExecInstr1 |
PUSH( LND( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushLorExecInstr0ExecInstr1 |
PUSH( LOR( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushModExecInstr0ExecInstr1 |
PUSH( MOD( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushMulExecInstr0ExecInstr1 |
PUSH( MUL( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PushNdefAddr |
PUSH( NDEF( ADDR ) ) |
PushNegExecInstr |
PUSH( NEG( EXEC( INSTR ) ) ) |
PushSubExecInstr0ExecInstr1 |
PUSH( SUB( EXEC( INSTR0 ) , EXEC( INSTR1 ) ) ) ) |
PutAddrExecInstr0ExecInstr1 |
PUT( ADDR , EXEC( INSTR0 ) , EXEC( INSTR1 ) ) |
RepllocAddrExecInstr |
REPLLOC( ADDR , EXEC( INSTR ) ) |
RepreeAddr |
REPREE( ADDR ) |
ReprntConst |
REPRNT( CONST ) |
SerrExecInstr |
SERR( EXEC( INSTR ) )
|
SoutExecInstr |
SOUT( EXEC( INSTR ) )
|
SpreadExecInstr |
An instruction that executes another instruction and spread the results to the heap.
|
WpedInstrXinstr |
WPED( INSTR , XINSTR ) |
Instruction
.
IDLE
Do nothing.
ADD( X : Text | Value , Y : Text | Value ) : Text
return the result of adding Y to X.
SUB( X : Text | Value , Y : Text | Value ) : Text
return the result of subtracting Y from X.
MUL( X : Text | Value , Y : Text | Value ) : Text
return the result of multiplying X by Y
DIV( X : Text | Value , Y : Text | Value ) : Text
return the result of dividing X by Y
MOD( X : Text | Value , Y : Text | Value ) : Text
return the remainder of dividing X by Y
CMP( X : Text | Value , Y : Text | Value ) : Text
return 'true' if X is greater than Y, and 'false' otherwise.
EQL( X : Text | Value , Y : Text | Value ) : Text
return 'true' if X equals Y, and 'false' otherwise.
LND( X : Text | Value , Y : Text | Value ) : Text
return 'true' if X and Y are true, and 'false' otherwise.
LOR( X : Text | Value , Y : Text | Value ) : Text
return 'true' if X or Y are true, and 'false' otherwise.
NEG( X : Text | Value ) : Text
return 'true' if X is false, and 'false' if X is true.
CONSOLE( X : Text | Value ) : Void
change the console to X
SOUT( X : Text | Value ) : Void
print X to the system console.
SERR( X : Text | Value ) : Void
print X to the system error console.
PRINT( X : Text | Vale ) : Void
prints X to console
REPRNT( X : Text | Vale ) : Void
prints X to console; replace allocated by REPLLOC
PUSH( X : Text | Value ) : Void
pushes X to stack.
ALLOC( X : Address , Y : Text | Value ) : Void
allocate Y into heap at X
PUT( X : Address , Y : Value | Text , Z : Value : Text )
Put Z to Y in the object stored at X in the heap; Allocate a new object if not allocated
FALLOC( X : Address , Y : Text | Value ) : Void
allocate Y into heap of the last frame at X
SPREAD( X : Value | Text ) : Void
Assuming X is a json map, Spread the mappings to the heap.
REPLLOC( X : Address , Y : Text | Value ) : Void
allocate Y into heap at X; replace X to Y in all REPRINTS
CPED( X : Address , Y : Instruction[] ) : Void
Allocate captured console when executing Y into the heap at X; Push frame before each execution; Dump frame after each execution
FREE( X : Address ) : Void
delete the value at X in the heap
REPREE( X : Address ) : Void
delete the value at X in the heap; revoke any replacing order for X
DEF( X : Address ) : Text
return true
if the address is defined, false
otherwise.
NDEF( X : Address ) : Text
return false
if the address is defined, true
otherwise.
EVAL( X : Address ) : Value
return evaluation of X; return name of X if failed
GET( X : Address , Y : Value | Text ) : Value
return the value at Y in the result of the evaluation of X.
EXEC( X : Instruction ) : Value
return result of executing X; push frame before execution; pop after execution and getting results;
BRANCH( X : Text | Value , Y : Instruction , Z : Instruction ) : Void
if X evaluated to true execute Y otherwise execute Z; push frame before execution; pop frame after execution
IMPORT( X : Text | Value ) : Instruction
return imported instruction X; push frame before execution; pop frame after execution
ITER( X : Instruction[] ) : Void
Execute the instructions in X
IEXEC( X : Instruction[] ) : Void
Execute the instructions in X; Push frame before each exeuction; Pop frame after each execution
IPED( X : Instruction[] ) : Void
Execute the instructions in X; Push frame before each execution; Dump frame after each execution
IPED stands for Iterate-Push-Execute-Dump
FPED( X : ADDR , Y : Text | Value , Z : Instruction[] ) : Void
Executes the instructions in Z foreach item in Y; Push frame on each iteration; Allocate the item of the iteration to X before each iteration; Push frame before each execution; Dump frame after each execution; Pop frame after each iteration
FPED stands for Foreach-Push-Execute-Dump
WPED( X : Instruction , Y : Instruction[] ) : Void
Executes the instructions in Y while result of X evaluates to true; Push frame on each iteration; Push frame before each execution; Dump frame after each execution; Pop frame after each iteration
WPED stands for While-Push-Execute-Dump
CONST : Text
provided text.
INSTR : Instruction
provided instruction.
ADDR : Address
provided address.
0-5
a postfix number to distinguish variables from another when dealing with multiple variables with common type.
X
a prefix to tell that the variable is an array of its type.