私はこの文法を持っています:
agent
= nil
| @
| id
| act . agent
| agent + agent
| agent "|" agent
| agent \ restriction
| agent [relabeling]
| agent where agent_frame end
| automation
| (agent)
優先順位は次のとおりです。
"where" < "+" < "|" < "\" < "." < "[" < "nil", "@"
優先度を考慮して左再帰を削除する必要があります(そしてすべてJavaCCに書き込みます)。
再帰を削除するのを手伝ってもらえますか?