public class com.jayway.jsonpath.internal.filter.FilterCompiler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.jayway.jsonpath.internal.filter.FilterCompiler
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final char DOC_CONTEXT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  private static final char EVAL_CONTEXT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private static final char OPEN_SQUARE_BRACKET;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  private static final char CLOSE_SQUARE_BRACKET;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 93

  private static final char OPEN_PARENTHESIS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  private static final char CLOSE_PARENTHESIS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  private static final char OPEN_OBJECT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 123

  private static final char CLOSE_OBJECT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 125

  private static final char OPEN_ARRAY;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  private static final char CLOSE_ARRAY;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 93

  private static final char SINGLE_QUOTE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 39

  private static final char DOUBLE_QUOTE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  private static final char SPACE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final char PERIOD;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 46

  private static final char AND;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 38

  private static final char OR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 124

  private static final char MINUS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 45

  private static final char LT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  private static final char GT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 62

  private static final char EQ;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  private static final char TILDE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 126

  private static final char TRUE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 116

  private static final char FALSE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 102

  private static final char NULL;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 110

  private static final char NOT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  private static final char PATTERN;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 47

  private static final char IGNORE_CASE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 105

  private com.jayway.jsonpath.internal.CharacterIndex filter;
    descriptor: Lcom/jayway/jsonpath/internal/CharacterIndex;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 14
            ldc Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.jayway.jsonpath.internal.filter.FilterCompiler.$assertionsDisabled:Z
         3: .line 15
            ldc Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
         4: .line 48
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.jayway.jsonpath.Filter compile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/jayway/jsonpath/Filter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String filterString
         0: .line 53
            new com.jayway.jsonpath.internal.filter.FilterCompiler
            dup
            aload 0 /* filterString */
            invokespecial com.jayway.jsonpath.internal.filter.FilterCompiler.<init>:(Ljava/lang/String;)V
            astore 1 /* compiler */
        start local 1 // com.jayway.jsonpath.internal.filter.FilterCompiler compiler
         1: .line 54
            new com.jayway.jsonpath.internal.filter.FilterCompiler$CompiledFilter
            dup
            aload 1 /* compiler */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.compile:()Lcom/jayway/jsonpath/Predicate;
            invokespecial com.jayway.jsonpath.internal.filter.FilterCompiler$CompiledFilter.<init>:(Lcom/jayway/jsonpath/Predicate;)V
            areturn
        end local 1 // com.jayway.jsonpath.internal.filter.FilterCompiler compiler
        end local 0 // java.lang.String filterString
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0  filterString  Ljava/lang/String;
            1    2     1      compiler  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
    MethodParameters:
              Name  Flags
      filterString  

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
        start local 1 // java.lang.String filterString
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            new com.jayway.jsonpath.internal.CharacterIndex
            dup
            aload 1 /* filterString */
            invokespecial com.jayway.jsonpath.internal.CharacterIndex.<init>:(Ljava/lang/CharSequence;)V
            putfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
         2: .line 59
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.trim:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
         3: .line 60
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 4
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.lastCharIs:(C)Z
            ifne 5
         4: .line 61
      StackMap locals: com.jayway.jsonpath.internal.filter.FilterCompiler java.lang.String
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Filter must start with '[' and end with ']'. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filterString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         6: .line 64
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.decrementEndPosition:(I)I
            pop
         7: .line 65
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.trim:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
         8: .line 66
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 63
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 10
         9: .line 67
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Filter must start with '[?' and end with ']'. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filterString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        11: .line 70
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.trim:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
        12: .line 71
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 40
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 13
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 41
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.lastCharIs:(C)Z
            ifne 14
        13: .line 72
      StackMap locals:
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Filter must start with '[?(' and end with ')]'. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filterString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 74
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String filterString
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            0   15     1  filterString  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      filterString  

  public com.jayway.jsonpath.Predicate compile();
    descriptor: ()Lcom/jayway/jsonpath/Predicate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 78
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            astore 1 /* result */
        start local 1 // com.jayway.jsonpath.internal.filter.ExpressionNode result
         1: .line 79
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
         2: .line 80
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 6
         3: .line 81
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected end of filter expression instead of: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 82
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.length:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            aastore
         5: .line 81
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 85
      StackMap locals: com.jayway.jsonpath.internal.filter.ExpressionNode
      StackMap stack:
            aload 1 /* result */
         7: areturn
        end local 1 // com.jayway.jsonpath.internal.filter.ExpressionNode result
         8: .line 86
      StackMap locals: com.jayway.jsonpath.internal.filter.FilterCompiler
      StackMap stack: com.jayway.jsonpath.InvalidPathException
            astore 1 /* e */
        start local 1 // com.jayway.jsonpath.InvalidPathException e
         9: .line 87
            aload 1 /* e */
            athrow
        end local 1 // com.jayway.jsonpath.InvalidPathException e
        10: .line 88
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        11: .line 89
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to parse filter: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", error on position: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", char: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1    8     1  result  Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            9   10     1       e  Lcom/jayway/jsonpath/InvalidPathException;
      Exception table:
        from    to  target  type
           0     7       8  Class com.jayway.jsonpath.InvalidPathException
           0     7      10  Class java.lang.Exception

  private com.jayway.jsonpath.internal.filter.ValueNode readValueNode();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 94
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            lookupswitch { // 3
                   33: 3
                   36: 1
                   64: 2
              default: 8
          }
         1: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readPath:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            areturn
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readPath:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            areturn
         3: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         4: .line 99
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            lookupswitch { // 2
                   36: 5
                   64: 6
              default: 7
          }
         5: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readPath:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            areturn
         6: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readPath:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            areturn
         7: .line 102
      StackMap locals:
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Unexpected character: %c"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 33
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNode;
            areturn
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;

  private com.jayway.jsonpath.internal.filter.ValueNode readLiteral();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 109
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            lookupswitch { // 9
                   34: 2
                   39: 1
                   45: 5
                   47: 9
                   91: 8
                  102: 4
                  110: 6
                  116: 3
                  123: 7
              default: 10
          }
         1: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 39
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readStringLiteral:(C)Lcom/jayway/jsonpath/internal/filter/ValueNodes$StringNode;
            areturn
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 34
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readStringLiteral:(C)Lcom/jayway/jsonpath/internal/filter/ValueNodes$StringNode;
            areturn
         3: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readBooleanLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
            areturn
         4: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readBooleanLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
            areturn
         5: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readNumberLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NumberNode;
            areturn
         6: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readNullLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NullNode;
            areturn
         7: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readJsonLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$JsonNode;
            areturn
         8: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readJsonLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$JsonNode;
            areturn
         9: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readPattern:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PatternNode;
            areturn
        10: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readNumberLiteral:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NumberNode;
            areturn
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;

  private com.jayway.jsonpath.internal.filter.ExpressionNode readLogicalOR();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 131
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ops */
        start local 1 // java.util.List ops
         1: .line 132
            aload 1 /* ops */
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 135
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* savepoint */
        start local 2 // int savepoint
         3: .line 136
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            getstatic com.jayway.jsonpath.internal.filter.LogicalOperator.OR:Lcom/jayway/jsonpath/internal/filter/LogicalOperator;
            invokevirtual com.jayway.jsonpath.internal.filter.LogicalOperator.getOperatorString:()Ljava/lang/String;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.hasSignificantSubSequence:(Ljava/lang/CharSequence;)Z
            ifeq 6
         4: .line 137
            aload 1 /* ops */
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 138
            goto 2
         6: .line 139
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* savepoint */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        end local 2 // int savepoint
         7: .line 144
            iconst_1
            aload 1 /* ops */
            invokeinterface java.util.List.size:()I
            if_icmpne 8
            aload 1 /* ops */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.jayway.jsonpath.internal.filter.ExpressionNode
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 1 /* ops */
            invokestatic com.jayway.jsonpath.internal.filter.LogicalExpressionNode.createLogicalOr:(Ljava/util/Collection;)Lcom/jayway/jsonpath/internal/filter/LogicalExpressionNode;
      StackMap locals:
      StackMap stack: com.jayway.jsonpath.internal.filter.ExpressionNode
         9: areturn
        end local 1 // java.util.List ops
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   10     1        ops  Ljava/util/List<Lcom/jayway/jsonpath/internal/filter/ExpressionNode;>;
            3    7     2  savepoint  I

  private com.jayway.jsonpath.internal.filter.ExpressionNode readLogicalAND();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 149
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ops */
        start local 1 // java.util.List ops
         1: .line 150
            aload 1 /* ops */
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalANDOperand:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 153
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* savepoint */
        start local 2 // int savepoint
         3: .line 154
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            getstatic com.jayway.jsonpath.internal.filter.LogicalOperator.AND:Lcom/jayway/jsonpath/internal/filter/LogicalOperator;
            invokevirtual com.jayway.jsonpath.internal.filter.LogicalOperator.getOperatorString:()Ljava/lang/String;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.hasSignificantSubSequence:(Ljava/lang/CharSequence;)Z
            ifeq 6
         4: .line 155
            aload 1 /* ops */
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalANDOperand:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 156
            goto 2
         6: .line 157
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* savepoint */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        end local 2 // int savepoint
         7: .line 162
            iconst_1
            aload 1 /* ops */
            invokeinterface java.util.List.size:()I
            if_icmpne 8
            aload 1 /* ops */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.jayway.jsonpath.internal.filter.ExpressionNode
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 1 /* ops */
            invokestatic com.jayway.jsonpath.internal.filter.LogicalExpressionNode.createLogicalAnd:(Ljava/util/Collection;)Lcom/jayway/jsonpath/internal/filter/LogicalExpressionNode;
      StackMap locals:
      StackMap stack: com.jayway.jsonpath.internal.filter.ExpressionNode
         9: areturn
        end local 1 // java.util.List ops
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   10     1        ops  Ljava/util/List<Lcom/jayway/jsonpath/internal/filter/ExpressionNode;>;
            3    7     2  savepoint  I

  private com.jayway.jsonpath.internal.filter.ExpressionNode readLogicalANDOperand();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 166
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* savepoint */
        start local 1 // int savepoint
         1: .line 167
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 33
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 8
         2: .line 168
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 33
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.readSignificantChar:(C)V
         3: .line 169
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            lookupswitch { // 2
                   36: 4
                   64: 4
              default: 6
          }
         4: .line 172
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* savepoint */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
         5: .line 173
            goto 8
         6: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalANDOperand:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            astore 2 /* op */
        start local 2 // com.jayway.jsonpath.internal.filter.ExpressionNode op
         7: .line 176
            aload 2 /* op */
            invokestatic com.jayway.jsonpath.internal.filter.LogicalExpressionNode.createLogicalNot:(Lcom/jayway/jsonpath/internal/filter/ExpressionNode;)Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            areturn
        end local 2 // com.jayway.jsonpath.internal.filter.ExpressionNode op
         8: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 40
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 13
         9: .line 180
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 40
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.readSignificantChar:(C)V
        10: .line 181
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR:()Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
            astore 2 /* op */
        start local 2 // com.jayway.jsonpath.internal.filter.ExpressionNode op
        11: .line 182
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 41
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.readSignificantChar:(C)V
        12: .line 183
            aload 2 /* op */
            areturn
        end local 2 // com.jayway.jsonpath.internal.filter.ExpressionNode op
        13: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readExpression:()Lcom/jayway/jsonpath/internal/filter/RelationalExpressionNode;
            areturn
        end local 1 // int savepoint
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   14     1  savepoint  I
            7    8     2         op  Lcom/jayway/jsonpath/internal/filter/ExpressionNode;
           11   13     2         op  Lcom/jayway/jsonpath/internal/filter/ExpressionNode;

  private com.jayway.jsonpath.internal.filter.RelationalExpressionNode readExpression();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/RelationalExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 190
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readValueNode:()Lcom/jayway/jsonpath/internal/filter/ValueNode;
            astore 1 /* left */
        start local 1 // com.jayway.jsonpath.internal.filter.ValueNode left
         1: .line 191
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* savepoint */
        start local 2 // int savepoint
         2: .line 193
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readRelationalOperator:()Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
            astore 3 /* operator */
        start local 3 // com.jayway.jsonpath.internal.filter.RelationalOperator operator
         3: .line 194
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.readValueNode:()Lcom/jayway/jsonpath/internal/filter/ValueNode;
            astore 4 /* right */
        start local 4 // com.jayway.jsonpath.internal.filter.ValueNode right
         4: .line 195
            new com.jayway.jsonpath.internal.filter.RelationalExpressionNode
            dup
            aload 1 /* left */
            aload 3 /* operator */
            aload 4 /* right */
            invokespecial com.jayway.jsonpath.internal.filter.RelationalExpressionNode.<init>:(Lcom/jayway/jsonpath/internal/filter/ValueNode;Lcom/jayway/jsonpath/internal/filter/RelationalOperator;Lcom/jayway/jsonpath/internal/filter/ValueNode;)V
         5: areturn
        end local 4 // com.jayway.jsonpath.internal.filter.ValueNode right
        end local 3 // com.jayway.jsonpath.internal.filter.RelationalOperator operator
         6: .line 197
      StackMap locals: com.jayway.jsonpath.internal.filter.FilterCompiler com.jayway.jsonpath.internal.filter.ValueNode int
      StackMap stack: com.jayway.jsonpath.InvalidPathException
            pop
         7: .line 198
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* savepoint */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
         8: .line 201
            aload 1 /* left */
            invokevirtual com.jayway.jsonpath.internal.filter.ValueNode.asPathNode:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            astore 3 /* pathNode */
        start local 3 // com.jayway.jsonpath.internal.filter.ValueNodes$PathNode pathNode
         9: .line 202
            aload 3 /* pathNode */
            aload 3 /* pathNode */
            invokevirtual com.jayway.jsonpath.internal.filter.ValueNodes$PathNode.shouldExists:()Z
            invokevirtual com.jayway.jsonpath.internal.filter.ValueNodes$PathNode.asExistsCheck:(Z)Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            astore 1 /* left */
        10: .line 203
            getstatic com.jayway.jsonpath.internal.filter.RelationalOperator.EXISTS:Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
            astore 4 /* operator */
        start local 4 // com.jayway.jsonpath.internal.filter.RelationalOperator operator
        11: .line 204
            aload 1 /* left */
            invokevirtual com.jayway.jsonpath.internal.filter.ValueNode.asPathNode:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            invokevirtual com.jayway.jsonpath.internal.filter.ValueNodes$PathNode.shouldExists:()Z
            ifeq 12
            getstatic com.jayway.jsonpath.internal.filter.ValueNodes.TRUE:Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
            goto 13
      StackMap locals: com.jayway.jsonpath.internal.filter.ValueNodes$PathNode com.jayway.jsonpath.internal.filter.RelationalOperator
      StackMap stack:
        12: getstatic com.jayway.jsonpath.internal.filter.ValueNodes.FALSE:Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
      StackMap locals:
      StackMap stack: com.jayway.jsonpath.internal.filter.ValueNodes$BooleanNode
        13: astore 5 /* right */
        start local 5 // com.jayway.jsonpath.internal.filter.ValueNode right
        14: .line 205
            new com.jayway.jsonpath.internal.filter.RelationalExpressionNode
            dup
            aload 1 /* left */
            aload 4 /* operator */
            aload 5 /* right */
            invokespecial com.jayway.jsonpath.internal.filter.RelationalExpressionNode.<init>:(Lcom/jayway/jsonpath/internal/filter/ValueNode;Lcom/jayway/jsonpath/internal/filter/RelationalOperator;Lcom/jayway/jsonpath/internal/filter/ValueNode;)V
            areturn
        end local 5 // com.jayway.jsonpath.internal.filter.ValueNode right
        end local 4 // com.jayway.jsonpath.internal.filter.RelationalOperator operator
        end local 3 // com.jayway.jsonpath.internal.filter.ValueNodes$PathNode pathNode
        end local 2 // int savepoint
        end local 1 // com.jayway.jsonpath.internal.filter.ValueNode left
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   15     1       left  Lcom/jayway/jsonpath/internal/filter/ValueNode;
            2   15     2  savepoint  I
            3    6     3   operator  Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
            4    6     4      right  Lcom/jayway/jsonpath/internal/filter/ValueNode;
            9   15     3   pathNode  Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
           11   15     4   operator  Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
           14   15     5      right  Lcom/jayway/jsonpath/internal/filter/ValueNode;
      Exception table:
        from    to  target  type
           2     5       6  Class com.jayway.jsonpath.InvalidPathException

  private com.jayway.jsonpath.internal.filter.LogicalOperator readLogicalOperator();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/LogicalOperator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 209
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 210
            iload 1 /* begin */
            iconst_1
            iadd
            istore 2 /* end */
        start local 2 // int end
         2: .line 212
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* end */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifne 4
         3: .line 213
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected boolean literal"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 215
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            iload 2 /* end */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 3 /* logicalOperator */
        start local 3 // java.lang.CharSequence logicalOperator
         5: .line 216
            aload 3 /* logicalOperator */
            ldc "||"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 7
            aload 3 /* logicalOperator */
            ldc "&&"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 217
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected logical operator"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 219
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 3 /* logicalOperator */
            invokeinterface java.lang.CharSequence.length:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         8: .line 220
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "LogicalOperator from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 2 /* end */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* logicalOperator */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 222
            aload 3 /* logicalOperator */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.filter.LogicalOperator.fromString:(Ljava/lang/String;)Lcom/jayway/jsonpath/internal/filter/LogicalOperator;
            areturn
        end local 3 // java.lang.CharSequence logicalOperator
        end local 2 // int end
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   10     1            begin  I
            2   10     2              end  I
            5   10     3  logicalOperator  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.RelationalOperator readRelationalOperator();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 226
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.skipBlanks:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 228
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.isRelationalOperatorChar:(C)Z
            ifeq 7
         2: .line 229
            goto 4
         3: .line 230
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         4: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 8
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.isRelationalOperatorChar:(C)Z
            ifne 3
         5: .line 232
            goto 8
         6: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         7: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 8
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 32
            if_icmpne 6
         8: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 2 /* operator */
        start local 2 // java.lang.CharSequence operator
         9: .line 239
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "Operator from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_1
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* operator */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 240
            aload 2 /* operator */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.filter.RelationalOperator.fromString:(Ljava/lang/String;)Lcom/jayway/jsonpath/internal/filter/RelationalOperator;
            areturn
        end local 2 // java.lang.CharSequence operator
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   11     1     begin  I
            9   11     2  operator  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$NullNode readNullLiteral();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NullNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 244
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 245
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 110
            if_icmpne 7
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_3
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifeq 7
         2: .line 246
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_4
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 2 /* nullValue */
        start local 2 // java.lang.CharSequence nullValue
         3: .line 247
            ldc "null"
            aload 2 /* nullValue */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 248
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "NullLiteral from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_3
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* nullValue */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 249
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 2 /* nullValue */
            invokeinterface java.lang.CharSequence.length:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         6: .line 250
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createNullNode:()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NullNode;
            areturn
        end local 2 // java.lang.CharSequence nullValue
         7: .line 253
      StackMap locals: int
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected <null> value"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1    8     1      begin  I
            3    7     2  nullValue  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$JsonNode readJsonLiteral();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$JsonNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 257
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 259
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            istore 2 /* openChar */
        start local 2 // char openChar
         2: .line 261
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.$assertionsDisabled:Z
            ifne 3
            iload 2 /* openChar */
            bipush 91
            if_icmpeq 3
            iload 2 /* openChar */
            bipush 123
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 263
      StackMap locals: int int
      StackMap stack:
            iload 2 /* openChar */
            bipush 91
            if_icmpne 4
            bipush 93
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 125
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* closeChar */
        start local 3 // char closeChar
         6: .line 265
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iload 2 /* openChar */
            iload 3 /* closeChar */
            iconst_1
            iconst_0
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfMatchingCloseChar:(ICCZZ)I
            istore 4 /* closingIndex */
        start local 4 // int closingIndex
         7: .line 266
            iload 4 /* closingIndex */
            iconst_m1
            if_icmpne 9
         8: .line 267
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "String not closed. Expected ' in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 269
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* closingIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        10: .line 271
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 5 /* json */
        start local 5 // java.lang.CharSequence json
        11: .line 272
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "JsonLiteral from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 5 /* json */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 273
            aload 5 /* json */
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createJsonNode:(Ljava/lang/CharSequence;)Lcom/jayway/jsonpath/internal/filter/ValueNodes$JsonNode;
            areturn
        end local 5 // java.lang.CharSequence json
        end local 4 // int closingIndex
        end local 3 // char closeChar
        end local 2 // char openChar
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   13     1         begin  I
            2   13     2      openChar  C
            6   13     3     closeChar  C
            7   13     4  closingIndex  I
           11   13     5          json  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$PatternNode readPattern();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PatternNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 278
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 279
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 47
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOfUnescaped:(C)I
            istore 2 /* closingIndex */
        start local 2 // int closingIndex
         2: .line 280
            iload 2 /* closingIndex */
            iconst_m1
            if_icmpne 4
         3: .line 281
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Pattern not closed. Expected / in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 283
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* closingIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifeq 11
         5: .line 284
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 61
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOf:(C)I
            istore 3 /* equalSignIndex */
        start local 3 // int equalSignIndex
         6: .line 285
            iload 3 /* equalSignIndex */
            iload 2 /* closingIndex */
            if_icmple 7
            iload 3 /* equalSignIndex */
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 41
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOfUnescaped:(C)I
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* endIndex */
        start local 4 // int endIndex
         9: .line 286
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* closingIndex */
            iconst_1
            iadd
            iload 4 /* endIndex */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 5 /* flags */
        start local 5 // java.lang.CharSequence flags
        10: .line 287
            iload 2 /* closingIndex */
            aload 5 /* flags */
            invokeinterface java.lang.CharSequence.length:()I
            iadd
            istore 2 /* closingIndex */
        end local 5 // java.lang.CharSequence flags
        end local 4 // int endIndex
        end local 3 // int equalSignIndex
        11: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* closingIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        12: .line 291
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 3 /* pattern */
        start local 3 // java.lang.CharSequence pattern
        13: .line 292
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "PatternNode from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* pattern */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 293
            aload 3 /* pattern */
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createPatternNode:(Ljava/lang/CharSequence;)Lcom/jayway/jsonpath/internal/filter/ValueNodes$PatternNode;
            areturn
        end local 3 // java.lang.CharSequence pattern
        end local 2 // int closingIndex
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   15     1           begin  I
            2   15     2    closingIndex  I
            6   11     3  equalSignIndex  I
            9   11     4        endIndex  I
           10   11     5           flags  Ljava/lang/CharSequence;
           13   15     3         pattern  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$StringNode readStringLiteral(char);
    descriptor: (C)Lcom/jayway/jsonpath/internal/filter/ValueNodes$StringNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
        start local 1 // char endChar
         0: .line 297
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* begin */
        start local 2 // int begin
         1: .line 299
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* endChar */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOfUnescaped:(C)I
            istore 3 /* closingSingleQuoteIndex */
        start local 3 // int closingSingleQuoteIndex
         2: .line 300
            iload 3 /* closingSingleQuoteIndex */
            iconst_m1
            if_icmpne 4
         3: .line 301
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "String literal does not have matching quotes. Expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* endChar */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 303
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* closingSingleQuoteIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
         5: .line 305
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 4 /* stringLiteral */
        start local 4 // java.lang.CharSequence stringLiteral
         6: .line 306
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "StringLiteral from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 4 /* stringLiteral */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 307
            aload 4 /* stringLiteral */
            iconst_1
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createStringNode:(Ljava/lang/CharSequence;Z)Lcom/jayway/jsonpath/internal/filter/ValueNodes$StringNode;
            areturn
        end local 4 // java.lang.CharSequence stringLiteral
        end local 3 // int closingSingleQuoteIndex
        end local 2 // int begin
        end local 1 // char endChar
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            0    8     1                  endChar  C
            1    8     2                    begin  I
            2    8     3  closingSingleQuoteIndex  I
            6    8     4            stringLiteral  Ljava/lang/CharSequence;
    MethodParameters:
         Name  Flags
      endChar  

  private com.jayway.jsonpath.internal.filter.ValueNodes$NumberNode readNumberLiteral();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$NumberNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 311
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 313
            goto 3
         2: .line 314
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         3: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 4
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.isNumberCharacter:(I)Z
            ifne 2
         4: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 2 /* numberLiteral */
        start local 2 // java.lang.CharSequence numberLiteral
         5: .line 317
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "NumberLiteral from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* numberLiteral */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 318
            aload 2 /* numberLiteral */
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createNumberNode:(Ljava/lang/CharSequence;)Lcom/jayway/jsonpath/internal/filter/ValueNodes$NumberNode;
            areturn
        end local 2 // java.lang.CharSequence numberLiteral
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1    7     1          begin  I
            5    7     2  numberLiteral  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$BooleanNode readBooleanLiteral();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 322
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 1 /* begin */
        start local 1 // int begin
         1: .line 323
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 116
            if_icmpne 2
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_3
            iadd
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_4
            iadd
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* end */
        start local 2 // int end
         4: .line 325
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* end */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifne 6
         5: .line 326
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected boolean literal"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 328
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 1 /* begin */
            iload 2 /* end */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 3 /* boolValue */
        start local 3 // java.lang.CharSequence boolValue
         7: .line 329
            aload 3 /* boolValue */
            ldc "true"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 3 /* boolValue */
            ldc "false"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 330
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Expected boolean literal"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 332
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 3 /* boolValue */
            invokeinterface java.lang.CharSequence.length:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        10: .line 333
            getstatic com.jayway.jsonpath.internal.filter.FilterCompiler.logger:Lorg/slf4j/Logger;
            ldc "BooleanLiteral from {} to {} -> [{}]"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* begin */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 2 /* end */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* boolValue */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 335
            aload 3 /* boolValue */
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createBooleanNode:(Ljava/lang/CharSequence;)Lcom/jayway/jsonpath/internal/filter/ValueNodes$BooleanNode;
            areturn
        end local 3 // java.lang.CharSequence boolValue
        end local 2 // int end
        end local 1 // int begin
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   12     1      begin  I
            4   12     2        end  I
            7   12     3  boolValue  Ljava/lang/CharSequence;

  private com.jayway.jsonpath.internal.filter.ValueNodes$PathNode readPath();
    descriptor: ()Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 339
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.previousSignificantChar:()C
            istore 1 /* previousSignificantChar */
        start local 1 // char previousSignificantChar
         1: .line 340
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* begin */
        start local 2 // int begin
         2: .line 342
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         3: .line 343
            goto 18
         4: .line 344
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 91
            if_icmpne 9
         5: .line 345
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            bipush 91
            bipush 93
            iconst_1
            iconst_0
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfMatchingCloseChar:(ICCZZ)I
            istore 3 /* closingSquareBracketIndex */
        start local 3 // int closingSquareBracketIndex
         6: .line 346
            iload 3 /* closingSquareBracketIndex */
            iconst_m1
            if_icmpne 8
         7: .line 347
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Square brackets does not match in filter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 349
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* closingSquareBracketIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        end local 3 // int closingSquareBracketIndex
         9: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 41
            if_icmpne 10
            aload 0 /* this */
            iload 2 /* begin */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.currentCharIsClosingFunctionBracket:(I)Z
            ifeq 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 3 /* closingFunctionBracket */
        start local 3 // boolean closingFunctionBracket
        12: .line 353
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 41
            if_icmpne 13
            iload 3 /* closingFunctionBracket */
            ifne 13
            iconst_1
            goto 14
      StackMap locals: int
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 4 /* closingLogicalBracket */
        start local 4 // boolean closingLogicalBracket
        15: .line 355
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 19
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.isRelationalOperatorChar:(C)Z
            ifne 19
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 32
            if_icmpeq 19
            iload 4 /* closingLogicalBracket */
            ifeq 17
        16: .line 356
            goto 19
        17: .line 358
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        end local 4 // boolean closingLogicalBracket
        end local 3 // boolean closingFunctionBracket
        18: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifne 4
        19: .line 362
      StackMap locals:
      StackMap stack:
            iload 1 /* previousSignificantChar */
            bipush 33
            if_icmpne 20
            iconst_0
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_1
      StackMap locals:
      StackMap stack: int
        21: istore 3 /* shouldExists */
        start local 3 // boolean shouldExists
        22: .line 363
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* begin */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            astore 4 /* path */
        start local 4 // java.lang.CharSequence path
        23: .line 364
            aload 4 /* path */
            iconst_0
            iload 3 /* shouldExists */
            invokestatic com.jayway.jsonpath.internal.filter.ValueNode.createPathNode:(Ljava/lang/CharSequence;ZZ)Lcom/jayway/jsonpath/internal/filter/ValueNodes$PathNode;
            areturn
        end local 4 // java.lang.CharSequence path
        end local 3 // boolean shouldExists
        end local 2 // int begin
        end local 1 // char previousSignificantChar
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   24     0                       this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1   24     1    previousSignificantChar  C
            2   24     2                      begin  I
            6    9     3  closingSquareBracketIndex  I
           12   18     3     closingFunctionBracket  Z
           15   18     4      closingLogicalBracket  Z
           22   24     3               shouldExists  Z
           23   24     4                       path  Ljava/lang/CharSequence;

  private boolean expressionIsTerminated();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
         0: .line 368
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            istore 1 /* c */
        start local 1 // char c
         1: .line 369
            iload 1 /* c */
            bipush 41
            if_icmpeq 2
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.isLogicalOperatorChar:(C)Z
            ifeq 3
         2: .line 370
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
         3: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantChar:()C
            istore 1 /* c */
         4: .line 373
            iload 1 /* c */
            bipush 41
            if_icmpeq 5
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.jayway.jsonpath.internal.filter.FilterCompiler.isLogicalOperatorChar:(C)Z
            ifeq 6
         5: .line 374
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 376
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // char c
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            1    7     1     c  C

  private boolean currentCharIsClosingFunctionBracket(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
        start local 1 // int lowerBound
         0: .line 380
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 41
            if_icmpeq 2
         1: .line 381
            iconst_0
            ireturn
         2: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfPreviousSignificantChar:()I
            istore 2 /* idx */
        start local 2 // int idx
         3: .line 384
            iload 2 /* idx */
            iconst_m1
            if_icmpeq 4
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* idx */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            bipush 40
            if_icmpeq 5
         4: .line 385
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         5: .line 387
      StackMap locals:
      StackMap stack:
            iinc 2 /* idx */ -1
         6: .line 388
            goto 10
         7: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* idx */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            bipush 46
            if_icmpne 9
         8: .line 390
            iconst_1
            ireturn
         9: .line 392
      StackMap locals:
      StackMap stack:
            iinc 2 /* idx */ -1
        10: .line 388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.filter.FilterCompiler.filter:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* idx */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifeq 11
            iload 2 /* idx */
            iload 1 /* lowerBound */
            if_icmpgt 7
        11: .line 394
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int idx
        end local 1 // int lowerBound
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            0   12     1  lowerBound  I
            3   12     2         idx  I
    MethodParameters:
            Name  Flags
      lowerBound  

  private boolean isLogicalOperatorChar(char);
    descriptor: (C)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
        start local 1 // char c
         0: .line 398
            iload 1 /* c */
            bipush 38
            if_icmpeq 1
            iload 1 /* c */
            bipush 124
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // char c
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean isRelationalOperatorChar(char);
    descriptor: (C)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
        start local 1 // char c
         0: .line 402
            iload 1 /* c */
            bipush 60
            if_icmpeq 1
            iload 1 /* c */
            bipush 62
            if_icmpeq 1
            iload 1 /* c */
            bipush 61
            if_icmpeq 1
            iload 1 /* c */
            bipush 126
            if_icmpeq 1
            iload 1 /* c */
            bipush 33
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // char c
        end local 0 // com.jayway.jsonpath.internal.filter.FilterCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/jayway/jsonpath/internal/filter/FilterCompiler;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "FilterCompiler.java"
NestMembers:
  com.jayway.jsonpath.internal.filter.FilterCompiler$CompiledFilter
InnerClasses:
  private final CompiledFilter = com.jayway.jsonpath.internal.filter.FilterCompiler$CompiledFilter of com.jayway.jsonpath.internal.filter.FilterCompiler
  public BooleanNode = com.jayway.jsonpath.internal.filter.ValueNodes$BooleanNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public JsonNode = com.jayway.jsonpath.internal.filter.ValueNodes$JsonNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public NullNode = com.jayway.jsonpath.internal.filter.ValueNodes$NullNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public NumberNode = com.jayway.jsonpath.internal.filter.ValueNodes$NumberNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public PathNode = com.jayway.jsonpath.internal.filter.ValueNodes$PathNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public PatternNode = com.jayway.jsonpath.internal.filter.ValueNodes$PatternNode of com.jayway.jsonpath.internal.filter.ValueNodes
  public StringNode = com.jayway.jsonpath.internal.filter.ValueNodes$StringNode of com.jayway.jsonpath.internal.filter.ValueNodes