incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Schmalle <apa...@teotigraphix.com>
Subject Re: [FalconJx::GoogEmmitter] Moving forward
Date Thu, 27 Dec 2012 14:09:32 GMT

Quoting Erik de Bruin <erik@ixsoftware.nl>:

> Excellent.
>
> Mike, question: can we somehow separate out the 'goog' specific code
> some more? Just wondering... If someone wants to start a different
> parsing for JS, it might be less work to separate out 'goog' entirely
> at this point than try and do that only when the need arises. I was
> thinking about the JSDocEmitter, which can do with an extra layer of
> abstraction, I think. And some code in JSEmitter is also 'goog'
> specific. As this requires 'some' refactoring, I'm hesitant to start
> without consulting with you first ;-)

Actually, the intent was that the JSEmitter holds all code that is  
universal to JS.

You are seeing reminiscence of goog because I haven't taken it all out  
yet with the refactors.

So, goog needs to be completely ripped out of the JSEmitter. I really  
don't think we need another layer, since if you take out the goog  
stuff from JSEmitter like I was going to do, you already have that  
layer in the JSGoogEmitter.

Does this make sense?

The jsdoc emitter is the same, I need an injection point to give the  
emitter an instance of it from the backend implementation. Probably  
need an interface like IDocEmitter the IJSGoogEmitter extends.

Anyway, what do you want to do, because that is to close of quarters  
for me to work today if you are refactoring the JSEmitter.

Mike




> EdB
>
>
> On Thu, Dec 27, 2012 at 2:21 PM, Michael Schmalle
> <apache@teotigraphix.com> wrote:
>> Looks good Erik!
>>
>> Welcome to the party. Like I said, lets try to communicate what we are
>> working on so we aren't creating merge conflicts, I hate those.
>>
>> Not much I would have done differently. Just 1 thing;
>>
>> Pay special attention to indents a newlines.
>>
>> foo.bar.A.method1 = function(p1, p2, p3, p4) {
>>         p3 = typeof p3 !== 'undefined' ? p3 : 3;
>>         p4 = typeof p4 !== 'undefined' ? p4 : 4;
>>
>>         return p1 + p2 + p3 + p4;
>> }
>>
>>
>> should probably be;
>>
>> foo.bar.A.method1 = function(p1, p2, p3, p4) {
>>         p3 = typeof p3 !== 'undefined' ? p3 : 3;
>>         p4 = typeof p4 !== 'undefined' ? p4 : 4;
>>         return p1 + p2 + p3 + p4;
>> }
>>
>> Without the newline to keep the code generation consistent. How would I get
>> it to work? ...svn update :)
>>
>> Check out my last commit 5 minutes ago. If you are confused why and what I
>> did ask.
>>
>> PS For block headers, there is a special handling of indents with no body
>> code AST.
>>
>>
>> Mike
>>
>>
>>
>> Quoting Erik de Bruin <erik@ixsoftware.nl>:
>>
>>> Mike,
>>>
>>> I've implemented and committed an alternative way of handling default
>>> parameter values, including a test. Not particularly to make my point
>>> with regard to which we should use (if we have to chose at all), but
>>> mostly to see how I can contribute from my end.
>>>
>>> Please let me know how I did and what you would like me to do
>>> differently. Thanks.
>>>
>>> EdB
>>>
>>>
>>>
>>> On Thu, Dec 27, 2012 at 11:56 AM, Michael Schmalle
>>> <apache@teotigraphix.com> wrote:
>>>>
>>>> Hey,
>>>>
>>>> I have no plans other than to keep trudging away. There is still a lot of
>>>> work to be done.
>>>>
>>>> As far as moving to the falcon repo, I don't want to do that yet. You are
>>>> more than welcome to commit code where it is (just happens to be in my
>>>> whiteboard).
>>>>
>>>> Did you notice what I did to implement the parameters? If you havn't, you
>>>> might want to take a look at the commit and diffs.
>>>>
>>>> The object is to NOT comment out or override anything in the
>>>> ASBlockWalker.
>>>> I refactored that parameter code to the base ASEmitter, added API and
>>>> then
>>>> overrode the method in JSGoogEmitter. Get it?
>>>>
>>>> Also did a trick to allow a hook into the beginning of a function block
>>>> to
>>>> inject code. We can do that anywhere it's needed, I don't see a lot of
>>>> situations like that though.
>>>>
>>>> Rules are, you change something before you commit ALL unit tests must
>>>> pass,
>>>> how ever you changed code.
>>>>
>>>> This is exactly why I want it in the whiteboard still, I don't want
>>>> people
>>>> looking at it in falcon "thinking" something that it is not yet.
>>>>
>>>> PS You should post a thread here what you are currently working on so I
>>>> don't step on your feet.
>>>>
>>>> Oh yeah, I have had plenty of out of body experiences through the years
>>>> gazing at parser and compiler code, so I know exactly what you are
>>>> talking
>>>> about, I guess in current times, it's the light bulb going off. :)
>>>>
>>>> Mike
>>>>
>>>>
>>>>
>>>> Quoting Erik de Bruin <erik@ixsoftware.nl>:
>>>>
>>>>> Mike,
>>>>>
>>>>> I've spent some time with the js.codegen this week... Nietzsche was
>>>>> right: "Battle not with monsters lest ye become a monster; and if you
>>>>> gaze into the abyss the abyss gazes into you." Having said that, I
>>>>> think I might be ready to contribute to that part of FalconJx.
>>>>>
>>>>> What are your plans (moving the project to the falcon/ repo so 'the
>>>>> public' can commit; refactoring, etc.)?
>>>>>
>>>>> EdB
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ix Multimedia Software
>>>>>
>>>>> Jan Luykenstraat 27
>>>>> 3521 VB Utrecht
>>>>>
>>>>> T. 06-51952295
>>>>> I. www.ixsoftware.nl
>>>>>
>>>>
>>>> --
>>>> Michael Schmalle - Teoti Graphix, LLC
>>>> http://www.teotigraphix.com
>>>> http://blog.teotigraphix.com
>>>>
>>>
>>>
>>>
>>> --
>>> Ix Multimedia Software
>>>
>>> Jan Luykenstraat 27
>>> 3521 VB Utrecht
>>>
>>> T. 06-51952295
>>> I. www.ixsoftware.nl
>>>
>>
>> --
>> Michael Schmalle - Teoti Graphix, LLC
>> http://www.teotigraphix.com
>> http://blog.teotigraphix.com
>>
>
>
>
> --
> Ix Multimedia Software
>
> Jan Luykenstraat 27
> 3521 VB Utrecht
>
> T. 06-51952295
> I. www.ixsoftware.nl
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Mime
View raw message