class jdk.jshell.Util
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.Util
  super_class: java.lang.Object
{
  static final java.lang.String REPL_PACKAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "REPL"

  static final java.lang.String REPL_CLASS_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "$JShell$"

  static final java.lang.String DOIT_METHOD_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "do_it$"

  static final java.lang.String JSHELL_ANONYMOUS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "$JShell$anonymous$"

  static final java.util.regex.Pattern PREFIX_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.String REPL_DOESNOTMATTER_CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "$JShell$DOESNOTMATTER"

  static final java.util.Locale PARSED_LOCALE;
    descriptor: Ljava/util/Locale;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 67
            new java.lang.StringBuilder
            dup
            ldc "(REPL\\.)?(?<class>"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 68
            ldc "$JShell$"
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 69
            ldc "\\w+"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "[\\$\\.]?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 67
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 66
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic jdk.jshell.Util.PREFIX_PATTERN:Ljava/util/regex/Pattern;
         5: .line 73
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            putstatic jdk.jshell.Util.PARSED_LOCALE:Ljava/util/Locale;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.Util this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.jshell.Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/Util;

  static boolean isDoIt(javax.lang.model.element.Name);
    descriptor: (Ljavax/lang/model/element/Name;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Name name
         0: .line 76
            aload 0 /* name */
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokestatic jdk.jshell.Util.isDoIt:(Ljava/lang/String;)Z
            ireturn
        end local 0 // javax.lang.model.element.Name name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljavax/lang/model/element/Name;
    MethodParameters:
      Name  Flags
      name  

  static boolean isDoIt(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String sname
         0: .line 80
            aload 0 /* sname */
            ldc "do_it$"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String sname
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  sname  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      sname  

  static java.lang.String expunge(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.String s
         0: .line 84
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 85
            getstatic jdk.jshell.Util.PREFIX_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* s */
            invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.lang.String java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* comp */
        start local 2 // java.lang.String comp
         3: .line 86
            aload 1 /* sb */
            aload 2 /* comp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.String comp
         4: .line 85
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 88
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     s  Ljava/lang/String;
            1    7     1    sb  Ljava/lang/StringBuilder;
            3    4     2  comp  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  static boolean isInJShellClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String s
         0: .line 98
            getstatic jdk.jshell.Util.PREFIX_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* s */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* m */
        start local 1 // java.util.regex.Matcher m
         1: .line 99
            aload 1 /* m */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 2
            aload 1 /* m */
            invokevirtual java.util.regex.Matcher.start:()I
            ifne 2
            iconst_1
            ireturn
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.util.regex.Matcher m
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     s  Ljava/lang/String;
            1    3     1     m  Ljava/util/regex/Matcher;
    MethodParameters:
      Name  Flags
      s     

  static java.lang.String asLetters(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // int i
         0: .line 103
            iload 0 /* i */
            ifne 2
         1: .line 104
            ldc ""
            areturn
         2: .line 107
      StackMap locals:
      StackMap stack:
            bipush 33
            newarray 5
            astore 1 /* buf */
        start local 1 // char[] buf
         3: .line 108
            bipush 32
            istore 2 /* charPos */
        start local 2 // int charPos
         4: .line 110
            iload 0 /* i */
            ineg
            istore 0 /* i */
         5: .line 111
            goto 8
         6: .line 112
      StackMap locals: char[] int
      StackMap stack:
            aload 1 /* buf */
            iload 2 /* charPos */
            iinc 2 /* charPos */ -1
            bipush 65
            iload 0 /* i */
            bipush 26
            irem
            isub
            i2c
            castore
         7: .line 113
            iload 0 /* i */
            bipush 26
            idiv
            istore 0 /* i */
         8: .line 111
      StackMap locals:
      StackMap stack:
            iload 0 /* i */
            bipush -26
            if_icmple 6
         9: .line 115
            aload 1 /* buf */
            iload 2 /* charPos */
            bipush 65
            iload 0 /* i */
            isub
            i2c
            castore
        10: .line 117
            new java.lang.String
            dup
            aload 1 /* buf */
            iload 2 /* charPos */
            bipush 33
            iload 2 /* charPos */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 2 // int charPos
        end local 1 // char[] buf
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0        i  I
            3   11     1      buf  [C
            4   11     2  charPos  I
    MethodParameters:
      Name  Flags
      i     

  static java.lang.String trimEnd(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 122
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            istore 1 /* last */
        start local 1 // int last
         1: .line 123
            iload 1 /* last */
            istore 2 /* i */
        start local 2 // int i
         2: .line 124
            goto 4
         3: .line 125
      StackMap locals: int int
      StackMap stack:
            iinc 2 /* i */ -1
         4: .line 124
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iflt 5
            aload 0 /* s */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 3
         5: .line 127
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 1 /* last */
            if_icmpeq 7
         6: .line 128
            aload 0 /* s */
            iconst_0
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         7: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            areturn
        end local 2 // int i
        end local 1 // int last
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     s  Ljava/lang/String;
            1    8     1  last  I
            2    8     2     i  I
    MethodParameters:
      Name  Flags
      s     

  static <T> java.util.stream.Stream<T> stream(java.lang.Iterable<T>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/stream/Stream;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Iterable iterable
         0: .line 135
            aload 0 /* iterable */
            invokeinterface java.lang.Iterable.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.Iterable iterable
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  iterable  Ljava/lang/Iterable<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Iterable<TT;>;)Ljava/util/stream/Stream<TT;>;
    MethodParameters:
          Name  Flags
      iterable  

  static java.lang.String[] join(java.lang.String[], java.lang.String[]);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String[] a1
        start local 1 // java.lang.String[] a2
         0: .line 139
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 141
            aload 2 /* result */
            aload 0 /* a1 */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 142
            aload 2 /* result */
            aload 1 /* a2 */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 144
            aload 2 /* result */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 2 // java.util.List result
        end local 1 // java.lang.String[] a2
        end local 0 // java.lang.String[] a1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      a1  [Ljava/lang/String;
            0    4     1      a2  [Ljava/lang/String;
            1    4     2  result  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      a1    
      a2    
}
SourceFile: "Util.java"
NestMembers:
  jdk.jshell.Util$Pair
InnerClasses:
  Pair = jdk.jshell.Util$Pair of jdk.jshell.Util