I have a new stripper that works really well off of ASTs. using rewrite engine. almost done. Ter On Feb 18, 2009, at 8:56 AM, Sam Harwell wrote:
> The tree printer uses the trees build by the same ANTLR.g3 that I'm > using to parse the grammars in the C# port of the tool. This grammar > is different from the ANTLRv3.g that's located in Prof. Parr's P4, > notably in the fact that it's built to provide the full compiler > functionality currently in the v2 grammar that's part of the > reference Tool. However, that copy of ANTLR.g3 is quite flexible, > for example I use it without changes (through an assembly reference > to ANTLR3.exe) to provide core IntelliSense in our ANTLR language > service for Visual Studio. > > Sam > > -----Original Message----- > From: Johannes Luber [mailto:[email protected]] > Sent: Wednesday, February 18, 2009 5:51 AM > To: Sam Harwell; [email protected] > Cc: [email protected]; [email protected] > Subject: Re: RE: [antlr-dev] ANTLR v3 grammar > >> ANTLRTreePrinter.g3 is a simple ANTLR v3 tree walker for the ANTLR.g3 >> primary parse tree in the C# port. > > (An aside: Please use lower case for acronyms for all letters except > the first, when the acronym is at least three letters long (e.g. > Antlr instead of ANTLR). This is a .NET convention to make names > more readable.) > > I take it that ANTLRTreePrinter.g3 is requiring a separate grammar > for creating the parse tree than ANTLRv3.g? I actually mean a > standard way to combine parse tree grammars and normal AST grammars > in such a way that one can change the output via a simple switch. > That way only one grammar has to be maintained while not losing much > readability (depending on the exact way of implementation). > > Johannes > >> A new tree parser based on that code >> but parameterized on the options listed below would be *very* >> straightforward. I'm guessing 1, maybe 2 days work at the very most >> to >> create one that fully supports the V3 grammar syntax. We already know >> the parse tree from ANTLR.g3 is correct since it's currently being >> used >> to compile the V3 grammars. >> >> Prof. Parr: I'll get that form faxed back tomorrow morning. >> >> Sam >> >> -----Original Message----- >> From: [email protected] [mailto:antlr-dev- >> [email protected]] >> On Behalf Of Johannes Luber >> Sent: Wednesday, February 18, 2009 12:34 AM >> To: Terence Parr >> Cc: Leon Su; ANTLR-dev Dev >> Subject: Re: [antlr-dev] ANTLR v3 grammar >> >> Terence Parr schrieb: >>> Ok,I'm trying to integrate a v3 ANTLR parser into the mainline. We >>> need this eventually as the new front end to ANTLR itself but also I >>> wanted to integrate Leon's cool Strip program that knows how to >>> print >> >>> grammars back out with lots of different things stripped: >>> >>> usage: java org.antlr.morph.Strip [args] file.g [file2.g [file3.g >> ...]] >>> -strip-rewrite strip off rewrites and rule/token reference >>> labels >>> -strip-label strip off rule/token reference labels >>> -grammar-option keep grammar options >>> -grammar-action keep grammar actions, e.g. header, members. >>> -globalscope keep global scopes >>> -rule-argument keep rule arguments >>> -rule-returnvalue keep rule return values >>> -rule-throws keep rule throws specification >>> -rule-option keep rule options >>> -rule-scope keep rule scope >>> -rule-action keep rule actions, e.g. @init, @after. >>> -rule-exception keep rule exception group >>> -alt-action keep alternative actions >>> -alt-ruleargument keep alternative rule reference arguments >>> -alt-tokenargument keep alternative token reference arguments >>> -label keep rule/token reference labels >>> you need to provide a grammar file. >>> >>> I have make sure that the grammar in org/antlr/grammar/v3 is the >>> latest version we have. thanks to everyone including Leon gave me >>> fixes. The problem I have is that I will need only ASTs out of the >>> grammar but Leon's strip program needs parse trees, which requires - >>> debug option. It uses the debug events to build parsers. I have the >>> tree grammar that walks an ANTLR AST. I don't want to have two >>> versions of the grammar; well, actually a single version but with >>> two >> >>> different builds: one with and one without debugging. >> >> That would be a good place to be able to switch between parse trees >> and >> ASTs via a parameter (whichever way is used to pass it). It would be >> dumb if there is no general way to solve this problem. >> >> Johannes >>> >>> So, perhaps I adapt Leon's tool to use the rewrite stream and ASTs >>> with the tree grammar rather than the parse tree. I think I can >>> get a >> >>> lot of his logic into the tree grammar from a parse tree. that is >>> the >> >>> direction I'm going. >>> >>> With luck, all future stuff can see directly off of a generic AST >>> and >> >>> the grammar can stay pristine. >>> >>> Ter >>> >>> _______________________________________________ >>> antlr-dev mailing list >>> [email protected] >>> http://www.antlr.org/mailman/listinfo/antlr-dev >>> >> >> _______________________________________________ >> antlr-dev mailing list >> [email protected] >> http://www.antlr.org/mailman/listinfo/antlr-dev > > -- > Jetzt 1 Monat kostenlos! GMX FreeDSL - Telefonanschluss + DSL > für nur 17,95 Euro/mtl.!* http://dsl.gmx.de/? > ac=OM.AD.PD003K11308T4569a _______________________________________________ antlr-dev mailing list [email protected] http://www.antlr.org/mailman/listinfo/antlr-dev
