|
GOLD Parsing System |
|
Frequently Asked Questions |
|
|
|
The following is a collection of
frequently asked questions about the GOLD Parsing System
|
There is documentation on the overall design and structure of the GOLD Parsing System
on this website. Please click here to read
it. |
|
Yes, GOLD will always be free. It is hoped that this application will eventually
become a common programming tool used by students, professors and professionals. This site
contains a very simple freeware license
agreement. |
|
The GOLD Builder will be compiled for both the UNIX and Linux platforms, but this will
be some time from now.
Developers writing compilers or interpreters for these platforms, can still compile the
grammar on Windows machine and then use the created tables on a UNIX/Linux version of the
Parser Engine. |
|
Eventually the source code will be released, but this will be some time from now.
The Builder is still, in part, in a stage of "development" - meaning that the
system semantics are still being fine-tuned. For instance, in version 2.2 of the Builder,
Virtual Terminals were added as an optional parameter. This functionality was designed to
aid the creation of grammars that contained terminals that cannot be identified by a
Deterministic Finite Automata. This parameter had a small effect on the nature of the GOLD Meta-Language - which is used to specify a
grammar.
The result of releasing source too early would be the creation of a number of slightly
incompatible versions of the Builder or the actual appearance of competing variants. In
either way, the primary goal of the Builder would be compromised.
The Builder source will be released after the Meta-Language is formalized through a
group such as ANSI, ACM or IEEE. |
|
Yes. I will continue to develop and release new versions of the GOLD Builder. If,
for any reason, I cannot continue to maintain the software, I will release the full source
code. |
|
There is documentation on the differences between GOLD and YACC on this website. Please
click here
to read it. |
|
The GOLD Engine DLL is added through the "References" section of the Project
Menu. Please click here for more information. |
|
There is a collection of sample grammars on the Grammar Download page.
Grammar submissions are always welcome! |
|
When the system analyzes a grammar, it checks all the possible states that the parser
can have. During this process, the system will find ambiguities in the grammar. The
Shift-Reduce error is caused when two or more possible actions can happen when a token is
read.
This error is often caused by recursive grammar definitions where the system cannot
determine when one rule is complete and another is just started. The Builder documentation
contains an example of the common
if-then-else grammar problem and how to fit it. |
|
Languages such as Python, do not use symbols to mark the start and end of a block of
statements. Instead, the indentation of each statement is used to determine where a block
begins and ends.
This type of information cannot be recognized by the Deterministic Finite Automata that
is used by the tokenizer. Whether an "Indentation Increase" or "Identation
Decrease" occurs depends on the content of whitespace. For instance, if a
program currently has an indent of 10 spaces, the grammar must contain a set of rules for
statements at this level. The same is true for all other levels of indentation - requiring
an infinite number of rules to parse.
To solve this problem version 2.2 of the Builder added a feature called "Virtual
Terminals". The developer can specify terminals that will be added to the symbol
table but not added to the Deterministic Finite Automata. For more information please
check the related documentation. |
|
GOLD is an ever-evolving tool. Additional features will be added to the Builder and the
grammar's Meta-Language over time. Any change that does take place, will always be
backwards compatible.
I've created a page that contains all the possible changes that can be made to the GOLD
Meta-Language. These include suggestions from developers and other people interested in
parsing technology.
Future Work Page |
If you have a question not listed above, please visit the Contact
Page
or, visit the Yahoo Group forum at: groups.yahoo.com/group/GOLDParser
|