首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助编写Java方法来执行递归下降解析

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

Stack Overflow用户
提问于 2012-01-30 04:45:53
回答 1查看 917关注 0票数 0

官方问题:

编写Java方法,对以下结果进行递归下降解析:

代码语言:javascript
复制
<repeat_statement> -> REPEAT <statement> UNTIL <expression> ;

这就是我想出来的:

代码语言:javascript
复制
void repeatStatement() {
    if(token == REPEAT) {
        token = getNextToken();
        if(parseStatement()) {
            if(token == UNTIL) {
                token = getNextToken();
                if(parseExpression()) {
                    if(token == ;) {
                        return true
                    }
                }
            }
        } return false
    }

我很有信心在这里我已经有了大概的想法,但我希望有人能帮我完善/确认我在正确的轨道上。在进阶时谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 04:52:45

它看起来(模糊地)看起来像是您在尝试计算repeat语句。这不是递归下降解析所做的。我希望是这样的(在伪代码中):

代码语言:javascript
复制
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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9056596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档