[英]Need help writing Java method to perform recursive descent parse
官方問題:
編寫 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
}
我非常有信心我在這里有大致的想法,但我希望有人可以幫助我完善這個/確認我在正確的軌道上。
看起來(模糊地)您正在嘗試評估重復語句。 這不是遞歸下降解析所做的。 我期待這樣的事情(在偽代碼中):
RepeatStatement repeat_statement() throws ParseException {
if (!consume("REPEAT")) {
throw new ParseException("no REPEAT token");
}
Statement statement = statement();
if (!consume("UNTIL")) {
throw new ParseException("no UNTILtoken");
}
Expression expression = expression();
if (!consume(";")) {
throw new ParseException("no closing semicolon");
}
return new RepeatStatement(statement, expression);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.