public final void UnaryExpression()

in netflix-sel/src/main/java/com/netflix/sel/ast/SelParser.java [1132:1225]


  public final void UnaryExpression() throws ParseException {
    switch (jj_nt.kind) {
      case BANG:
      case PLUS:
      case MINUS:
        {
          ASTUnary jjtn001 = new ASTUnary(this, JJTUNARY);
          boolean jjtc001 = true;
          jjtree.openNodeScope(jjtn001);
          jjtn001.jjtSetFirstToken(getToken(1));
          try {
            switch (jj_nt.kind) {
              case MINUS:
                {
                  jj_consume_token(MINUS);
                  UnaryExpression();
                  jjtree.closeNodeScope(jjtn001, 1);
                  jjtc001 = false;
                  jjtn001.jjtSetLastToken(getToken(0));
                  jjtn001.value = SelOp.MINUS;
                  break;
                }
              case PLUS:
                {
                  jj_consume_token(PLUS);
                  UnaryExpression();
                  jjtree.closeNodeScope(jjtn001, 1);
                  jjtc001 = false;
                  jjtn001.jjtSetLastToken(getToken(0));
                  jjtn001.value = SelOp.PLUS;
                  break;
                }
              case BANG:
                {
                  jj_consume_token(BANG);
                  UnaryExpression();
                  jjtree.closeNodeScope(jjtn001, 1);
                  jjtc001 = false;
                  jjtn001.jjtSetLastToken(getToken(0));
                  jjtn001.value = SelOp.NOT;
                  break;
                }
              default:
                jj_la1[24] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
            }
          } catch (Throwable jjte001) {
            if (jjtc001) {
              jjtree.clearNodeScope(jjtn001);
              jjtc001 = false;
            } else {
              jjtree.popNode();
            }
            if (jjte001 instanceof RuntimeException) {
              {
                if (true) throw (RuntimeException) jjte001;
              }
            }
            if (jjte001 instanceof ParseException) {
              {
                if (true) throw (ParseException) jjte001;
              }
            }
            {
              if (true) throw (Error) jjte001;
            }
          } finally {
            if (jjtc001) {
              jjtree.closeNodeScope(jjtn001, 1);
              jjtn001.jjtSetLastToken(getToken(0));
            }
          }
          break;
        }
      case FALSE:
      case NEW:
      case NULL:
      case TRUE:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case STRING_LITERAL:
      case IDENTIFIER:
      case LPAREN:
        {
          PrimaryExpression();
          break;
        }
      default:
        jj_la1[25] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
    }
  }