2009-08-04 12 views
2

Ich suche so nah wie möglich zu analysieren, eine AS3-Datei in Objekte oder XML. Zum Beispiel stellen Sie sich die folgende Klasse:So analysieren Sie eine .as (AS3) -Datei

package { 
    class SomeClass extends AnotherClass { 
     private var someVariable:Number 

     public function someMethod(someParameter:Number = 4):void { 
     var someLocalVariable:Number = someParameter * (2 + someVariable); 
     } 
    } 
} 

Wenn analysiert, könnte es so etwas wie:

<package name=""> 
    <class id="783" name="SomeClass" extendsId="782"> 
     <variable id="784" visibility="private" type="Number"/> 
     <function id="785" name="someMethod" returnType="void"> 
     <parameter id="786" name="someParameter" type="Number"> 
      <expression> 
       <number value="4"/> 
      </expression> 
     </parameter> 
     <variable id="787" name="someLocalVariable" type="Number"/> 
     <code> 
      <assign toId="787"> 
       <expression> 
        <variable id="786"/> 
        <operator type="*"/> 
        <expression> 
        <number value="2"/> 
        <operator type="+"/> 
        <variable id="786"/> 
        </expression> 
       </expression> 
      </assign> 
     </code> 
     </function> 
    </class> 
</package> 

.. auch wenn ich nicht eine schöne, saubere XML-Struktur wie diese erhalten, auch Wenn es AS3 nur irgendwie kapieren könnte, wäre es weit jenseits dessen, wo ich jetzt bin.

Irgendwelche Gedanken?

Danke, Eric

+0

Mit anderen Worten, Sie wollen schreibe einen AS3-Compiler? – skaffman

+0

So klingt es. –

+0

Wie kennt man Sie über Compiler-Theorie oder endliche Automaten? –

Antwort

4

FlexPMD verfügt über einen As3-Parser. (FlexPMD ist ein Java-Projekt von Adobe, die von Best Practices Verletzungen in AS3 Quellcode nicht berichten.)

FlexPMD bei http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD gehosteten

Der Code ist auf einer Subversion-Repo bei http://opensource.adobe.com/svn/opensource/flexpmd/trunk

Die Kehrseite Du müsstest Maven benutzen, um FlexPMD zu bauen (ich habe es nie geschafft, es zum Laufen zu bringen), aber da du nur ein oder drei Projekte benötigst, könnte es möglich sein, diese ohne viel Fluchen und Rufen per Hand zu extrahieren.

Sie können auch weiter in den Flex SDK-Quellcode (auch auf opensource.adobe.com) wandern, um zu sehen, ob Adobe andere Software zum Parsen von as3 bietet, aber ich habe dort nicht gesucht.

5

Ich habe tatsächlich den PMD-Parser auf AS3 portiert.

können Check-out http://github.com/teotigraphix/as3parser-framework

Mike

+3

Der Link funktioniert nicht mehr, sieht aus wie es nach http://github.com/teotigraphix/asblocks –

+1

verschoben wurde, die Verbindung ist auch gebrochen, vielleicht ist dies das richtige? github.com/teotigraphix/as3-common-asblocks – Enrique

3

Es gibt einen Lexer, Parser und tokenizer im AS3eval Projekt: