[antlr-interest] the tree parser example

J. Stephen Riley Silber jsrs701 at yahoo.com
Wed May 1 11:47:08 PDT 2002


Hi gang,

This message is intended mostly for Lloyd Dupont, but feel free to peruse
it if you are not him.  :)

Attached is a zip file containing the entire ProtoC project.  ProtoC is a
prototype-based, OO language that fits somewhere in the C family of
languages.

(What does "prototype-based" mean?  Glad you asked.  In short, there is no
such thing as a "class", though everything is an object.  Hm.  How about
some examples?  Omega, NewtonScript, the long-running Dr. Dobbs language
Bob, and the grandaddy of them all, Self.)

For a brief and very outdated overview of the language, see
http://www.moselle.com/jsrs/protoc/protoc.html.

A few notes about the code (caveat emptor!):
* It's a Microsoft Visual Studio .NET project.

* It's my first ANTLR project of any real size.

* You'll find the ANTLR grammar in pc.g, under the pcc subproject.

* The ProtoC compiler (pcc) takes a string or file, runs it through the
ANTLR code, which results in a bytecode assembly language text string.  
This is then fed to the assembler (pcasm).  The resulting bytecode is
executed by the virtual machine (pcvm), using a very dynamic runtime
library of objects (pcobjs).

* Oh yeah, I should mention that while the project compiles and runs,
there are some logic errors in the output.  This is NOT a finished
project!  :)


A few notes about the ANTLR part:
* The lexer, parser, and tree walker are all in one file.

* I don't have any tree transform optimizers yet.  When I get around to
that, I'll probably make a tree walker superclass, and then have all the
walkers (including the final assembly code emission walker) descend from
it.

* But for now, the parser just emits a tree, and the tree walker just
makes a single pass and dumps code.

I'll be hapy to entertain questions.

Enjoy, hope this helps,
JSRS


J. Stephen Riley Silber
======================================
 "Pig, your freedom lies before you!  Flee into the
  forest and join your piggy friends!"

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ProtoC.zip
Type: application/zip
Size: 233956 bytes
Desc: 
Url : http://www.antlr.org/pipermail/antlr-interest/attachments/20020501/43e9cbb0/ProtoC.zip


More information about the antlr-interest mailing list