My first programming experience was a TRS-80 and BASIC. I am also self
taught, no school. I went to college for land Surveying in the late 90's,
used AutoCAD extensively, and now I program, go figure.

Why parsers? I think in 2008 or so I had a vision of just what a parser was
and how primal the concept really is, it's what our brain does. Lexers and
Parsers are a perfect mirror of how are brain receives, sorts and make
meaning out of the randomness of life.

So you could say it has been a mystical journey for me. :) haha

Mike

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

> > Well not so much compilers, I am still a newbie when it comes to byte
> code
> > stuff and binary math/operations etc.
> >
> > But I know parsers/lexers/scanners/AST pretty freaking well. ;-)
>
> Hehe, except of the emitting part, that's all the compiler though, well
> done !! ;-)
>
> I'm only an autodidact coder lover who started as kid with Basic, ASM, DOS
> / Windows 3.0 programming, then, mainframe (Cobol / CICS), 12 years in
> Microsoft dev, PHP / JS and full stack Java / Flex with all the common
> testing / industrialisation tools around who is now interested in
> compilers, better late than never but I have a lot to learn, it is so
> different from all what I did before :-)
>
> Thanks again for your help.
> Frédéric THOMAS
>
>
> ----------------------------------------
> > Date: Thu, 9 Jul 2015 13:25:28 -0400
> > Subject: Re: [FalconJX] Collection Imports branch
> > From: teotigraphix...@gmail.com
> > To: dev@flex.apache.org
> >
> > On Thu, Jul 9, 2015 at 1:10 PM, Frédéric THOMAS <webdoubl...@hotmail.com
> >
> > wrote:
> >
> >>> 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.
> >>
> >>
> > Well not so much compilers, I am still a newbie when it comes to byte
> code
> > stuff and binary math/operations etc.
> >
> > But I know parsers/lexers/scanners/AST pretty freaking well. ;-)
> >
> > Mike
> >
> >
> >
> >> 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
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>
> >>
>
>

Reply via email to