public class org.eclipse.jdt.internal.core.dom.SourceRangeVerifier extends org.eclipse.jdt.core.dom.ASTVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.dom.SourceRangeVerifier
  super_class: org.eclipse.jdt.core.dom.ASTVisitor
{
  public static boolean DEBUG;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_THROW;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private java.lang.StringBuffer bugs;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 27
            iconst_0
            putstatic org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.DEBUG:Z
         1: .line 28
            iconst_0
            putstatic org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.DEBUG_THROW:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
         0: .line 25
            aload 0 /* this */
            invokespecial org.eclipse.jdt.core.dom.ASTVisitor.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/dom/SourceRangeVerifier;

  public java.lang.String process(org.eclipse.jdt.core.dom.ASTNode);
    descriptor: (Lorg/eclipse/jdt/core/dom/ASTNode;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
        start local 1 // org.eclipse.jdt.core.dom.ASTNode node
         0: .line 44
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuffer buffer
         1: .line 45
            aload 0 /* this */
            aload 2 /* buffer */
            putfield org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.bugs:Ljava/lang/StringBuffer;
         2: .line 46
            aload 1 /* node */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.accept:(Lorg/eclipse/jdt/core/dom/ASTVisitor;)V
         3: .line 47
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.bugs:Ljava/lang/StringBuffer;
         4: .line 48
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuffer.length:()I
            ifne 6
         5: .line 49
            aconst_null
            areturn
         6: .line 50
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer buffer
        end local 1 // org.eclipse.jdt.core.dom.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/eclipse/jdt/internal/core/dom/SourceRangeVerifier;
            0    7     1    node  Lorg/eclipse/jdt/core/dom/ASTNode;
            1    7     2  buffer  Ljava/lang/StringBuffer;
    MethodParameters:
      Name  Flags
      node  

  public boolean preVisit2(org.eclipse.jdt.core.dom.ASTNode);
    descriptor: (Lorg/eclipse/jdt/core/dom/ASTNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
        start local 1 // org.eclipse.jdt.core.dom.ASTNode node
         0: .line 55
            aconst_null
            astore 2 /* previous */
        start local 2 // org.eclipse.jdt.core.dom.ASTNode previous
         1: .line 57
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.structuralPropertiesForType:()Ljava/util/List;
            astore 3 /* properties */
        start local 3 // java.util.List properties
         2: .line 58
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 26
         4: .line 59
      StackMap locals: org.eclipse.jdt.core.dom.ASTNode java.util.List int
      StackMap stack:
            aload 3 /* properties */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.StructuralPropertyDescriptor
            astore 5 /* property */
        start local 5 // org.eclipse.jdt.core.dom.StructuralPropertyDescriptor property
         5: .line 60
            aload 5 /* property */
            invokevirtual org.eclipse.jdt.core.dom.StructuralPropertyDescriptor.isChildProperty:()Z
            ifeq 13
         6: .line 61
            aload 1 /* node */
            aload 5 /* property */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStructuralProperty:(Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.ASTNode
            astore 6 /* child */
        start local 6 // org.eclipse.jdt.core.dom.ASTNode child
         7: .line 62
            aload 6 /* child */
            ifnull 25
         8: .line 63
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* previous */
            aload 6 /* child */
            invokevirtual org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.checkChild:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;)Z
            istore 7 /* ok */
        start local 7 // boolean ok
         9: .line 64
            iload 7 /* ok */
            ifeq 12
        10: .line 65
            aload 6 /* child */
            astore 2 /* previous */
        11: .line 66
            goto 25
        12: .line 67
      StackMap locals: org.eclipse.jdt.core.dom.StructuralPropertyDescriptor org.eclipse.jdt.core.dom.ASTNode int
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // boolean ok
        end local 6 // org.eclipse.jdt.core.dom.ASTNode child
        13: .line 70
      StackMap locals:
      StackMap stack:
            aload 5 /* property */
            invokevirtual org.eclipse.jdt.core.dom.StructuralPropertyDescriptor.isChildListProperty:()Z
            ifeq 25
        14: .line 71
            aload 1 /* node */
            aload 5 /* property */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStructuralProperty:(Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;)Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* children */
        start local 6 // java.util.List children
        15: .line 72
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        16: goto 24
        17: .line 73
      StackMap locals: java.util.List int
      StackMap stack:
            aload 6 /* children */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.ASTNode
            astore 8 /* child */
        start local 8 // org.eclipse.jdt.core.dom.ASTNode child
        18: .line 74
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* previous */
            aload 8 /* child */
            invokevirtual org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.checkChild:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;)Z
            istore 9 /* ok */
        start local 9 // boolean ok
        19: .line 75
            iload 9 /* ok */
            ifeq 22
        20: .line 76
            aload 8 /* child */
            astore 2 /* previous */
        21: .line 77
            goto 23
        22: .line 78
      StackMap locals: org.eclipse.jdt.core.dom.ASTNode int
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // boolean ok
        end local 8 // org.eclipse.jdt.core.dom.ASTNode child
        23: .line 72
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* j */
            aload 6 /* children */
            invokeinterface java.util.List.size:()I
            if_icmplt 17
        end local 7 // int j
        end local 6 // java.util.List children
        end local 5 // org.eclipse.jdt.core.dom.StructuralPropertyDescriptor property
        25: .line 58
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 3 /* properties */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 4 // int i
        27: .line 83
            iconst_1
            ireturn
        end local 3 // java.util.List properties
        end local 2 // org.eclipse.jdt.core.dom.ASTNode previous
        end local 1 // org.eclipse.jdt.core.dom.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lorg/eclipse/jdt/internal/core/dom/SourceRangeVerifier;
            0   28     1        node  Lorg/eclipse/jdt/core/dom/ASTNode;
            1   28     2    previous  Lorg/eclipse/jdt/core/dom/ASTNode;
            2   28     3  properties  Ljava/util/List;
            3   27     4           i  I
            5   25     5    property  Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;
            7   13     6       child  Lorg/eclipse/jdt/core/dom/ASTNode;
            9   13     7          ok  Z
           15   25     6    children  Ljava/util/List;
           16   25     7           j  I
           18   23     8       child  Lorg/eclipse/jdt/core/dom/ASTNode;
           19   23     9          ok  Z
    MethodParameters:
      Name  Flags
      node  

  private boolean checkChild(org.eclipse.jdt.core.dom.ASTNode, org.eclipse.jdt.core.dom.ASTNode, org.eclipse.jdt.core.dom.ASTNode);
    descriptor: (Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
        start local 1 // org.eclipse.jdt.core.dom.ASTNode parent
        start local 2 // org.eclipse.jdt.core.dom.ASTNode previous
        start local 3 // org.eclipse.jdt.core.dom.ASTNode child
         0: .line 87
            aload 1 /* parent */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getFlags:()I
            bipush 9
            iand
            ifne 2
         1: .line 88
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getFlags:()I
            bipush 9
            iand
            ifeq 3
         2: .line 89
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStartPosition:()I
            istore 4 /* parentStart */
        start local 4 // int parentStart
         4: .line 92
            iload 4 /* parentStart */
            aload 1 /* parent */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLength:()I
            iadd
            istore 5 /* parentEnd */
        start local 5 // int parentEnd
         5: .line 94
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStartPosition:()I
            istore 6 /* childStart */
        start local 6 // int childStart
         6: .line 95
            iload 6 /* childStart */
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLength:()I
            iadd
            istore 7 /* childEnd */
        start local 7 // int childEnd
         7: .line 97
            aload 2 /* previous */
            ifnull 18
         8: .line 99
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLocationInParent:()Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;
            getstatic org.eclipse.jdt.core.dom.ArrayCreation.DIMENSIONS_PROPERTY:Lorg/eclipse/jdt/core/dom/ChildListPropertyDescriptor;
            if_acmpne 10
         9: .line 100
            iconst_0
            ireturn
        10: .line 102
      StackMap locals: org.eclipse.jdt.internal.core.dom.SourceRangeVerifier org.eclipse.jdt.core.dom.ASTNode org.eclipse.jdt.core.dom.ASTNode org.eclipse.jdt.core.dom.ASTNode int int int int
      StackMap stack:
            aload 2 /* previous */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStartPosition:()I
            istore 8 /* previousStart */
        start local 8 // int previousStart
        11: .line 103
            iload 8 /* previousStart */
            aload 2 /* previous */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLength:()I
            iadd
            istore 9 /* previousEnd */
        start local 9 // int previousEnd
        12: .line 104
            iload 6 /* childStart */
            iload 9 /* previousEnd */
            if_icmpge 18
        13: .line 105
            new java.lang.StringBuilder
            dup
            ldc "- parent ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* parentStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* parentEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* parent */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        14: .line 106
            ldc "   previous ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* previousStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* previousEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* previous */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        15: .line 107
            ldc "   "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLocationInParent:()Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;
            invokevirtual org.eclipse.jdt.core.dom.StructuralPropertyDescriptor.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* childStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* childEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* child */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        16: .line 105
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* bug */
        start local 10 // java.lang.String bug
        17: .line 108
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.bugs:Ljava/lang/StringBuffer;
            aload 10 /* bug */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 10 // java.lang.String bug
        end local 9 // int previousEnd
        end local 8 // int previousStart
        18: .line 111
      StackMap locals:
      StackMap stack:
            iload 4 /* parentStart */
            iload 6 /* childStart */
            if_icmpgt 19
            iload 7 /* childEnd */
            iload 5 /* parentEnd */
            if_icmple 23
        19: .line 112
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "- parent ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* parentStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* parentEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* parent */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        20: .line 113
            ldc "   "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getLocationInParent:()Lorg/eclipse/jdt/core/dom/StructuralPropertyDescriptor;
            invokevirtual org.eclipse.jdt.core.dom.StructuralPropertyDescriptor.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* childStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* childEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* child */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        21: .line 112
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* bug */
        start local 8 // java.lang.String bug
        22: .line 114
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.dom.SourceRangeVerifier.bugs:Ljava/lang/StringBuffer;
            aload 8 /* bug */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 8 // java.lang.String bug
        23: .line 116
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // int childEnd
        end local 6 // int childStart
        end local 5 // int parentEnd
        end local 4 // int parentStart
        end local 3 // org.eclipse.jdt.core.dom.ASTNode child
        end local 2 // org.eclipse.jdt.core.dom.ASTNode previous
        end local 1 // org.eclipse.jdt.core.dom.ASTNode parent
        end local 0 // org.eclipse.jdt.internal.core.dom.SourceRangeVerifier this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Lorg/eclipse/jdt/internal/core/dom/SourceRangeVerifier;
            0   24     1         parent  Lorg/eclipse/jdt/core/dom/ASTNode;
            0   24     2       previous  Lorg/eclipse/jdt/core/dom/ASTNode;
            0   24     3          child  Lorg/eclipse/jdt/core/dom/ASTNode;
            4   24     4    parentStart  I
            5   24     5      parentEnd  I
            6   24     6     childStart  I
            7   24     7       childEnd  I
           11   18     8  previousStart  I
           12   18     9    previousEnd  I
           17   18    10            bug  Ljava/lang/String;
           22   23     8            bug  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      parent    
      previous  
      child     
}
SourceFile: "SourceRangeVerifier.java"