[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