[prev in list] [next in list] [prev in thread] [next in thread] 

List:       antlr-dev
Subject:    Re: [antlr-dev] ANTLR v3 grammar
From:       Terence Parr <parrt () cs ! usfca ! edu>
Date:       2009-02-18 18:00:30
Message-ID: 230F5B7D-649C-4CD6-B21A-35EC1675F1D5 () cs ! usfca ! edu
[Download RAW message or body]

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:JALuber@gmx.de]
> Sent: Wednesday, February 18, 2009 5:51 AM
> To: Sam Harwell; parrt@cs.usfca.edu
> Cc: antlr-dev@antlr.org; leonsu@mac.com
> 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: antlr-dev-bounces@antlr.org [mailto:antlr-dev- 
>> bounces@antlr.org]
>> 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
>>> antlr-dev@antlr.org
>>> http://www.antlr.org/mailman/listinfo/antlr-dev
>>>
>>
>> _______________________________________________
>> antlr-dev mailing list
>> antlr-dev@antlr.org
>> 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
antlr-dev@antlr.org
http://www.antlr.org/mailman/listinfo/antlr-dev

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic