The Tower Bridge in Sacramento, California GOLD Parsing System
2006 News Archive
Main
Latest News
Getting Started
Screen Shots
Download
Documentation
Contributors
Contact
About GOLD
How It Works
FAQ
Why Use GOLD?
Comparison
Revision History
Freeware License
More ...
Articles
What is a Parser?
Backus-Naur Form
DFA Lexer
LALR Parsing
Glossary
Links
More ...


The following is a list of project updates from 2006.

December 9, 2006

Update! Version 3.2.4 of the Builder was released

  • Fixed an error in the character mapping table The Greek character Mu was entered into the case mapping table. The system was adding an equivalent character located in the Greek section of Unicode. The error does not adversely affect any compiled grammar.
  • Fixed a bug in XML encoding. When the system created a skeleton program, it was not converting < and > to the &lt; and &gt; codes.

You can get a copy from the Builder Download page.

November 23, 2006

Javascript Object Notation Grammar was added

Dave Dolan submitted a grammar of the Javascript Object Notation file format. JSON is a text file format that was created for data-interchange between different programming languages. The conventions of the format is based on the C programming language and, as a result, should be familiar to programmers of C++, Java, and C#.

You can download a copy from the Grammar Download page

Modified program template for the Calitha Engine was added

Dave Dolan submitted a modified version of Calitha Engine that generates a tiny factory class "MyParserFactory". It was designed not to touch the other signatures in the MyParser class.

Website Redesigned Slightly

The webpage template was modified slightly. The changes are not visually obvious, but will allow the website to be more easily modified in the future.

November 12, 2006

Great News! A new version of the Intel x86 Engine was released!

Ege Madra created a version of the Engine using the Intel x86 Assembly Language. The result is a super-fast version of the Engine can be used any language that supports DLLs.   The download contains the source code, a compiled DLL, and a program template.

You can download a copy from the Assembly Download page

October 26, 2006

Update! Version 3.2.3 of the Builder was released

  • Fixed a bug in the Create a Skeleton Program utility. The bug affected all program template variables that contained a period. In these cases, the system would not insert any text.

You can get a copy from the Builder Download page.

October 1, 2006

Great News! A new version of the Calitha Engine was released!

Robert van Loenhout just released a new version of his Calitha Engine. The new version contains a number of changes to enhance performance. These include:

  • Improved error recovery, including the ability to insert tokens.
  • New event for line and block comments.
  • Extract comment with or without comment tokens.

You can download a copy from the C# Engine Download page

Update! Version 3.2.2 of the Builder was released

  • The installation script was updated. The previous version of the installation contained a bug that caused a "files out of date" error message to be displayed. This was a bug located in the package and deployment software I was using. The software was patched and the installation should be problem-free.
  • Files can now be automatically opened from the Windows shell. The .grm and .cgt file extensions are now automatically associated with the GOLD Builder application.

You can get a copy from the Builder Download page.

September 14, 2006

Update! Vladimir Morozov updated the VB Script grammar

Vladimir Morozov submitted a grammar for the Visual Basic Scripting Language - VB Script. This is a version of Microsoft Visual Basic that can be used in webpages or for scripting tasks in Windows.

Vladimir Morozov worked with Nathan Baulch on a number of updates which take into account some real-world scenarios. These include the use keywords as identifiers, the use dot in front of identifiers in WITH statements (grammar allows to use them anywhere), missed statements, parameters for calling SUB, and much more.

You can get a copy from the Grammar Download page.

September 4, 2006

The Future Work webpage was updated

The page was updated with possible future changes that would allow multiple block comments. The page was also now contains "Compatibility" charts.

September 3, 2006

Update! Rob van den Brink updated the Pascal Engine!

Rob van den Brink updated his engine for the Object Pascal Programming Language. His implementation uses a template to create a full-functioning program. This does not require you to load a Compiled Grammar Table file.

You can get a copy from the Pascal Download page.

Update! The Delphi 7 grammar was updated

Rob van den Brink, who authored the Object Pascal Engine, updated the grammar for the Delphi 7 Programming Language. The update contains a myriad of   refinements.

You can get a copy from the Grammar Download page.

July 22, 2006

Version 3.2.1 of the Builder was released

