我爲包含循環的腳本語言做了一個解釋器,使用javacc我已經定義了語法,但是我不能有辦法備份到一行來重複執行塊「for」。 如何備份令牌管理器,以便循環體可以重新解析,從而重新評估,一遍又一遍?我如何在javacc中實現循環(For)
void For(): {ArrayList<String> lst;Token n,v;int i=0;} {
"for" "(" n=<ID> ":" v=<ID> ")" "{"
(actions()";" )+
"}"
}
提前掃描可以通過向每個bnf生產添加一個參數來告訴它是否執行。無論如何你都需要處理這些陳述。 這個與JavaCC中棘手的部分是做倒帶。接口只是不存在於生成的令牌管理器中。通過繼承生成的令牌管理器來添加所需的接口可能是可能的。 –