0
編寫Java方法來執行以下生產的遞歸下降解析:
<repeat_statement> -> REPEAT <statement> UNTIL <expression> ;
這就是我想出:
void repeatStatement() {
if(token == REPEAT) {
token = getNextToken();
if(parseStatement()) {
if(token == UNTIL) {
token = getNextToken();
if(parseExpression()) {
if(token == ;) {
return true
}
}
}
} return false
}
我很有信心,我有一般的想法在這裏,但我希望有人能幫助我擦亮這個/確認我在正確的軌道上.. 先進的感謝!
hm好吧......我想我是一個(哈哈)非基地。謝謝您的幫助! – tommy1370 2012-01-29 21:02:51
你介意看看我發佈的新代碼嗎?我試圖做一些更多的研究,並認爲我可能想出了一些中途體面的東西...... – tommy1370 2012-01-29 21:42:40
@ tommy1370 - 我認爲'token'是某種全局變量。您需要決定在進入分析方法時,「token」是預期表達式的第一個標記還是最後一個標記(如果有)。現在你的方法假設前者在進入之前和在調用parseStatement()和parseExpression()之前,但在末尾以分號留下「token」。據推測,調用方法可以彌補這一點。另外,你的方法被聲明爲「void」,但你試圖返回一個布爾值。 – 2012-01-29 22:13:27