Related articles |
---|
A NEW parser generator! - Please Read! DevinCook@hotmail.com (2001-05-22) |
Re: A NEW parser generator! - Please Read! Martin.Ward@durham.ac.uk (2001-05-29) |
Re: A NEW parser generator! - Please Read! devincook@hotmail.com (Devin Cook) (2001-05-29) |
From: | DevinCook@hotmail.com (Devin Cook) |
Newsgroups: | comp.compilers |
Date: | 22 May 2001 13:35:26 -0400 |
Organization: | http://groups.google.com/ |
Keywords: | parse, tools, comment |
Posted-Date: | 22 May 2001 13:35:26 EDT |
My name is Devin Cook and I am currently working on my Masters Thesis
in Computer Science at California State University, Sacramento. For
my Thesis, I am developing a new 4th generation programmming language.
Naturally, the language's source code will have to be parsed.
During my coursework at CSUS, I studied bottom-up parsing algorithms;
and consequently, used development tools such as YACC and JavaCC (to a
limited degree). Unfortunately, none of the parser generators that I
had access to seemed adequate to use in my project (besides not
allowing me to use different development environments). To make a long
story short, since I was familiar with parsing algorithms, I decided
to write a my own parser generator.
The project started simply enough, but quickly escalalated (feature
creeped) into a full development tool. As the application stands now,
it can take a description of a grammar and produce the DFA and LALR
state tables. This information is then saved to a binary file and this
file can be later read and used by the actual parse engine.
The grammar description is designed to use the conventions used in
computer science, i.e. BNF for rules, set notation for terminals,
etc... I haven't added EBNF as of yet, but perhaps eventually.
Below is an example grammar outline for the LISP programming language.
---------------------------------------------------------------------
"Name" = LISP
"Author" = John McCarthy
"Version" = Simplified
"About" = LISP is an abstract language that organizes ALL data around
"lists".
"Case Sensitive" = True
"Start Symbol" = s-Expression
{String Chars} = {Printable} - ["]
Identifier = {Letter}{Alphanumeric}*
String = '"'{String Chars}*'"'
Number = {Digit}+
<s-Expression> ::= <Atom>
| '(' <Series> ')'
<Series> ::= <s-Expression> <Series>
|
<Atom> ::= Number
| Identifier
| String
| '?' Identifier
| '' Identifier
---------------------------------------------------------------------
It is my hope that this parser generator will eventually become a tool
used by both computer scientists and developers in and outside the
classroom. I plan to always offer the software free and port the
parsing engine to as many platforms as possible.
Eventually, I will release the source code for the parsing engine in
as many common programming languages as possible. Although the GOLD
Parser Builder was written on the Windows 32-bit platform, the actual
parsing engine can (and hopefully will) be implemented on other
platforms such as Microsoft .NET, Java, Linux, Macintosh, UNIX,
etc....
I need interested programmers and developers to look over the software
to help locate bugs as well as suggest features need to be added
and/or changed. Besides, exactly how useful is a development tool that
is never used?
I haven't reserved a domain name as of yet, but I have a temporary
(rather simplistic) website on my CSU, Sacramento UNIX account:
http://gaia.csus.edu/~cookde/
The ZIP file containing version 1.0 Beta 16, is only about 2.6MB.
- Devin Cook
[Maybe I'm missing something obvious, but I don't see the advantage of
this generator over the other unpteen dozen already available. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.