[antlr-interest] C# working version
Robin Debreuil
robin at debreuil.com
Fri Mar 5 03:19:15 PST 2004
Hey all,
I have the latest version of the C# parser up - it now puts the tokens into
tree form. The AST is modeled fairly closely on the codeDom, other than what
is missing in there. It is using classes for each node type, except for some
low level ops/literals etc. I have been altering the C# antlr to use enums
and make it cls compliant, I hope I've unwound all those changes for this
version. If you get an error using the C# token classes with antlr 272,
please let me know : ).
The one thing I haven't been albe to get working is verbatim identifiers (it
is obscure - the ones where you can say @keyword for an identifier). The
verbatim strings are working though (the unescaped strings -
@"abc/def\ghi"). It is one or the other so far... I've tired in both the
lexer and the parser - the problem is you can have:
string_literal:
@"string" // unescaped string
"hello" // normal string
identifier:
@class // identifier - must be keyword
ident // identifier
It seems it should be easy, but the way it lines up all the slots one by one
keeps biting me.
Other than that, it should parse everything except for unsafe code, and the
#if preprocessor stuff (next up). It is pretty slow on large large files
(like 20k lines of the antlr output), but reasonable on less than a few
thousand lines. The grammar is at:
http://www.debreuil.com/CSharp/CSgrammar.html
and the cs files, and a .Net executable (just drag cs files into CSharp.exe)
are at:
http://www.debreuil.com/CSharp/CSharp.zip
I haven't been able to break it for a few hours, but I'm sure there are
still little things in there. Also, the tree is still inserting quite a few
superfluous nodes, and is a bit strange anyway. Next step I'll move that to
a (walkable) nested object structure, shouldn't take long...
Well, back to Antlr'ing... Cool tool, gotta be (re)said!
Cheers,
robin
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/antlr-interest/
<*> To unsubscribe from this group, send an email to:
antlr-interest-unsubscribe at yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list