}
    static final public void Annotation() throws ParseException {        /*@bgen(jjtree) Annotation */        ASTAnnotation jjtn000 = new ASTAnnotation(JJTANNOTATION);        boolean jjtc000 = true;        jjtree.openNodeScope(jjtn000);        try {            if (jj_2_2(3)) {                jj_consume_token(ANNOTATION);                jj_consume_token(LEFT_PARENTHEZIS);                if (jj_2_1(4)) {                    KeyValuePairList();                } else {                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {                        case INTEGER:                        case HEXNUMBER:                        case OCTNUMBER:                        case FLOAT:                        case BOOLEAN:                        case STRING:                        case CHAR:                        case LEFT_BRACKET:                        case ANNOTATION:                        case JAVA_TYPE_MAYBEARRAY:                            Value();                            break;                        default:                            jj_la1[1] = jj_gen;                            jj_consume_token(-1);                            throw new ParseException();                    }                }                jj_consume_token(RIGHT_PARENTHEZIS);            } else if (jj_2_3(2)) {                jj_consume_token(ANNOTATION);                jj_consume_token(LEFT_PARENTHEZIS);                jj_consume_token(RIGHT_PARENTHEZIS);            } else {                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {                    case ANNOTATION:                        jj_consume_token(ANNOTATION);                        break;                    default:                        jj_la1[2] = jj_gen;                        jj_consume_token(-1);                        throw new ParseException();                }            }        } catch (Throwable jjte000) {            if (jjtc000) {                jjtree.clearNodeScope(jjtn000);                jjtc000 = false;            } else {                jjtree.popNode();            }            if (jjte000 instanceof RuntimeException) {                {                    if (true) throw (RuntimeException) jjte000;                }            }            if (jjte000 instanceof ParseException) {                {                    if (true) throw (ParseException) jjte000;                }            }            {                if (true) throw (Error) jjte000;            }        } finally {            if (jjtc000) {                jjtree.closeNodeScope(jjtn000, true);            }        }    }