有关在Flash Builder 4.5.1中使用ANTLR v3生成的文件的提示

时间:2011-06-22 22:45:15

标签: flex flash-builder antlr antlrworks

根据这些instructions,我正在尝试在当前的Flash Builder 4.5.1项目中使用ANTLR生成的* .as文件。

因此,我将此ANTLR's Actionscript runtime添加到我的项目中 - 没有问题。

我使用ANTLRWorks编译lexer / parser规范也没有问题。

我在源* .g文件中添加了语言选项,以使ANTLR生成Actionscript源:

options {
    backtrack = true; 
    memoize = true;
    k=2;
    output = AST;
    language=ActionScript;        // Added this
    ASTLabelType = CommonTree;
}

不幸的是,ANTLR / ANTLRworks生成的Actionscript代码是错误的:

Catch语句的读取方式与此catch (RecognitionException re)类似,但应如下所示:catch ( re:RecognitionException )

此外,Flash Builder在这里抱怨使用Array:

public override function get tokenNames():Array { return PhpParser.tokenNames; }

有人可以确认这些问题,并可能提供如何解决这些问题的提示吗?

UPDATE-1

快速浏览一下ANTLR v3.3的来源,发现了这个模板代码[第142行@ ActionScript.stg]:

catch ( re:RecognitionException )

因此,当前的3.3分支似乎知道正确的语法。

不幸的是,当前的ANTLRworks 1.4.2(包括3.3分支)失败了。

1 个答案:

答案 0 :(得分:1)

ANTLR的项目负责人Terence Parr刚刚证实,ANTLRworks需要一个新的编译。感谢您的大力支持!