Quoting Frank Wienberg <fr...@jangaroo.net>:

Totally agreed, Mike! We're facing a great opportunity, but also a big
challenge.
Adobe's code is, especially considering the lack of a language
specification, the best you can get to parse ActionScript 3.

I have written an AS3.g (1600 lines) file with a rewrite tree, I know how bad the language is. BTW, Falcon uses an antlr grammar for the parser, did you know that?

However, when
we (especially Andreas Gawecki, the original author of the Jangaroo
compiler) looked at the Flex compiler code, we found it quite complex and
wondered why no grammer / parser generator had been used. It all seems
hand-coded. So we decided to stick with our compiler, at least for a while.
Also, we did not want to emulate SWF / SWC, but rely on generated JS code +
AS3 API stubs. All relevant tools can handle that very well: we use ASDoc
and IntelliJ IDEA's ActionScript support successfully. We only had to
create Jangaroo-specific build-tool support, namely a Maven plugin.
So both compilers have their advantages, and we would like to unite them,
but that seems like a long way to go.

I don't think so. The Falcon compiler has a two APIs, ast nodes(low level) and definition nodes(high level). It is a very robust design.


Can somebody explain why it is not easy or even not possible to use Falcon
to create the AST and refactor the Jangaroo JSCodeGenerator from the
Jangaroo-AST to the Falcon-AST to produce the JS output? I don't really get
the SWF/JBurg part...


I think as far as AST we could do anything, I love the Falcon compiler. I think the way JS is created AFTER the compile sucks.

I bet if I had some time I could port some of your generation code using the Falcon AST.

Maybe there is a translation thing happening here, I didn't say that it's not easy to create falcon AST, I said the processing step AFTER AST creation is convoluted in my opinion. It's not accessible to the average higher level dev.

JBurg is used to create a reducer and emitter for js source code.




One thing that's good in FalconJS and missing in Jangaroo is to produce
output that Google Closure Compiler can optimize well. I think it should
not be too hard, but it seems to conflict with Jangaroo's goal to keep the
output format as close as possible to the AS source code, and of course it
has to be done.

I can't comment on this since I'm not to versed in JS.

Mike


-Frank-


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

Reply via email to