public final class com.oracle.truffle.regex.tregex.parser.RegexLexer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.regex.tregex.parser.RegexLexer
  super_class: java.lang.Object
{
  private static final com.oracle.truffle.regex.util.CompilationFinalBitSet PREDEFINED_CHAR_CLASSES;
    descriptor: Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.regex.util.CompilationFinalBitSet SYNTAX_CHARS;
    descriptor: Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.regex.charset.CodePointSet ID_START;
    descriptor: Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.regex.charset.CodePointSet ID_CONTINUE;
    descriptor: Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.oracle.truffle.regex.RegexSource source;
    descriptor: Lcom/oracle/truffle/regex/RegexSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String pattern;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.regex.RegexFlags flags;
    descriptor: Lcom/oracle/truffle/regex/RegexFlags;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.regex.tregex.string.Encodings$Encoding encoding;
    descriptor: Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.regex.RegexOptions options;
    descriptor: Lcom/oracle/truffle/regex/RegexOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.regex.tregex.parser.Token lastToken;
    descriptor: Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE

  private int index;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int nGroups;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean identifiedAllGroups;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.Integer> namedCaptureGroups;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private final com.oracle.truffle.regex.charset.CodePointSetAccumulator curCharClass;
    descriptor: Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.regex.charset.CodePointSetAccumulator charClassCaseFoldTmp;
    descriptor: Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.util.EnumSet<com.oracle.truffle.regex.tregex.parser.Token$Kind> QUANTIFIER_PREV;
    descriptor: Ljava/util/EnumSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/EnumSet<Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 60
            ldc Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.$assertionsDisabled:Z
         3: .line 62
            bipush 6
            newarray 10
            dup
            iconst_0
            bipush 115
            iastore
            dup
            iconst_1
            bipush 83
            iastore
            dup
            iconst_2
            bipush 100
            iastore
            dup
            iconst_3
            bipush 68
            iastore
            dup
            iconst_4
            bipush 119
            iastore
            dup
            iconst_5
            bipush 87
            iastore
            invokestatic com.oracle.truffle.regex.util.CompilationFinalBitSet.valueOf:([I)Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
            putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.PREDEFINED_CHAR_CLASSES:Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
         4: .line 63
            bipush 15
            newarray 10
            dup
            iconst_0
         5: .line 64
            bipush 94
            iastore
            dup
            iconst_1
            bipush 36
            iastore
            dup
            iconst_2
            bipush 47
            iastore
            dup
            iconst_3
            bipush 92
            iastore
            dup
            iconst_4
            bipush 46
            iastore
            dup
            iconst_5
            bipush 42
            iastore
            dup
            bipush 6
            bipush 43
            iastore
            dup
            bipush 7
            bipush 63
            iastore
            dup
            bipush 8
            bipush 40
            iastore
            dup
            bipush 9
            bipush 41
            iastore
            dup
            bipush 10
            bipush 91
            iastore
            dup
            bipush 11
            bipush 93
            iastore
            dup
            bipush 12
            bipush 123
            iastore
            dup
            bipush 13
            bipush 125
            iastore
            dup
            bipush 14
            bipush 124
            iastore
         6: .line 63
            invokestatic com.oracle.truffle.regex.util.CompilationFinalBitSet.valueOf:([I)Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
            putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.SYNTAX_CHARS:Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
         7: .line 66
            ldc "ID_Start"
            invokestatic com.oracle.truffle.regex.charset.UnicodeProperties.getProperty:(Ljava/lang/String;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.ID_START:Lcom/oracle/truffle/regex/charset/CodePointSet;
         8: .line 67
            ldc "ID_Continue"
            invokestatic com.oracle.truffle.regex.charset.UnicodeProperties.getProperty:(Ljava/lang/String;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.ID_CONTINUE:Lcom/oracle/truffle/regex/charset/CodePointSet;
         9: .line 443
            getstatic com.oracle.truffle.regex.tregex.parser.Token$Kind.charClass:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            getstatic com.oracle.truffle.regex.tregex.parser.Token$Kind.groupEnd:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            getstatic com.oracle.truffle.regex.tregex.parser.Token$Kind.backReference:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            putstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.QUANTIFIER_PREV:Ljava/util/EnumSet;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.truffle.regex.RegexSource, com.oracle.truffle.regex.RegexFlags, com.oracle.truffle.regex.RegexOptions);
    descriptor: (Lcom/oracle/truffle/regex/RegexSource;Lcom/oracle/truffle/regex/RegexFlags;Lcom/oracle/truffle/regex/RegexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // com.oracle.truffle.regex.RegexSource source
        start local 2 // com.oracle.truffle.regex.RegexFlags flags
        start local 3 // com.oracle.truffle.regex.RegexOptions options
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
         2: .line 76
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.nGroups:I
         3: .line 77
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
         4: .line 78
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
         5: .line 79
            aload 0 /* this */
            new com.oracle.truffle.regex.charset.CodePointSetAccumulator
            dup
            invokespecial com.oracle.truffle.regex.charset.CodePointSetAccumulator.<init>:()V
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
         6: .line 80
            aload 0 /* this */
            new com.oracle.truffle.regex.charset.CodePointSetAccumulator
            dup
            invokespecial com.oracle.truffle.regex.charset.CodePointSetAccumulator.<init>:()V
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.charClassCaseFoldTmp:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
         7: .line 83
            aload 0 /* this */
            aload 1 /* source */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.source:Lcom/oracle/truffle/regex/RegexSource;
         8: .line 84
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.regex.RegexSource.getPattern:()Ljava/lang/String;
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
         9: .line 85
            aload 0 /* this */
            aload 2 /* flags */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
        10: .line 86
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.regex.RegexSource.getEncoding:()Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.encoding:Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
        11: .line 87
            aload 0 /* this */
            aload 3 /* options */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.options:Lcom/oracle/truffle/regex/RegexOptions;
        12: .line 88
            return
        end local 3 // com.oracle.truffle.regex.RegexOptions options
        end local 2 // com.oracle.truffle.regex.RegexFlags flags
        end local 1 // com.oracle.truffle.regex.RegexSource source
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   13     1   source  Lcom/oracle/truffle/regex/RegexSource;
            0   13     2    flags  Lcom/oracle/truffle/regex/RegexFlags;
            0   13     3  options  Lcom/oracle/truffle/regex/RegexOptions;
    MethodParameters:
         Name  Flags
      source   
      flags    
      options  

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 91
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  public com.oracle.truffle.regex.tregex.parser.Token next();
    descriptor: ()Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 95
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 1 /* startIndex */
        start local 1 // int startIndex
         1: .line 96
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.getNext:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            astore 2 /* t */
        start local 2 // com.oracle.truffle.regex.tregex.parser.Token t
         2: .line 97
            aload 0 /* this */
            aload 2 /* t */
            iload 1 /* startIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.setSourceSection:(Lcom/oracle/truffle/regex/tregex/parser/Token;II)V
         3: .line 98
            aload 0 /* this */
            aload 2 /* t */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.lastToken:Lcom/oracle/truffle/regex/tregex/parser/Token;
         4: .line 99
            aload 2 /* t */
            areturn
        end local 2 // com.oracle.truffle.regex.tregex.parser.Token t
        end local 1 // int startIndex
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1    5     1  startIndex  I
            2    5     2           t  Lcom/oracle/truffle/regex/tregex/parser/Token;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private void setSourceSection(com.oracle.truffle.regex.tregex.parser.Token, int, int);
    descriptor: (Lcom/oracle/truffle/regex/tregex/parser/Token;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // com.oracle.truffle.regex.tregex.parser.Token t
        start local 2 // int startIndex
        start local 3 // int endIndex
         0: .line 112
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.options:Lcom/oracle/truffle/regex/RegexOptions;
            invokevirtual com.oracle.truffle.regex.RegexOptions.isDumpAutomata:()Z
            ifeq 2
         1: .line 115
            aload 1 /* t */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.source:Lcom/oracle/truffle/regex/RegexSource;
            invokevirtual com.oracle.truffle.regex.RegexSource.getSource:()Lcom/oracle/truffle/api/source/Source;
            iload 2 /* startIndex */
            iconst_1
            iadd
            iload 3 /* endIndex */
            iload 2 /* startIndex */
            isub
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.regex.tregex.parser.Token.setSourceSection:(Lcom/oracle/truffle/api/source/SourceSection;)V
         2: .line 117
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int endIndex
        end local 2 // int startIndex
        end local 1 // com.oracle.truffle.regex.tregex.parser.Token t
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    3     1           t  Lcom/oracle/truffle/regex/tregex/parser/Token;
            0    3     2  startIndex  I
            0    3     3    endIndex  I
    MethodParameters:
            Name  Flags
      t           
      startIndex  
      endIndex    

  private char curChar();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 122
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  private char consumeChar();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 126
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* c */
        start local 1 // char c
         1: .line 127
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
         2: .line 128
            iload 1 /* c */
            ireturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1    3     1     c  C

  private void advance();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 132
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:(I)V
         1: .line 133
            return
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  private void retreat();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 136
            aload 0 /* this */
            iconst_m1
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:(I)V
         1: .line 137
            return
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  private void advance(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int len
         0: .line 140
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            iload 1 /* len */
            iadd
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
         1: .line 141
            return
        end local 1 // int len
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    2     1   len  I
    MethodParameters:
      Name  Flags
      len   

  private boolean lookahead(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // java.lang.String match
         0: .line 144
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            isub
            aload 1 /* match */
            invokevirtual java.lang.String.length:()I
            if_icmpge 2
         1: .line 145
            iconst_0
            ireturn
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            aload 1 /* match */
            iconst_0
            aload 1 /* match */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
            ireturn
        end local 1 // java.lang.String match
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    3     1  match  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      match  

  private boolean consumingLookahead(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // java.lang.String match
         0: .line 151
            aload 0 /* this */
            aload 1 /* match */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.lookahead:(Ljava/lang/String;)Z
            istore 2 /* matches */
        start local 2 // boolean matches
         1: .line 152
            iload 2 /* matches */
            ifeq 3
         2: .line 153
            aload 0 /* this */
            aload 1 /* match */
            invokevirtual java.lang.String.length:()I
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:(I)V
         3: .line 155
      StackMap locals: int
      StackMap stack:
            iload 2 /* matches */
            ireturn
        end local 2 // boolean matches
        end local 1 // java.lang.String match
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    4     1    match  Ljava/lang/String;
            1    4     2  matches  Z
    MethodParameters:
       Name  Flags
      match  

  private boolean atEnd();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 159
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  public int numberOfCaptureGroups();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 163
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
            ifne 3
         1: .line 164
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.identifyCaptureGroups:()V
         2: .line 165
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
         3: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.nGroups:I
            ireturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  public java.util.Map<java.lang.String, java.lang.Integer> getNamedCaptureGroups();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 171
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
            ifne 3
         1: .line 172
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.identifyCaptureGroups:()V
         2: .line 173
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
         3: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private boolean hasNamedCaptureGroups();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 185
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.getNamedCaptureGroups:()Ljava/util/Map;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private void registerCaptureGroup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 189
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
            ifne 2
         1: .line 190
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.nGroups:I
            iconst_1
            iadd
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.nGroups:I
         2: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  private void registerNamedCaptureGroup(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // java.lang.String name
         0: .line 195
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.identifiedAllGroups:Z
            ifne 6
         1: .line 196
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            ifnonnull 3
         2: .line 197
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
         3: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 200
            aload 0 /* this */
            ldc "Multiple named capture groups with the same name"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         5: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            aload 1 /* name */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.nGroups:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.registerCaptureGroup:()V
         7: .line 205
            return
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    8     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private void identifyCaptureGroups();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 212
            iconst_0
            istore 1 /* insideCharClass */
        start local 1 // boolean insideCharClass
         1: .line 213
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 2 /* restoreIndex */
        start local 2 // int restoreIndex
         2: .line 214
            goto 13
         3: .line 215
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            lookupswitch { // 4
                   40: 10
                   91: 6
                   92: 4
                   93: 8
              default: 13
          }
         4: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
         5: .line 219
            goto 13
         6: .line 221
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 1 /* insideCharClass */
         7: .line 222
            goto 13
         8: .line 224
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* insideCharClass */
         9: .line 225
            goto 13
        10: .line 227
      StackMap locals:
      StackMap stack:
            iload 1 /* insideCharClass */
            ifne 13
        11: .line 228
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseGroupBegin:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            pop
        12: .line 230
            goto 13
        13: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 3
        14: .line 235
            aload 0 /* this */
            iload 2 /* restoreIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
        15: .line 236
            return
        end local 2 // int restoreIndex
        end local 1 // boolean insideCharClass
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1   16     1  insideCharClass  Z
            2   16     2     restoreIndex  I
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private com.oracle.truffle.regex.tregex.parser.Token charClass(int);
    descriptor: (I)Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int codePoint
         0: .line 239
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isIgnoreCase:()Z
            ifeq 4
         1: .line 240
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.clear:()V
         2: .line 241
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            iload 1 /* codePoint */
            iload 1 /* codePoint */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.appendRange:(II)V
         3: .line 242
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         4: .line 244
      StackMap locals:
      StackMap stack:
            iload 1 /* codePoint */
            invokestatic com.oracle.truffle.regex.charset.CodePointSet.create:(I)Lcom/oracle/truffle/regex/charset/CodePointSet;
            iconst_1
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // int codePoint
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    5     1  codePoint  I
    MethodParameters:
           Name  Flags
      codePoint  

  private com.oracle.truffle.regex.tregex.parser.Token charClass(com.oracle.truffle.regex.charset.CodePointSet);
    descriptor: (Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // com.oracle.truffle.regex.charset.CodePointSet codePointSet
         0: .line 249
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isIgnoreCase:()Z
            ifeq 4
         1: .line 250
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.clear:()V
         2: .line 251
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            aload 1 /* codePointSet */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addSet:(Lcom/oracle/truffle/regex/charset/SortedListOfRanges;)V
         3: .line 252
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         4: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* codePointSet */
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // com.oracle.truffle.regex.charset.CodePointSet codePointSet
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    5     1  codePointSet  Lcom/oracle/truffle/regex/charset/CodePointSet;
    MethodParameters:
              Name  Flags
      codePointSet  

  private com.oracle.truffle.regex.tregex.parser.Token charClass(boolean);
    descriptor: (Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // boolean invert
         0: .line 259
            iload 1 /* invert */
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.matchesSingleChar:()Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* wasSingleChar */
        start local 2 // boolean wasSingleChar
         3: .line 260
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isIgnoreCase:()Z
            ifeq 8
         4: .line 261
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 5
            getstatic com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm.ECMAScriptUnicode:Lcom/oracle/truffle/regex/tregex/parser/CaseFoldTable$CaseFoldingAlgorithm;
            goto 6
      StackMap locals: int
      StackMap stack:
         5: getstatic com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm.ECMAScriptNonUnicode:Lcom/oracle/truffle/regex/tregex/parser/CaseFoldTable$CaseFoldingAlgorithm;
      StackMap locals:
      StackMap stack: com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm
         6: astore 3 /* caseFolding */
        start local 3 // com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm caseFolding
         7: .line 262
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.charClassCaseFoldTmp:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            aload 3 /* caseFolding */
            invokestatic com.oracle.truffle.regex.tregex.parser.CaseFoldTable.applyCaseFold:(Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;Lcom/oracle/truffle/regex/tregex/parser/CaseFoldTable$CaseFoldingAlgorithm;)V
        end local 3 // com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm caseFolding
         8: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.toCodePointSet:()Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.pruneCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            astore 3 /* cps */
        start local 3 // com.oracle.truffle.regex.charset.CodePointSet cps
         9: .line 265
            iload 1 /* invert */
            ifeq 10
            aload 3 /* cps */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.encoding:Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.createInverse:(Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            goto 11
      StackMap locals: com.oracle.truffle.regex.charset.CodePointSet
      StackMap stack:
        10: aload 3 /* cps */
      StackMap locals:
      StackMap stack: com.oracle.truffle.regex.charset.CodePointSet
        11: iload 2 /* wasSingleChar */
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 3 // com.oracle.truffle.regex.charset.CodePointSet cps
        end local 2 // boolean wasSingleChar
        end local 1 // boolean invert
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   12     1         invert  Z
            3   12     2  wasSingleChar  Z
            7    8     3    caseFolding  Lcom/oracle/truffle/regex/tregex/parser/CaseFoldTable$CaseFoldingAlgorithm;
            9   12     3            cps  Lcom/oracle/truffle/regex/charset/CodePointSet;
    MethodParameters:
        Name  Flags
      invert  

  private com.oracle.truffle.regex.charset.CodePointSet pruneCharClass(com.oracle.truffle.regex.charset.CodePointSet);
    descriptor: (Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // com.oracle.truffle.regex.charset.CodePointSet cps
         0: .line 269
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.encoding:Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
            invokevirtual com.oracle.truffle.regex.tregex.string.Encodings$Encoding.getFullSet:()Lcom/oracle/truffle/regex/charset/CodePointSet;
            aload 1 /* cps */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.getTmp:()Lcom/oracle/truffle/regex/tregex/buffer/IntRangesBuffer;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.createIntersection:(Lcom/oracle/truffle/regex/charset/ImmutableSortedListOfRanges;Lcom/oracle/truffle/regex/charset/RangesBuffer;)Lcom/oracle/truffle/regex/charset/ImmutableSortedListOfRanges;
            checkcast com.oracle.truffle.regex.charset.CodePointSet
            areturn
        end local 1 // com.oracle.truffle.regex.charset.CodePointSet cps
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    1     1   cps  Lcom/oracle/truffle/regex/charset/CodePointSet;
    MethodParameters:
      Name  Flags
      cps   

  private com.oracle.truffle.regex.tregex.parser.Token getNext();
    descriptor: ()Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 275
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 1 /* c */
        start local 1 // char c
         1: .line 276
            iload 1 /* c */
            lookupswitch { // 14
                   36: 6
                   40: 12
                   41: 13
                   42: 7
                   43: 7
                   46: 2
                   63: 7
                   91: 14
                   92: 18
                   93: 15
                   94: 5
                  123: 7
                  124: 11
                  125: 8
              default: 19
          }
         2: .line 278
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isDotAll:()Z
            ifeq 3
            getstatic com.oracle.truffle.regex.charset.Constants.DOT_ALL:Lcom/oracle/truffle/regex/charset/CodePointSet;
            goto 4
      StackMap locals:
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer
         3: getstatic com.oracle.truffle.regex.charset.Constants.DOT:Lcom/oracle/truffle/regex/charset/CodePointSet;
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer com.oracle.truffle.regex.charset.CodePointSet
         4: invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.pruneCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         5: .line 280
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCaret:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         6: .line 282
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createDollar:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         7: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseQuantifier:(C)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         8: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 10
         9: .line 294
            aload 0 /* this */
            ldc "Unmatched '}'"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        10: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        11: .line 298
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createAlternation:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        12: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseGroupBegin:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        13: .line 302
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createGroupEnd:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        14: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClass:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        15: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 17
        16: .line 307
            aload 0 /* this */
            ldc "Unmatched ']'"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        17: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        18: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseEscape:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        19: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 21
            iload 1 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 21
        20: .line 314
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.finishSurrogatePair:(C)I
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        21: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1   22     1     c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private com.oracle.truffle.regex.tregex.parser.Token parseEscape();
    descriptor: ()Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 321
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 2
         1: .line 322
            aload 0 /* this */
            ldc "Ends with an unfinished escape sequence"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         2: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 1 /* c */
        start local 1 // char c
         3: .line 325
            bipush 49
            iload 1 /* c */
            if_icmpgt 11
            iload 1 /* c */
            bipush 57
            if_icmpgt 11
         4: .line 326
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 2 /* restoreIndex */
        start local 2 // int restoreIndex
         5: .line 327
            aload 0 /* this */
            iload 1 /* c */
            bipush 48
            isub
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseInteger:(I)I
            istore 3 /* backRefNumber */
        start local 3 // int backRefNumber
         6: .line 328
            iload 3 /* backRefNumber */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.numberOfCaptureGroups:()I
            if_icmpge 8
         7: .line 329
            iload 3 /* backRefNumber */
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createBackReference:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         8: .line 330
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 10
         9: .line 331
            aload 0 /* this */
            ldc "Missing capture group for backreference"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        10: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* restoreIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
        end local 3 // int backRefNumber
        end local 2 // int restoreIndex
        11: .line 335
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            lookupswitch { // 3
                   66: 26
                   98: 25
                  107: 12
              default: 27
          }
        12: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifne 13
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.hasNamedCaptureGroups:()Z
            ifeq 24
        13: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 15
        14: .line 339
            aload 0 /* this */
            ldc "Ends with an unfinished escape sequence"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        15: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            bipush 60
            if_icmpeq 17
        16: .line 342
            aload 0 /* this */
            ldc "Missing group name in named capture group reference"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        17: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseGroupName:()Ljava/lang/String;
            astore 2 /* groupName */
        start local 2 // java.lang.String groupName
        18: .line 346
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            ifnull 20
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            aload 2 /* groupName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 347
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.namedCaptureGroups:Ljava/util/Map;
            aload 2 /* groupName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createBackReference:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        20: .line 350
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.getNamedCaptureGroups:()Ljava/util/Map;
            astore 3 /* allNamedCaptureGroups */
        start local 3 // java.util.Map allNamedCaptureGroups
        21: .line 351
            aload 3 /* allNamedCaptureGroups */
            ifnull 23
            aload 3 /* allNamedCaptureGroups */
            aload 2 /* groupName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 352
            aload 3 /* allNamedCaptureGroups */
            aload 2 /* groupName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createBackReference:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        23: .line 354
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            ldc "Missing capture group for backreference"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        end local 3 // java.util.Map allNamedCaptureGroups
        end local 2 // java.lang.String groupName
        24: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        25: .line 359
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createWordBoundary:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        26: .line 361
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createNonWordBoundary:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        27: .line 368
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isPredefCharClass:(C)Z
            ifeq 29
        28: .line 369
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parsePredefCharClass:(C)Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.pruneCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCharClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        29: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 33
            iload 1 /* c */
            bipush 112
            if_icmpeq 30
            iload 1 /* c */
            bipush 80
            if_icmpne 33
        30: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* c */
            bipush 80
            if_icmpne 31
            iconst_1
            goto 32
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer com.oracle.truffle.regex.tregex.parser.RegexLexer
        31: iconst_0
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer com.oracle.truffle.regex.tregex.parser.RegexLexer int
        32: invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseUnicodeCharacterProperty:(Z)Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(Lcom/oracle/truffle/regex/charset/CodePointSet;)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        33: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* c */
            iconst_0
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseEscapeChar:(CZ)I
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   34     0                   this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            3   34     1                      c  C
            5   11     2           restoreIndex  I
            6   11     3          backRefNumber  I
           18   24     2              groupName  Ljava/lang/String;
           21   24     3  allNamedCaptureGroups  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private com.oracle.truffle.regex.tregex.parser.Token parseGroupBegin();
    descriptor: ()Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 379
            aload 0 /* this */
            ldc "?="
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 380
            iconst_0
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createLookAheadAssertionBegin:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         2: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "?!"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 382
            iconst_1
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createLookAheadAssertionBegin:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         4: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "?<="
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 384
            iconst_0
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createLookBehindAssertionBegin:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         6: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "?<!"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 386
            iconst_1
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createLookBehindAssertionBegin:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         8: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "?:"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 388
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createNonCaptureGroupBegin:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        10: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "?<"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 14
        11: .line 390
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseGroupName:()Ljava/lang/String;
            astore 1 /* groupName */
        start local 1 // java.lang.String groupName
        12: .line 391
            aload 0 /* this */
            aload 1 /* groupName */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.registerNamedCaptureGroup:(Ljava/lang/String;)V
        13: .line 392
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCaptureGroupBegin:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // java.lang.String groupName
        14: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.registerCaptureGroup:()V
        15: .line 395
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createCaptureGroupBegin:()Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
           12   14     1  groupName  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private int parseCodePointInGroupName();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 400
            aload 0 /* this */
            ldc "\\u"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 5
         1: .line 401
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseUnicodeEscapeChar:()I
            istore 1 /* unicodeEscape */
        start local 1 // int unicodeEscape
         2: .line 402
            iload 1 /* unicodeEscape */
            ifge 4
         3: .line 403
            aload 0 /* this */
            ldc "Invalid Unicode escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         4: .line 405
      StackMap locals: int
      StackMap stack:
            iload 1 /* unicodeEscape */
            ireturn
        end local 1 // int unicodeEscape
         5: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 7
         6: .line 409
            aload 0 /* this */
            ldc "Unterminated group name"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         7: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ">"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 412
            iconst_m1
            ireturn
         9: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 1 /* c */
        start local 1 // char c
        10: .line 415
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 11
            iload 1 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 11
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.finishSurrogatePair:(C)I
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iload 1 /* c */
      StackMap locals:
      StackMap stack: int
        12: ireturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            2    5     1  unicodeEscape  I
           10   13     1              c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private java.lang.String parseGroupName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 425
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* groupName */
        start local 1 // java.lang.StringBuilder groupName
         1: .line 426
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCodePointInGroupName:()I
            istore 2 /* codePoint */
        start local 2 // int codePoint
         2: .line 427
            iload 2 /* codePoint */
            iconst_m1
            if_icmpne 4
         3: .line 428
            aload 0 /* this */
            ldc "Empty named capture group name"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         4: .line 430
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.ID_START:Lcom/oracle/truffle/regex/charset/CodePointSet;
            iload 2 /* codePoint */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.contains:(I)Z
            ifne 6
            iload 2 /* codePoint */
            bipush 36
            if_icmpeq 6
            iload 2 /* codePoint */
            bipush 95
            if_icmpeq 6
         5: .line 431
            aload 0 /* this */
            ldc "Invalid character at start of group name"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         6: .line 433
      StackMap locals:
      StackMap stack:
            aload 1 /* groupName */
            iload 2 /* codePoint */
            invokevirtual java.lang.StringBuilder.appendCodePoint:(I)Ljava/lang/StringBuilder;
            pop
         7: .line 434
            goto 11
         8: .line 435
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.ID_CONTINUE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            iload 2 /* codePoint */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.contains:(I)Z
            ifne 10
            iload 2 /* codePoint */
            bipush 36
            if_icmpeq 10
            iload 2 /* codePoint */
            sipush 8204
            if_icmpeq 10
            iload 2 /* codePoint */
            sipush 8205
            if_icmpeq 10
         9: .line 436
            aload 0 /* this */
            ldc "Invalid character in group name"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        10: .line 438
      StackMap locals:
      StackMap stack:
            aload 1 /* groupName */
            iload 2 /* codePoint */
            invokevirtual java.lang.StringBuilder.appendCodePoint:(I)Ljava/lang/StringBuilder;
            pop
        11: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCodePointInGroupName:()I
            dup
            istore 2 /* codePoint */
            iconst_m1
            if_icmpne 8
        12: .line 440
            aload 1 /* groupName */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int codePoint
        end local 1 // java.lang.StringBuilder groupName
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1   13     1  groupName  Ljava/lang/StringBuilder;
            2   13     2  codePoint  I
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private com.oracle.truffle.regex.tregex.parser.Token parseQuantifier(char);
    descriptor: (C)Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 447
            iconst_m1
            istore 3 /* max */
        start local 3 // int max
         1: .line 449
            iload 1 /* c */
            bipush 123
            if_icmpne 31
         2: .line 450
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 5 /* resetIndex */
        start local 5 // int resetIndex
         3: .line 451
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseDecimal:()Ljava/math/BigInteger;
            astore 6 /* literalMin */
        start local 6 // java.math.BigInteger literalMin
         4: .line 452
            aload 6 /* literalMin */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifge 6
         5: .line 453
            aload 0 /* this */
            iload 5 /* resetIndex */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.countedRepetitionSyntaxError:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         6: .line 455
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int top int top int java.math.BigInteger
      StackMap stack:
            aload 6 /* literalMin */
            ldc 2147483647
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifgt 7
            aload 6 /* literalMin */
            invokevirtual java.math.BigInteger.intValue:()I
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_m1
      StackMap locals:
      StackMap stack: int
         8: istore 2 /* min */
        start local 2 // int min
         9: .line 456
            aload 0 /* this */
            ldc ",}"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 14
        10: .line 457
            aload 0 /* this */
            ldc "?"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 11
            iconst_0
            goto 12
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int int top int java.math.BigInteger
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 4 /* greedy */
        start local 4 // boolean greedy
        13: .line 458
            goto 39
        end local 4 // boolean greedy
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            ldc "}"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 20
        15: .line 459
            iload 2 /* min */
            istore 3 /* max */
        16: .line 460
            aload 0 /* this */
            ldc "?"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* greedy */
        start local 4 // boolean greedy
        19: .line 461
            goto 39
        end local 4 // boolean greedy
        20: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ","
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 22
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseDecimal:()Ljava/math/BigInteger;
            dup
            astore 7 /* literalMax */
        start local 7 // java.math.BigInteger literalMax
        21: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 22
            aload 0 /* this */
            ldc "}"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifne 23
        end local 7 // java.math.BigInteger literalMax
        22: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* resetIndex */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.countedRepetitionSyntaxError:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        start local 7 // java.math.BigInteger literalMax
        23: .line 466
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 7 /* literalMax */
            ldc 2147483647
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifgt 24
            aload 7 /* literalMax */
            invokevirtual java.math.BigInteger.intValue:()I
            goto 25
      StackMap locals:
      StackMap stack:
        24: iconst_m1
      StackMap locals:
      StackMap stack: int
        25: istore 3 /* max */
        26: .line 467
            aload 0 /* this */
            ldc "?"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 27
            iconst_0
            goto 28
      StackMap locals:
      StackMap stack:
        27: iconst_1
      StackMap locals:
      StackMap stack: int
        28: istore 4 /* greedy */
        start local 4 // boolean greedy
        29: .line 468
            aload 6 /* literalMin */
            aload 7 /* literalMax */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifle 39
        30: .line 469
            aload 0 /* this */
            ldc "Numbers out of order in {} quantifier"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        end local 7 // java.math.BigInteger literalMax
        end local 6 // java.math.BigInteger literalMin
        end local 5 // int resetIndex
        end local 4 // boolean greedy
        end local 2 // int min
        31: .line 473
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int top int
      StackMap stack:
            aload 0 /* this */
            ldc "?"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 32
            iconst_0
            goto 33
      StackMap locals:
      StackMap stack:
        32: iconst_1
      StackMap locals:
      StackMap stack: int
        33: istore 4 /* greedy */
        start local 4 // boolean greedy
        34: .line 474
            iload 1 /* c */
            bipush 43
            if_icmpne 35
            iconst_1
            goto 36
      StackMap locals: int
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 2 /* min */
        start local 2 // int min
        37: .line 475
            iload 1 /* c */
            bipush 63
            if_icmpne 39
        38: .line 476
            iconst_1
            istore 3 /* max */
        39: .line 479
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.lastToken:Lcom/oracle/truffle/regex/tregex/parser/Token;
            ifnonnull 41
        40: .line 480
            aload 0 /* this */
            ldc "Quantifier without target"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        41: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.lastToken:Lcom/oracle/truffle/regex/tregex/parser/Token;
            getfield com.oracle.truffle.regex.tregex.parser.Token.kind:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            getstatic com.oracle.truffle.regex.tregex.parser.Token$Kind.quantifier:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            if_acmpne 43
        42: .line 483
            aload 0 /* this */
            ldc "Quantifier on quantifier"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        43: .line 485
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.QUANTIFIER_PREV:Ljava/util/EnumSet;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.lastToken:Lcom/oracle/truffle/regex/tregex/parser/Token;
            getfield com.oracle.truffle.regex.tregex.parser.Token.kind:Lcom/oracle/truffle/regex/tregex/parser/Token$Kind;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifne 45
        44: .line 486
            aload 0 /* this */
            ldc "Quantifier without target"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        45: .line 488
      StackMap locals:
      StackMap stack:
            iload 2 /* min */
            iload 3 /* max */
            iload 4 /* greedy */
            invokestatic com.oracle.truffle.regex.tregex.parser.Token.createQuantifier:(IIZ)Lcom/oracle/truffle/regex/tregex/parser/Token$Quantifier;
            areturn
        end local 4 // boolean greedy
        end local 3 // int max
        end local 2 // int min
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   46     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   46     1           c  C
            9   31     2         min  I
           37   46     2         min  I
            1   46     3         max  I
           13   14     4      greedy  Z
           19   20     4      greedy  Z
           29   31     4      greedy  Z
           34   46     4      greedy  Z
            3   31     5  resetIndex  I
            4   31     6  literalMin  Ljava/math/BigInteger;
           21   22     7  literalMax  Ljava/math/BigInteger;
           23   31     7  literalMax  Ljava/math/BigInteger;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     

  private com.oracle.truffle.regex.tregex.parser.Token countedRepetitionSyntaxError(int);
    descriptor: (I)Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int resetIndex
         0: .line 492
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 2
         1: .line 493
            aload 0 /* this */
            ldc "Incomplete quantifier"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         2: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* resetIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
         3: .line 496
            aload 0 /* this */
            bipush 123
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(I)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
        end local 1 // int resetIndex
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    4     1  resetIndex  I
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
            Name  Flags
      resetIndex  

  private com.oracle.truffle.regex.tregex.parser.Token parseCharClass();
    descriptor: ()Lcom/oracle/truffle/regex/tregex/parser/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 500
            aload 0 /* this */
            ldc "^"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            istore 1 /* invert */
        start local 1 // boolean invert
         1: .line 501
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.clear:()V
         2: .line 502
            goto 7
         3: .line 503
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 2 /* c */
        start local 2 // char c
         4: .line 504
            iload 2 /* c */
            bipush 93
            if_icmpne 6
         5: .line 505
            aload 0 /* this */
            iload 1 /* invert */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.charClass:(Z)Lcom/oracle/truffle/regex/tregex/parser/Token;
            areturn
         6: .line 507
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClassRange:(C)V
        end local 2 // char c
         7: .line 502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 3
         8: .line 509
            aload 0 /* this */
            ldc "Unterminated character class"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        end local 1 // boolean invert
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            1    9     1  invert  Z
            4    7     2       c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private com.oracle.truffle.regex.charset.CodePointSet parseCharClassAtomPredefCharClass(char);
    descriptor: (C)Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 513
            iload 1 /* c */
            bipush 92
            if_icmpne 5
         1: .line 514
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 3
         2: .line 515
            aload 0 /* this */
            ldc "Ends with an unfinished escape sequence"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         3: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.isEscapeCharClass:(C)Z
            ifeq 5
         4: .line 518
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseEscapeCharClass:(C)Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         5: .line 521
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    6     1     c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     

  private int parseCharClassAtomCodePoint(char);
    descriptor: (C)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 525
            iload 1 /* c */
            bipush 92
            if_icmpne 4
         1: .line 526
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 527
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.isEscapeCharClass:(C)Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseEscapeChar:(CZ)I
            ireturn
         4: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 6
            iload 1 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 6
         5: .line 530
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.finishSurrogatePair:(C)I
            ireturn
         6: .line 532
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    7     1     c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     

  private void parseCharClassRange(char);
    descriptor: (C)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 537
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClassAtomPredefCharClass:(C)Lcom/oracle/truffle/regex/charset/CodePointSet;
            astore 2 /* firstAtomCC */
        start local 2 // com.oracle.truffle.regex.charset.CodePointSet firstAtomCC
         1: .line 538
            aload 2 /* firstAtomCC */
            ifnonnull 2
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClassAtomCodePoint:(C)I
            goto 3
      StackMap locals: com.oracle.truffle.regex.charset.CodePointSet
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* firstAtomCP */
        start local 3 // int firstAtomCP
         4: .line 539
            aload 0 /* this */
            ldc "-"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 25
         5: .line 540
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 6
            aload 0 /* this */
            ldc "]"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.lookahead:(Ljava/lang/String;)Z
            ifeq 9
         6: .line 541
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* firstAtomCC */
            iload 3 /* firstAtomCP */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.addCharClassAtom:(Lcom/oracle/truffle/regex/charset/CodePointSet;I)V
         7: .line 542
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            bipush 45
            bipush 45
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addRange:(II)V
         8: .line 543
            goto 26
         9: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 4 /* nextC */
        start local 4 // char nextC
        10: .line 545
            aload 0 /* this */
            iload 4 /* nextC */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClassAtomPredefCharClass:(C)Lcom/oracle/truffle/regex/charset/CodePointSet;
            astore 5 /* secondAtomCC */
        start local 5 // com.oracle.truffle.regex.charset.CodePointSet secondAtomCC
        11: .line 546
            aload 5 /* secondAtomCC */
            ifnonnull 12
            aload 0 /* this */
            iload 4 /* nextC */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseCharClassAtomCodePoint:(C)I
            goto 13
      StackMap locals: int com.oracle.truffle.regex.charset.CodePointSet
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: istore 6 /* secondAtomCP */
        start local 6 // int secondAtomCP
        14: .line 548
            aload 2 /* firstAtomCC */
            ifnonnull 15
            aload 5 /* secondAtomCC */
            ifnull 21
        15: .line 549
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 17
        16: .line 550
            aload 0 /* this */
            ldc "Invalid character class"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        17: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* firstAtomCC */
            iload 3 /* firstAtomCP */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.addCharClassAtom:(Lcom/oracle/truffle/regex/charset/CodePointSet;I)V
        18: .line 553
            aload 0 /* this */
            aload 5 /* secondAtomCC */
            iload 6 /* secondAtomCP */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.addCharClassAtom:(Lcom/oracle/truffle/regex/charset/CodePointSet;I)V
        19: .line 554
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            bipush 45
            bipush 45
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addRange:(II)V
        20: .line 556
            goto 26
        21: .line 557
      StackMap locals:
      StackMap stack:
            iload 6 /* secondAtomCP */
            iload 3 /* firstAtomCP */
            if_icmpge 23
        22: .line 558
            aload 0 /* this */
            ldc "Range out of order in character class"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        23: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            iload 3 /* firstAtomCP */
            iload 6 /* secondAtomCP */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addRange:(II)V
        end local 6 // int secondAtomCP
        end local 5 // com.oracle.truffle.regex.charset.CodePointSet secondAtomCC
        end local 4 // char nextC
        24: .line 564
            goto 26
        25: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* firstAtomCC */
            iload 3 /* firstAtomCP */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.addCharClassAtom:(Lcom/oracle/truffle/regex/charset/CodePointSet;I)V
        26: .line 567
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int firstAtomCP
        end local 2 // com.oracle.truffle.regex.charset.CodePointSet firstAtomCC
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0          this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   27     1             c  C
            1   27     2   firstAtomCC  Lcom/oracle/truffle/regex/charset/CodePointSet;
            4   27     3   firstAtomCP  I
           10   24     4         nextC  C
           11   24     5  secondAtomCC  Lcom/oracle/truffle/regex/charset/CodePointSet;
           14   24     6  secondAtomCP  I
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     

  private void addCharClassAtom(com.oracle.truffle.regex.charset.CodePointSet, int);
    descriptor: (Lcom/oracle/truffle/regex/charset/CodePointSet;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // com.oracle.truffle.regex.charset.CodePointSet preDefCharClass
        start local 2 // int codePoint
         0: .line 570
            aload 1 /* preDefCharClass */
            ifnull 3
         1: .line 571
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            aload 1 /* preDefCharClass */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addSet:(Lcom/oracle/truffle/regex/charset/SortedListOfRanges;)V
         2: .line 572
            goto 4
         3: .line 573
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            iload 2 /* codePoint */
            iload 2 /* codePoint */
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.addRange:(II)V
         4: .line 575
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int codePoint
        end local 1 // com.oracle.truffle.regex.charset.CodePointSet preDefCharClass
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    5     1  preDefCharClass  Lcom/oracle/truffle/regex/charset/CodePointSet;
            0    5     2        codePoint  I
    MethodParameters:
                 Name  Flags
      preDefCharClass  
      codePoint        

  private com.oracle.truffle.regex.charset.CodePointSet parseEscapeCharClass(char);
    descriptor: (C)Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 578
            iload 1 /* c */
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isPredefCharClass:(C)Z
            ifeq 2
         1: .line 579
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parsePredefCharClass:(C)Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         2: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 6
            iload 1 /* c */
            bipush 112
            if_icmpeq 3
            iload 1 /* c */
            bipush 80
            if_icmpne 6
         3: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            bipush 80
            if_icmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer
         4: iconst_0
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int
      StackMap stack: com.oracle.truffle.regex.tregex.parser.RegexLexer int
         5: invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseUnicodeCharacterProperty:(Z)Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         6: .line 583
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    7     1     c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     

  private com.oracle.truffle.regex.charset.CodePointSet parsePredefCharClass(char);
    descriptor: (C)Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 590
            iload 1 /* c */
            lookupswitch { // 6
                   68: 8
                   83: 4
                   87: 12
                  100: 7
                  115: 1
                  119: 9
              default: 15
          }
         1: .line 592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.options:Lcom/oracle/truffle/regex/RegexOptions;
            invokevirtual com.oracle.truffle.regex.RegexOptions.isU180EWhitespace:()Z
            ifeq 3
         2: .line 593
            getstatic com.oracle.truffle.regex.charset.Constants.LEGACY_WHITE_SPACE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         3: .line 595
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.WHITE_SPACE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         4: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.options:Lcom/oracle/truffle/regex/RegexOptions;
            invokevirtual com.oracle.truffle.regex.RegexOptions.isU180EWhitespace:()Z
            ifeq 6
         5: .line 599
            getstatic com.oracle.truffle.regex.charset.Constants.LEGACY_NON_WHITE_SPACE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         6: .line 601
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.NON_WHITE_SPACE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         7: .line 604
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.DIGITS:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         8: .line 606
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.NON_DIGITS:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
         9: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 11
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isIgnoreCase:()Z
            ifeq 11
        10: .line 609
            getstatic com.oracle.truffle.regex.charset.Constants.WORD_CHARS_UNICODE_IGNORE_CASE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
        11: .line 611
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.WORD_CHARS:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
        12: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 14
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isIgnoreCase:()Z
            ifeq 14
        13: .line 615
            getstatic com.oracle.truffle.regex.charset.Constants.NON_WORD_CHARS_UNICODE_IGNORE_CASE:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
        14: .line 617
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.charset.Constants.NON_WORD_CHARS:Lcom/oracle/truffle/regex/charset/CodePointSet;
            areturn
        15: .line 620
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   16     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private com.oracle.truffle.regex.charset.CodePointSet parseUnicodeCharacterProperty(boolean);
    descriptor: (Z)Lcom/oracle/truffle/regex/charset/CodePointSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // boolean invert
         0: .line 625
            aload 0 /* this */
            ldc "{"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifne 2
         1: .line 626
            aload 0 /* this */
            ldc "Invalid Unicode property escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         2: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 2 /* namePos */
        start local 2 // int namePos
         3: .line 629
            goto 5
         4: .line 630
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
         5: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 6
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            bipush 125
            if_icmpne 4
         6: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "}"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifne 8
         7: .line 633
            aload 0 /* this */
            ldc "Ends with an unfinished Unicode property escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         8: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.encoding:Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
            invokevirtual com.oracle.truffle.regex.tregex.string.Encodings$Encoding.getFullSet:()Lcom/oracle/truffle/regex/charset/CodePointSet;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            iload 2 /* namePos */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic com.oracle.truffle.regex.charset.UnicodeProperties.getProperty:(Ljava/lang/String;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.curCharClass:Lcom/oracle/truffle/regex/charset/CodePointSetAccumulator;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSetAccumulator.getTmp:()Lcom/oracle/truffle/regex/tregex/buffer/IntRangesBuffer;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.createIntersection:(Lcom/oracle/truffle/regex/charset/ImmutableSortedListOfRanges;Lcom/oracle/truffle/regex/charset/RangesBuffer;)Lcom/oracle/truffle/regex/charset/ImmutableSortedListOfRanges;
            checkcast com.oracle.truffle.regex.charset.CodePointSet
            astore 3 /* propertySet */
        start local 3 // com.oracle.truffle.regex.charset.CodePointSet propertySet
         9: .line 637
            iload 1 /* invert */
            ifeq 10
            aload 3 /* propertySet */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.encoding:Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;
            invokevirtual com.oracle.truffle.regex.charset.CodePointSet.createInverse:(Lcom/oracle/truffle/regex/tregex/string/Encodings$Encoding;)Lcom/oracle/truffle/regex/charset/CodePointSet;
            goto 11
      StackMap locals: com.oracle.truffle.regex.charset.CodePointSet
      StackMap stack:
        10: aload 3 /* propertySet */
      StackMap locals:
      StackMap stack: com.oracle.truffle.regex.charset.CodePointSet
        11: areturn
        end local 3 // com.oracle.truffle.regex.charset.CodePointSet propertySet
        12: .line 638
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int
      StackMap stack: java.lang.IllegalArgumentException
            astore 3 /* e */
        start local 3 // java.lang.IllegalArgumentException e
        13: .line 639
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        end local 3 // java.lang.IllegalArgumentException e
        end local 2 // int namePos
        end local 1 // boolean invert
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   14     1       invert  Z
            3   14     2      namePos  I
            9   12     3  propertySet  Lcom/oracle/truffle/regex/charset/CodePointSet;
           13   14     3            e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.IllegalArgumentException
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
        Name  Flags
      invert  

  private int parseUnicodeEscapeChar();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 650
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 5
            aload 0 /* this */
            ldc "{"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 5
         1: .line 651
            aload 0 /* this */
            iconst_1
            ldc 2147483647
            ldc 1114111
            ldc "Invalid Unicode escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseHex:(IIILjava/lang/String;)I
            istore 1 /* value */
        start local 1 // int value
         2: .line 652
            aload 0 /* this */
            ldc "}"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifne 4
         3: .line 653
            aload 0 /* this */
            ldc "Invalid Unicode escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         4: .line 655
      StackMap locals: int
      StackMap stack:
            iload 1 /* value */
            ireturn
        end local 1 // int value
         5: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            iconst_4
            ldc 65535
            ldc "Invalid Unicode escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseHex:(IIILjava/lang/String;)I
            istore 1 /* value */
        start local 1 // int value
         6: .line 658
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 16
            iload 1 /* value */
            i2c
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 16
         7: .line 659
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 2 /* resetIndex */
        start local 2 // int resetIndex
         8: .line 660
            aload 0 /* this */
            ldc "\\u"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumingLookahead:(Ljava/lang/String;)Z
            ifeq 15
            aload 0 /* this */
            ldc "{"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.lookahead:(Ljava/lang/String;)Z
            ifne 15
         9: .line 661
            iload 1 /* value */
            i2c
            istore 3 /* lead */
        start local 3 // char lead
        10: .line 662
            aload 0 /* this */
            iconst_4
            iconst_4
            ldc 65535
            ldc "Invalid Unicode escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseHex:(IIILjava/lang/String;)I
            i2c
            istore 4 /* trail */
        start local 4 // char trail
        11: .line 663
            iload 4 /* trail */
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 13
        12: .line 664
            iload 3 /* lead */
            iload 4 /* trail */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            ireturn
        13: .line 666
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int int int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* resetIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
        end local 4 // char trail
        end local 3 // char lead
        14: .line 668
            goto 16
        15: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* resetIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
        end local 2 // int resetIndex
        16: .line 672
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            ireturn
        end local 1 // int value
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            2    5     1       value  I
            6   17     1       value  I
            8   16     2  resetIndex  I
           10   14     3        lead  C
           11   14     4       trail  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException

  private int parseEscapeChar(char, boolean);
    descriptor: (CZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
        start local 2 // boolean inCharClass
         0: .line 677
            iload 2 /* inCharClass */
            ifeq 2
            iload 1 /* c */
            bipush 98
            if_icmpne 2
         1: .line 678
            bipush 8
            ireturn
         2: .line 680
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            lookupswitch { // 10
                   45: 35
                   48: 3
                   99: 13
                  102: 11
                  110: 9
                  114: 12
                  116: 8
                  117: 27
                  118: 10
                  120: 31
              default: 38
          }
         3: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isDecimal:(C)Z
            ifeq 5
         4: .line 683
            aload 0 /* this */
            ldc "Invalid escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         5: .line 685
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifne 7
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 7
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isOctal:(C)Z
            ifeq 7
         6: .line 686
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseOctal:(I)I
            ireturn
         7: .line 688
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 690
      StackMap locals:
      StackMap stack:
            bipush 9
            ireturn
         9: .line 692
      StackMap locals:
      StackMap stack:
            bipush 10
            ireturn
        10: .line 694
      StackMap locals:
      StackMap stack:
            bipush 11
            ireturn
        11: .line 696
      StackMap locals:
      StackMap stack:
            bipush 12
            ireturn
        12: .line 698
      StackMap locals:
      StackMap stack:
            bipush 13
            ireturn
        13: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifeq 16
        14: .line 701
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.retreat:()V
        15: .line 702
            aload 0 /* this */
            bipush 92
            ldc "Invalid control char escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.escapeCharSyntaxError:(CLjava/lang/String;)C
            ireturn
        16: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            istore 3 /* controlLetter */
        start local 3 // char controlLetter
        17: .line 705
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifne 21
            iload 3 /* controlLetter */
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isDecimal:(C)Z
            ifne 18
            iload 3 /* controlLetter */
            bipush 95
            if_icmpne 21
      StackMap locals: int
      StackMap stack:
        18: iload 2 /* inCharClass */
            ifeq 21
        19: .line 706
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
        20: .line 707
            iload 3 /* controlLetter */
            bipush 32
            irem
            ireturn
        21: .line 709
      StackMap locals:
      StackMap stack:
            bipush 97
            iload 3 /* controlLetter */
            if_icmpgt 22
            iload 3 /* controlLetter */
            bipush 122
            if_icmple 25
      StackMap locals:
      StackMap stack:
        22: bipush 65
            iload 3 /* controlLetter */
            if_icmpgt 23
            iload 3 /* controlLetter */
            bipush 90
            if_icmple 25
        23: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.retreat:()V
        24: .line 711
            aload 0 /* this */
            bipush 92
            ldc "Invalid control char escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.escapeCharSyntaxError:(CLjava/lang/String;)C
            ireturn
        25: .line 713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
        26: .line 714
            iload 3 /* controlLetter */
            invokestatic java.lang.Character.toUpperCase:(C)C
            bipush 64
            isub
            ireturn
        end local 3 // char controlLetter
        27: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseUnicodeEscapeChar:()I
            istore 4 /* unicodeEscape */
        start local 4 // int unicodeEscape
        28: .line 717
            iload 4 /* unicodeEscape */
            ifge 29
            iload 1 /* c */
            goto 30
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int top int
      StackMap stack:
        29: iload 4 /* unicodeEscape */
      StackMap locals:
      StackMap stack: int
        30: ireturn
        end local 4 // int unicodeEscape
        31: .line 719
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int
      StackMap stack:
            aload 0 /* this */
            iconst_2
            iconst_2
            sipush 255
            ldc "Invalid escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseHex:(IIILjava/lang/String;)I
            istore 5 /* value */
        start local 5 // int value
        32: .line 720
            iload 5 /* value */
            ifge 33
            iload 1 /* c */
            goto 34
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int top top int
      StackMap stack:
        33: iload 5 /* value */
      StackMap locals:
      StackMap stack: int
        34: ireturn
        end local 5 // int value
        35: .line 722
      StackMap locals: com.oracle.truffle.regex.tregex.parser.RegexLexer int int
      StackMap stack:
            iload 2 /* inCharClass */
            ifne 37
        36: .line 723
            aload 0 /* this */
            iload 1 /* c */
            ldc "Invalid escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.escapeCharSyntaxError:(CLjava/lang/String;)C
            ireturn
        37: .line 725
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        38: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifne 40
            iload 1 /* c */
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isOctal:(C)Z
            ifeq 40
        39: .line 728
            aload 0 /* this */
            iload 1 /* c */
            bipush 48
            isub
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseOctal:(I)I
            ireturn
        40: .line 730
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.SYNTAX_CHARS:Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
            iload 1 /* c */
            invokevirtual com.oracle.truffle.regex.util.CompilationFinalBitSet.get:(I)Z
            ifne 42
        41: .line 731
            aload 0 /* this */
            iload 1 /* c */
            ldc "Invalid escape"
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.escapeCharSyntaxError:(CLjava/lang/String;)C
            ireturn
        42: .line 733
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 2 // boolean inCharClass
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   43     0           this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   43     1              c  C
            0   43     2    inCharClass  Z
           17   27     3  controlLetter  C
           28   31     4  unicodeEscape  I
           32   35     5          value  I
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
             Name  Flags
      c            
      inCharClass  

  private int finishSurrogatePair(char);
    descriptor: (C)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 738
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 1
            iload 1 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 6
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 6
         3: .line 740
            iload 1 /* c */
            istore 2 /* lead */
        start local 2 // char lead
         4: .line 741
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 3 /* trail */
        start local 3 // char trail
         5: .line 742
            iload 2 /* lead */
            iload 3 /* trail */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            ireturn
        end local 3 // char trail
        end local 2 // char lead
         6: .line 744
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    7     1      c  C
            4    6     2   lead  C
            5    6     3  trail  C
    MethodParameters:
      Name  Flags
      c     

  private char escapeCharSyntaxError(char, java.lang.String);
    descriptor: (CLjava/lang/String;)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
        start local 2 // java.lang.String msg
         0: .line 749
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 2
         1: .line 750
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         2: .line 752
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 2 // java.lang.String msg
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    3     1     c  C
            0    3     2   msg  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
      Name  Flags
      c     
      msg   

  private java.math.BigInteger parseDecimal();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
         0: .line 756
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isDecimal:(C)Z
            ifne 2
         1: .line 757
      StackMap locals:
      StackMap stack:
            ldc -1
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.parseDecimal:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;

  private java.math.BigInteger parseDecimal(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // java.math.BigInteger firstDigit
         0: .line 763
            aload 1 /* firstDigit */
            astore 2 /* ret */
        start local 2 // java.math.BigInteger ret
         1: .line 764
            goto 4
         2: .line 765
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 2 /* ret */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* ret */
         3: .line 766
            aload 2 /* ret */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            bipush 48
            isub
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* ret */
         4: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isDecimal:(C)Z
            ifne 2
         5: .line 768
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // java.math.BigInteger ret
        end local 1 // java.math.BigInteger firstDigit
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    6     1  firstDigit  Ljava/math/BigInteger;
            1    6     2         ret  Ljava/math/BigInteger;
    MethodParameters:
            Name  Flags
      firstDigit  

  private int parseInteger(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int firstDigit
         0: .line 780
            iload 1 /* firstDigit */
            istore 2 /* ret */
        start local 2 // int ret
         1: .line 782
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 3 /* initialIndex */
        start local 3 // int initialIndex
         2: .line 783
            goto 4
         3: .line 784
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.advance:()V
         4: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isDecimal:(C)Z
            ifne 3
         5: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 4 /* terminalIndex */
        start local 4 // int terminalIndex
         6: .line 788
            iload 3 /* initialIndex */
            istore 5 /* i */
        start local 5 // int i
         7: goto 16
         8: .line 789
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.pattern:Ljava/lang/String;
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 48
            isub
            istore 6 /* nextDigit */
        start local 6 // int nextDigit
         9: .line 790
            iload 2 /* ret */
            ldc 214748364
            if_icmple 11
        10: .line 791
            ldc 2147483647
            ireturn
        11: .line 793
      StackMap locals: int
      StackMap stack:
            iload 2 /* ret */
            bipush 10
            imul
            istore 2 /* ret */
        12: .line 794
            iload 2 /* ret */
            ldc 2147483647
            iload 6 /* nextDigit */
            isub
            if_icmple 14
        13: .line 795
            ldc 2147483647
            ireturn
        14: .line 797
      StackMap locals:
      StackMap stack:
            iload 2 /* ret */
            iload 6 /* nextDigit */
            iadd
            istore 2 /* ret */
        end local 6 // int nextDigit
        15: .line 788
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            iload 4 /* terminalIndex */
            if_icmplt 8
        end local 5 // int i
        17: .line 799
            iload 2 /* ret */
            ireturn
        end local 4 // int terminalIndex
        end local 3 // int initialIndex
        end local 2 // int ret
        end local 1 // int firstDigit
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   18     1     firstDigit  I
            1   18     2            ret  I
            2   18     3   initialIndex  I
            6   18     4  terminalIndex  I
            7   17     5              i  I
            9   15     6      nextDigit  I
    MethodParameters:
            Name  Flags
      firstDigit  

  private int parseOctal(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int firstDigit
         0: .line 803
            iload 1 /* firstDigit */
            istore 2 /* ret */
        start local 2 // int ret
         1: .line 804
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 805
      StackMap locals: int int
      StackMap stack:
            iload 2 /* ret */
            bipush 8
            imul
            sipush 255
            if_icmple 5
         4: .line 806
            iload 2 /* ret */
            ireturn
         5: .line 808
      StackMap locals:
      StackMap stack:
            iload 2 /* ret */
            bipush 8
            imul
            istore 2 /* ret */
         6: .line 809
            iload 2 /* ret */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            bipush 48
            isub
            iadd
            istore 2 /* ret */
         7: .line 804
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 9
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isOctal:(C)Z
            ifeq 9
            iload 3 /* i */
            iconst_2
            if_icmplt 3
        end local 3 // int i
         9: .line 811
      StackMap locals:
      StackMap stack:
            iload 2 /* ret */
            ireturn
        end local 2 // int ret
        end local 1 // int firstDigit
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   10     1  firstDigit  I
            1   10     2         ret  I
            2    9     3           i  I
    MethodParameters:
            Name  Flags
      firstDigit  

  private int parseHex(int, int, int, java.lang.String);
    descriptor: (IIILjava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // int minDigits
        start local 2 // int maxDigits
        start local 3 // int maxValue
        start local 4 // java.lang.String errorMsg
         0: .line 815
            iconst_0
            istore 5 /* ret */
        start local 5 // int ret
         1: .line 816
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
            istore 6 /* initialIndex */
        start local 6 // int initialIndex
         2: .line 817
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 22
         4: .line 818
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.atEnd:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.curChar:()C
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isHex:(C)Z
            ifne 10
         5: .line 819
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 1 /* minDigits */
            if_icmpge 23
         6: .line 820
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 8
         7: .line 821
            aload 0 /* this */
            aload 4 /* errorMsg */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
         8: .line 823
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* initialIndex */
            putfield com.oracle.truffle.regex.tregex.parser.RegexLexer.index:I
         9: .line 824
            iconst_m1
            ireturn
        10: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.consumeChar:()C
            istore 8 /* c */
        start local 8 // char c
        11: .line 831
            iload 5 /* ret */
            bipush 16
            imul
            istore 5 /* ret */
        12: .line 832
            iload 8 /* c */
            bipush 97
            if_icmplt 15
        13: .line 833
            iload 5 /* ret */
            iload 8 /* c */
            bipush 87
            isub
            iadd
            istore 5 /* ret */
        14: .line 834
            goto 19
      StackMap locals: int
      StackMap stack:
        15: iload 8 /* c */
            bipush 65
            if_icmplt 18
        16: .line 835
            iload 5 /* ret */
            iload 8 /* c */
            bipush 55
            isub
            iadd
            istore 5 /* ret */
        17: .line 836
            goto 19
        18: .line 837
      StackMap locals:
      StackMap stack:
            iload 5 /* ret */
            iload 8 /* c */
            bipush 48
            isub
            iadd
            istore 5 /* ret */
        19: .line 839
      StackMap locals:
      StackMap stack:
            iload 5 /* ret */
            iload 3 /* maxValue */
            if_icmple 21
        20: .line 840
            aload 0 /* this */
            aload 4 /* errorMsg */
            invokevirtual com.oracle.truffle.regex.tregex.parser.RegexLexer.syntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
            athrow
        end local 8 // char c
        21: .line 817
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            iload 2 /* maxDigits */
            if_icmplt 4
        end local 7 // int i
        23: .line 843
      StackMap locals:
      StackMap stack:
            iload 5 /* ret */
            ireturn
        end local 6 // int initialIndex
        end local 5 // int ret
        end local 4 // java.lang.String errorMsg
        end local 3 // int maxValue
        end local 2 // int maxDigits
        end local 1 // int minDigits
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0          this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0   24     1     minDigits  I
            0   24     2     maxDigits  I
            0   24     3      maxValue  I
            0   24     4      errorMsg  Ljava/lang/String;
            1   24     5           ret  I
            2   24     6  initialIndex  I
            3   23     7             i  I
           11   21     8             c  C
    Exceptions:
      throws com.oracle.truffle.regex.RegexSyntaxException
    MethodParameters:
           Name  Flags
      minDigits  
      maxDigits  
      maxValue   
      errorMsg   

  private static boolean isDecimal(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 847
            bipush 48
            iload 0 /* c */
            if_icmpgt 1
            iload 0 /* c */
            bipush 57
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isOctal(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 851
            bipush 48
            iload 0 /* c */
            if_icmpgt 1
            iload 0 /* c */
            bipush 55
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isHex(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 855
            bipush 48
            iload 0 /* c */
            if_icmpgt 1
            iload 0 /* c */
            bipush 57
            if_icmple 4
      StackMap locals:
      StackMap stack:
         1: bipush 97
            iload 0 /* c */
            if_icmpgt 2
            iload 0 /* c */
            bipush 102
            if_icmple 4
      StackMap locals:
      StackMap stack:
         2: bipush 65
            iload 0 /* c */
            if_icmpgt 3
            iload 0 /* c */
            bipush 70
            if_icmple 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isPredefCharClass(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 859
            getstatic com.oracle.truffle.regex.tregex.parser.RegexLexer.PREDEFINED_CHAR_CLASSES:Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
            iload 0 /* c */
            invokevirtual com.oracle.truffle.regex.util.CompilationFinalBitSet.get:(I)Z
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean isEscapeCharClass(char);
    descriptor: (C)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // char c
         0: .line 863
            iload 1 /* c */
            invokestatic com.oracle.truffle.regex.tregex.parser.RegexLexer.isPredefCharClass:(C)Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.flags:Lcom/oracle/truffle/regex/RegexFlags;
            invokevirtual com.oracle.truffle.regex.RegexFlags.isUnicode:()Z
            ifeq 1
            iload 1 /* c */
            bipush 112
            if_icmpeq 2
            iload 1 /* c */
            bipush 80
            if_icmpeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    3     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private com.oracle.truffle.regex.RegexSyntaxException syntaxError(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/regex/RegexSyntaxException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
        start local 1 // java.lang.String msg
         0: .line 867
            new com.oracle.truffle.regex.RegexSyntaxException
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.parser.RegexLexer.source:Lcom/oracle/truffle/regex/RegexSource;
            aload 1 /* msg */
            invokespecial com.oracle.truffle.regex.RegexSyntaxException.<init>:(Lcom/oracle/truffle/regex/RegexSource;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String msg
        end local 0 // com.oracle.truffle.regex.tregex.parser.RegexLexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/parser/RegexLexer;
            0    1     1   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "RegexLexer.java"
InnerClasses:
  public final CaseFoldingAlgorithm = com.oracle.truffle.regex.tregex.parser.CaseFoldTable$CaseFoldingAlgorithm of com.oracle.truffle.regex.tregex.parser.CaseFoldTable
  public final Kind = com.oracle.truffle.regex.tregex.parser.Token$Kind of com.oracle.truffle.regex.tregex.parser.Token
  public final Quantifier = com.oracle.truffle.regex.tregex.parser.Token$Quantifier of com.oracle.truffle.regex.tregex.parser.Token
  public abstract Encoding = com.oracle.truffle.regex.tregex.string.Encodings$Encoding of com.oracle.truffle.regex.tregex.string.Encodings