The Tower Bridge in Sacramento, California Contributors
The Computer Scientists Who Made It All Possible
Latest News
Getting Started
Screen Shots
About GOLD
How It Works
Why Use GOLD?
Revision History
Freeware License
More ...
What is a Parser?
Backus-Naur Form
DFA Lexer
LALR Parsing
More ...

This section of the website is dedicated to the kind and generous work of those who contributed. For the moment, this page just lists each person by name, but in the future I hope to add a page for everyone.

These names are listed in alphabetic order by last name.

Engine Developers
Manuel Astudillo Manuel Astudillo created a C++ version of the GOLD Parser Engine from the ground-up. This version contains an additional class named "ASTCreator" which is designed to aid in the construction of a specialized parse tree.
Max Battcher Max Battcher recompiled the .NET Module source into a standard DLL. This is designed to  allow easier development with Visual Studio 6 and other IDEs.
Jorgen Bodde Jorgen Bodde released an implementation of the GOLD Engine for wxWidgets  which is a cross platform GUI toolkit. The source was ported from the Alexandre Rai engine (Delphi 5 version) to C++ and runs under Linux and Windows (MacOS and Solaris should also work).
Matthew Hawkins Matthew created the Java version of the Engine will allow you to develop interpreters, translators and compilers with the popular Java programming language. He was the first contributor to the site.

He also helped find a bug in version 1.0 Beta 19 of the Builder. The gpMsgCommentError message was not being generated for runaway block comments.

Justin Holmes Justin Holmes developed a version of the GOLD Parser Engine using ANSI C. The new version is not platform dependent, and has been tested to compile cleanly on Windows(TM) and Linux. The source code is well-commented and the download contains an example program that prints the tokens and rules as it matches them.
P.H. Paul submitted a modified version Justin Holmes' ANSI C Engine. Like the original it should compile with any ANSI C compiler, however this version has only been compiled and tested using Microsoft VC++ 6. Building the parse tree will use more memory and CPU cycles than the original project, especially if large files are parsed. Where memory is limited, this project could be easily modified to output the parse tree as a binary file.
Marcus Klimstra This version of the Engine was implemented on Microsoft's new .NET® Platform. Developers using C#®,  Visual Basic .NET®, J#® or any of the .NET compliant programming languages can use this component to develop interpreters, translators and compilers.
Milosz A. Krajewski Milosz A. Krajewski developed a pure implementation the GOLD Parser Engine using the Python Programming Language. The Python Language is multi-paradigm which allows the developer to use object oriented, procedural, functional, etc programming depending on the problem at hand.
Adrian Moore Adrian Moore modified Marcus Klimstra's Engine so that the Compiled Grammar Table file can be an embedded resource in the assembly's manifest. As a result, the Reduction, LookAheadReader, GrammarReader and GoldParser objects were modified.

He also made some modifications to the Visual Basic .NET grammar.

Ege Madra 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. 
Vladimir Morozov Vladimir Morozov created a new version of the Engine using the C# programming language. He also submitted a grammar for the Visual Basic Scripting Language - VB Script.
Matthias Piepkorn Matthias Piepkorn created a version of the Engine for the D Programming Language. This programming language was designed to combine the efficiently of C with modern object orientation programming concepts.
Alexandre Rai Alexandre Rai implemented  the GOLD Parser Engine for both Delphi 3 & 5. In this version, most of the functions and classes have been reimplemented and the code is designed to be easier to use.
Nick Sabalausky Nick Sabalausky released an engine for the D Programming Language. Goldie (pronounced "goal D") works on both Windows and Linux. It should also work in Mac-OS X and FreeBSD. It also contains a tool called StaticLang that creates new "static-style" languages for enhanced compile-time error checking. 
HansgeorgSchwibbe Hansgeorg Schwibbe modified the Java Engine source and .jar file to be compatible with Ecclipse.
Eylem Ugurel Eylem Ugurel has created a new version of the GOLD Parser Engine in C++. He submitted a file that contains both the Visual C++ source code and the source code for his LUDO (Language for Unified Design and Operation) scripting engine.
Martin van der Geer Martin van der Geer ported the Visual Basic 5 source to the popular Delphi® Programming Language.
Robert van Loenhout Robert van Loenhout created the Calitha Engine which is for the Microsoft .NET architecture. This version was written in Microsoft C#®. He also supplied full documentation for using the DLL.
Rob van den Brink Rob van den Brink created an 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.
Arsène von Wyss

Arsène von Wyss released an implementation of the Engine allows the developer to map a semantic action classes directly to the grammar's terminals or reductions. The result of this approach is the creation of a functional semantic AST without the intermediate token-based AST representation.

Reggie Wilbanks Reggie Wilbanks ported the GOLD Parser Engine source code to the new Visual Basic .NET programming language. He as also submitted an example project which draws a parse tree for an given input stream.
GOLD Parser Builder & Tools
Abderraouf El Gasser El Gasser created a syntax file for the popular VIM Text Editor. This program is an improved version of the common VI Editor.
Dmitry Lamdan Dmitry Lamdan submitted an excellent application designed to write grammars. The application contextually highlights reserved words, terminals, rules, etc... and even interactively allows the developer see which rules and terminals have been defined and those which have not yet been.
Grammars, Sample Projects, etc...
Eike Anderson Eike Anderson submitted the grammar for PL/0. PL/0 is a simple programming language created by Niklaus Wirth in his 1976 book Algorithms + Data Structures = Programs. Essentially, the grammar is a subset of Pascal and Modula-2 (both which Niklaus Wirth created)
Alex K. Angelopoulos Alex K. Angelopoulos submitted a grammar  that is designed to be similar to the parsing performed by WScript.
Christian Beaumont Christian Beaumont submitted a grammar he wrote called "Pokchi/J". This grammar defines a JavaScript like language with some C# like extensions.
Allen Benton Allen Benton created a sample project that implements an interpreter for the Simple grammar. This project contains a number of debugger abilities which include:  1. step trace highlights the currently active step and prints debug messages, 2) single step highlights the currently active step and pauses after each step execution, and 3) step delay defines the wait time between steps
Joern Bungartz Joern Bungartz submitted a program template for the popular Delphi Engine by Alexandre Rai.
Dave Dolan Dave Dolan submitted a grammar of the Javascript Object Notation file format. He also created a modified version of the Calitha Engine program template.

