On Thu, Jul 9, 2015 at 12:54 PM, Frédéric THOMAS <webdoubl...@hotmail.com>
wrote:

> >
>
> 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 ?
>

It's antlr 3 grammar if I remember correctly, hah maybe even antlr 2. I
can't remember.

It can't be used in it's current state because of the LinkedList class I
used but the grammar could be the start of an antlr grammar Falcon could
use if that is your question. And yes, then it could replace JFlex because
we would then have an ASDocParser class generated from antlr.

Mike



>
> 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