The Tower Bridge in Sacramento, California Original GOLD Engine
C Programming Language
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 ...

The C programming language evolved at Bell Labs from a series of  programming languages: 'CPL', 'BCPL', and then 'B'. As a result, C's development was a combined effort between Dennis Ritchie, Ken Thompson, and Martin Richards.

C was designed for the creation of low-level systems such as operating systems, device drivers, firmware, etc... To realize this goal, the language contains the ability to perform operations directly on memory and has direct access to system pointers. While this gives an enormous amount of control and flexibility, it also makes C a professional programming language - not to be used by an inexperienced programmer.

ANSI C Engine
by Justin Holmes
Source Code Justin Holmes developed a version of the GOLD Parser Engine using ANSI C. This implementation of the Engine is completely platform independent, and has been tested to compile cleanly on Windows™ and Linux.

This Engine is designed to be both incredibly fast and use a minimal amount of memory. This Engine doesn't automatically create a parse tree. This follows the idea that parsng a large file, while building a parse tree, could consume a large amount of memory, create memory fragmentation and use more cycles than necessary.

The download also includes a well-commented example program that prints the tokens and rules as they are matched.

Author: Justin Holmes
Language: ANSI C
Version: 1/2005
Size: 9 KB
Modified Source Code P.H. released a modified version of Justin Holmes' project. 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.

The download includes a simple, documented ANSI C example program, which will traverse and display a parse tree, given a .cgt and input file. The download also includes a Microsoft Visual C++ 6 project.

Authors: Justin Holmes,
Language: ANSI C
Size: 79 KB
Program Template Mat Hounsell created a program template for the ANSI C Engine.

The template defines functions for each rule and symbol in the grammar. In addition, it defines main switch statement to call them.