Changes made to JFLAP - Jan 15, 2005
JFLAP 4.0b13, January 15, 2005
FIXES
* For SLR(1) parsing, it was possible to define on certain specially
constructed grammars a parse table that under certain inputs would
result in an infinite loop. JFLAP previously simply ran out of memory
as it generated an infinite parse tree. Now the user will be presented
with a dialog when it looks like the parse tree is getting suspiciously
large, allowing them to terminate the parse.
* PDAs previously had the restriction that they could only have
alphanumeric characters for input read, pops and pushes. This
restriction has been removed since this is inconsistent with other
structures, and led to problems with conversions of grammars to NPDAs.
* For unit production removal, use of "complete selected" would result
in an internal inconsitency that produced wrong numbers for the number
of productions to remove.
* Fixed a transient graphical glitch in table highlights in SLR parsing
when one enters a new string to parse during the parsing of another
string.
* All the editors
had an alternate Haiku
documentation.
L-systems did not
because I created that
editor later.
Seeing my mistake
I addressed this oversight
so stop complaining!
* Under some circumstances the automatic conversion from RE to FA would
fall into an infinite loop, which has been fixed.
FEATURES & OTHER NON-BUG CHANGES
* Made SLR(1) parsing so that, under fully automatic generation of the
parse table, the parse table that was derived had states in fully
predictable positions.
* Added a "multiple run (transducer)" action for simulation of Turing
machines. This is identical to the "multiple runs" action, except it
also displays the output of the Turing machine if you are interested in
using the Turing machine as a transducer.
* Added the ability to view the trace of a run in the "multiple run"
action.
* The ability to open the original JFLAP 4 beta files has been removed.
* The FA to RE converter tended to add lots of unnecessary parentheses.
It now tries to limit parentheses additions to necessary cases.