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