В настоящее время я работаю с JavaCC grammar по телефону ECMAScript 5.1. Я несколько новичок в JavaCC, поэтому я бы очень хотел помочь в следующем вопросе.Как я могу переписать это CallExpression не рекурсивно?
§ 11.2 Left-Hand-Side Выражения определяет следующие CallExpression
производства:
CallExpression :
MemberExpression Arguments
CallExpression Arguments
CallExpression [ Expression ]
CallExpression . IdentifierName
Это оставил рекурсивным и, следовательно, не работает в JavaCC как есть.
Я имею в виду, чтобы переписать его следующим образом (.jj
-similar псевдокод):
CallExpression :
MemberExpression Arguments (Arguments | "[" Expression "]" | "." IdentifierName)*
Это правильный перезапись?
Проблема заключается не в том, что правило является рекурсивным. Проблема в том, что она оставлена рекурсивной. –
@ TheodoreNorvell Спасибо, я обновил вопрос. – lexicore