Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用BNF Javacc验证是否存在值_Java_Parsing_Production_Bnf_Javacc - Fatal编程技术网

使用BNF Javacc验证是否存在值

使用BNF Javacc验证是否存在值,java,parsing,production,bnf,javacc,Java,Parsing,Production,Bnf,Javacc,如果我只在JavaCC中使用BNF语法来解析它 correctAnswer "Afternoon" wrongAnswer "Morning" wrongAnswer "Evening" 在仅使用BNF语法(根本不使用Java代码)解析时,是否有方法检查是否至少存在一个正确答案 所以如果我们有这个 wrongAnswer "Morning" wrongAnswer "Evening" Jav

如果我只在JavaCC中使用BNF语法来解析它

correctAnswer "Afternoon"
wrongAnswer "Morning"
wrongAnswer "Evening"

在仅使用BNF语法(根本不使用Java代码)解析时,是否有方法检查是否至少存在一个正确答案

所以如果我们有这个

wrongAnswer "Morning"
wrongAnswer "Evening"
Javacc会抛出一个解析器异常,因为它的格式无效

任何帮助都会很好,因为我知道如何在Java中实现这一点,但只有BNF/JavaCC语法无法提供帮助

那么,在我的产品中,我需要什么来让这个抛出一个解析器异常呢?没有java代码

干杯,试试这个

void answers() : {}
{
    (wrong())* correct() (wrong() | correct() )*
}
void wrong() : {}
{
    <WRONG_ANSWER> <STRING>
}
void correct() : {}
{
    <CORRECT_ANSWER> <STRING>
}
void answers():{}
{
(错误())*正确()(错误()|正确())*
}
无效错误():{}
{
}
void correct():{}
{
}
试试这个

void answers() : {}
{
    (wrong())* correct() (wrong() | correct() )*
}
void wrong() : {}
{
    <WRONG_ANSWER> <STRING>
}
void correct() : {}
{
    <CORRECT_ANSWER> <STRING>
}
void answers():{}
{
(错误())*正确()(错误()|正确())*
}
无效错误():{}
{
}
void correct():{}
{
}