final class jdk.nashorn.api.scripting.Formatter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.api.scripting.Formatter
  super_class: java.lang.Object
{
  private static final java.lang.String formatSpecifier;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])"

  private static final java.util.regex.Pattern FS_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 183
            ldc "%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic jdk.nashorn.api.scripting.Formatter.FS_PATTERN:Ljava/util/regex/Pattern;
         1: .line 184
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.api.scripting.Formatter this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            return
        end local 0 // jdk.nashorn.api.scripting.Formatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/api/scripting/Formatter;

  static java.lang.String format(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.lang.String format
        start local 1 // java.lang.Object[] args
         0: .line 63
            getstatic jdk.nashorn.api.scripting.Formatter.FS_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* format */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 2 /* m */
        start local 2 // java.util.regex.Matcher m
         1: .line 64
            iconst_1
            istore 3 /* positionalParameter */
        start local 3 // int positionalParameter
         2: .line 66
            goto 36
         3: .line 67
      StackMap locals: java.util.regex.Matcher int
      StackMap stack:
            aload 2 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic jdk.nashorn.api.scripting.Formatter.index:(Ljava/lang/String;)I
            istore 4 /* index */
        start local 4 // int index
         4: .line 68
            aload 2 /* m */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic jdk.nashorn.api.scripting.Formatter.isPreviousArgument:(Ljava/lang/String;)Z
            istore 5 /* previous */
        start local 5 // boolean previous
         5: .line 69
            aload 2 /* m */
            bipush 6
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* conversion */
        start local 6 // char conversion
         6: .line 72
            iload 4 /* index */
            iflt 36
            iload 5 /* previous */
            ifne 36
         7: .line 73
            iload 6 /* conversion */
            bipush 110
            if_icmpeq 36
            iload 6 /* conversion */
            bipush 37
            if_icmpne 9
         8: .line 74
            goto 36
         9: .line 78
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* index */
            ifne 11
        10: .line 79
            iload 3 /* positionalParameter */
            iinc 3 /* positionalParameter */ 1
            istore 4 /* index */
        11: .line 83
      StackMap locals:
      StackMap stack:
            iload 4 /* index */
            aload 1 /* args */
            arraylength
            if_icmple 13
        12: .line 84
            goto 36
        13: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aaload
            astore 7 /* arg */
        start local 7 // java.lang.Object arg
        14: .line 91
            aload 2 /* m */
            iconst_5
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            ifnull 18
        15: .line 93
            aload 7 /* arg */
            instanceof java.lang.Double
            ifeq 36
        16: .line 94
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        17: .line 96
            goto 36
        18: .line 98
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 6 /* conversion */
            lookupswitch { // 12
                   65: 26
                   69: 26
                   71: 26
                   88: 19
                   97: 26
                   99: 29
                  100: 19
                  101: 26
                  102: 26
                  103: 26
                  111: 19
                  120: 19
              default: 36
          }
        19: .line 103
      StackMap locals:
      StackMap stack:
            aload 7 /* arg */
            instanceof java.lang.Double
            ifeq 22
        20: .line 105
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        21: .line 106
            goto 36
      StackMap locals:
      StackMap stack:
        22: aload 7 /* arg */
            instanceof java.lang.String
            ifeq 36
        23: .line 107
            aload 7 /* arg */
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ifle 36
        24: .line 109
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.String
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        25: .line 111
            goto 36
        26: .line 119
      StackMap locals:
      StackMap stack:
            aload 7 /* arg */
            instanceof java.lang.Integer
            ifeq 36
        27: .line 121
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.doubleValue:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
        28: .line 123
            goto 36
        29: .line 125
      StackMap locals:
      StackMap stack:
            aload 7 /* arg */
            instanceof java.lang.Double
            ifeq 32
        30: .line 127
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.intValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        31: .line 128
            goto 36
      StackMap locals:
      StackMap stack:
        32: aload 7 /* arg */
            instanceof java.lang.String
            ifeq 36
        33: .line 129
            aload 7 /* arg */
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ifle 36
        34: .line 131
            aload 1 /* args */
            iload 4 /* index */
            iconst_1
            isub
            aload 7 /* arg */
            checkcast java.lang.String
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        35: .line 133
            goto 36
        end local 7 // java.lang.Object arg
        end local 6 // char conversion
        end local 5 // boolean previous
        end local 4 // int index
        36: .line 66
      StackMap locals: java.lang.String java.lang.Object[] java.util.regex.Matcher int
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 3
        37: .line 140
            aload 0 /* format */
            aload 1 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // int positionalParameter
        end local 2 // java.util.regex.Matcher m
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String format
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0               format  Ljava/lang/String;
            0   38     1                 args  [Ljava/lang/Object;
            1   38     2                    m  Ljava/util/regex/Matcher;
            2   38     3  positionalParameter  I
            4   36     4                index  I
            5   36     5             previous  Z
            6   36     6           conversion  C
           14   36     7                  arg  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      format  final
      args    final

  private static int index(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String s
         0: .line 150
            iconst_m1
            istore 1 /* index */
        start local 1 // int index
         1: .line 152
            aload 0 /* s */
            ifnull 6
         2: .line 154
            aload 0 /* s */
            iconst_0
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 1 /* index */
         3: .line 155
            goto 7
      StackMap locals: java.lang.String int
      StackMap stack: java.lang.NumberFormatException
         4: pop
         5: .line 158
            goto 7
         6: .line 159
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* index */
         7: .line 162
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            ireturn
        end local 1 // int index
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0      s  Ljava/lang/String;
            1    8     1  index  I
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      s     final

  private static boolean isPreviousArgument(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 173
            aload 0 /* s */
            ifnull 1
            aload 0 /* s */
            bipush 60
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final
}
SourceFile: "Formatter.java"