Actionscript 3 如何解析.as(AS3)文件
我希望尽可能地将AS3文件解析为对象或XML。例如,设想以下类:Actionscript 3 如何解析.as(AS3)文件,actionscript-3,parsing,Actionscript 3,Parsing,我希望尽可能地将AS3文件解析为对象或XML。例如,设想以下类: package { class SomeClass extends AnotherClass { private var someVariable:Number public function someMethod(someParameter:Number = 4):void { var someLocalVariable:Number = someParameter * (2 +
package {
class SomeClass extends AnotherClass {
private var someVariable:Number
public function someMethod(someParameter:Number = 4):void {
var someLocalVariable:Number = someParameter * (2 + someVariable);
}
}
}
解析时,它可能类似于:
<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>
。。即使我没有这样一个好的、整洁的xml结构,即使它可以将AS3解析成某种容量,它也远远超出了我现在的位置
有什么想法吗
谢谢,
Eric看看flash.utils.describeType()文档。
它用于在运行时描述actionscript项,但在这种情况下应该有一些用处。FlexPMD有一个as3解析器。(FlexPMD是Adobe的一个Java项目,它在as3源代码中报告违反最佳实践的情况。) FlexPMD的主机位于 该代码位于subversion repo上 不利的一面是,您需要使用Maven来构建FlexPMD(我,我从来没有设法让它工作过),但由于您只需要一个或三个项目,因此可以手动提取这些项目,而无需太多的咒骂和叫喊
您可能还想进一步了解Flex SDK源代码(也打开了),看看Adobe是否提供了用于解析as3的任何其他软件,但我没有查看。我实际上已将PMD解析器移植到as3 你可以退房
MikeAS3eval项目中有一个lexer、parser和tokenizer: