Release 2.1.0
.NET 6, Self-contained (.NET install not required)
Additions:
- Character literals: The language now has support for character literals surrounded by single quotes. These contain a single character only and are assembled into numeric literals representing the UTF-8 encoding of the contained character. Some examples include:
MVQ rg0, 'a'
, which will assemble toMVQ rg0, 97
CMP rg1, '\n'
, which will assemble toCMP rg1, 10
WCN '\u30C8'
, which will assemble toWCN 8946659
Fixes:
- The REPL environment will no longer convert some special characters to question marks.
- The
stack
debugger command will no longer cause a crash when used in a subroutine with no parent stack. - Invalid syntax where a label definition would contain a space followed by additional characters will no longer be ignored silently.
- Numerous additional syntax errors now have checks that provide descriptive error messages and VSCode linting, replacing previous generic errors such as "IndexOutOfRangeException".
Example program changes:
- Example programs that used numeric values to represent characters now use character literals instead.
- The
read_file.asm
example program has been updated with a slight code size optimisation and an error message for non-existent files.
Internal changes:
- All applicable strings in the code have been moved to an external resource file to aid any potential future localisation.
- The BNF graphs have been removed.
FLPT_WFN
now explicitly uses the Invariant culture when converting to a string and writing.- General code refactoring has been carried out to remove or shorten redundant code and to make the code style more consistent.
Documentation Errors
- The first code example in the "Address" subsection of the "Operand Types" section should use
MVB
, notMVQ
.