Hi,
Well I busted my A$$ before I hit vacation, Erik you can look at
TestGoogEmiter and the JSGoogEmitter to see the black majik I whipped
up today.
Basically with the NEW FalconJx (BTW I'm starting to like this name
now, the "x" with Fle"X"), cross compiler is doing this all. I know
there are missing "this, super" etc etc etc, but this things is working!
And all that little stuff is easy to add now. Like I said in my
commits, I have package down to expressions working and it creates
valid AS3 source code from the AST.
Now it's just work filling in all the holes you have listed in the
as->js conversion table.
Frank, I'm sure you could look at my code and take the JSGoogEmitter
as an example and create a prototype JSRequireEmitter with the pattern
I have setup.
I'm still refactoring but it's looking good.
Peace and happy new year,
Mike
----------------------------------------------------------------------------
AS Code
package com.example.components
{
import org.apache.flex.html.staticControls.TextButton;
public class MyTextButton extends TextButton
{
public function MyTextButton()
{
if (foo() != 42) {
bar();
}
}
private var _privateVar:String = "do ";
public var publicProperty:Number = 100;
public function myFunction(value: String): String
{
return "Don't " + _privateVar + value;
}
}
}
----------------------------------------------------------------------------
JS Code
goog.provide('com.example.components.MyTextButton');
goog.require('org.apache.flex.html.staticControls.TextButton');
/**
* @constructor
*/
com.example.components.MyTextButton = function() {
if (foo() != 42) {
bar();
}
}
/**
* @type {String}
*/
com.example.components.MyTextButton.prototype._privateVar = "do ";
/**
* @type {Number}
*/
com.example.components.MyTextButton.prototype.publicProperty = 100;
/**
* @this {com.example.components.MyTextButton}
* @param {String} value
* @return {String}
*/
com.example.components.MyTextButton = function(value:String) {
return "Don't " + _privateVar + value;
}
--
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com