浏览 2832 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-11
最后修改:2009-03-18
目前ActionScript3没有一个比较好的开源或者是免费的语法分析工具,因此也很难写Code Formatter,Checkstyle等等工具。
我以ANTLR为基础, 用Java写了一个可以解析AS3语法的工具。目前还不是很完善,但是可能已经可以解析常用的Actionscript
地址如下 匿名访问地址: http://code.google.com/p/asdtk/
你可以用SVN下载,在testsrc里你可以用已有的testcase来测试一下是否能正常解析。
如果发现bug,请把actionscript文件发到allenofchina@hotmail.com。非常感谢
2009/3/13 经过一次次的尝试-失败,现在Java端框架已经确定了。 ANTLR端的ActionScript3语法解析已经基本完成,解析300多K的UIComponent.as通过 现在缺少的功能如下:
如何确定一个Statement的结尾:ActionScript3里,一个语句的结尾可以是分号,换行符,右中括号,多行注释。现在只能解析以分号为结尾的语句。
继续努力
2009/3/18 300+个文件测试通过,但是E4X部分还不够强壮 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-12-18
分号问题其实是从Ecmascript标准里带出来的,es标准中的自动插入分号原则打破了语法的上下文无关性,所以实现起来很麻烦
有三种解决方法: 1,完全手写Parser 2,修改语法(把换行符作为终结符放入产生式中),这种办法最麻烦 3,修改ParserGenerator产生错误恢复代码,在遇到语法错误时判断是否是由于缺少分号引起的,如果是在判断是否满足插入分号原则(如遇到右大括号或者换行) 第三种办法实现起来是最方便的,但是需要ParserGenerator产生的Parser支持错误恢复。 另外,我最近也准备开始写一个as3->js的编译器,不知道博主有没有兴趣 |
|
返回顶楼 | |