Release v1.3
- Major changes in the binary format, as such the version number for the binary has been bumped up to version 3.
- Added a new
sequence
statement, which works similarly to aswitch
statement, however the expression passed gets incremented after every run (or to the next value in the sequence, unless inside of a range). It can also act as a loop withcontinue
andbreak
, if wanted. The expression passed in must be a variable, or an index inside of an array variable (to any dimension). - Added a new "simplified" switch statement, which removes the
case
keyword, which is slightly more restrictive. One one statement is supported after each case, include a block ({}
), which you can use to get multiple statements. The purpose is to minimize code length and match the sequence statement in design. - Added ranges only for
sequence
statements and simplified switch statements, which take two numbers separated by..
, such as1..3
, equivalent to1 <= val <= 3
- Changed how instructions are indexed, instead of jump offsets being by Instruction count, it's now by byte offset. References from outside the bytecode are relative to the start of the bytecode, in bytes.
- Various misc. bug fixes/optimizations.
Example usage of the new sequences
statement:
sequence $var // optional parentheses
{
0: "This is the initial line"
1:
{
"This is the second line"
}, // optional comma
2..3: "This runs the third and fourth times the code is executed"
100: "This runs the fifth time, and every time after"
}
Example usage of the new "simplified" switch statement:
switch $var
{
0: "Sample"
1: "123"
3:
{
"Line when $var happens to be 3"
specialCommandHere
}
}