Parsing JavaCC重复()*
我正在使用JavaCC生成解析 作为一种象征,我在写:Parsing JavaCC重复()*,parsing,lexer,javacc,Parsing,Lexer,Javacc,我正在使用JavaCC生成解析 作为一种象征,我在写: TOKEN: { < #LETTER : ["a"-"z", "A"-"Z" ] > | < #DIGIT : [ "0"-"9" ] > | < IDENTIFIER: ("_" |< LETTER >) ("_" | < LETTER > | < DIGIT >)*> } 作为解析器方法: SimpleNode Identifier()
TOKEN:
{
< #LETTER : ["a"-"z", "A"-"Z" ] >
| < #DIGIT : [ "0"-"9" ] >
| < IDENTIFIER: ("_" |< LETTER >) ("_" | < LETTER > | < DIGIT >)*>
}
作为解析器方法:
SimpleNode Identifier() :
{
Token t;
}
{
t=< IDENTIFIER >
{
String n = new String(t.image);
jjtThis.jjtSetValue( n );
return jjtThis;
}
}
因此,它应该只接受uu,因为标识符的第二部分表示0或更多,但它只接受uu输入是什么?异常是什么?我正在输入u,异常是:在第1行第1列遇到。期待:…看起来您的输入中可能有空格。你确定文件中只有一个字符吗?是的:如果有空格,我也会跳过:{}以跳过,但不起作用请记住.jj文件中的第一个正则表达式将获胜。因此,如果你有另一个r.e.匹配一个空格,第一个将获胜。