> It's antlr 3 grammar if I remember correctly, hah maybe even antlr 2. I > can't remember.
I would guess 2 because I've seem ANTLR 3 examples and the grammar version was in, never seen it with previous ones, I could be wrong. > 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. Cool, I'm happy you know and did so much things on compilers, I will probably come back to you and discuss it here when I will have get more knowledges and will have done my experiments. Cheers, Frédéric THOMAS ---------------------------------------- > Date: Thu, 9 Jul 2015 12:59:04 -0400 > Subject: Re: [FalconJX] Collection Imports branch > From: teotigraphix...@gmail.com > To: dev@flex.apache.org > > 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 >>>>>>> >>>>>>> >>>>> >>>>> >>>> >>>> >> >>