class org.stringtemplate.v4.gui.STViz$3 implements javax.swing.event.CaretListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.stringtemplate.v4.gui.STViz$3
  super_class: java.lang.Object
{
  final org.stringtemplate.v4.gui.STViz this$0;
    descriptor: Lorg/stringtemplate/v4/gui/STViz;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.stringtemplate.v4.gui.STViz);
    descriptor: (Lorg/stringtemplate/v4/gui/STViz;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.stringtemplate.v4.gui.STViz$3 this
         0: .line 179
            aload 0 /* this */
            aload 1
            putfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.stringtemplate.v4.gui.STViz$3 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/stringtemplate/v4/gui/STViz$3;
    MethodParameters:
        Name  Flags
      this$0  final

  public void caretUpdate(javax.swing.event.CaretEvent);
    descriptor: (Ljavax/swing/event/CaretEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.stringtemplate.v4.gui.STViz$3 this
        start local 1 // javax.swing.event.CaretEvent e
         0: .line 182
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.updateDepth:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            istore 2 /* depth */
        start local 2 // int depth
         1: .line 184
            iload 2 /* depth */
            iconst_1
            if_icmpeq 4
         2: .line 208
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.updateDepth:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
         3: .line 185
            return
         4: .line 188
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 1 /* e */
            invokevirtual javax.swing.event.CaretEvent.getSource:()Ljava/lang/Object;
            checkcast javax.swing.text.JTextComponent
            aload 1 /* e */
            invokevirtual javax.swing.event.CaretEvent.getDot:()I
            invokevirtual org.stringtemplate.v4.gui.STViz.toEventPosition:(Ljavax/swing/text/JTextComponent;I)I
            istore 3 /* dot */
        start local 3 // int dot
         5: .line 189
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.allEvents:Ljava/util/List;
            iload 3 /* dot */
            invokevirtual org.stringtemplate.v4.gui.STViz.findEventAtOutputLocation:(Ljava/util/List;I)Lorg/stringtemplate/v4/debug/InterpEvent;
            putfield org.stringtemplate.v4.gui.STViz.currentEvent:Lorg/stringtemplate/v4/debug/InterpEvent;
         6: .line 190
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.currentEvent:Lorg/stringtemplate/v4/debug/InterpEvent;
            ifnonnull 7
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.tmodel:Lorg/stringtemplate/v4/gui/JTreeSTModel;
            getfield org.stringtemplate.v4.gui.JTreeSTModel.root:Lorg/stringtemplate/v4/gui/JTreeSTModel$Wrapper;
            getfield org.stringtemplate.v4.gui.JTreeSTModel$Wrapper.event:Lorg/stringtemplate/v4/debug/EvalTemplateEvent;
            getfield org.stringtemplate.v4.debug.EvalTemplateEvent.scope:Lorg/stringtemplate/v4/InstanceScope;
            putfield org.stringtemplate.v4.gui.STViz.currentScope:Lorg/stringtemplate/v4/InstanceScope;
            goto 8
         7: .line 191
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.currentEvent:Lorg/stringtemplate/v4/debug/InterpEvent;
            getfield org.stringtemplate.v4.debug.InterpEvent.scope:Lorg/stringtemplate/v4/InstanceScope;
            putfield org.stringtemplate.v4.gui.STViz.currentScope:Lorg/stringtemplate/v4/InstanceScope;
         8: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.currentScope:Lorg/stringtemplate/v4/InstanceScope;
            iconst_1
            invokestatic org.stringtemplate.v4.Interpreter.getEvalTemplateEventStack:(Lorg/stringtemplate/v4/InstanceScope;Z)Ljava/util/List;
            astore 4 /* stack */
        start local 4 // java.util.List stack
         9: .line 197
            aload 4 /* stack */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Object
            astore 5 /* path */
        start local 5 // java.lang.Object[] path
        10: .line 198
            iconst_0
            istore 6 /* j */
        start local 6 // int j
        11: .line 199
            aload 4 /* stack */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 14
      StackMap locals: org.stringtemplate.v4.gui.STViz$3 javax.swing.event.CaretEvent int int java.util.List java.lang.Object[] int top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.stringtemplate.v4.debug.EvalTemplateEvent
            astore 7 /* s */
        start local 7 // org.stringtemplate.v4.debug.EvalTemplateEvent s
        13: .line 200
            aload 5 /* path */
            iload 6 /* j */
            iinc 6 /* j */ 1
            new org.stringtemplate.v4.gui.JTreeSTModel$Wrapper
            dup
            aload 7 /* s */
            invokespecial org.stringtemplate.v4.gui.JTreeSTModel$Wrapper.<init>:(Lorg/stringtemplate/v4/debug/EvalTemplateEvent;)V
            aastore
        end local 7 // org.stringtemplate.v4.debug.EvalTemplateEvent s
        14: .line 199
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 202
            new javax.swing.tree.TreePath
            dup
            aload 5 /* path */
            invokespecial javax.swing.tree.TreePath.<init>:([Ljava/lang/Object;)V
            astore 7 /* p */
        start local 7 // javax.swing.tree.TreePath p
        16: .line 203
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.viewFrame:Lorg/stringtemplate/v4/gui/STViewFrame;
            getfield org.stringtemplate.v4.gui.STViewFrame.tree:Ljavax/swing/JTree;
            aload 7 /* p */
            invokevirtual javax.swing.JTree.setSelectionPath:(Ljavax/swing/tree/TreePath;)V
        17: .line 204
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.viewFrame:Lorg/stringtemplate/v4/gui/STViewFrame;
            getfield org.stringtemplate.v4.gui.STViewFrame.tree:Ljavax/swing/JTree;
            aload 7 /* p */
            invokevirtual javax.swing.JTree.scrollPathToVisible:(Ljavax/swing/tree/TreePath;)V
        18: .line 205
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.viewFrame:Lorg/stringtemplate/v4/gui/STViewFrame;
            invokevirtual org.stringtemplate.v4.gui.STViz.updateCurrentST:(Lorg/stringtemplate/v4/gui/STViewFrame;)V
        end local 7 // javax.swing.tree.TreePath p
        end local 6 // int j
        end local 5 // java.lang.Object[] path
        end local 4 // java.util.List stack
        end local 3 // int dot
        19: .line 206
            goto 23
        20: .line 207
      StackMap locals: org.stringtemplate.v4.gui.STViz$3 javax.swing.event.CaretEvent int
      StackMap stack: java.lang.Throwable
            astore 9
        21: .line 208
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.updateDepth:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        22: .line 209
            aload 9
            athrow
        23: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.stringtemplate.v4.gui.STViz$3.this$0:Lorg/stringtemplate/v4/gui/STViz;
            getfield org.stringtemplate.v4.gui.STViz.updateDepth:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        24: .line 210
            return
        end local 2 // int depth
        end local 1 // javax.swing.event.CaretEvent e
        end local 0 // org.stringtemplate.v4.gui.STViz$3 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lorg/stringtemplate/v4/gui/STViz$3;
            0   25     1      e  Ljavax/swing/event/CaretEvent;
            1   25     2  depth  I
            5   19     3    dot  I
            9   19     4  stack  Ljava/util/List<Lorg/stringtemplate/v4/debug/EvalTemplateEvent;>;
           10   19     5   path  [Ljava/lang/Object;
           11   19     6      j  I
           13   14     7      s  Lorg/stringtemplate/v4/debug/EvalTemplateEvent;
           16   19     7      p  Ljavax/swing/tree/TreePath;
      Exception table:
        from    to  target  type
           1     2      20  any
           4    20      20  any
    MethodParameters:
      Name  Flags
      e     
}
SourceFile: "STViz.java"
EnclosingMethod: org.stringtemplate.v4.gui.STViz.open:()V
NestHost: org.stringtemplate.v4.gui.STViz
InnerClasses:
  public Wrapper = org.stringtemplate.v4.gui.JTreeSTModel$Wrapper of org.stringtemplate.v4.gui.JTreeSTModel
  org.stringtemplate.v4.gui.STViz$3