论坛首页 编程语言技术论坛

我写的开源ActionScript3语法分析工具

浏览 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部分还不够强壮

   发表时间:2009-12-18  
分号问题其实是从Ecmascript标准里带出来的,es标准中的自动插入分号原则打破了语法的上下文无关性,所以实现起来很麻烦

有三种解决方法:
1,完全手写Parser
2,修改语法(把换行符作为终结符放入产生式中),这种办法最麻烦
3,修改ParserGenerator产生错误恢复代码,在遇到语法错误时判断是否是由于缺少分号引起的,如果是在判断是否满足插入分号原则(如遇到右大括号或者换行)

第三种办法实现起来是最方便的,但是需要ParserGenerator产生的Parser支持错误恢复。

另外,我最近也准备开始写一个as3->js的编译器,不知道博主有没有兴趣
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics