flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Smith <gsmit...@hotmail.com>
Subject Re: AW: Falcon and Antlr4
Date Thu, 17 Jul 2014 15:11:39 GMT
> why are we mixing up several tools that all seem to be doing similar thing

Falcon's lexer and parser were borrowed from the Flash Builder code base, where they supported
various edit-time code intelligence features, but not compilation. I think the Flash Builder
team had determined that JFlex could tokenize faster than Antlr 2 could. But I don't know
whether that is still the case with Antlr 3 and 4.

- Gordon

Sent from my iPad

> On Jul 16, 2014, at 3:14 PM, "Christofer Dutz" <christofer.dutz@c-ware.de> wrote:
> Ok so that would have been my second question ... why are we mixing up several tools
that all seem to be doing similar things :-)
> I definitely like to do some cleaning up. But depending on if any or which talks are
accepter for the ApacheCon I might have to finish some other things first ;-)
> Chris
> PS: Will be offline for a few days ...
> -----Urspr√ľngliche Nachricht-----
> Von: Gordon Smith [mailto:gsmithsf@hotmail.com] 
> Gesendet: Mittwoch, 16. Juli 2014 17:19
> An: dev@flex.apache.org
> Betreff: Re: Falcon and Antlr4
> You might also want to look into eliminating JFlex and have Antlr handle tokenization
as well.
> - Gordon
> Sent from my iPad
>> On Jul 16, 2014, at 8:06 AM, "Alex Harui" <aharui@adobe.com> wrote:
>> Good luck.  I'm interested in anything that would speed up Falcon.
>> Please work in a branch.
>>> On 7/16/14 2:44 AM, "Christofer Dutz" <christofer.dutz@c-ware.de> wrote:
>>> Hi,
>>> while I was havin a first look at the internals of Falcon, I was 
>>> surprized to find a mixture of Antlr2 & Antlr3 grammars for creating 
>>> the parsers.
>>> In a first moment I thought it would be a good idea to migrate the 
>>> Antlr2 grammars ASParser.g and MetadataParser.g to Antlr3 but after 
>>> finding out that IntelliJ now has a neat Antlr4 plugin and reading a 
>>> bit about the differences from 2 and 3 to 4 it sounded like a good 
>>> idea to migrate all to Antlr4. To me it looks as if the way things 
>>> are processed in Antlr4 would make the grammars a lot easier as well 
>>> as implementing the rule logic. My gut-feeling tells me that an 
>>> Antlr4 parser should need less processing and be quite a bit faster. 
>>> I did experiment a little on the CSS grammar and successfully created 
>>> an Antlr4 version of that ... so I guess it should be possible and it 
>>> would clean up things quite dramatically.
>>> What I particularly liked, was that Antlr4 automatically generates a 
>>> Listener interface for any rule it finds generating an "enter{ruleneme}"
>>> and "exit{rulename}" as well as a base-class implementing this interface.
>>> Now all of the java code we had to enter in the rule-document can now 
>>> be defined in a FalconCssListener class that extends this CSSBaseListener.
>>> This is where the Java code can be added to handle the rules and we 
>>> can easily debug it (I know you could set breakpoints in the 
>>> generated code, but I allways disliked that).
>>> What do you think? ... Would it be a good idea to give something like 
>>> that a try? After all ... it's just 3 grammars (CSS, ASParser and 
>>> MetadataParser). But I have to admit that the ASParser grammar looks 
>>> way more complex than the CSS and the MetadataParser grammar.
>>> Chris
View raw message