> 
https://github.com/teotigraphix/as3-commons-jasblocks/blob/master/src/main/java/org/as3commons/asblocks/parser/antlr/asdoc/ASDoc.g

Hum, I don't know how to read JFlex and ANTLR yet and then, I'm not sure what 
I'm seeing here, is that a ANTLR ASDoc grammar that could replace the JFlex one 
?

Frédéric THOMAS


----------------------------------------
> Date: Thu, 9 Jul 2015 12:19:16 -0400
> Subject: Re: [FalconJX] Collection Imports branch
> From: teotigraphix...@gmail.com
> To: dev@flex.apache.org
>
> FYI, I did this way back in 2010. :)
>
> https://github.com/teotigraphix/as3-commons-jasblocks/blob/master/src/main/java/org/as3commons/asblocks/parser/antlr/asdoc/ASDoc.g
>
> Mike
>
> On Thu, Jul 9, 2015 at 12:17 PM, Michael Schmalle <teotigraphix...@gmail.com
>> wrote:
>
>>
>>
>> On Thu, Jul 9, 2015 at 12:01 PM, Frédéric THOMAS <webdoubl...@hotmail.com>
>> wrote:
>>
>>>> You're not traversing anything, it just happens that the base class is
>>>> abstract and defines callbacks for recursion. In your case you just
>>> want a
>>>> "processing" compiler pass.
>>>>
>>>> A plain old compiler pass wouldn't require visiting all nodes, just a
>>>> process().
>>>>
>>>> Don't worry about it, the two you overrode are just stubs.
>>>
>>> Well, I got I did an override :-) I just was trying to understand the
>>> base classes.
>>>
>>
>>
>> The base class why my design and for all the passes I did, I needed the
>> callbacks. See NodeTraversal.travese() I think it is, that is what actually
>> calls the callbacks and shouldTravese(), it's in the GCC API.
>>
>> You could have just implemented Callback with process() and created your
>> won constructor if that makes it more clear, it wasn't neccessary to
>> subclass but, it was there so, ya know. :)
>>
>>
>>
>>>
>>> Anyway, thanks again Mike for your explanations !
>>>
>>> I will now go back on Falcon starting from the beginning trying to
>>> understand the scan / parse phase, even if I understand approximatively how
>>> theoretically it should work, it seems a huge thing to me in there, I see
>>> JFlex, ANTLR, btw I thought it was possible to do the scan / parse with
>>> ANTLR only, am I wrong ? if not why are we using JFlex too ?
>>>
>>
>>
>> JFlex is used to create the RawASDocTokenizer. So yes, if a grammar was
>> created for asdoc parsing in antlr, we could get rid of JFlex dependency
>> because I think that is the only place it's used.
>>
>> Mike
>>
>>
>>
>>>
>>> I will try to experiment, even with ANTLR4.x
>>>
>>> Frédéric THOMAS
>>>
>>>
>>> ----------------------------------------
>>>> Date: Thu, 9 Jul 2015 11:25:09 -0400
>>>> Subject: Re: [FalconJX] Collection Imports branch
>>>> From: teotigraphix...@gmail.com
>>>> To: dev@flex.apache.org
>>>>
>>>> You're not traversing anything, it just happens that the base class is
>>>> abstract and defines callbacks for recursion. In your case you just
>>> want a
>>>> "processing" compiler pass.
>>>>
>>>> A plain old compiler pass wouldn't require visiting all nodes, just a
>>>> process().
>>>>
>>>> Don't worry about it, the two you overrode are just stubs.
>>>>
>>>> Mike
>>>>
>>>> On Thu, Jul 9, 2015 at 11:13 AM, Frédéric THOMAS <
>>> webdoubl...@hotmail.com>
>>>> wrote:
>>>>
>>>>>> Other than that, merge/commit it man! thanks, looks good to me, we
>>> will
>>>>> see
>>>>>> if anything else comes up.
>>>>>
>>>>> Thanks, done !
>>>>>
>>>>> But I'm still confuse with the pattern:
>>>>>
>>>>> I didn't get well this thing about pre / post order in the Callback
>>>>> interface maybe I didn't get what it means, isn't supposed to be
>>> recursive
>>>>> descendant only, how does it work ?
>>>>> I used process() which traverseRoots of both externs (the most out of
>>>>> parent) and the given node, why 2 nodes have to be traversed in the
>>> same
>>>>> function ?
>>>>>
>>>>> Frédéric THOMAS
>>>>>
>>>>>
>>>>> ----------------------------------------
>>>>>> Date: Wed, 8 Jul 2015 16:46:34 -0400
>>>>>> Subject: [FalconJX] Collection Imports branch
>>>>>> From: teotigraphix...@gmail.com
>>>>>> To: dev@flex.apache.org
>>>>>>
>>>>>> Hey Fred,
>>>>>>
>>>>>> Couple things;
>>>>>>
>>>>>> 1. CollectImportsPass
>>>>>>
>>>>>> Should probably be; (process() only gets called once)
>>>>>>
>>>>>> @Override
>>>>>> public void process(Node externs, Node root)
>>>>>> {
>>>>>> for (ClassReference reference : model.getClasses())
>>>>>> {
>>>>>> collectClassImports(reference);
>>>>>> }
>>>>>>
>>>>>> for (FunctionReference reference : model.getFunctions())
>>>>>> {
>>>>>> collectFunctionImports(reference);
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> @Override
>>>>>> public boolean shouldTraverse(final NodeTraversal nodeTraversal, final
>>>>>> Node n, final Node parent)
>>>>>> {
>>>>>> return false;
>>>>>> }
>>>>>>
>>>>>> @Override
>>>>>> public void visit(final NodeTraversal t, final Node n, final Node
>>>>>> parent)
>>>>>> {
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Other than that, merge/commit it man! thanks, looks good to me, we
>>> will
>>>>> see
>>>>>> if anything else comes up.
>>>>>>
>>>>>> Mike
>>>>>
>>>>>
>>>
>>>
>>
>>
                                          

Reply via email to