2234 return annotationValue(); |
2234 return annotationValue(); |
2235 } |
2235 } |
2236 |
2236 |
2237 /* AnnotationValue = ConditionalExpression |
2237 /* AnnotationValue = ConditionalExpression |
2238 * | Annotation |
2238 * | Annotation |
2239 * | "{" [ AnnotationValue { "," AnnotationValue } ] "}" |
2239 * | "{" [ AnnotationValue { "," AnnotationValue } ] [","] "}" |
2240 */ |
2240 */ |
2241 JCExpression annotationValue() { |
2241 JCExpression annotationValue() { |
2242 int pos; |
2242 int pos; |
2243 switch (S.token()) { |
2243 switch (S.token()) { |
2244 case MONKEYS_AT: |
2244 case MONKEYS_AT: |
2251 ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>(); |
2251 ListBuffer<JCExpression> buf = new ListBuffer<JCExpression>(); |
2252 if (S.token() != RBRACE) { |
2252 if (S.token() != RBRACE) { |
2253 buf.append(annotationValue()); |
2253 buf.append(annotationValue()); |
2254 while (S.token() == COMMA) { |
2254 while (S.token() == COMMA) { |
2255 S.nextToken(); |
2255 S.nextToken(); |
2256 if (S.token() == RPAREN) break; |
2256 if (S.token() == RBRACE) break; |
2257 buf.append(annotationValue()); |
2257 buf.append(annotationValue()); |
2258 } |
2258 } |
2259 } |
2259 } |
2260 accept(RBRACE); |
2260 accept(RBRACE); |
2261 return toP(F.at(pos).NewArray(null, List.<JCExpression>nil(), buf.toList())); |
2261 return toP(F.at(pos).NewArray(null, List.<JCExpression>nil(), buf.toList())); |