|
Revision History |
|
Versions Released in 2001 |
|
|
|
The following is a list of
versions released in 2001.
- The Unicode characters from #160 to #255 are now supported. This allows
the system to be able to handle the No-Break Space (#160) as well as the characters above
#127.
- The Test Window now automatically creates a default filename for the test file. The
default filename is constructed by adding the grammar's name to the word 'Test'. For
example, a grammar named 'LISP' would have a default filename of 'LISP Test'. This is a
very minor addition.
- Test files can now be dragged and dropped on the Test Window.
- The system now checks for rules containing illegal symbols. Rules can only contain
normal terminals and nonterminals. Using symbols such as 'Comment Start' and 'Whitespace'
can cause unpredictable results in the parser engine (since the symbol is interpreted 2
ways).
- 'Expand All Nodes' and 'Collapse All Nodes' were added to the Test Window menu.
- The Test Window now has a column which displays the current line number.
- Made some modifications to the documentation The notation used for the built-in examples
has been updated and some of the text was cleaned-up
- Modified the file load window to contain 'All Grammar Files (.grm, .cgt)'. This window
was able to load both Grammar Outlines and Compiled Grammar Table files, but, by default,
it only displayed the .grm type.
- Fixed a small bug when dragging and dropping files on the Main Window. The application
did not set the current filename to the one just dropped.
- Fixed a user-defined character set bug in the Builder. When constructing user-defined
sets, the system would not add the horizontal tab, vertical tab, form feed, or line feed
characters. Thanks to Eric James for finding this problem.
- Fixed a block comment related bug in the Parser Engine. The gpMsgCommentError message
was not being generated for runaway block comments. Special thanks to Matthew Hawkins [www.hawkini.co.uk] for finding this problem.
- Fixed a parse bug in the Parser Engine. The bug only effected grammars that were (1)
Case Sensitive and (2) have reserved words containing uppercase characters. In these
cases, the Parser Engine was not able to recognize the reserved words.
- Fixed a file load bug in the Parser Engine. The OpenFile() method did not correctly
setup text streaming from the specified file. Special thanks to Eric James
for finding this problem.
|
- Added the ability to drag and drop files onto the main window.
- The contents of the Symbol Table are now automatically sorted.
- Productions in the LALR state table are sorted. The productions are ordered by the
position of the parse cursor and then by the rule's index.
- UNIX encoded text files can now be opened.
- The main window caption now displays (Modified). This appears when the grammar has been
changed. Also, only the filename is displayed, not the entire path.
- Added the total number of LR(1) configurations to the log.
- The system now warns if a terminal is defined in the grammar, but not used in the rules.
- Added two webpage links to the Help Menu. The links 'GOLD Parser Homepage' and 'Check
For Updates' were added.
- Added a warning for terminals that are defined, but not used.
- System now checks if terminals can be zero-length. Terminals must be at least 1
character long or problems can arise in the DFA State Machine. Example: {AlphaNumeric}*
- Added the Parameter() method of the ActiveX DLL. I forgot to include this in the
original library. Though not critical, it was a serious oversight.
- The 'Start Symbol' parameter can now contain angle brackets. Before this change, the
value of the the 'Start Symbol' parameter could not be specified using the angle brackets
which usually denote a nonterminal. This was an inconsistency in the syntax.
- Major Update! The code base has been completely optimized. The
compilation process for the DFA and LALR tables is now over 4 times faster! This was
accomplished by creating a new LALR(1) closure algorithm and sorting sets during
compilation.
- Updated the message displayed when a CGT file is opened. The message in the grammar
editor when a Compiled Grammar Table file (.cgt) is opened is now far more descriptive.
- Updated the colors and icons. The colors used to display productions, reductions and
accepts were changed. Also changed the accept icon in the Grammar Test Window.
- Updated the positioning of child windows. All the child windows will be centered in
relation to the Main Window.
- Changed the layout and picture in the About Window.
- Modified the layout of the Revisions Window. The previous version was hard to read
(since the details were on the same line as the line item).
- Renamed the 'Special' menu in the Main Window to 'Grammar'. This is a minor, cosmetic,
change.
Cleaned up some of the error messages.
- Updated the GOLD Parser Help file. The documentation now includes information on the
Parameter() method which was added to the Parse Engine DLL.
- Updated the Compiled Grammar Table file save message. Before this change, the
application only displayed a message after it was done saving, not during.
- Fixed a bug in the parser engine. When the parser engine was 'Reset' the parameters such
as Name, Version, Author, etc... were cleared. This should be, and now is, exclusive to
'Clear'.
- Fixed a bug when saving a grammar outline. It wrongly listed 'Compiled Table File
(.cgt)' as one of the save type options. This is performed from another menu item.
- Fixed a bug in the DFA State Table construction. This bug only occurred for case
sensitive grammars. When the internal character sets were created after the construction
of the DFA, sets were compared case insensitive. As a result, sets such as [abc] and [ABC]
were combined.
|
- Added a 'Reduction' class to the Parser Engine DLL. Using this class, the parser can
automatically create a parse tree without requiring the developer to create customized
objects.
- Added the ability to open Compiled Grammar Table files with the Builder. - I had the
code, why not use it?
- Improved HTML exporting. The web page now uses embedded cascading style sheets. This
decreases size and allows easy maintenance.
- Updated the documentation to reflect to changes to the Parser Engine DLL. The style and
layout of the documentation was also improved.
- Changed the default size of the main window and the test window.
- Per request, the parse tables can now be exported to a HTML webpage even if a conflict
is detected.
- Fixed a bug that occurred when creating terminals with the pipe | or double-quote "
character. The flaw is the result of misinterpretation by the regular expression scanner.
|
- Added a 'Do you want to print this grammar' message before printing starts.
- Added the Ada programming language to the Create Enumerated Constants window.
- Changed the size of the Create Enumerated Constants window.
- Modified the main window so the GUI components load more efficiently.
- Changed the default size of this Revision History window.
|
- Changed the Test Grammar window so the source text is on its own tab.
- Fixed a bug in the DFA Engine. In the situation where 2+ terminals start with the same
pattern, i.e. '{Digit}+' and '(Digit}+.{Digit}+', the engine can read the wrong number of
characters from the buffer.
|
- Added this Revision History window
- Added the Print feature
- Made sure that when saving a Compiled Grammar Table the system will display a warning if
you are overwriting an existing file.
- Changed the picture in the About window to a photo of the Capitol of California.
- Improved HTML exporting. I removed all unnecessary HTML data to minimize file size
(still very large).
- Fixed a file save bug. After a Compiled Grammar Table (.cgt) file is created, saving the
source grammar (.grm) will overwrite it.
|
- Added a 'Do you want to save changes?' warning if you attempt to exit the program,
etc... without saving.
- Added more content to the Log. When the grammar description has a error, the log now
displays the actual line.
- Test Grammar window now draws the test grammar and parse data proportionally.
|
|