Releases: dmsc/tbxl-parser
Version 12
This release fixes a serious bug in the last version when parsing long programs, exposed by aggresive optimizations.
Also, the following bug fixes are included:
- Correctly parse the
LOCATE
statement as writing to the last variable. - Splits the lines with long IF/THEN statements correctly.
- And a new option for limiting the BAS binary line length allows to test bugs with long line lengths.
You can see the Full Changelog here: v11...v12
Version 11
This release was long overdue, after almost five years of changes:
New syntax
- There is an
$incdata
directive that allows inserting data from a file into your program.
New optimizations
fixed_vars
optimization, removes variables that have the same vale through the program, useful for restoring programs that replaced number with fixed variables.then_goto
andif_goto
optimizations, changes THEN/GOTO with the smaller THEN followed by the line number.- the
const_folding
optimization can join multiple PRINTS in one.
Better support for Atari BASIC
Various extensions now are converted to Atari BASIC equivalents if the -A
option is given:
- Converts IF/ENDIF to a IF/THEN if possible.
- Supports hex numbers and the %0 to %3, converted to decimal.
- Supports PUT without I/O channel.
Various bugs fixed
- The parser now detect more errors in the Atari BASIC syntax.
- The PRINT and
?
statements are now kept in the output as is. - Many more small bugs.
You can also see the Full Changelog here: v10...v11
Version 10
This is a major release, adding support for Atari BASIC parsing and output.
- The new option "-A" forces the parser in Atari BASIC mode, this gives error in any extended statement and limits posible optimizations.
- The constant-removal optimization is more aggressive now, trying more combinations to create new variables replacing constants in the code, and properly disable variables in THEN line numbers when output to list files.
- Fixes minor problem detecting overwriting input file in Windows and a problem when writing list output of REM lines and reformats the manual for better PDF conversion.
Version 9.4.3
Allows keeping comments in tokenized output using the -k
option.
Version 9.4.2
Fixes two minor bugs reported by Irgendwer:
- Don't ignore DATA statements after an IF/THEN with line number,
- Fixes parsing of two ':' together.
Version 9.4.1
A very minor release, only fixes a small bug with the optimizer (bug #1).
Version 9.4
Another bugfix release:
- Workaround a bug in TurboBasic XL interpreter that incorrectly check the tokenized line length while checking for the end of IF, FOR and CIRCLE statements.
- Prints a warning when a variable name is the prefix of a statement.
- Fixes a segfault with more than 1020 variables in the short listing.
- Implements the '-f' option in the short listing, keeping variable names that are at most two characters.
- Adds OSX build to the make-release script.
Version 9.3
Minor changes:
- Added optional OFFSET and LENGTH parameters to the 'incbin' directive, this include only a portion of the binary file.
- Simplified the code a little.
Version 9.2
This has only minor fixes:
- Fixed parsing of *F / *B / *L with +/-.
- Parser could crash with invalid counts in extended strings.
- Fixes bogus error in some cases with extended strings.
- Fixes parsing of CIRCLE with 4 parameters (ellipses).
- Fixes parsing of TEXT with a numeric argument instead of string.
Version 9.1
This version adds the unused variable removal optimization, and fixes some minor bugs:
- Always runs some optimization passes, this simplifies generation of BAS and short listings.
- Fixes listing programs with too many variables.
- Remove limitations of 256 variables, the parser now handles an unlimited number of variables or procedures.
- Sort variables by usage, reducing binary size in programs with many variables.