javacc如果声明

时间:2012-06-01 14:39:25

标签: if-statement javacc

我在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 >)?
            }

1 个答案:

答案 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 >)?
        }`