Javacc无法访问的声明

 xXxHolicxXx900 发布于 2023-02-11 15:10

在我的语法中,有表达式和片段的生成规则,最初包含间接左递归.这是我从它们中删除递归后的规则.

String expression() #Expression : {String number; Token t;}
{
    number = fragment()
    (
        (t =  number = fragment())
    )
    {return number;}
}

String fragment() #void : {String t;}
{
    t = identifier() {return t;}
    | t = number() {return t;}
    | ( |  ) fragment()
    |  expression() 
}

尝试解析语法中的条件时使用这些生产规则.但是,生产规则的顺序要么具有它,所以只接受表达式.然而它应该接受像while(x <= 10)这样的东西.如果我有相反顺序的生产规则,如最初在语法中所述.当我尝试使用javac编译java文件时.我收到一个错误,告诉我identifier()是一个无法访问的语句.这是条件生成规则:

void condition() #void : {Token t;}
{
     expression()
    | expression (|||||||) expression()
    | identifier()
}

如果有人能帮助告诉我为什么会出现这个问题,那将非常有帮助.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有