incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Schmalle <apa...@teotigraphix.com>
Subject Writable AST and Code generation for Falcon was: [Re: [jira] [Commented] (FLEX-33330) ... )
Date Sat, 29 Dec 2012 12:37:51 GMT

Quoting Roland Zwaga <roland@stackandheap.com>:

> On 29 December 2012 01:31, Michael Schmalle <apache@teotigraphix.com> wrote:
>
>> Wow, Roland you didn't even tell me you were up to no good with asblocks!
>>
>
> Well, it was Christmas time, so I didn't want to bother you :)
>
>
>> I'm glad that freakin year of messing around produced something worth
>> while!
>>
>
> True, at least ONE app has been made using your library, that definitely
> makes up for a year's worth of hard labour, doesn't it? :)
>
>
>> BTW, in my laboratory of parser/compiler madness I am dreaming up a way to
>> make Falcon have writable AST so it can act like jasblocks does and
>> read-write ActionScript. Linked tokens from the parser/tokenizer is the
>> first hurdle but, I could see some nice utility possibilities with a
>> framework extension like that.
>>
>
> A writeable AST would be absolutely a must if we would ever want to
> implement any kind of compile-time AOP functionality. So if that could be
> done eventually, I think this would GREATLY improve the possibilities of
> the compiler. (Not just from an AOP perspective, all sorts of compile-time
> code generation could be added, I'm pretty sure Michael Labriola has a few
> ideas for this :))
> If somehow the compiler can be used through a ANE (AIR Native Extension)
> than little apps like the one I made here with ASBlocks could become even
> easier to build, plus the parsing times would become unnoticable.
> I'll be happy to help out in these cases, so once you get around to it
> let's brainstorm :)

Why couldn't it? I was thinking about that yesterday. It would be the  
data exchange format that would have to be agreed upon, XML, binary?  
What do you think. It would have to be something that the framework in  
asblocks could easily decorate with it's existing API.

Honestly, it seems like I'm in Apache Flex camp for a while so its the  
JS compiler, ASDoc and code generation that I'm going to work on.

Like I said, when they designed Falcon they are not saving the token  
stream like my parsers did which makes this whole, read, write edit A  
LOT harder. Actually it's the edit that would be broken.

With AOP (I'm not to versed on it) but it seems to me that would be  
easy to add. Since altering AST during compile is just managing API  
addition and updating. You are not worried about producing end product  
code that had the exact same formatting as the original source code  
did. Which is when editing is out of the question right now with the  
Falcon compiler.

I'm going to do some experiments, I'll let you know.


>
>> Anyway Roland great job and I saw your pull request, I didn't get notified
>> for it.
>>
>
>  I might have some more pull requests in the future for ASBlocks (I think
> I'll add a addStatementAt(index:int, statement:IAStatement) method to the
> IASMethod implementations for instance). I'll send you an email when I do,
> if github refuses to notify you, I'll just do it manually :)
>

Right, I'm sure you won't break anything so I will just commit them.

Mike




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


Mime
View raw message