// $ANTLR start "json_argument"
  // AnnotationParser.g:125:1: json_argument : STRING_LITERAL ASIG ( STRING_LITERAL | STRING ) ;
  public final AnnotationParser.json_argument_return json_argument() throws RecognitionException {
    AnnotationParser.json_argument_return retval = new AnnotationParser.json_argument_return();
    retval.start = input.LT(1);

    AnnotationCommonTree root_0 = null;

    CommonToken STRING_LITERAL24 = null;
    CommonToken ASIG25 = null;
    CommonToken set26 = null;

    AnnotationCommonTree STRING_LITERAL24_tree = null;
    AnnotationCommonTree ASIG25_tree = null;
    AnnotationCommonTree set26_tree = null;

    try {
      // AnnotationParser.g:126:3: ( STRING_LITERAL ASIG ( STRING_LITERAL | STRING ) )
      // AnnotationParser.g:126:5: STRING_LITERAL ASIG ( STRING_LITERAL | STRING )
      {
        root_0 = (AnnotationCommonTree) adaptor.nil();

        STRING_LITERAL24 =
            (CommonToken) match(input, STRING_LITERAL, FOLLOW_STRING_LITERAL_in_json_argument386);
        STRING_LITERAL24_tree = (AnnotationCommonTree) adaptor.create(STRING_LITERAL24);
        adaptor.addChild(root_0, STRING_LITERAL24_tree);

        ASIG25 = (CommonToken) match(input, ASIG, FOLLOW_ASIG_in_json_argument388);
        ASIG25_tree = (AnnotationCommonTree) adaptor.create(ASIG25);
        adaptor.addChild(root_0, ASIG25_tree);

        set26 = (CommonToken) input.LT(1);
        if (input.LA(1) == STRING || input.LA(1) == STRING_LITERAL) {
          input.consume();
          adaptor.addChild(root_0, (AnnotationCommonTree) adaptor.create(set26));
          state.errorRecovery = false;
        } else {
          MismatchedSetException mse = new MismatchedSetException(null, input);
          throw mse;
        }
      }

      retval.stop = input.LT(-1);

      retval.tree = (AnnotationCommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (AnnotationCommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }
  // $ANTLR start "json_arguments"
  // AnnotationParser.g:121:1: json_arguments : json_argument ( COMMA ( json_argument ) )* ;
  public final AnnotationParser.json_arguments_return json_arguments() throws RecognitionException {
    AnnotationParser.json_arguments_return retval = new AnnotationParser.json_arguments_return();
    retval.start = input.LT(1);

    AnnotationCommonTree root_0 = null;

    CommonToken COMMA22 = null;
    AnnotationParser.json_argument_return json_argument21 = null;

    AnnotationParser.json_argument_return json_argument23 = null;

    AnnotationCommonTree COMMA22_tree = null;

    try {
      // AnnotationParser.g:122:3: ( json_argument ( COMMA ( json_argument ) )* )
      // AnnotationParser.g:122:5: json_argument ( COMMA ( json_argument ) )*
      {
        root_0 = (AnnotationCommonTree) adaptor.nil();

        pushFollow(FOLLOW_json_argument_in_json_arguments362);
        json_argument21 = json_argument();

        state._fsp--;

        adaptor.addChild(root_0, json_argument21.getTree());
        // AnnotationParser.g:122:19: ( COMMA ( json_argument ) )*
        loop7:
        do {
          int alt7 = 2;
          int LA7_0 = input.LA(1);

          if ((LA7_0 == COMMA)) {
            alt7 = 1;
          }

          switch (alt7) {
            case 1:
              // AnnotationParser.g:122:20: COMMA ( json_argument )
              {
                COMMA22 = (CommonToken) match(input, COMMA, FOLLOW_COMMA_in_json_arguments365);
                COMMA22_tree = (AnnotationCommonTree) adaptor.create(COMMA22);
                adaptor.addChild(root_0, COMMA22_tree);

                // AnnotationParser.g:122:26: ( json_argument )
                // AnnotationParser.g:122:27: json_argument
                {
                  pushFollow(FOLLOW_json_argument_in_json_arguments368);
                  json_argument23 = json_argument();

                  state._fsp--;

                  adaptor.addChild(root_0, json_argument23.getTree());
                }
              }
              break;

            default:
              break loop7;
          }
        } while (true);
      }

      retval.stop = input.LT(-1);

      retval.tree = (AnnotationCommonTree) adaptor.rulePostProcessing(root_0);
      adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

    } catch (RecognitionException re) {
      reportError(re);
      recover(input, re);
      retval.tree = (AnnotationCommonTree) adaptor.errorNode(input, retval.start, input.LT(-1), re);

    } finally {
    }
    return retval;
  }