我在javacc中写了if语句,如果条件为false则不知道如何忽略body 首先我声明两个对象类Token和boolean变量,然后我检查返回方法condition(),接下来我想在条件为false时跳过其余的块。怎么做?
void ifElse() :
{
Token start;
Token next;
boolean cond = false;
}
{
{
start = token;
}
< IF > < LB> cond = condition() < RB> < LP>
{
if (cond == false)
{
String tok = (String) token.image;
while (tok.equals("}"))
{
token = token.next;
}
}
}
(
ifElse()
| declaration()
)*
< RP>
(< ELSE > < LP> < RP >)?
}
答案 0 :(得分:1)
我已经重新配置了你的代码,它的工作方式几乎没问题。避免身体但不会停止。
`void ifElse() :
{
boolean cond = false;
}
{
< IF > < LB> cond = condition() < RB> < LP>
{
if (cond == false)
{
while (!token.image.equals("}"))
{
token = getNextToken();
}
}
}
(
ifElse()
| declaration()
)*
< RP>
(< ELSE > < LP> < RP >)?
}`