This release fixes a few very minor bugs.

  • The symbol's name was added to the 'Unused Terminal' warning title. "If the log is exported to a text file, this change makes the items actually meaningful.
  • The window's dimensions are only saved if the window is normalized. Beforehand, the window dimensions were saved even if the window was maximized. This was problematic the next time the application was loaded.
  • Fixed the menu enabled/disable bug. Some of the items in the menu were not disabled when the system was busy.

You can get a copy from the Builder Download page.

The COBOL 85 grammar was updated

The new version of the grammar fixes a number of flaws in the first uploaded. In particular, this version is able to handle embedded statements.

You can get a copy from the Grammar Download page.

July 14, 2006

Update! Version 3.2 of the Builder was released

This release fixes a  bug and adds a number of improvements. The changes include the following:

  • The import grammar utility now supports Bison. The new version can import grammars written in either YACC or Bison. In addition, the system displays the import progress on screen.
  • Added a 'prior definition' warning for rules. If a rule is defined in two different locations, the system will now log a warning. Often, for large grammars, it is easy to accidentally create rules with the same name.
  • Fixed a bug in some of the pre-defined character sets. The bug affected the {ANSI Printable}, {All Valid}, and {Control Codes} sets. Special thanks to Bill White for reporting the bug.

You can get a copy from the Builder Download page.

June 12, 2006

New! The grammar for COBOL 85 was added

The COBOL programming language is one of the oldest still in use today. It  was originally designed by the United States Department of defense under the supervision of the Conference on Data Systems Languages (CODASYL) Committee. Most of the groundwork and design of COBOL was done by Admiral Grace Hopper of the United States Navy.

The COBOL 85 grammar is complex - containing, over 350 reserved words, 950 rules which results in 1,681 LALR states.

You can get a copy from the Grammar Download page.

June 7, 2006

New! The grammar for C# was added

C# was primarily the work of computer scientist Anders Hejlsberg who has worked on a wide range of programming languages. These include, but are not limited to, Visual J++, Borland Delphi and Turbo Pascal. His previous works and influences from Java and C++ can be seen in C#.

The grammar was designed, in part, using the official language specification that can be found on the Microsoft website. As a result, considerable time was required to write a LALR(1) compliant version.

You can get a copy from the Grammar Download page.

June 5, 2006

Update! Version 3.1.1 of the Builder was released

This release fixes a few minor bugs and adds a number of improvements. The changes include the following:

  • The system now remembers the window size. Each time the application is closed, the current size of the window is now saved into the Registry.
  • You can now specify if the printer font will be bold. Before, only the font name and size could be specified.
  • Rob van den Brink's Pascal engine template is now included.  The template creates a full-functioning program that does not require you to load a Compiled Grammar Table file."
  • Updated the Help Icon. The new version is a basic blue rounded-box. It is far simpler - and far more aesthetically appealing - than the last version.
  • Fixed an editor bug when a CGT was loaded. I was not disabling all the edit features when a CGT was loaded. This was a minor bug.
  • Some buttons were not disabled when a CGT was loaded. When a CGT is loaded, the 'save' button needed to be disabled.
  • A rare 'printer selection' bug was fixed. If the name of the printer is over 32 characters, the system was not able to properly select it.
  • Fixed a printing word-wrap bug. In very rare situations, the system would not word-wrap a line before the text entered the right margin.

You can get a copy from the Builder Download page.

New! The grammar for the Delphi 7 Programming Language was added

Rob van den Brink, who authored the Object Pascal Engine, created the grammar for the Delphi 7 Programming Language. Delphi was developed from the concepts and syntax of Pascal and, its successor, Object Pascal.

You can get a copy from the Grammar Download page.

May 31, 2006

Update! Version 3.1 of the Builder was released

This release fixes a few minor bugs and adds a number of improvements. The changes include the following:

  • The Options Window was improved. You can now specify the font used in the Test Window and the various tables.
  • Program templates were improved. 
  • The startup size of the main window was changed. When the application first loaded, the size of the main window was a tad small.
  • The startup (Modified) flag was fixed. When the Builder first loads, it puts a short comment description in the grammar window. The system was setting the 'Modified' flag to true.
  • Fixed a bug when parsing large test files. When more than 16k reductions were performed, the system would crash.  Special thanks to Bob Moore for his help.

You can get a copy from the Builder Download page.

