gpt4 book ai didi

java - 需要帮助编写 Java 方法来执行递归下降解析

转载 作者:行者123 更新时间:2023-12-02 07:59:58 25 4
gpt4 key购买 nike

官方问题:

编写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);
}

关于java - 需要帮助编写 Java 方法来执行递归下降解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com