 |
The following is a list of
versions released in 2004.
- The functionality of Program Templates was expanded significantly. The
templates contain a number of new tags and blocks that allow the entire contents of the
Symbol Table, Rule Table, Character Set Table, DFA Table and LALR Table to be exported.
- The 'Create a Skeleton Program' window now displays a 'scanning' message. When the
window is first loaded, it scans the contents of the \templates folder. This can take a
few moments.
- The format of the file created by the 'Export to XML' tool was modified slightly.
- Made a few minor tweaks to the LALR State Browser.
- Fixed the double-paste bug. When text was pasted into the Grammar Editor, it would be
pasted twice.
|
- The YACC to GOLD translator was integrated into the Builder. This is a simple utility
that translates a grammar written in the YACC Meta-Language to the GOLD Meta-Language.
- The Edit Menu now contains both a Find and Replace option. Most text editors contain
simple find and replace windows. These were actually quite easy to implement given the
functionality built into the RichText Control.
- The Copy, Cut, Paste, and Delete keyboard shortcuts were added to the Edit menu.
- The Test Window was improved slightly. When a 'parse action' is clicked, the description
is now displayed at the bottom of the window.
- Table generation was broken into two steps. Beforehand, the 'Next' button simply
displayed 'Compute Tables'. When clicked both the LALR and DFA tables were constructed -
one after another. Since the Builder can now correct for Shift-Reduce errors, the system
would create the DFA tables even if the developer wants to create a grammar free of any
shift-reduce conflicts.
- The GUI library used by this application was updated. The overall efficiency of the
library was improved. This includes both speed and memory requirements.
- The 'dot' character in the Export to Formatted Text was changed. The ISO-8859 dot {#183}
is now used.
- The Export to Formatted Text output was modified. The Log is now printed before any of
the other tables. The file also contains a simple header message.
- The About Window was modified. The style of the About Window now matches the style of
the splash screen.
- Fixed a minor bug in LALR State Browser. When a CGT file was loaded, the LALR State
Browser would not allow the developer to double-click on actions.
- Fixed LALR and DFA State Browser scrollbars. The scrollbar was acting strangely when it
was first clicked. This bug appears to be part of the actual Visual Basic control. It has
been circumvented.
|
- Huge Addition! The LALR and DFA state windows were improved.
Beforehand, both windows simply contained a listing of each state. This was hard to
interpret since moving from state to state was done by scrolling. Both of the windows are
now state 'browsers'. Links between states can be followed by double-clicking. I also
added 'back' and 'forward' history buttons.
- The log window is linked to the DFA and LALR state windows. If you double-click on a log
item about a DFA or LALR state, it will open that state for you.
- The text displayed in the LALR states for 'Reduce' actions was changed. The new format
is designed to be easier to read. Beforehand, a reduction of rule 3 would be read 'Reduce
3'. Now it reads 'Reduce Rule 3'.
- The speed of the 'Goto Line' feature in the grammar editor was improved. It is still
very slow.
- I made some minor changes to the GUI Library. These changes are minor, and are mostly
performance based.
- The format of the Symbols Window was improved. I rearranged the controls for
readability.
- The style of the webpage created by Export Webpage Window was improved. The new format
looks slightly better - still not be best, but definitely not the worst! :-).
- Fixed a bug in the Export Webpage Window. The color information was not being written
correctly to the file. As a result, the color styles were in error and the resulting
tables were simply black.
- Fixed a minor bug in the Test Window. The Test Window normally disables the 'Parse'
button if a problem is found when constructing the parsing tables. Unfortunately, the
button is not disabled if a problem is found in the DFA States.
|
- Major Update! The system will now automatically fix Shift-Reduce conflicts.
The system will not add a reduce action if it will cause a Shift-Reduce conflict. This is
the same behavior that is used in the YACC compiler-compiler.
- Added a 'Tip of the Day' window.
- The grammar can now be exported to YACC. I originally created this simple procedure for
my Master's Project Report. This tool will create a new '.y' file containing the grammar's
rules in YACC format.
- The Test Grammar Window now logs read comments. As comments are read, the system now
lists them on the 'Actions' tab.
- I added some miscellaneous links to the Help Menu. These links include the Unicode
Consortium and California State University, Sacramento.
- Some internal changes were made to attempt to solve the mysterious Error 91 bug. This
bug only affects the builder when it is executed on the Asian version of Windows. The
cause is, unfortunately, not obvious in the code. Special thanks to HaeRim Lee for his
help.
- The semantic checks for grammars were enhanced. The system now better checks if all
rules and terminals are defined properly.
- Windows are displayed more efficiently. The system only reloads information into windows
if the data has changed. Beforehand, anytime a window was 'displayed', information was
reloaded.
- The icons in the System Log were changed. The icons for 'Critical Error', 'Success',
'Warning' and 'Information' were replaced with better variants.
- The New Grammar Wizard was modified. When the wizard creates a line-based grammar, the
definition for a 'New Line' was modified to include a single {LF}.
- The main toolbar was rearranged slightly. Most likely, now one will notice this change.
- The release dates for each version of the Builder were added to this window. Just click
on one of the version icons. I don't have the release information for versions before 1.0
Beta 20.
- The Log Window was modified slightly. The error description for Shift-Reduce Conflicts
was changed.
|
- Added a New Grammar Wizard. The Wizard allows you to create a basic grammar for a number
of common programming language attributes.
- Added two new variables to the Program Template format. These two new variables,
%ID.Padded% and %Value.Padded%, allow the developer to specify identifiers and values that
are right-padded with spaces such that each has the same width.
- Program Templates are now more versatile. The identifier tags, such as ##ID-CASE, can
appear anywhere in the template. Beforehand, these tags could only appear at the start of
the template. With this change, the developer can create different symbol and rule lists
using identifiers with different formats. In addition, this information was removed from
the Create Skeleton Program window since a single displayed value is meaningless.
- Tweaked the 'Next' button.
- The look of the Splash Screen was modified.
- Modified the preset colors on the Export Webpage utility. The 'Beige' scheme is far more
beige.
- Fixed a very minor bug in the DFA table construction. Most likely, no one ever found
this bug.
- Fixed an Engine bug concerning line comments. When the Engine encounters a line comment,
text is discarded until either a new line or the end of file is encountered. The new line
characters are not discarded. The Engine was discarding the first character of the
carriage return / line feed sequence which caused problems with line-based grammars.
Special thanks to Dean McNamee for finding this bug.
- Fixed a bug when saving large grammars. When saving grammars over 32k lines, the Builder
would crash. This was the result of using a 16-bit integer rather than a 32-bit version.
|
- Added a Most Recently Used (MRU) section to the file menu. This feature is found in most
applications. The most recently used files are displayed at the bottom of the File Menu.
- Made some revisions to the GUI library.
- The arrow icon on the 'Next' button was changed. The new icon matches the style of the
icons used in the toolbar.
- Fixed a few typos.
- The Log Window will only automatically appear if a problem is found. Beforehand, the Log
Window would display each time the 'Next' Button was clicked.
- Fixed a bug in the DFA table construction. Kleene Stars were not functioning correctly
if applied to a literal string (e.g. 'bug'*). Special thanks to Rick Sprague for finding
this error.
|
- Added 'Virtual' terminals. These terminals are specified in the "Virtual
Terminals" parameter. The system will enter these terminals into the symbol table,
but they will not be entered into the Deterministic Finite Automata. As a result, the
terminals will not be recognized by the tokenizer, but can, instead, be created by a
specialized version of the Engine or by the developer. This can help developers parse
languages which are not context free - such as Python.
- Added a few new options to the exporting to formatted text or web pages. You can now
exclude LALR lookahead sets and unstarted configurations when exporting the parse tables.
- Program Templates now can create constants in lowercase. The ID-CASE parameter can
contain Uppercase, Propercase and Lowercase. Previously, 'lowercase' was not allowed.
- Added a 'Trim Reductions' button to the Test Window toolbar. Beforehand, this option
could only be changed from the main menu.
- The Test Window can now export the parse action table. Before, the test window would
only export the parse tree.
- The formatting used in the Test Window was improved. The formatting used to list parse
actions was modified. The new format is easier to interpret.
- I cleaned up much of the internal code. There are too many things to list.
- The acronym for 'GOLD' was changed again. The new acronym stands for Grammar Oriented
Language Developer. This should be the last time the acronym is changed.
- Character constants between &D800 and &DBFF are no longer valid. These values
are reserved in Unicode for UTF16 encoding.
- The 'Export Formatted Text' utility is now much faster. Both the speed and formatting
used by this utility was improved.
- The Help toolbar button and menu item will now open the main online help page.
Beforehand, the Help would open the meta-language documentation page.
- Fixed a bug when creating skeleton programs. If the Symbol or Rule prefix was blank, the
system was adding the text 'Space'. This made if it difficult to create constant names
without prefixes.
- Fixed a very minor bug with the Create Program Template window. When you browse for a
different folder using the Create Skeleton Program utility, the system was not disabling
the 'Create' button if no templates were found.
- Possibly fixed a bug concerning how the toolbar icons are displayed. On some systems,
the toolbars were failing to remove the mask color (color that is transparent) on the
icons. I made some revisions to the GUI library that might fix this. Time will only tell,
though.
|
- Added a browse button to the 'Create a Skeleton Program' window. The button allows the
user to select another folder containing program templates.
- The behavior of the Test Window was slightly changed. The Test Window will now clear the
Parse Actions and Parse Tree tabs when a new test file is opened.
- The system now displays the 'Working' dialog when opening a file that was dragged and
dropped.
- The shortcut key for the Test menu was changed from Alt-E to Alt-S. The 'E' was
conflicting with the Edit menu.
- Fixed a 'Set Constant' bug. The set constants {#xxxx) and {&xxxx} were not valid
when defining terminals. This was a careless mistake.
- Fixed a bug when creating skeleton programs. When the system created enumerated
constants for the symbol table, some symbols were left out. This was the result of
conflicts with the generated constant names. For the rule table, these conflicts were
resolved by adding a number to the end of the constant. Symbols, however, did not contain
this logic. Special thanks to Rick Sprague for finding this bug.
|
- Added a splash screen.
- Major Update! The LALR table generation algorithm was reengineered. The
old algorithm would slow down exponentially for complex grammars. The new algorithm, in
some cases, is twice as fast in computing the tables.
- Two buttons were added to the Test Window. One of the buttons allows the user to display
the 'Set Error Recovery Limit' value. The other button allows the user to save the parse
tree.
- Window minimization was disabled. When MDI child windows were minimized by the user,
some strange errors could happen. The buttons might be enabled in a future version.
- The toolbar icon used for the System Log was changed. Beforehand, the icon consisted of
a pencil - which was not very representative of the System Log. The new icon will
hopefully work better than the last.
- The help icon was updated. The new version is slightly better.
- Some additional information was added to the error log.
- Updated the Log Window. When you click on a log item, the window will now display the
title and description.
- Fixed a rather careless bug in the Grammar Test Window. For large parse trees, the test
window will display a message that the tree can be saved to a file. However, I forgot to
enable the save feature.
- Fixed a bug in the Webpage Export window. The table that created to display parameters
also contained comments that should not have been visible.
- When computing tables, the menus and toolbar buttons were not disabled.
|
2003 Revisions
2002 Revisions
2001 Revisions
|