2

有人能在 Rascal 中使用 java 1.5 语法吗?

https://raw.github.com/cwi-swat/rascal/master/src/org/rascalmpl/library/lang/java/syntax/Java15.rsc

我得到:

$ java -jar rascal-0.5.1.jar Java15.rsc Disambiguate.rsc
Parse error in cwd:///Java15.rsc from <997,24> to <997,25>

997 是一些奇怪的东西:

bool expectedAmb({(Expr)`(<RefType t>) <Expr e>`, appl(_,[(Expr)`(<ExprName n>)`,_*])}) = true; // (A) + 1
bool expectedAmb({appl(_,[_*,(Expr)`(<RefType t>) <Expr e>`]), appl(_,[appl(_,[_*,(Expr)`(<ExprName n>)`]),_*])}) = true; // 1 + (A) + 1
default bool expectedAmb(set[Tree] t) = false;

字符 24 是 ` 我认为。

特伦斯

4

1 回答 1

3

是的,这个语法使用了具体语法的新语法。当前稳定的流氓版本不支持这一点。(这也是为什么公开发布还没有包含这个语法的原因)

要使用此语法,您必须下载不稳定版本(在更新 url 中替换stableunstable为)或在本地构建 Rascal 以获得 rascal shell。在这些情况下,您不需要单独的文件。

要回答您的问题,是的,语法有效,我们已经能够用它解析相当多的 Java 文件。

于 2013-10-07T11:31:42.297 回答