Great News! Rob van den Brink submitted a Pascal Engine!

Rob van den Brink created a new engine for the Object Pascal Programming Language. The template creates a full-functioning program that does not require you to load a Compiled Grammar Table file. The download contains a program template as well as several examples.

From the template file:

This template generates an inline parser engine, in (object) Pascal code, with full support of error productions (to recover from errors). The lexer and parser are fully embedded in the rest of your code, so that other modules are not required. The resulting code can be compiled directly into a stand-alone program with a good object Pascal compiler (like Virtual Pascal or Delphi).

You can get a copy from the Pascal Download page.

March 13, 2006

Great News! Ege Madra submitted an Intel x86 Engine!

Ege Madra created a version of the Engine that was implemented using the Intel x86 Assembly Language. The result is a super-fast version of the Engine can be used any language that supports DLLs.  The download contains the source code, a compiled DLL, and a program template.

From the ReadMe file:

GOLDx86Engine is written with x86 assembly language to ensure it has decent performance for serious compilers / interpreters.Another important aspect of it is that it is language neutral, that is, the functions contained in the DLL can be called from any programming language that is able to call windows functions such as C/C++, Visual Basic, Delphi etc. The package contains 3 forms of the software:

  1. DLL version. As mentioned before, can be used by any language that can call a 32 bit Windows dll. Import library, and .def and .exp files are provided.
  2. Lib version. C/C++ and Assembler programmers can embed it to their applications to aviod distributing an additional dll. An include file for assembly programmers also included. C/C++ programmers should create their own header files.
  3. Assembler source code. You can modify or use it directly if you have MASM32 package to assemble it.

You can get a copy from the Assembly Download page.

Engine Pages were reorganized

I made some changes to the Engine pages to better organize them. Before, the pages were roughly organized into their development paradigm, but there are case where languages overlap. A good example is the dynamic linked library.

Now, the pages are organized by the language used to implement the Engine. I created a new page that links to the different engines depending on their avaiable plug-in modules.

March 9, 2006

I am going to make some updates soon

Sorry for the lack of updates. I will catch up soon.

January 6, 2006

Website was redesigned

The menus located on the left side of each page were changed. The new format is designed to be better to navigate and to able to handle any additional pages.

To accomplish this, I organized two of the menus into "About GOLD" and "Articles" - both of which have separate subfolders on the website. I added a "More..." option, will links to the index of each subfolder. As new pages are added about GOLD and about parsing theory, they can be put into each section without requiring the website to be redesigned again.

A "Getting Started" section was added

The new section is still under construction, but will eventually have tutorials and other information designed to help new users understand the system.

Updated the description of Vladimir Morozov's Engine and his Contributor Page

The new information is more descriptive and accurate.

January 1, 2006

Great News! Version 2.0 of the Morozov C# Engine was released!

The following is the key features of version 2.0 (copied and pasted from his website).

  • Parser is designed to be a "pull" parser, where client programs pulls data out of parser.
  • Parser keeps only minimum information required for parsing. So, it can be used for parsing large files without allocating a lot of memory.
  • Parser uses TextReader as a text input. So it can use StringReader or StreamReader classes.
  • Parser implements "lazy" string allocation for tokens. So, if token text is not important then no extra string allocation will be done.
  • There is a special Grammar class which can be initialized from CGT file once and reused for multiple parsing operations.
  • All Grammar properties and tables are immutable.
  • Parser uses special transition vectors for DFA and LALR processing to make them faster. It is especially optimized for a case where ASCII charset is used. It uses char value as an index in array.
  • Parser object has to be created for each parsing string or stream.
  • Parser has special parse messages to collect comments.
  • Callback function can be supplied to collect source lines.

You can get a copy from the C# Engine Download page.

Update! Version 3.0.3 of the Builder was released

This release fixes a few minor bugs.

  • The 'Help' toolbar icon was updated. The new version is slightly different. I am finally satisfied with how it looks.
  • The Export Parse Tree feature was fixed. The Export Parse Tree feature can be used to export a tree, created in the Test Window, to an ASCII file. The tree is drawn using ASCII characters. I had failed to notice the function displayed the header in each recursive call - which was a careless mistake.
  • Added some 'Tool Tips'  to buttons.

You can get a copy from the Builder Download page.