Dave Dolan also created two program templates for use with the Morozov implementation of the Engine.

Nikolaos Kavvadias Nikolaos Kavvadias submitted the grammar for the Oberon-00 programming language. This language was designed by Niklaus Wirth in 1998 as a hardware-friendly version of Oberon.
Larry Leonard Larry Leonard created a sample Visual C++ project that uses the ActiveX version of the GOLD Parser Engine. The project creates a _GoldParser COM object and hooks into the DLL. 
Dmitry Gazko Dmitry Gazko submitted a grammar for the Java Programming Language. This grammar is based on a partial conversion of Sun Java 1.0-2.0 specification'
Alexander Grau Alexander Grau submitted a beautifully written grammar for the popular Pascal Programming Language.
Mat Hounsell Mathew Hounsell submitted a grammar that parses the GOLD Meta-Language. This language is used by GOLD to defined grammars. He also submitted a utility program that analyzes grammars.

In addition, he created a program template for the ANSI C Engine. The template defines functions for each rule and symbol in the grammar. It also defines main switch statement to call them.

Richard Schneider Richard Scheider submitted a grammar for a graph language from AT&T known by the names Graphviz and Dot.
Meinhard Schnoor-Matriciani Meinhard Schnoor-Matriciani submitted this grammar for the JavaScript Programming Language. The grammar has a few shift-reduce warnings - mainly due to the classic hanging else.I
Debuggers & Testers
Nat Ayewah Nat Ayewah made some modifications to the Mathew Hawkins Engine. He added some code to the LookAheadStream class to handle an abnormality in the Java Virtual Machine. Sometimes, the carriage-return / line feed sequence would be converted to a single char\n.
Rick Blommers Rick Blommers made some modifications to the Mathew Hawkins Engine. He added some code to the Databaseloader class to handle the number of multiblocks in the CGT file.
Eric James Eric James reported two bugs in version 1.0 Beta 19 of the Builder. The first bug affected the construction of user-defined sets. The system would not add the horizontal tab, vertical tab, form feed, or line feed characters. The second bug affected the OpenFile method. It did not correctly setup text streaming from the specified file.
Don Gray Don Gray caught a rather embarrassing bug in the Builder. Even though the system supported all Unicode characters, the {#xxx} and {&xxx} notations were not working! This was an extremely careless mistake.
Ibrahim Khachab Ibrahim submitted a modified version of the Delphi source code written by Martin van der Geer. All modified versions have been marked with //IBRAHIM.
HaeRim Lee HaeRim Lee (who runs a company called InvestWare in Seoul, Korea) was instrumental in locating the cause of the mysterious "Error 91" bug. This bug affected the Builder prior to version 2.4 and only occurred on Asian versions of Windows. The source of the bug was not obvious in the code, and only through his patient help running different test applications, was it ultimately found.
Bob Moore Bob Moore reported a bug that affected the Test Window. When large test files were parsed, the system would crash if more than 16k reductions were performed. This was the result of a 16-bit integer used to store the reduction number. The number is now 32-bit.
Dean McNamee Dean McNamee reported a bug in version 2.3 of the Builder. 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.
Marutsu Nokoni Marutsu Nokoni reported a bug in Version 2.6.1 of the Builder. The bug caused character literals {&x) and {#x} to be misinterpreted.
Manfred Nowak Manfred Nowak reported a bug in Version 2.6.4 of the Builder. Reduce-Reduce Conflicts were being analyzed, but not entered into the system log.
Jens Olesen Jens Olesen reported a bug in version 2.5.4 of the Builder. The bug affected the 'Export to Web Page' utility. The system would sometimes report an overflow error if the source grammar was exported.
Bert Robben Bert Robben reported a bug in version 2.5.2 of the Builder. Some users were experiencing  a 'subscript' error when attempting to use the Create Skeleton Program utility. The source of the bug was traced to a compiler flaw. The application was modified to circumvent it.
Rick Sprague Rick Sprague reported a bug in version 2.2.1 of the Builder. In the DFA table construction algorithm, Kleene Stars were not functioning correctly if applied to a literal string (e.g. 'bug'*).

He also reported a bug in version 2.1.1 of the Builder that affected the creation of skeleton programs.  When the system created enumerated constants for the symbol table, some symbols were left out.

Bill White Rick Sprague reported a bug in version 3.1.1 of the Builder. The bug affected the {ANSI Printable}, {All Valid}, and {Control Codes} sets.
Special Thanks
Dr. Anne-Louise Radimsky Dr. Anne-Louise Radminsky was the second reader for my Master's Project. Her keen eye helped me refine my terminology and understanding of parser theory.
Dr. Cui Zhang Her constant and persistent help - making sure that all the required forms and documents were filed on time - is deeply appreciated.
Dr. Du Zhang Dr. Du Zhang was my faculty advisor and primary reader for my Master's Project. His dedication and generous help with this project is deeply appreciated. 
CSU, Sacramento
Computer Science Department
Of course, each computer science professor at California State University, Sacramento contributed greatly to my knowledge and experience. Any project would not be been possbile without the hours upon hours spent writing programs and climbing through piles of homework.