1
我目前在JavaCC grammar上工作ECMAScript 5.1。我对JavaCC有点新鲜,因此对于下面的问题会有所帮助。我怎样才能非递归地重写这个CallExpression?
§11.2左手侧的表达式定义了以下CallExpression
生产:
CallExpression :
MemberExpression Arguments
CallExpression Arguments
CallExpression [ Expression ]
CallExpression . IdentifierName
这是离开递归,因此在作为JavaCC中是不起作用。
我想如下(.jj
-similar伪代码)重写它的:
CallExpression :
MemberExpression Arguments (Arguments | "[" Expression "]" | "." IdentifierName)*
这是正确的重写?
的问题不是该规则是递归被改写。问题是它是递归的。 – 2014-11-05 12:55:25
@TheodoreNorvell谢谢你,我已经更新了这个问题。 – lexicore 2014-11-05 14:05:45