Skip to content

Releases: dmsc/tbxl-parser

Version 12

26 Aug 03:25
Compare
Choose a tag to compare

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

01 Jul 01:18
Compare
Choose a tag to compare

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 and if_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

22 Sep 23:42
Compare
Choose a tag to compare

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

09 Jul 02:57
Compare
Choose a tag to compare

Allows keeping comments in tokenized output using the -k option.

Version 9.4.2

03 Mar 22:47
Compare
Choose a tag to compare

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

14 Mar 02:26
Compare
Choose a tag to compare

A very minor release, only fixes a small bug with the optimizer (bug #1).

Version 9.4

08 Feb 02:58
Compare
Choose a tag to compare

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

27 Jan 01:40
Compare
Choose a tag to compare

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

19 Jan 02:59
Compare
Choose a tag to compare

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

24 Oct 23:23
Compare
Choose a tag to compare

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.