flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Schmalle <apa...@teotigraphix.com>
Subject Re: [FlaconJS] pseudo emitter algorithm
Date Fri, 30 Nov 2012 17:45:56 GMT
Quoting Alex Harui <aharui@adobe.com>:

> On 11/30/12 8:56 AM, "Michael Schmalle" <apache@teotigraphix.com> wrote:
>> My only question was, were the engineers doing anything specific with
>> resolutions and such with the SWF.
> My guess is that the engineers were just leveraging the file output portion
> of Falcon.  I pondered whether having the SWF constant pools around would
> make for tighter code in JS, but I don't think so.
>> The fact that jangaroo does it with AST is good enough for me to get
>> going on a prototype. I was just trying to see if there was anything
>> where I am not reinventing the wheel. But I will, if that is the only
>> way to go since the API is externally different then jangaroo.

> So is your plan to rewrite the generator so it doesn't reduce the code to
> SWF entities via JBurg?

I don't know yet. My intuition is telling me I don't have enough facts  
right now. Basically I wanted to make something inline with jangaroo's  
JSCodeGenerator with the visitor pattern. I have written this type of  
ActionScript code generation before, so I am no stranger to it.

My thought is this. If we rewrite the code generation using  
AST/Definitions framework it will be 10 times easier to write custom  
code generation backends because we will have created a tight and  
clean API to do so. IE Java or whatever. This is not saying it's easy  
but you would rip out 2 dependencies doing this, SWF and JBurg. This  
allows a lot more possible code contributions down the road with those  
two monsters out of the pie.

My advice to myself and others is this. Write all the js you want  
against how the compiler spits it out right now. If I go the route and  
if there are any others that want to join in, we will meet at the same  
exact code generation.

Once there is a semi stable implementation using the new generator  
that produces the code you want, we can steer the js in a new  
direction if needed.

A note about MXML, since the parse DOES create and AST during parsing  
of an MXML file, and MXML uses the IDefinition API, we can catch MXML  
code at the same intersection we are getting the AS code at, the AST  
definition stage.

Actually this might work even better because both .as and.mxml are on  
the exact same playing field at this point in the parsing.

The problem that MXML is not converted to ActionScript is mute since  
we are using the AST/Definitions... problem solved.


>> Using the IDefinition API, with loaded SWCs gives you member and class
>> resolotuion so I might actually start with that higher level and not
>> strictly IASNode parser nodes.
> It occurred to me that I think MXML does not go to AS or AST, it goes
> straight to ABC, so we'll be customizing that code in some way as well.

I doesn't got to straight ABC, it does go to AST then ABC. Everything  
has to be AST first to then go to JBurg ABC reducer.

Alex, this package is the key *org.apache.flex.compiler.tree.mxml*.

>> Mike
> --
> Alex Harui
> Flex SDK Team
> Adobe Systems, Inc.
> http://blogs.adobe.com/aharui

Michael Schmalle - Teoti Graphix, LLC

View raw message