public class com.oracle.graal.python.shell.JLineConsoleHandler extends com.oracle.graal.python.shell.ConsoleHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.python.shell.JLineConsoleHandler
  super_class: com.oracle.graal.python.shell.ConsoleHandler
{
  private final boolean noPrompt;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.shadowed.org.jline.terminal.Terminal terminal;
    descriptor: Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.graalvm.shadowed.org.jline.reader.LineReader reader;
    descriptor: Lorg/graalvm/shadowed/org/jline/reader/LineReader;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.shadowed.org.jline.reader.History history;
    descriptor: Lorg/graalvm/shadowed/org/jline/reader/History;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String prompt;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.InputStream, java.io.OutputStream, boolean);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
        start local 1 // java.io.InputStream inStream
        start local 2 // java.io.OutputStream outStream
        start local 3 // boolean noPrompt
         0: .line 77
            aload 0 /* this */
            invokespecial com.oracle.graal.python.shell.ConsoleHandler.<init>:()V
         1: .line 78
            aload 0 /* this */
            iload 3 /* noPrompt */
            putfield com.oracle.graal.python.shell.JLineConsoleHandler.noPrompt:Z
         2: .line 80
            aload 0 /* this */
            invokestatic org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.builder:()Lorg/graalvm/shadowed/org/jline/terminal/TerminalBuilder;
            iconst_0
            invokevirtual org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.jna:(Z)Lorg/graalvm/shadowed/org/jline/terminal/TerminalBuilder;
            aload 1 /* inStream */
            aload 2 /* outStream */
            invokevirtual org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.streams:(Ljava/io/InputStream;Ljava/io/OutputStream;)Lorg/graalvm/shadowed/org/jline/terminal/TerminalBuilder;
            iconst_1
            invokevirtual org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.system:(Z)Lorg/graalvm/shadowed/org/jline/terminal/TerminalBuilder;
            getstatic org.graalvm.shadowed.org.jline.terminal.Terminal$SignalHandler.SIG_IGN:Lorg/graalvm/shadowed/org/jline/terminal/Terminal$SignalHandler;
            invokevirtual org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.signalHandler:(Lorg/graalvm/shadowed/org/jline/terminal/Terminal$SignalHandler;)Lorg/graalvm/shadowed/org/jline/terminal/TerminalBuilder;
            invokevirtual org.graalvm.shadowed.org.jline.terminal.TerminalBuilder.build:()Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
            putfield com.oracle.graal.python.shell.JLineConsoleHandler.terminal:Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
         3: .line 81
            goto 6
      StackMap locals: com.oracle.graal.python.shell.JLineConsoleHandler java.io.InputStream java.io.OutputStream int
      StackMap stack: java.io.IOException
         4: astore 4 /* ex */
        start local 4 // java.io.IOException ex
         5: .line 82
            new java.lang.RuntimeException
            dup
            ldc "unexpected error opening console reader"
            aload 4 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ex
         6: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean noPrompt
        end local 2 // java.io.OutputStream outStream
        end local 1 // java.io.InputStream inStream
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;
            0    7     1   inStream  Ljava/io/InputStream;
            0    7     2  outStream  Ljava/io/OutputStream;
            0    7     3   noPrompt  Z
            5    6     4         ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    MethodParameters:
           Name  Flags
      inStream   
      outStream  
      noPrompt   

  public void setupReader(java.util.function.BooleanSupplier, java.util.function.IntSupplier, java.util.function.Consumer<java.lang.String>, java.util.function.IntFunction<java.lang.String>, java.util.function.BiConsumer<java.lang.Integer, java.lang.String>, java.util.function.IntConsumer, java.lang.Runnable, java.util.function.Function<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/function/BooleanSupplier;Ljava/util/function/IntSupplier;Ljava/util/function/Consumer;Ljava/util/function/IntFunction;Ljava/util/function/BiConsumer;Ljava/util/function/IntConsumer;Ljava/lang/Runnable;Ljava/util/function/Function;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=9
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
        start local 1 // java.util.function.BooleanSupplier shouldRecord
        start local 2 // java.util.function.IntSupplier getSize
        start local 3 // java.util.function.Consumer addItem
        start local 4 // java.util.function.IntFunction getItem
        start local 5 // java.util.function.BiConsumer setItem
        start local 6 // java.util.function.IntConsumer removeItem
        start local 7 // java.lang.Runnable clear
        start local 8 // java.util.function.Function completer
         0: .line 95
            aload 0 /* this */
            new com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl
            dup
            aload 1 /* shouldRecord */
            aload 2 /* getSize */
            aload 3 /* addItem */
            aload 4 /* getItem */
            aload 5 /* setItem */
            aload 6 /* removeItem */
            aload 7 /* clear */
            invokespecial com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl.<init>:(Ljava/util/function/BooleanSupplier;Ljava/util/function/IntSupplier;Ljava/util/function/Consumer;Ljava/util/function/IntFunction;Ljava/util/function/BiConsumer;Ljava/util/function/IntConsumer;Ljava/lang/Runnable;)V
            putfield com.oracle.graal.python.shell.JLineConsoleHandler.history:Lorg/graalvm/shadowed/org/jline/reader/History;
         1: .line 97
            invokestatic org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.builder:()Lorg/graalvm/shadowed/org/jline/reader/LineReaderBuilder;
            astore 9 /* builder */
        start local 9 // org.graalvm.shadowed.org.jline.reader.LineReaderBuilder builder
         2: .line 98
            aload 9 /* builder */
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.terminal:Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
            invokevirtual org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.terminal:(Lorg/graalvm/shadowed/org/jline/terminal/Terminal;)Lorg/graalvm/shadowed/org/jline/reader/LineReaderBuilder;
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.history:Lorg/graalvm/shadowed/org/jline/reader/History;
            invokevirtual org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.history:(Lorg/graalvm/shadowed/org/jline/reader/History;)Lorg/graalvm/shadowed/org/jline/reader/LineReaderBuilder;
            astore 9 /* builder */
         3: .line 99
            aload 8 /* completer */
            ifnull 5
         4: .line 100
            aload 9 /* builder */
            new com.oracle.graal.python.shell.JLineConsoleHandler$1
            dup
            aload 0 /* this */
            aload 8 /* completer */
            invokespecial com.oracle.graal.python.shell.JLineConsoleHandler$1.<init>:(Lcom/oracle/graal/python/shell/JLineConsoleHandler;Ljava/util/function/Function;)V
            invokevirtual org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.completer:(Lorg/graalvm/shadowed/org/jline/reader/Completer;)Lorg/graalvm/shadowed/org/jline/reader/LineReaderBuilder;
            pop
         5: .line 113
      StackMap locals: org.graalvm.shadowed.org.jline.reader.LineReaderBuilder
      StackMap stack:
            aload 0 /* this */
            aload 9 /* builder */
            invokevirtual org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.build:()Lorg/graalvm/shadowed/org/jline/reader/LineReader;
            putfield com.oracle.graal.python.shell.JLineConsoleHandler.reader:Lorg/graalvm/shadowed/org/jline/reader/LineReader;
         6: .line 114
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.reader:Lorg/graalvm/shadowed/org/jline/reader/LineReader;
            getstatic org.graalvm.shadowed.org.jline.reader.LineReader$Option.DISABLE_EVENT_EXPANSION:Lorg/graalvm/shadowed/org/jline/reader/LineReader$Option;
            iconst_1
            invokeinterface org.graalvm.shadowed.org.jline.reader.LineReader.option:(Lorg/graalvm/shadowed/org/jline/reader/LineReader$Option;Z)Lorg/graalvm/shadowed/org/jline/reader/LineReader;
            pop
         7: .line 115
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.reader:Lorg/graalvm/shadowed/org/jline/reader/LineReader;
            ldc "comment-begin"
            ldc "#"
            invokeinterface org.graalvm.shadowed.org.jline.reader.LineReader.setVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 116
            return
        end local 9 // org.graalvm.shadowed.org.jline.reader.LineReaderBuilder builder
        end local 8 // java.util.function.Function completer
        end local 7 // java.lang.Runnable clear
        end local 6 // java.util.function.IntConsumer removeItem
        end local 5 // java.util.function.BiConsumer setItem
        end local 4 // java.util.function.IntFunction getItem
        end local 3 // java.util.function.Consumer addItem
        end local 2 // java.util.function.IntSupplier getSize
        end local 1 // java.util.function.BooleanSupplier shouldRecord
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;
            0    9     1  shouldRecord  Ljava/util/function/BooleanSupplier;
            0    9     2       getSize  Ljava/util/function/IntSupplier;
            0    9     3       addItem  Ljava/util/function/Consumer<Ljava/lang/String;>;
            0    9     4       getItem  Ljava/util/function/IntFunction<Ljava/lang/String;>;
            0    9     5       setItem  Ljava/util/function/BiConsumer<Ljava/lang/Integer;Ljava/lang/String;>;
            0    9     6    removeItem  Ljava/util/function/IntConsumer;
            0    9     7         clear  Ljava/lang/Runnable;
            0    9     8     completer  Ljava/util/function/Function<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            2    9     9       builder  Lorg/graalvm/shadowed/org/jline/reader/LineReaderBuilder;
    Signature: (Ljava/util/function/BooleanSupplier;Ljava/util/function/IntSupplier;Ljava/util/function/Consumer<Ljava/lang/String;>;Ljava/util/function/IntFunction<Ljava/lang/String;>;Ljava/util/function/BiConsumer<Ljava/lang/Integer;Ljava/lang/String;>;Ljava/util/function/IntConsumer;Ljava/lang/Runnable;Ljava/util/function/Function<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
              Name  Flags
      shouldRecord  
      getSize       
      addItem       
      getItem       
      setItem       
      removeItem    
      clear         
      completer     

  public java.lang.String readLine(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
        start local 1 // boolean showPrompt
         0: .line 121
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.reader:Lorg/graalvm/shadowed/org/jline/reader/LineReader;
            iload 1 /* showPrompt */
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.prompt:Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack: org.graalvm.shadowed.org.jline.reader.LineReader
         1: ldc ""
      StackMap locals: com.oracle.graal.python.shell.JLineConsoleHandler int
      StackMap stack: org.graalvm.shadowed.org.jline.reader.LineReader java.lang.String
         2: invokeinterface org.graalvm.shadowed.org.jline.reader.LineReader.readLine:(Ljava/lang/String;)Ljava/lang/String;
         3: areturn
         4: .line 122
      StackMap locals:
      StackMap stack: org.graalvm.shadowed.org.jline.reader.UserInterruptException
            astore 2 /* e */
        start local 2 // org.graalvm.shadowed.org.jline.reader.UserInterruptException e
         5: .line 123
            aload 2 /* e */
            athrow
        end local 2 // org.graalvm.shadowed.org.jline.reader.UserInterruptException e
         6: .line 124
      StackMap locals:
      StackMap stack: org.graalvm.shadowed.org.jline.reader.EndOfFileException
            pop
         7: .line 125
            aconst_null
            areturn
         8: .line 126
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         9: .line 127
            new java.lang.RuntimeException
            dup
            aload 2 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception ex
        end local 1 // boolean showPrompt
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;
            0   10     1  showPrompt  Z
            5    6     2           e  Lorg/graalvm/shadowed/org/jline/reader/UserInterruptException;
            9   10     2          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class org.graalvm.shadowed.org.jline.reader.UserInterruptException
           0     3       6  Class org.graalvm.shadowed.org.jline.reader.EndOfFileException
           0     3       8  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      showPrompt  

  public void setPrompt(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
        start local 1 // java.lang.String prompt
         0: .line 133
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.noPrompt:Z
            ifeq 1
            ldc ""
            goto 3
      StackMap locals:
      StackMap stack: com.oracle.graal.python.shell.JLineConsoleHandler
         1: aload 1 /* prompt */
            ifnull 2
            aload 1 /* prompt */
            goto 3
      StackMap locals:
      StackMap stack: com.oracle.graal.python.shell.JLineConsoleHandler
         2: ldc ""
      StackMap locals: com.oracle.graal.python.shell.JLineConsoleHandler java.lang.String
      StackMap stack: com.oracle.graal.python.shell.JLineConsoleHandler java.lang.String
         3: putfield com.oracle.graal.python.shell.JLineConsoleHandler.prompt:Ljava/lang/String;
         4: .line 134
            return
        end local 1 // java.lang.String prompt
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;
            0    5     1  prompt  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prompt  

  public int getTerminalHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
         0: .line 138
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.terminal:Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
            invokeinterface org.graalvm.shadowed.org.jline.terminal.Terminal.getHeight:()I
            ireturn
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;

  public int getTerminalWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
         0: .line 143
            aload 0 /* this */
            getfield com.oracle.graal.python.shell.JLineConsoleHandler.terminal:Lorg/graalvm/shadowed/org/jline/terminal/Terminal;
            invokeinterface org.graalvm.shadowed.org.jline.terminal.Terminal.getWidth:()I
            ireturn
        end local 0 // com.oracle.graal.python.shell.JLineConsoleHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/shell/JLineConsoleHandler;
}
SourceFile: "JLineConsoleHandler.java"
NestMembers:
  com.oracle.graal.python.shell.JLineConsoleHandler$1  com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl  com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl$HistoryEntry  com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl$HistoryIterator
InnerClasses:
  com.oracle.graal.python.shell.JLineConsoleHandler$1
  private HistoryImpl = com.oracle.graal.python.shell.JLineConsoleHandler$HistoryImpl of com.oracle.graal.python.shell.JLineConsoleHandler
  public final Option = org.graalvm.shadowed.org.jline.reader.LineReader$Option of org.graalvm.shadowed.org.jline.reader.LineReader
  public abstract SignalHandler = org.graalvm.shadowed.org.jline.terminal.Terminal$SignalHandler of org.graalvm.shadowed.org.jline.terminal.Terminal