public class com.jayway.jsonpath.internal.path.PathCompiler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.jayway.jsonpath.internal.path.PathCompiler
  super_class: java.lang.Object
{
  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_BRACE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 123

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

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

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

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

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

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

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

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

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

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

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

  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 final java.util.LinkedList<com.jayway.jsonpath.Predicate> filterStack;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;

  private final com.jayway.jsonpath.internal.CharacterIndex path;
    descriptor: Lcom/jayway/jsonpath/internal/CharacterIndex;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$com$jayway$jsonpath$internal$function$ParamType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>(java.lang.String, java.util.LinkedList<com.jayway.jsonpath.Predicate>);
    descriptor: (Ljava/lang/String;Ljava/util/LinkedList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // java.lang.String path
        start local 2 // java.util.LinkedList filterStack
         0: .line 49
            aload 0 /* this */
            new com.jayway.jsonpath.internal.CharacterIndex
            dup
            aload 1 /* path */
            invokespecial com.jayway.jsonpath.internal.CharacterIndex.<init>:(Ljava/lang/CharSequence;)V
            aload 2 /* filterStack */
            invokespecial com.jayway.jsonpath.internal.path.PathCompiler.<init>:(Lcom/jayway/jsonpath/internal/CharacterIndex;Ljava/util/LinkedList;)V
         1: .line 50
            return
        end local 2 // java.util.LinkedList filterStack
        end local 1 // java.lang.String path
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0    2     1         path  Ljava/lang/String;
            0    2     2  filterStack  Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;
    Signature: (Ljava/lang/String;Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;)V
    MethodParameters:
             Name  Flags
      path         
      filterStack  

  private void <init>(com.jayway.jsonpath.internal.CharacterIndex, java.util.LinkedList<com.jayway.jsonpath.Predicate>);
    descriptor: (Lcom/jayway/jsonpath/internal/CharacterIndex;Ljava/util/LinkedList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.CharacterIndex path
        start local 2 // java.util.LinkedList filterStack
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 2 /* filterStack */
            putfield com.jayway.jsonpath.internal.path.PathCompiler.filterStack:Ljava/util/LinkedList;
         2: .line 54
            aload 0 /* this */
            aload 1 /* path */
            putfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
         3: .line 55
            return
        end local 2 // java.util.LinkedList filterStack
        end local 1 // com.jayway.jsonpath.internal.CharacterIndex path
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0    4     1         path  Lcom/jayway/jsonpath/internal/CharacterIndex;
            0    4     2  filterStack  Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;
    Signature: (Lcom/jayway/jsonpath/internal/CharacterIndex;Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;)V
    MethodParameters:
             Name  Flags
      path         
      filterStack  

  private com.jayway.jsonpath.internal.Path compile();
    descriptor: ()Lcom/jayway/jsonpath/internal/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
         0: .line 58
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readContextToken:()Lcom/jayway/jsonpath/internal/path/RootPathToken;
            astore 1 /* root */
        start local 1 // com.jayway.jsonpath.internal.path.RootPathToken root
         1: .line 59
            new com.jayway.jsonpath.internal.path.CompiledPath
            dup
            aload 1 /* root */
            aload 1 /* root */
            invokevirtual com.jayway.jsonpath.internal.path.RootPathToken.getPathFragment:()Ljava/lang/String;
            ldc "$"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            invokespecial com.jayway.jsonpath.internal.path.CompiledPath.<init>:(Lcom/jayway/jsonpath/internal/path/RootPathToken;Z)V
            areturn
        end local 1 // com.jayway.jsonpath.internal.path.RootPathToken root
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            1    2     1  root  Lcom/jayway/jsonpath/internal/path/RootPathToken;

  public static com.jayway.jsonpath.internal.Path compile(java.lang.String, com.jayway.jsonpath.Predicate[]);
    descriptor: (Ljava/lang/String;[Lcom/jayway/jsonpath/Predicate;)Lcom/jayway/jsonpath/internal/Path;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.String path
        start local 1 // com.jayway.jsonpath.Predicate[] filters
         0: .line 64
            new com.jayway.jsonpath.internal.CharacterIndex
            dup
            aload 0 /* path */
            invokespecial com.jayway.jsonpath.internal.CharacterIndex.<init>:(Ljava/lang/CharSequence;)V
            astore 2 /* ci */
        start local 2 // com.jayway.jsonpath.internal.CharacterIndex ci
         1: .line 65
            aload 2 /* ci */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.trim:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
         2: .line 67
            aload 2 /* ci */
            iconst_0
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            bipush 36
            if_icmpeq 5
            aload 2 /* ci */
            iconst_0
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            bipush 64
            if_icmpeq 5
         3: .line 68
            new com.jayway.jsonpath.internal.CharacterIndex
            dup
            new java.lang.StringBuilder
            dup
            ldc "$."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.internal.CharacterIndex.<init>:(Ljava/lang/CharSequence;)V
            astore 2 /* ci */
         4: .line 69
            aload 2 /* ci */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.trim:()Lcom/jayway/jsonpath/internal/CharacterIndex;
            pop
         5: .line 71
      StackMap locals: com.jayway.jsonpath.internal.CharacterIndex
      StackMap stack:
            aload 2 /* ci */
            bipush 46
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.lastCharIs:(C)Z
            ifeq 7
         6: .line 72
            ldc "Path must not end with a '.' or '..'"
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
         7: .line 74
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            aload 1 /* filters */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
            astore 3 /* filterStack */
        start local 3 // java.util.LinkedList filterStack
         8: .line 75
            new com.jayway.jsonpath.internal.path.PathCompiler
            dup
            aload 2 /* ci */
            aload 3 /* filterStack */
            invokespecial com.jayway.jsonpath.internal.path.PathCompiler.<init>:(Lcom/jayway/jsonpath/internal/CharacterIndex;Ljava/util/LinkedList;)V
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.compile:()Lcom/jayway/jsonpath/internal/Path;
            astore 4 /* p */
        start local 4 // com.jayway.jsonpath.internal.Path p
         9: .line 76
            aload 4 /* p */
        10: areturn
        end local 4 // com.jayway.jsonpath.internal.Path p
        end local 3 // java.util.LinkedList filterStack
        end local 2 // com.jayway.jsonpath.internal.CharacterIndex ci
        11: .line 77
      StackMap locals: java.lang.String com.jayway.jsonpath.Predicate[]
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        12: .line 79
            aload 2 /* e */
            instanceof com.jayway.jsonpath.InvalidPathException
            ifeq 15
        13: .line 80
            aload 2 /* e */
            checkcast com.jayway.jsonpath.InvalidPathException
            astore 3 /* ipe */
        start local 3 // com.jayway.jsonpath.InvalidPathException ipe
        14: .line 81
            goto 16
        end local 3 // com.jayway.jsonpath.InvalidPathException ipe
        15: .line 82
      StackMap locals: java.lang.Exception
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            aload 2 /* e */
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/Throwable;)V
            astore 3 /* ipe */
        start local 3 // com.jayway.jsonpath.InvalidPathException ipe
        16: .line 84
      StackMap locals: com.jayway.jsonpath.InvalidPathException
      StackMap stack:
            aload 3 /* ipe */
            athrow
        end local 3 // com.jayway.jsonpath.InvalidPathException ipe
        end local 2 // java.lang.Exception e
        end local 1 // com.jayway.jsonpath.Predicate[] filters
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         path  Ljava/lang/String;
            0   17     1      filters  [Lcom/jayway/jsonpath/Predicate;
            1   11     2           ci  Lcom/jayway/jsonpath/internal/CharacterIndex;
            8   11     3  filterStack  Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;
            9   11     4            p  Lcom/jayway/jsonpath/internal/Path;
           12   17     2            e  Ljava/lang/Exception;
           14   15     3          ipe  Lcom/jayway/jsonpath/InvalidPathException;
           16   17     3          ipe  Lcom/jayway/jsonpath/InvalidPathException;
      Exception table:
        from    to  target  type
           0    10      11  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      path     
      filters  final

  private void readWhitespace();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
         0: .line 89
            goto 5
         1: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            istore 1 /* c */
        start local 1 // char c
         2: .line 91
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.isWhitespace:(C)Z
            ifne 4
         3: .line 92
            goto 6
         4: .line 94
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        end local 1 // char c
         5: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifne 1
         6: .line 96
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            2    5     1     c  C

  private java.lang.Boolean isPathContext(char);
    descriptor: (C)Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // char c
         0: .line 99
            iload 1 /* c */
            bipush 36
            if_icmpeq 1
            iload 1 /* c */
            bipush 64
            if_icmpeq 1
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // char c
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private com.jayway.jsonpath.internal.path.RootPathToken readContextToken();
    descriptor: ()Lcom/jayway/jsonpath/internal/path/RootPathToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
         0: .line 105
            aload 0 /* this */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readWhitespace:()V
         1: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.isPathContext:(C)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 3
         2: .line 108
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Path must start with '$' or '@'"
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createRootPathToken:(C)Lcom/jayway/jsonpath/internal/path/RootPathToken;
            astore 1 /* pathToken */
        start local 1 // com.jayway.jsonpath.internal.path.RootPathToken pathToken
         4: .line 113
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifeq 6
         5: .line 114
            aload 1 /* pathToken */
            areturn
         6: .line 117
      StackMap locals: com.jayway.jsonpath.internal.path.RootPathToken
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         7: .line 119
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 46
            if_icmpeq 9
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            bipush 91
            if_icmpeq 9
         8: .line 120
            new java.lang.StringBuilder
            dup
            ldc "Illegal character at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " expected '.' or '['"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
         9: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* pathToken */
            invokevirtual com.jayway.jsonpath.internal.path.RootPathToken.getPathTokenAppender:()Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            astore 2 /* appender */
        start local 2 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        10: .line 124
            aload 0 /* this */
            aload 2 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            pop
        11: .line 126
            aload 1 /* pathToken */
            areturn
        end local 2 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 1 // com.jayway.jsonpath.internal.path.RootPathToken pathToken
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            4   12     1  pathToken  Lcom/jayway/jsonpath/internal/path/RootPathToken;
           10   12     2   appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;

  private boolean readNextToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 134
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            istore 2 /* c */
        start local 2 // char c
         1: .line 136
            iload 2 /* c */
            lookupswitch { // 3
                   42: 14
                   46: 10
                   91: 2
              default: 18
          }
         2: .line 138
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readBracketPropertyToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 9
         3: .line 139
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readArrayToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 9
         4: .line 140
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readWildCardToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 9
         5: .line 141
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readFilterToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 9
         6: .line 142
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readPlaceholderToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 9
         7: .line 143
            new java.lang.StringBuilder
            dup
            ldc "Could not parse token starting at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ". Expected ?, ', 0-9, * "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            ifne 9
         8: .line 138
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_1
            ireturn
        10: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readDotToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 13
        11: .line 146
            new java.lang.StringBuilder
            dup
            ldc "Could not parse token starting at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            ifne 13
        12: .line 145
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_1
            ireturn
        14: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readWildCardToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 17
        15: .line 149
            new java.lang.StringBuilder
            dup
            ldc "Could not parse token starting at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            ifne 17
        16: .line 148
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        17: iconst_1
            ireturn
        18: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readPropertyOrFunctionToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 21
        19: .line 152
            new java.lang.StringBuilder
            dup
            ldc "Could not parse token starting at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            ifne 21
        20: .line 151
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        21: iconst_1
            ireturn
        end local 2 // char c
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   22     1  appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            1   22     2         c  C
    MethodParameters:
          Name  Flags
      appender  

  private boolean readDotToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 160
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 46
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 4
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 46
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextCharIs:(C)Z
            ifeq 4
         1: .line 161
            aload 1 /* appender */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.crateScanToken:()Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
         2: .line 162
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_2
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         3: .line 163
            goto 7
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.hasMoreCharacters:()Z
            ifne 6
         5: .line 164
            new com.jayway.jsonpath.InvalidPathException
            dup
            ldc "Path must not end with a '."
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
         7: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 46
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 9
         8: .line 169
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Character '.' on position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " is not valid."
            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
         9: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ireturn
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   10     1  appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
    MethodParameters:
          Name  Flags
      appender  

  private boolean readPropertyOrFunctionToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 178
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 42
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 46
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 1
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 32
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifeq 2
         1: .line 179
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* startPosition */
        start local 2 // int startPosition
         3: .line 182
            iload 2 /* startPosition */
            istore 3 /* readPosition */
        start local 3 // int readPosition
         4: .line 183
            iconst_0
            istore 4 /* endPosition */
        start local 4 // int endPosition
         5: .line 185
            iconst_0
            istore 5 /* isFunction */
        start local 5 // boolean isFunction
         6: .line 187
            goto 18
         7: .line 188
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            istore 6 /* c */
        start local 6 // char c
         8: .line 189
            iload 6 /* c */
            bipush 32
            if_icmpne 10
         9: .line 190
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Use bracket notion ['my prop'] if your property contains blank characters. position: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 192
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            bipush 46
            if_icmpeq 11
            iload 6 /* c */
            bipush 91
            if_icmpne 13
        11: .line 193
      StackMap locals:
      StackMap stack:
            iload 3 /* readPosition */
            istore 4 /* endPosition */
        12: .line 194
            goto 19
        13: .line 196
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            bipush 40
            if_icmpne 17
        14: .line 197
            iconst_1
            istore 5 /* isFunction */
        15: .line 198
            iload 3 /* readPosition */
            istore 4 /* endPosition */
        16: .line 199
            goto 19
        17: .line 201
      StackMap locals:
      StackMap stack:
            iinc 3 /* readPosition */ 1
        end local 6 // char c
        18: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifne 7
        19: .line 203
      StackMap locals:
      StackMap stack:
            iload 4 /* endPosition */
            ifne 21
        20: .line 204
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.length:()I
            istore 4 /* endPosition */
        21: .line 208
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* functionParameters */
        start local 6 // java.util.List functionParameters
        22: .line 209
            iload 5 /* isFunction */
            ifeq 34
        23: .line 210
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifeq 32
        24: .line 212
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            istore 7 /* c */
        start local 7 // char c
        25: .line 213
            iload 7 /* c */
            bipush 41
            if_icmpeq 30
        26: .line 214
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* endPosition */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        27: .line 216
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* startPosition */
            iload 4 /* endPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 8 /* functionName */
        start local 8 // java.lang.String functionName
        28: .line 217
            aload 0 /* this */
            aload 8 /* functionName */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.parseFunctionParameters:(Ljava/lang/String;)Ljava/util/List;
            astore 6 /* functionParameters */
        end local 8 // java.lang.String functionName
        29: .line 218
            goto 35
        30: .line 219
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        end local 7 // char c
        31: .line 221
            goto 35
        32: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        33: .line 225
            goto 35
        34: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* endPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        35: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* startPosition */
            iload 4 /* endPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 7 /* property */
        start local 7 // java.lang.String property
        36: .line 231
            iload 5 /* isFunction */
            ifeq 39
        37: .line 232
            aload 1 /* appender */
            aload 7 /* property */
            aload 6 /* functionParameters */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createFunctionPathToken:(Ljava/lang/String;Ljava/util/List;)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        38: .line 233
            goto 40
        39: .line 234
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* appender */
            aload 7 /* property */
            bipush 39
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createSinglePropertyPathToken:(Ljava/lang/String;C)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        40: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 41
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 41
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        41: iconst_1
            ireturn
        end local 7 // java.lang.String property
        end local 6 // java.util.List functionParameters
        end local 5 // boolean isFunction
        end local 4 // int endPosition
        end local 3 // int readPosition
        end local 2 // int startPosition
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   42     0                this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   42     1            appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            3   42     2       startPosition  I
            4   42     3        readPosition  I
            5   42     4         endPosition  I
            6   42     5          isFunction  Z
            8   18     6                   c  C
           22   42     6  functionParameters  Ljava/util/List<Lcom/jayway/jsonpath/internal/function/Parameter;>;
           25   31     7                   c  C
           28   29     8        functionName  Ljava/lang/String;
           36   42     7            property  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      appender  

  private java.util.List<com.jayway.jsonpath.internal.function.Parameter> parseFunctionParameters(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // java.lang.String funcName
         0: .line 270
            aconst_null
            astore 2 /* type */
        start local 2 // com.jayway.jsonpath.internal.function.ParamType type
         1: .line 274
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 3 /* groupParen */
        start local 3 // java.lang.Integer groupParen
         2: iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* groupBracket */
        start local 4 // java.lang.Integer groupBracket
         3: iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 5 /* groupBrace */
        start local 5 // java.lang.Integer groupBrace
         4: iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 6 /* groupQuote */
        start local 6 // java.lang.Integer groupQuote
         5: .line 275
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 7 /* endOfStream */
        start local 7 // java.lang.Boolean endOfStream
         6: .line 276
            iconst_0
            istore 8 /* priorChar */
        start local 8 // char priorChar
         7: .line 277
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* parameters */
        start local 9 // java.util.List parameters
         8: .line 278
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 10 /* parameter */
        start local 10 // java.lang.StringBuilder parameter
         9: .line 279
            goto 66
        10: .line 280
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler java.lang.String com.jayway.jsonpath.internal.function.ParamType java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Boolean int java.util.List java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentChar:()C
            istore 11 /* c */
        start local 11 // char c
        11: .line 281
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        12: .line 284
            aload 2 /* type */
            ifnonnull 20
        13: .line 285
            aload 0 /* this */
            iload 11 /* c */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.isWhitespace:(C)Z
            ifeq 15
        14: .line 286
            goto 66
        15: .line 289
      StackMap locals: int
      StackMap stack:
            iload 11 /* c */
            bipush 123
            if_icmpeq 16
            iload 11 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 16
            bipush 34
            iload 11 /* c */
            if_icmpne 18
        16: .line 290
      StackMap locals:
      StackMap stack:
            getstatic com.jayway.jsonpath.internal.function.ParamType.JSON:Lcom/jayway/jsonpath/internal/function/ParamType;
            astore 2 /* type */
        17: .line 291
            goto 20
        18: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 11 /* c */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.isPathContext:(C)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 20
        19: .line 293
            getstatic com.jayway.jsonpath.internal.function.ParamType.PATH:Lcom/jayway/jsonpath/internal/function/ParamType;
            astore 2 /* type */
        20: .line 297
      StackMap locals:
      StackMap stack:
            iload 11 /* c */
            lookupswitch { // 8
                   34: 21
                   40: 28
                   41: 42
                   44: 45
                   91: 32
                   93: 38
                  123: 30
                  125: 34
              default: 63
          }
        21: .line 299
      StackMap locals:
      StackMap stack:
            iload 8 /* priorChar */
            bipush 92
            if_icmpeq 26
            aload 6 /* groupQuote */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 26
        22: .line 300
            aload 6 /* groupQuote */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 24
        23: .line 301
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected quote '\"' at character position: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 303
      StackMap locals:
      StackMap stack:
            aload 6 /* groupQuote */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 6 /* groupQuote */
        25: .line 304
            goto 63
        26: .line 306
      StackMap locals:
      StackMap stack:
            aload 6 /* groupQuote */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 6 /* groupQuote */
        27: .line 308
            goto 63
        28: .line 310
      StackMap locals:
      StackMap stack:
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 3 /* groupParen */
        29: .line 311
            goto 63
        30: .line 313
      StackMap locals:
      StackMap stack:
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 5 /* groupBrace */
        31: .line 314
            goto 63
        32: .line 316
      StackMap locals:
      StackMap stack:
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* groupBracket */
        33: .line 317
            goto 63
        34: .line 320
      StackMap locals:
      StackMap stack:
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 36
        35: .line 321
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected close brace '}' at character position: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 323
      StackMap locals:
      StackMap stack:
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 5 /* groupBrace */
        37: .line 324
            goto 63
        38: .line 326
      StackMap locals:
      StackMap stack:
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 40
        39: .line 327
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected close bracket ']' at character position: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 329
      StackMap locals:
      StackMap stack:
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* groupBracket */
        41: .line 330
            goto 63
        42: .line 335
      StackMap locals:
      StackMap stack:
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 3 /* groupParen */
        43: .line 336
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            ifeq 45
        44: .line 337
            aload 10 /* parameter */
            iload 11 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        45: .line 342
      StackMap locals:
      StackMap stack:
            aload 6 /* groupQuote */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 63
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 63
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 63
        46: .line 343
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 47
            bipush 41
            iload 11 /* c */
            if_icmpeq 48
      StackMap locals:
      StackMap stack:
        47: iconst_1
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpne 63
        48: .line 344
      StackMap locals:
      StackMap stack:
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 49
            iconst_1
            goto 50
      StackMap locals:
      StackMap stack:
        49: iconst_0
      StackMap locals:
      StackMap stack: int
        50: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 7 /* endOfStream */
        51: .line 346
            aload 2 /* type */
            ifnull 63
        52: .line 347
            aconst_null
            astore 12 /* param */
        start local 12 // com.jayway.jsonpath.internal.function.Parameter param
        53: .line 348
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.$SWITCH_TABLE$com$jayway$jsonpath$internal$function$ParamType:()[I
            aload 2 /* type */
            invokevirtual com.jayway.jsonpath.internal.function.ParamType.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 54
                    2: 56
              default: 59
          }
        54: .line 351
      StackMap locals: com.jayway.jsonpath.internal.function.Parameter
      StackMap stack:
            new com.jayway.jsonpath.internal.function.Parameter
            dup
            aload 10 /* parameter */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.internal.function.Parameter.<init>:(Ljava/lang/String;)V
            astore 12 /* param */
        55: .line 352
            goto 59
        56: .line 354
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 13 /* predicates */
        start local 13 // java.util.LinkedList predicates
        57: .line 355
            new com.jayway.jsonpath.internal.path.PathCompiler
            dup
            aload 10 /* parameter */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 13 /* predicates */
            invokespecial com.jayway.jsonpath.internal.path.PathCompiler.<init>:(Ljava/lang/String;Ljava/util/LinkedList;)V
            astore 14 /* compiler */
        start local 14 // com.jayway.jsonpath.internal.path.PathCompiler compiler
        58: .line 356
            new com.jayway.jsonpath.internal.function.Parameter
            dup
            aload 14 /* compiler */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.compile:()Lcom/jayway/jsonpath/internal/Path;
            invokespecial com.jayway.jsonpath.internal.function.Parameter.<init>:(Lcom/jayway/jsonpath/internal/Path;)V
            astore 12 /* param */
        end local 14 // com.jayway.jsonpath.internal.path.PathCompiler compiler
        end local 13 // java.util.LinkedList predicates
        59: .line 359
      StackMap locals:
      StackMap stack:
            aload 12 /* param */
            ifnull 61
        60: .line 360
            aload 9 /* parameters */
            aload 12 /* param */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        61: .line 362
      StackMap locals:
      StackMap stack:
            aload 10 /* parameter */
            iconst_0
            aload 10 /* parameter */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        62: .line 363
            aconst_null
            astore 2 /* type */
        end local 12 // com.jayway.jsonpath.internal.function.Parameter param
        63: .line 369
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ifnull 65
            iload 11 /* c */
            bipush 44
            if_icmpne 64
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 64
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 64
            iconst_1
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpeq 65
        64: .line 370
      StackMap locals:
      StackMap stack:
            aload 10 /* parameter */
            iload 11 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        65: .line 372
      StackMap locals:
      StackMap stack:
            iload 11 /* c */
            istore 8 /* priorChar */
        end local 11 // char c
        66: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:()Z
            ifeq 67
            aload 7 /* endOfStream */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 10
        67: .line 374
      StackMap locals:
      StackMap stack:
            aload 5 /* groupBrace */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 68
            aload 3 /* groupParen */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 68
            aload 4 /* groupBracket */
            invokevirtual java.lang.Integer.intValue:()I
            ifeq 69
        68: .line 375
      StackMap locals:
      StackMap stack:
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Arguments to function: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* funcName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' are not closed properly."
            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
        69: .line 377
      StackMap locals:
      StackMap stack:
            aload 9 /* parameters */
            areturn
        end local 10 // java.lang.StringBuilder parameter
        end local 9 // java.util.List parameters
        end local 8 // char priorChar
        end local 7 // java.lang.Boolean endOfStream
        end local 6 // java.lang.Integer groupQuote
        end local 5 // java.lang.Integer groupBrace
        end local 4 // java.lang.Integer groupBracket
        end local 3 // java.lang.Integer groupParen
        end local 2 // com.jayway.jsonpath.internal.function.ParamType type
        end local 1 // java.lang.String funcName
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   70     0          this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   70     1      funcName  Ljava/lang/String;
            1   70     2          type  Lcom/jayway/jsonpath/internal/function/ParamType;
            2   70     3    groupParen  Ljava/lang/Integer;
            3   70     4  groupBracket  Ljava/lang/Integer;
            4   70     5    groupBrace  Ljava/lang/Integer;
            5   70     6    groupQuote  Ljava/lang/Integer;
            6   70     7   endOfStream  Ljava/lang/Boolean;
            7   70     8     priorChar  C
            8   70     9    parameters  Ljava/util/List<Lcom/jayway/jsonpath/internal/function/Parameter;>;
            9   70    10     parameter  Ljava/lang/StringBuilder;
           11   66    11             c  C
           53   63    12         param  Lcom/jayway/jsonpath/internal/function/Parameter;
           57   59    13    predicates  Ljava/util/LinkedList<Lcom/jayway/jsonpath/Predicate;>;
           58   59    14      compiler  Lcom/jayway/jsonpath/internal/path/PathCompiler;
    Signature: (Ljava/lang/String;)Ljava/util/List<Lcom/jayway/jsonpath/internal/function/Parameter;>;
    MethodParameters:
          Name  Flags
      funcName  

  private boolean isWhitespace(char);
    descriptor: (C)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // char c
         0: .line 381
            iload 1 /* c */
            bipush 32
            if_icmpeq 1
            iload 1 /* c */
            bipush 9
            if_icmpeq 1
            iload 1 /* c */
            bipush 10
            if_icmpeq 1
            iload 1 /* c */
            bipush 13
            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.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean readPlaceholderToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 389
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 2
         1: .line 390
            iconst_0
            ireturn
         2: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 63
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(C)I
            istore 2 /* questionmarkIndex */
        start local 2 // int questionmarkIndex
         3: .line 393
            iload 2 /* questionmarkIndex */
            iconst_m1
            if_icmpne 5
         4: .line 394
            iconst_0
            ireturn
         5: .line 396
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* questionmarkIndex */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantChar:(I)C
            istore 3 /* nextSignificantChar */
        start local 3 // char nextSignificantChar
         6: .line 397
            iload 3 /* nextSignificantChar */
            bipush 93
            if_icmpeq 8
            iload 3 /* nextSignificantChar */
            bipush 44
            if_icmpeq 8
         7: .line 398
            iconst_0
            ireturn
         8: .line 401
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_1
            iadd
            istore 4 /* expressionBeginIndex */
        start local 4 // int expressionBeginIndex
         9: .line 402
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* expressionBeginIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOf:(IC)I
            istore 5 /* expressionEndIndex */
        start local 5 // int expressionEndIndex
        10: .line 404
            iload 5 /* expressionEndIndex */
            iconst_m1
            if_icmpne 12
        11: .line 405
            iconst_0
            ireturn
        12: .line 408
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* expressionBeginIndex */
            iload 5 /* expressionEndIndex */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 6 /* expression */
        start local 6 // java.lang.String expression
        13: .line 410
            aload 6 /* expression */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* tokens */
        start local 7 // java.lang.String[] tokens
        14: .line 412
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.filterStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            aload 7 /* tokens */
            arraylength
            if_icmpge 16
        15: .line 413
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not enough predicates supplied for filter ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* expression */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] at position "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 416
      StackMap locals: java.lang.String java.lang.String[]
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* predicates */
        start local 8 // java.util.Collection predicates
        17: .line 417
            aload 7 /* tokens */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 28
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int java.lang.String java.lang.String[] java.util.Collection top int int java.lang.String[]
      StackMap stack:
        18: aload 12
            iload 10
            aaload
            astore 9 /* token */
        start local 9 // java.lang.String token
        19: .line 418
            aload 9 /* token */
            ifnull 20
            aload 9 /* token */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            goto 21
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int java.lang.String java.lang.String[] java.util.Collection java.lang.String int int java.lang.String[]
      StackMap stack:
        20: aload 9 /* token */
      StackMap locals:
      StackMap stack: java.lang.String
        21: astore 9 /* token */
        22: .line 419
            ldc "?"
            aload 9 /* token */
            ifnonnull 23
            ldc ""
            goto 24
      StackMap locals:
      StackMap stack: java.lang.String
        23: aload 9 /* token */
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int java.lang.String java.lang.String[] java.util.Collection java.lang.String int int java.lang.String[]
      StackMap stack: java.lang.String java.lang.String
        24: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
        25: .line 420
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected '?' but found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* token */
            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
        26: .line 422
      StackMap locals:
      StackMap stack:
            aload 8 /* predicates */
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.filterStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
            checkcast com.jayway.jsonpath.Predicate
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String token
        27: .line 417
            iinc 10 1
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int java.lang.String java.lang.String[] java.util.Collection top int int java.lang.String[]
      StackMap stack:
        28: iload 10
            iload 11
            if_icmplt 18
        29: .line 425
            aload 1 /* appender */
            aload 8 /* predicates */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createPredicatePathToken:(Ljava/util/Collection;)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        30: .line 427
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* expressionEndIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        31: .line 429
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 32
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 32
            iconst_0
            ireturn
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int int java.lang.String java.lang.String[] java.util.Collection
      StackMap stack:
        32: iconst_1
            ireturn
        end local 8 // java.util.Collection predicates
        end local 7 // java.lang.String[] tokens
        end local 6 // java.lang.String expression
        end local 5 // int expressionEndIndex
        end local 4 // int expressionBeginIndex
        end local 3 // char nextSignificantChar
        end local 2 // int questionmarkIndex
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   33     0                  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   33     1              appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            3   33     2     questionmarkIndex  I
            6   33     3   nextSignificantChar  C
            9   33     4  expressionBeginIndex  I
           10   33     5    expressionEndIndex  I
           13   33     6            expression  Ljava/lang/String;
           14   33     7                tokens  [Ljava/lang/String;
           17   33     8            predicates  Ljava/util/Collection<Lcom/jayway/jsonpath/Predicate;>;
           19   27     9                 token  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      appender  

  private boolean readFilterToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 436
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 2
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 63
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantCharIs:(C)Z
            ifne 2
         1: .line 437
            iconst_0
            ireturn
         2: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            istore 2 /* openStatementBracketIndex */
        start local 2 // int openStatementBracketIndex
         3: .line 441
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 63
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(C)I
            istore 3 /* questionMarkIndex */
        start local 3 // int questionMarkIndex
         4: .line 442
            iload 3 /* questionMarkIndex */
            iconst_m1
            if_icmpne 6
         5: .line 443
            iconst_0
            ireturn
         6: .line 445
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* questionMarkIndex */
            bipush 40
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(IC)I
            istore 4 /* openBracketIndex */
        start local 4 // int openBracketIndex
         7: .line 446
            iload 4 /* openBracketIndex */
            iconst_m1
            if_icmpne 9
         8: .line 447
            iconst_0
            ireturn
         9: .line 449
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* openBracketIndex */
            iconst_1
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfClosingBracket:(IZZ)I
            istore 5 /* closeBracketIndex */
        start local 5 // int closeBracketIndex
        10: .line 450
            iload 5 /* closeBracketIndex */
            iconst_m1
            if_icmpne 12
        11: .line 451
            iconst_0
            ireturn
        12: .line 453
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* closeBracketIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantCharIs:(IC)Z
            ifne 14
        13: .line 454
            iconst_0
            ireturn
        14: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* closeBracketIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(IC)I
            istore 6 /* closeStatementBracketIndex */
        start local 6 // int closeStatementBracketIndex
        15: .line 458
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 2 /* openStatementBracketIndex */
            iload 6 /* closeStatementBracketIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 7 /* criteria */
        start local 7 // java.lang.String criteria
        16: .line 461
            aload 7 /* criteria */
            invokestatic com.jayway.jsonpath.internal.filter.FilterCompiler.compile:(Ljava/lang/String;)Lcom/jayway/jsonpath/Filter;
            astore 8 /* predicate */
        start local 8 // com.jayway.jsonpath.Predicate predicate
        17: .line 462
            aload 1 /* appender */
            aload 8 /* predicate */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createPredicatePathToken:(Lcom/jayway/jsonpath/Predicate;)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        18: .line 464
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 6 /* closeStatementBracketIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        19: .line 466
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 20
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 20
            iconst_0
            ireturn
      StackMap locals: int java.lang.String com.jayway.jsonpath.Predicate
      StackMap stack:
        20: iconst_1
            ireturn
        end local 8 // com.jayway.jsonpath.Predicate predicate
        end local 7 // java.lang.String criteria
        end local 6 // int closeStatementBracketIndex
        end local 5 // int closeBracketIndex
        end local 4 // int openBracketIndex
        end local 3 // int questionMarkIndex
        end local 2 // int openStatementBracketIndex
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   21     0                        this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   21     1                    appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            3   21     2   openStatementBracketIndex  I
            4   21     3           questionMarkIndex  I
            7   21     4            openBracketIndex  I
           10   21     5           closeBracketIndex  I
           15   21     6  closeStatementBracketIndex  I
           16   21     7                    criteria  Ljava/lang/String;
           17   21     8                   predicate  Lcom/jayway/jsonpath/Predicate;
    MethodParameters:
          Name  Flags
      appender  

  private boolean readWildCardToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 476
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            istore 2 /* inBracket */
        start local 2 // boolean inBracket
         1: .line 478
            iload 2 /* inBracket */
            ifeq 3
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 42
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantCharIs:(C)Z
            ifne 3
         2: .line 479
            iconst_0
            ireturn
         3: .line 481
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 42
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 5
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.isOutOfBounds:(I)Z
            ifeq 5
         4: .line 482
            iconst_0
            ireturn
         5: .line 484
      StackMap locals:
      StackMap stack:
            iload 2 /* inBracket */
            ifeq 13
         6: .line 485
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 42
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(C)I
            istore 3 /* wildCardIndex */
        start local 3 // int wildCardIndex
         7: .line 486
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* wildCardIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantCharIs:(IC)Z
            ifne 10
         8: .line 487
            iload 3 /* wildCardIndex */
            iconst_1
            iadd
            istore 4 /* offset */
        start local 4 // int offset
         9: .line 488
            new com.jayway.jsonpath.InvalidPathException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected wildcard token to end with ']' on position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* offset */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int offset
        10: .line 490
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* wildCardIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(IC)I
            istore 4 /* bracketCloseIndex */
        start local 4 // int bracketCloseIndex
        11: .line 491
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* bracketCloseIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        end local 4 // int bracketCloseIndex
        end local 3 // int wildCardIndex
        12: .line 492
            goto 14
        13: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iconst_1
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.incrementPosition:(I)I
            pop
        14: .line 496
      StackMap locals:
      StackMap stack:
            aload 1 /* appender */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createWildCardPathToken:()Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        15: .line 498
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 16
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 16
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_1
            ireturn
        end local 2 // boolean inBracket
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   17     1           appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            1   17     2          inBracket  Z
            7   12     3      wildCardIndex  I
            9   10     4             offset  I
           11   12     4  bracketCloseIndex  I
    MethodParameters:
          Name  Flags
      appender  

  private boolean readArrayToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 506
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 2
         1: .line 507
            iconst_0
            ireturn
         2: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantChar:()C
            istore 2 /* nextSignificantChar */
        start local 2 // char nextSignificantChar
         3: .line 510
            iload 2 /* nextSignificantChar */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 5
            iload 2 /* nextSignificantChar */
            bipush 45
            if_icmpeq 5
            iload 2 /* nextSignificantChar */
            bipush 58
            if_icmpeq 5
         4: .line 511
            iconst_0
            ireturn
         5: .line 514
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_1
            iadd
            istore 3 /* expressionBeginIndex */
        start local 3 // int expressionBeginIndex
         6: .line 515
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* expressionBeginIndex */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextIndexOf:(IC)I
            istore 4 /* expressionEndIndex */
        start local 4 // int expressionEndIndex
         7: .line 517
            iload 4 /* expressionEndIndex */
            iconst_m1
            if_icmpne 9
         8: .line 518
            iconst_0
            ireturn
         9: .line 521
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 3 /* expressionBeginIndex */
            iload 4 /* expressionEndIndex */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 5 /* expression */
        start local 5 // java.lang.String expression
        10: .line 523
            ldc "*"
            aload 5 /* expression */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 524
            iconst_0
            ireturn
        12: .line 528
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 18
        14: .line 529
      StackMap locals: int
      StackMap stack:
            aload 5 /* expression */
            iload 6 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 7 /* c */
        start local 7 // char c
        15: .line 530
            iload 7 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 17
            iload 7 /* c */
            bipush 44
            if_icmpeq 17
            iload 7 /* c */
            bipush 45
            if_icmpeq 17
            iload 7 /* c */
            bipush 58
            if_icmpeq 17
            iload 7 /* c */
            bipush 32
            if_icmpeq 17
        16: .line 531
            iconst_0
            ireturn
        end local 7 // char c
        17: .line 528
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            aload 5 /* expression */
            invokevirtual java.lang.String.length:()I
            if_icmplt 14
        end local 6 // int i
        19: .line 535
            aload 5 /* expression */
            ldc ":"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 6 /* isSliceOperation */
        start local 6 // boolean isSliceOperation
        20: .line 537
            iload 6 /* isSliceOperation */
            ifeq 24
        21: .line 538
            aload 5 /* expression */
            invokestatic com.jayway.jsonpath.internal.path.ArraySliceOperation.parse:(Ljava/lang/String;)Lcom/jayway/jsonpath/internal/path/ArraySliceOperation;
            astore 7 /* arraySliceOperation */
        start local 7 // com.jayway.jsonpath.internal.path.ArraySliceOperation arraySliceOperation
        22: .line 539
            aload 1 /* appender */
            aload 7 /* arraySliceOperation */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createSliceArrayPathToken:(Lcom/jayway/jsonpath/internal/path/ArraySliceOperation;)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        end local 7 // com.jayway.jsonpath.internal.path.ArraySliceOperation arraySliceOperation
        23: .line 540
            goto 26
        24: .line 541
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int int int java.lang.String int
      StackMap stack:
            aload 5 /* expression */
            invokestatic com.jayway.jsonpath.internal.path.ArrayIndexOperation.parse:(Ljava/lang/String;)Lcom/jayway/jsonpath/internal/path/ArrayIndexOperation;
            astore 7 /* arrayIndexOperation */
        start local 7 // com.jayway.jsonpath.internal.path.ArrayIndexOperation arrayIndexOperation
        25: .line 542
            aload 1 /* appender */
            aload 7 /* arrayIndexOperation */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createIndexArrayPathToken:(Lcom/jayway/jsonpath/internal/path/ArrayIndexOperation;)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        end local 7 // com.jayway.jsonpath.internal.path.ArrayIndexOperation arrayIndexOperation
        26: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* expressionEndIndex */
            iconst_1
            iadd
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        27: .line 547
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 28
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 28
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        28: iconst_1
            ireturn
        end local 6 // boolean isSliceOperation
        end local 5 // java.lang.String expression
        end local 4 // int expressionEndIndex
        end local 3 // int expressionBeginIndex
        end local 2 // char nextSignificantChar
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   29     0                  this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   29     1              appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            3   29     2   nextSignificantChar  C
            6   29     3  expressionBeginIndex  I
            7   29     4    expressionEndIndex  I
           10   29     5            expression  Ljava/lang/String;
           13   19     6                     i  I
           15   17     7                     c  C
           20   29     6      isSliceOperation  Z
           22   23     7   arraySliceOperation  Lcom/jayway/jsonpath/internal/path/ArraySliceOperation;
           25   26     7   arrayIndexOperation  Lcom/jayway/jsonpath/internal/path/ArrayIndexOperation;
    MethodParameters:
          Name  Flags
      appender  

  private boolean readBracketPropertyToken(com.jayway.jsonpath.internal.path.PathTokenAppender);
    descriptor: (Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=13, args_size=2
        start local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
        start local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
         0: .line 554
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            bipush 91
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentCharIs:(C)Z
            ifne 2
         1: .line 555
            iconst_0
            ireturn
         2: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantChar:()C
            istore 2 /* potentialStringDelimiter */
        start local 2 // char potentialStringDelimiter
         3: .line 558
            iload 2 /* potentialStringDelimiter */
            bipush 39
            if_icmpeq 5
            iload 2 /* potentialStringDelimiter */
            bipush 34
            if_icmpeq 5
         4: .line 559
            iconst_0
            ireturn
         5: .line 562
      StackMap locals: int
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* properties */
        start local 3 // java.util.List properties
         6: .line 564
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.position:()I
            iconst_1
            iadd
            istore 4 /* startPosition */
        start local 4 // int startPosition
         7: .line 565
            iload 4 /* startPosition */
            istore 5 /* readPosition */
        start local 5 // int readPosition
         8: .line 566
            iconst_0
            istore 6 /* endPosition */
        start local 6 // int endPosition
         9: .line 567
            iconst_0
            istore 7 /* inProperty */
        start local 7 // boolean inProperty
        10: .line 568
            iconst_0
            istore 8 /* inEscape */
        start local 8 // boolean inEscape
        11: .line 569
            iconst_0
            istore 9 /* lastSignificantWasComma */
        start local 9 // boolean lastSignificantWasComma
        12: .line 571
            goto 43
        13: .line 572
      StackMap locals: com.jayway.jsonpath.internal.path.PathCompiler com.jayway.jsonpath.internal.path.PathTokenAppender int java.util.List int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.charAt:(I)C
            istore 10 /* c */
        start local 10 // char c
        14: .line 574
            iload 8 /* inEscape */
            ifeq 17
        15: .line 575
            iconst_0
            istore 8 /* inEscape */
        16: .line 576
            goto 42
      StackMap locals: int
      StackMap stack:
        17: bipush 92
            iload 10 /* c */
            if_icmpne 20
        18: .line 577
            iconst_1
            istore 8 /* inEscape */
        19: .line 578
            goto 42
      StackMap locals:
      StackMap stack:
        20: iload 10 /* c */
            bipush 93
            if_icmpne 24
            iload 7 /* inProperty */
            ifne 24
        21: .line 579
            iload 9 /* lastSignificantWasComma */
            ifeq 44
        22: .line 580
            new java.lang.StringBuilder
            dup
            ldc "Found empty property at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* readPosition */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
        23: .line 582
            goto 44
        24: .line 583
      StackMap locals:
      StackMap stack:
            iload 10 /* c */
            iload 2 /* potentialStringDelimiter */
            if_icmpne 38
        25: .line 584
            iload 7 /* inProperty */
            ifeq 34
        26: .line 585
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.nextSignificantChar:(I)C
            istore 11 /* nextSignificantChar */
        start local 11 // char nextSignificantChar
        27: .line 586
            iload 11 /* nextSignificantChar */
            bipush 93
            if_icmpeq 29
            iload 11 /* nextSignificantChar */
            bipush 44
            if_icmpeq 29
        28: .line 587
            new java.lang.StringBuilder
            dup
            ldc "Property must be separated by comma or Property must be terminated close square bracket at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* readPosition */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
        29: .line 589
      StackMap locals: int
      StackMap stack:
            iload 5 /* readPosition */
            istore 6 /* endPosition */
        30: .line 590
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 4 /* startPosition */
            iload 6 /* endPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 12 /* prop */
        start local 12 // java.lang.String prop
        31: .line 591
            aload 3 /* properties */
            aload 12 /* prop */
            invokestatic com.jayway.jsonpath.internal.Utils.unescape:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 592
            iconst_0
            istore 7 /* inProperty */
        end local 12 // java.lang.String prop
        end local 11 // char nextSignificantChar
        33: .line 593
            goto 42
        34: .line 594
      StackMap locals:
      StackMap stack:
            iload 5 /* readPosition */
            iconst_1
            iadd
            istore 4 /* startPosition */
        35: .line 595
            iconst_1
            istore 7 /* inProperty */
        36: .line 596
            iconst_0
            istore 9 /* lastSignificantWasComma */
        37: .line 598
            goto 42
      StackMap locals:
      StackMap stack:
        38: iload 10 /* c */
            bipush 44
            if_icmpne 42
        39: .line 599
            iload 9 /* lastSignificantWasComma */
            ifeq 41
        40: .line 600
            new java.lang.StringBuilder
            dup
            ldc "Found empty property at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* readPosition */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
        41: .line 602
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* lastSignificantWasComma */
        42: .line 604
      StackMap locals:
      StackMap stack:
            iinc 5 /* readPosition */ 1
        end local 10 // char c
        43: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 5 /* readPosition */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.inBounds:(I)Z
            ifne 13
        44: .line 607
      StackMap locals:
      StackMap stack:
            iload 7 /* inProperty */
            ifeq 46
        45: .line 608
            new java.lang.StringBuilder
            dup
            ldc "Property has not been closed - missing closing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* potentialStringDelimiter */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.jayway.jsonpath.internal.path.PathCompiler.fail:(Ljava/lang/String;)Z
            pop
        46: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 6 /* endPosition */
            bipush 93
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.indexOfNextSignificantChar:(IC)I
            iconst_1
            iadd
            istore 10 /* endBracketIndex */
        start local 10 // int endBracketIndex
        47: .line 613
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            iload 10 /* endBracketIndex */
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.setPosition:(I)I
            pop
        48: .line 615
            aload 1 /* appender */
            aload 3 /* properties */
            iload 2 /* potentialStringDelimiter */
            invokestatic com.jayway.jsonpath.internal.path.PathTokenFactory.createPropertyPathToken:(Ljava/util/List;C)Lcom/jayway/jsonpath/internal/path/PathToken;
            invokeinterface com.jayway.jsonpath.internal.path.PathTokenAppender.appendPathToken:(Lcom/jayway/jsonpath/internal/path/PathToken;)Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            pop
        49: .line 617
            aload 0 /* this */
            getfield com.jayway.jsonpath.internal.path.PathCompiler.path:Lcom/jayway/jsonpath/internal/CharacterIndex;
            invokevirtual com.jayway.jsonpath.internal.CharacterIndex.currentIsTail:()Z
            ifne 50
            aload 0 /* this */
            aload 1 /* appender */
            invokevirtual com.jayway.jsonpath.internal.path.PathCompiler.readNextToken:(Lcom/jayway/jsonpath/internal/path/PathTokenAppender;)Z
            ifne 50
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
        50: iconst_1
            ireturn
        end local 10 // int endBracketIndex
        end local 9 // boolean lastSignificantWasComma
        end local 8 // boolean inEscape
        end local 7 // boolean inProperty
        end local 6 // int endPosition
        end local 5 // int readPosition
        end local 4 // int startPosition
        end local 3 // java.util.List properties
        end local 2 // char potentialStringDelimiter
        end local 1 // com.jayway.jsonpath.internal.path.PathTokenAppender appender
        end local 0 // com.jayway.jsonpath.internal.path.PathCompiler this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   51     0                      this  Lcom/jayway/jsonpath/internal/path/PathCompiler;
            0   51     1                  appender  Lcom/jayway/jsonpath/internal/path/PathTokenAppender;
            3   51     2  potentialStringDelimiter  C
            6   51     3                properties  Ljava/util/List<Ljava/lang/String;>;
            7   51     4             startPosition  I
            8   51     5              readPosition  I
            9   51     6               endPosition  I
           10   51     7                inProperty  Z
           11   51     8                  inEscape  Z
           12   51     9   lastSignificantWasComma  Z
           14   43    10                         c  C
           27   33    11       nextSignificantChar  C
           31   33    12                      prop  Ljava/lang/String;
           47   51    10           endBracketIndex  I
    MethodParameters:
          Name  Flags
      appender  

  public static boolean fail(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String message
         0: .line 621
            new com.jayway.jsonpath.InvalidPathException
            dup
            aload 0 /* message */
            invokespecial com.jayway.jsonpath.InvalidPathException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  

  static int[] $SWITCH_TABLE$com$jayway$jsonpath$internal$function$ParamType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 20
            getstatic com.jayway.jsonpath.internal.path.PathCompiler.$SWITCH_TABLE$com$jayway$jsonpath$internal$function$ParamType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.jayway.jsonpath.internal.function.ParamType.values:()[Lcom/jayway/jsonpath/internal/function/ParamType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.jayway.jsonpath.internal.function.ParamType.JSON:Lcom/jayway/jsonpath/internal/function/ParamType;
            invokevirtual com.jayway.jsonpath.internal.function.ParamType.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.jayway.jsonpath.internal.function.ParamType.PATH:Lcom/jayway/jsonpath/internal/function/ParamType;
            invokevirtual com.jayway.jsonpath.internal.function.ParamType.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            dup
            putstatic com.jayway.jsonpath.internal.path.PathCompiler.$SWITCH_TABLE$com$jayway$jsonpath$internal$function$ParamType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
}
SourceFile: "PathCompiler.java"