public final class com.oracle.truffle.regex.tregex.util.NFAExport
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.regex.tregex.util.NFAExport
  super_class: java.lang.Object
{
  private final com.oracle.truffle.regex.tregex.nfa.NFA nfa;
    descriptor: Lcom/oracle/truffle/regex/tregex/nfa/NFA;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.BufferedWriter writer;
    descriptor: Ljava/io/BufferedWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean forward;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean fullLabels;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mergeFinalStates;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.HashMap<com.oracle.truffle.regex.tregex.nfa.NFAState, java.lang.Integer> stateNumberMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/Integer;>;

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>(com.oracle.truffle.regex.tregex.nfa.NFA, java.io.BufferedWriter, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFA;Ljava/io/BufferedWriter;ZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
        start local 2 // java.io.BufferedWriter writer
        start local 3 // boolean forward
        start local 4 // boolean fullLabels
        start local 5 // boolean mergeFinalStates
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
         2: .line 74
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
         3: .line 77
            aload 0 /* this */
            aload 1 /* nfa */
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
         4: .line 78
            aload 0 /* this */
            aload 2 /* writer */
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
         5: .line 79
            aload 0 /* this */
            iload 3 /* forward */
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
         6: .line 80
            aload 0 /* this */
            iload 4 /* fullLabels */
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
         7: .line 81
            aload 0 /* this */
            iload 5 /* mergeFinalStates */
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
         8: .line 82
            return
        end local 5 // boolean mergeFinalStates
        end local 4 // boolean fullLabels
        end local 3 // boolean forward
        end local 2 // java.io.BufferedWriter writer
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    9     1               nfa  Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            0    9     2            writer  Ljava/io/BufferedWriter;
            0    9     3           forward  Z
            0    9     4        fullLabels  Z
            0    9     5  mergeFinalStates  Z
    MethodParameters:
                  Name  Flags
      nfa               
      writer            
      forward           
      fullLabels        
      mergeFinalStates  

  public static void exportDot(com.oracle.truffle.regex.tregex.nfa.NFA, com.oracle.truffle.api.TruffleFile, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFA;Lcom/oracle/truffle/api/TruffleFile;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
        start local 1 // com.oracle.truffle.api.TruffleFile path
        start local 2 // boolean fullLabels
        start local 3 // boolean mergeFinalStates
         0: .line 86
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 1 /* path */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
            invokevirtual com.oracle.truffle.api.TruffleFile.newBufferedWriter:([Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 6 /* writer */
        start local 6 // java.io.BufferedWriter writer
         2: .line 87
            new com.oracle.truffle.regex.tregex.util.NFAExport
            dup
            aload 0 /* nfa */
            aload 6 /* writer */
            iconst_1
            iload 2 /* fullLabels */
            iload 3 /* mergeFinalStates */
            invokespecial com.oracle.truffle.regex.tregex.util.NFAExport.<init>:(Lcom/oracle/truffle/regex/tregex/nfa/NFA;Ljava/io/BufferedWriter;ZZZ)V
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.exportDot:()V
         3: .line 88
            aload 6 /* writer */
            ifnull 11
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 11
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
         4: astore 4
            aload 6 /* writer */
            ifnull 5
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 6 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
         5: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 5
            aload 4
            ifnonnull 7
            aload 5
            astore 4
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 4
            aload 5
            if_acmpeq 8
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int
      StackMap stack: java.io.IOException
         9: astore 4 /* e */
        start local 4 // java.io.IOException e
        10: .line 89
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        11: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean mergeFinalStates
        end local 2 // boolean fullLabels
        end local 1 // com.oracle.truffle.api.TruffleFile path
        end local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0               nfa  Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            0   12     1              path  Lcom/oracle/truffle/api/TruffleFile;
            0   12     2        fullLabels  Z
            0   12     3  mergeFinalStates  Z
            2    5     6            writer  Ljava/io/BufferedWriter;
           10   11     4                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
           0     9       9  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      nfa               
      path              
      fullLabels        
      mergeFinalStates  

  public static void exportDotReverse(com.oracle.truffle.regex.tregex.nfa.NFA, com.oracle.truffle.api.TruffleFile, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFA;Lcom/oracle/truffle/api/TruffleFile;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
        start local 1 // com.oracle.truffle.api.TruffleFile path
        start local 2 // boolean fullLabels
        start local 3 // boolean mergeFinalStates
         0: .line 95
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 1 /* path */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
            invokevirtual com.oracle.truffle.api.TruffleFile.newBufferedWriter:([Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 6 /* writer */
        start local 6 // java.io.BufferedWriter writer
         2: .line 96
            new com.oracle.truffle.regex.tregex.util.NFAExport
            dup
            aload 0 /* nfa */
            aload 6 /* writer */
            iconst_0
            iload 2 /* fullLabels */
            iload 3 /* mergeFinalStates */
            invokespecial com.oracle.truffle.regex.tregex.util.NFAExport.<init>:(Lcom/oracle/truffle/regex/tregex/nfa/NFA;Ljava/io/BufferedWriter;ZZZ)V
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.exportDot:()V
         3: .line 97
            aload 6 /* writer */
            ifnull 11
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 11
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
         4: astore 4
            aload 6 /* writer */
            ifnull 5
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 6 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
         5: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 5
            aload 4
            ifnonnull 7
            aload 5
            astore 4
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 4
            aload 5
            if_acmpeq 8
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int
      StackMap stack: java.io.IOException
         9: astore 4 /* e */
        start local 4 // java.io.IOException e
        10: .line 98
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        11: .line 100
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean mergeFinalStates
        end local 2 // boolean fullLabels
        end local 1 // com.oracle.truffle.api.TruffleFile path
        end local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0               nfa  Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            0   12     1              path  Lcom/oracle/truffle/api/TruffleFile;
            0   12     2        fullLabels  Z
            0   12     3  mergeFinalStates  Z
            2    5     6            writer  Ljava/io/BufferedWriter;
           10   11     4                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
           0     9       9  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      nfa               
      path              
      fullLabels        
      mergeFinalStates  

  public static void exportLaTex(com.oracle.truffle.regex.tregex.nfa.NFA, com.oracle.truffle.api.TruffleFile, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFA;Lcom/oracle/truffle/api/TruffleFile;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
        start local 1 // com.oracle.truffle.api.TruffleFile path
        start local 2 // boolean fullLabels
        start local 3 // boolean mergeFinalStates
         0: .line 104
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 1 /* path */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
            invokevirtual com.oracle.truffle.api.TruffleFile.newBufferedWriter:([Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 6 /* writer */
        start local 6 // java.io.BufferedWriter writer
         2: .line 105
            new com.oracle.truffle.regex.tregex.util.NFAExport
            dup
            aload 0 /* nfa */
            aload 6 /* writer */
            iconst_1
            iload 2 /* fullLabels */
            iload 3 /* mergeFinalStates */
            invokespecial com.oracle.truffle.regex.tregex.util.NFAExport.<init>:(Lcom/oracle/truffle/regex/tregex/nfa/NFA;Ljava/io/BufferedWriter;ZZZ)V
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.exportLaTex:()V
         3: .line 106
            aload 6 /* writer */
            ifnull 11
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 11
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
         4: astore 4
            aload 6 /* writer */
            ifnull 5
            aload 6 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 6 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
         5: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 5
            aload 4
            ifnonnull 7
            aload 5
            astore 4
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 4
            aload 5
            if_acmpeq 8
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFA com.oracle.truffle.api.TruffleFile int int
      StackMap stack: java.io.IOException
         9: astore 4 /* e */
        start local 4 // java.io.IOException e
        10: .line 107
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        11: .line 109
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean mergeFinalStates
        end local 2 // boolean fullLabels
        end local 1 // com.oracle.truffle.api.TruffleFile path
        end local 0 // com.oracle.truffle.regex.tregex.nfa.NFA nfa
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0               nfa  Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            0   12     1              path  Lcom/oracle/truffle/api/TruffleFile;
            0   12     2        fullLabels  Z
            0   12     3  mergeFinalStates  Z
            2    5     6            writer  Ljava/io/BufferedWriter;
           10   11     4                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
           0     9       9  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      nfa               
      path              
      fullLabels        
      mergeFinalStates  

  private void exportDot();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
         0: .line 112
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "digraph finite_state_machine {"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         1: .line 113
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
         2: .line 114
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
         3: .line 115
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getStates:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 8
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport top int int com.oracle.truffle.regex.tregex.nfa.NFAState[]
      StackMap stack:
         4: aload 4
            iload 2
            aaload
            astore 1 /* state */
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         5: .line 116
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.showState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Z
            ifeq 7
         6: .line 117
            aload 0 /* this */
            aload 1 /* state */
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getDotStateStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.setDotNodeStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         7: .line 115
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         8: iload 2
            iload 3
            if_icmplt 4
         9: .line 120
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        10: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getStates:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 24
      StackMap locals:
      StackMap stack:
        11: aload 4
            iload 2
            aaload
            astore 1 /* state */
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        12: .line 122
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.showState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Z
            ifeq 23
        13: .line 123
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: goto 22
        15: .line 124
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState int int com.oracle.truffle.regex.tregex.nfa.NFAState[] int
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:(Z)[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            iload 5 /* i */
            aaload
            astore 6 /* transition */
        start local 6 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition transition
        16: .line 125
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
        17: .line 126
            aload 0 /* this */
            aload 6 /* transition */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getSource:(Z)Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Ljava/lang/String;
        18: .line 127
            aload 0 /* this */
            aload 6 /* transition */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:(Z)Lcom/oracle/truffle/regex/tregex/automaton/AbstractState;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAState
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Ljava/lang/String;
        19: .line 128
            aload 0 /* this */
            aload 6 /* transition */
            iload 5 /* i */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelTransition:(Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)Ljava/lang/String;
        20: .line 125
            invokestatic com.oracle.truffle.regex.tregex.util.DotExport.printConnection:(Ljava/io/BufferedWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        end local 6 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition transition
        21: .line 123
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* i */
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:(Z)[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            arraylength
            if_icmplt 15
        end local 5 // int i
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        23: .line 121
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport top int int com.oracle.truffle.regex.tregex.nfa.NFAState[]
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        24: iload 2
            iload 3
            if_icmplt 11
        25: .line 132
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "}"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        26: .line 133
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        27: .line 134
            return
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            5    7     1       state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           12   23     1       state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           14   23     5           i  I
           16   21     6  transition  Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
    Exceptions:
      throws java.io.IOException

  private java.lang.String getDotStateStyle(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         0: .line 137
            invokestatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:()[I
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getStateStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 3
                    2: 3
                    3: 1
                    4: 2
                    5: 3
              default: 4
          }
         1: .line 139
      StackMap locals:
      StackMap stack:
            ldc "Mcircle"
            areturn
         2: .line 141
      StackMap locals:
      StackMap stack:
            ldc "doublecircle"
            areturn
         3: .line 145
      StackMap locals:
      StackMap stack:
            ldc "circle"
            areturn
         4: .line 147
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    5     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
    MethodParameters:
       Name  Flags
      state  

  private void setDotNodeStyle(com.oracle.truffle.regex.tregex.nfa.NFAState, java.lang.String);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        start local 2 // java.lang.String style
         0: .line 152
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "    node [shape = %s]; \"%s\";"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* style */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 1 /* state */
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Ljava/lang/String;
            invokestatic com.oracle.truffle.regex.tregex.util.DotExport.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         1: .line 153
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
         2: .line 154
            return
        end local 2 // java.lang.String style
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    3     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            0    3     2  style  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      state  
      style  

  private void exportLaTex();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
         0: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokestatic com.oracle.truffle.regex.tregex.automaton.StateSet.create:(Lcom/oracle/truffle/regex/tregex/automaton/StateIndex;)Lcom/oracle/truffle/regex/tregex/automaton/StateSet;
            astore 1 /* visited */
        start local 1 // com.oracle.truffle.regex.tregex.automaton.StateSet visited
         1: .line 158
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "\\documentclass{standalone}\n\\usepackage[utf8]{inputenc}\n\\usepackage[T1]{fontenc}\n\\usepackage{tikz}\n\n\\usetikzlibrary{calc}\n\\usetikzlibrary{automata}\n\\usetikzlibrary{arrows.meta}\n\n\\tikzset{\n\tregex automaton/.style={\n\t\tauto, \n\t\tnode distance=2cm,\n\t\tevery state/.style={\n\t\t\tsemithick,\n\t\t\tfill=gray!5,\n\t\t\tfont=\\footnotesize\\ttfamily,\n\t\t},\n\t\tdouble distance=1.5pt,  % Adjust appearance of accept states\n\t\tinitial text={start},   % label on inital state arrow\n\t\tevery edge/.style={\n\t\t\tdraw,\n\t\t\tfont=\\footnotesize\\ttfamily,\n\t\t\t-Stealth,\n\t\t\tshorten >=1pt,\n\t\t\tauto,\n\t\t\tsemithick\n\t\t},\n\t\tevery loop/.style={\n\t\t\tdraw,\n\t\t\tfont=\\footnotesize\\ttfamily,\n\t\t\t-Stealth,\n\t\t\tshorten >=1pt,\n\t\t\tauto,\n\t\t\tsemithick\n\t\t}\n\t},\n\tanchored/.style={\n\t\tpath picture={\n\t\t\t\\draw[semithick] ($(path picture bounding box.north west)-(0,0.2)$) -- ($(path picture bounding box.north east)-(0,0.2)$);\n\t\t\t\\draw[semithick] ($(path picture bounding box.south west)+(0,0.2)$) -- ($(path picture bounding box.south east)+(0,0.2)$);\n\t\t}\n\t}\n}\n\n\\begin{document}\n\\begin{tikzpicture}[regex automaton]\n\n"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         2: .line 206
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* curStates */
        start local 2 // java.util.ArrayList curStates
         3: .line 207
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* nextStates */
        start local 3 // java.util.ArrayList nextStates
         4: .line 208
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getAnchoredEntry:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            arraylength
            iconst_1
            isub
            istore 4 /* entryOffset */
        start local 4 // int entryOffset
         5: .line 209
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getAnchoredEntry:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            iload 4 /* entryOffset */
            aaload
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            astore 5 /* lastAnchoredEntry */
        start local 5 // com.oracle.truffle.regex.tregex.nfa.NFAState lastAnchoredEntry
         6: .line 210
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getUnAnchoredEntry:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            iload 4 /* entryOffset */
            aaload
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            astore 6 /* lastUnAnchoredEntry */
        start local 6 // com.oracle.truffle.regex.tregex.nfa.NFAState lastUnAnchoredEntry
         7: .line 211
            aload 1 /* visited */
            aload 5 /* lastAnchoredEntry */
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
            pop
         8: .line 212
            aload 1 /* visited */
            aload 6 /* lastUnAnchoredEntry */
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
            pop
         9: .line 213
            aload 2 /* curStates */
            aload 5 /* lastAnchoredEntry */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 214
            aload 0 /* this */
            aload 5 /* lastAnchoredEntry */
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.printLaTexState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
        11: .line 215
            aload 5 /* lastAnchoredEntry */
            aload 6 /* lastUnAnchoredEntry */
            if_acmpeq 14
        12: .line 216
            aload 2 /* curStates */
            aload 6 /* lastUnAnchoredEntry */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 217
            aload 0 /* this */
            aload 6 /* lastUnAnchoredEntry */
            aload 5 /* lastAnchoredEntry */
            ldc "below"
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.printLaTexState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
        14: .line 219
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState
      StackMap stack:
            iinc 4 /* entryOffset */ -1
        15: .line 220
            goto 48
        16: .line 221
      StackMap locals:
      StackMap stack:
            aload 2 /* curStates */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top java.util.Iterator
      StackMap stack:
        17: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAState
            astore 7 /* s */
        start local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState s
        18: .line 222
            aload 7 /* s */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:()[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 24
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator top int int com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
      StackMap stack:
        19: aload 12
            iload 10
            aaload
            astore 9 /* t */
        start local 9 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        20: .line 223
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
            ifeq 21
            aload 9 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
            ifne 23
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator com.oracle.truffle.regex.tregex.nfa.NFAStateTransition int int com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
      StackMap stack:
        21: aload 1 /* visited */
            aload 9 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 224
            aload 3 /* nextStates */
            aload 9 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        23: .line 222
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator top int int com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        24: iload 10
            iload 11
            if_icmplt 19
        end local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState s
        25: .line 221
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        26: .line 228
            iload 4 /* entryOffset */
            iflt 34
        27: .line 229
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getAnchoredEntry:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            iload 4 /* entryOffset */
            aaload
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            astore 7 /* anchoredEntry */
        start local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState anchoredEntry
        28: .line 230
            aload 1 /* visited */
            aload 7 /* anchoredEntry */
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 231
            aload 3 /* nextStates */
            aload 7 /* anchoredEntry */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        30: .line 233
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getUnAnchoredEntry:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            iload 4 /* entryOffset */
            aaload
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            astore 8 /* unAnchoredEntry */
        start local 8 // com.oracle.truffle.regex.tregex.nfa.NFAState unAnchoredEntry
        31: .line 234
            aload 1 /* visited */
            aload 8 /* unAnchoredEntry */
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
            ifeq 33
        32: .line 235
            aload 3 /* nextStates */
            aload 8 /* unAnchoredEntry */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        33: .line 237
      StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFAState
      StackMap stack:
            iinc 4 /* entryOffset */ -1
        end local 8 // com.oracle.truffle.regex.tregex.nfa.NFAState unAnchoredEntry
        end local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState anchoredEntry
        34: .line 239
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* relativeTo */
        start local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState relativeTo
        35: .line 240
            aload 3 /* nextStates */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 9
            goto 43
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top java.util.Iterator
      StackMap stack:
        36: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAState
            astore 8 /* nextState */
        start local 8 // com.oracle.truffle.regex.tregex.nfa.NFAState nextState
        37: .line 241
            aload 0 /* this */
            aload 8 /* nextState */
            aload 7 /* relativeTo */
            ifnonnull 38
            aload 2 /* curStates */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAState
            goto 39
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator
      StackMap stack: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState
        38: aload 7 /* relativeTo */
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator
      StackMap stack: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState
        39: aload 7 /* relativeTo */
            ifnonnull 40
            ldc "right"
            goto 41
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator
      StackMap stack: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState
        40: ldc "below"
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.util.Iterator
      StackMap stack: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState java.lang.String
        41: invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.printLaTexState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
        42: .line 242
            aload 8 /* nextState */
            astore 7 /* relativeTo */
        end local 8 // com.oracle.truffle.regex.tregex.nfa.NFAState nextState
        43: .line 240
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        44: .line 244
            aload 2 /* curStates */
            astore 8 /* tmp */
        start local 8 // java.util.ArrayList tmp
        45: .line 245
            aload 3 /* nextStates */
            astore 2 /* curStates */
        46: .line 246
            aload 8 /* tmp */
            astore 3 /* nextStates */
        47: .line 247
            aload 3 /* nextStates */
            invokevirtual java.util.ArrayList.clear:()V
        end local 8 // java.util.ArrayList tmp
        end local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState relativeTo
        48: .line 220
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState
      StackMap stack:
            aload 2 /* curStates */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 16
        49: .line 249
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        50: .line 250
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "\\path[->]"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        51: .line 251
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        52: .line 252
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getStates:()[Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 64
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top int int com.oracle.truffle.regex.tregex.nfa.NFAState[]
      StackMap stack:
        53: aload 10
            iload 8
            aaload
            astore 7 /* s */
        start local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState s
        54: .line 253
            aload 7 /* s */
            ifnonnull 56
        55: .line 254
            goto 63
        56: .line 256
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState int int com.oracle.truffle.regex.tregex.nfa.NFAState[]
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        57: goto 62
        58: .line 257
      StackMap locals: int
      StackMap stack:
            aload 7 /* s */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:()[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            iload 11 /* i */
            aaload
            astore 12 /* t */
        start local 12 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        59: .line 258
            aload 1 /* visited */
            aload 7 /* s */
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.contains:(Ljava/lang/Object;)Z
            ifeq 61
            aload 1 /* visited */
            aload 12 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.contains:(Ljava/lang/Object;)Z
            ifeq 61
        60: .line 259
            aload 0 /* this */
            aload 12 /* t */
            iload 11 /* i */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.printLaTexTransition:(Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)V
        end local 12 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        61: .line 256
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        62: iload 11 /* i */
            aload 7 /* s */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:()[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            arraylength
            if_icmplt 58
        end local 11 // int i
        end local 7 // com.oracle.truffle.regex.tregex.nfa.NFAState s
        63: .line 252
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.automaton.StateSet java.util.ArrayList java.util.ArrayList int com.oracle.truffle.regex.tregex.nfa.NFAState com.oracle.truffle.regex.tregex.nfa.NFAState top int int com.oracle.truffle.regex.tregex.nfa.NFAState[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        64: iload 8
            iload 9
            if_icmplt 53
        65: .line 263
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc ";"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        66: .line 264
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        67: .line 265
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "\\end{tikzpicture}"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        68: .line 266
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        69: .line 267
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "\\end{document}"
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        70: .line 268
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
        71: .line 269
            return
        end local 6 // com.oracle.truffle.regex.tregex.nfa.NFAState lastUnAnchoredEntry
        end local 5 // com.oracle.truffle.regex.tregex.nfa.NFAState lastAnchoredEntry
        end local 4 // int entryOffset
        end local 3 // java.util.ArrayList nextStates
        end local 2 // java.util.ArrayList curStates
        end local 1 // com.oracle.truffle.regex.tregex.automaton.StateSet visited
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   72     0                 this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            1   72     1              visited  Lcom/oracle/truffle/regex/tregex/automaton/StateSet<Lcom/oracle/truffle/regex/tregex/nfa/NFA;Lcom/oracle/truffle/regex/tregex/nfa/NFAState;>;
            3   72     2            curStates  Ljava/util/ArrayList<Lcom/oracle/truffle/regex/tregex/nfa/NFAState;>;
            4   72     3           nextStates  Ljava/util/ArrayList<Lcom/oracle/truffle/regex/tregex/nfa/NFAState;>;
            5   72     4          entryOffset  I
            6   72     5    lastAnchoredEntry  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            7   72     6  lastUnAnchoredEntry  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           18   25     7                    s  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           20   23     9                    t  Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
           28   34     7        anchoredEntry  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           31   34     8      unAnchoredEntry  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           35   48     7           relativeTo  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           37   43     8            nextState  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           45   48     8                  tmp  Ljava/util/ArrayList<Lcom/oracle/truffle/regex/tregex/nfa/NFAState;>;
           54   63     7                    s  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
           57   63    11                    i  I
           59   61    12                    t  Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
    Exceptions:
      throws java.io.IOException

  private void printLaTexState(com.oracle.truffle.regex.tregex.nfa.NFAState, com.oracle.truffle.regex.tregex.nfa.NFAState, java.lang.String);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        start local 2 // com.oracle.truffle.regex.tregex.nfa.NFAState relativeTo
        start local 3 // java.lang.String direction
         0: .line 272
            ldc ""
            astore 4 /* offset */
        start local 4 // java.lang.String offset
         1: .line 273
            aload 2 /* relativeTo */
            ifnull 3
         2: .line 274
            ldc "%s of=%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* direction */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 2 /* relativeTo */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateID:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* offset */
         3: .line 276
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "\\node[%s] (%s) [%s] {%s};"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         4: .line 277
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateID:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 4 /* offset */
            aastore
            dup
            iconst_3
            aload 0 /* this */
            aload 1 /* state */
            iconst_0
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Ljava/lang/String;
            invokestatic com.oracle.truffle.regex.tregex.util.LaTexExport.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         5: .line 276
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         6: .line 278
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
         7: .line 279
            return
        end local 4 // java.lang.String offset
        end local 3 // java.lang.String direction
        end local 2 // com.oracle.truffle.regex.tregex.nfa.NFAState relativeTo
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    8     1       state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            0    8     2  relativeTo  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            0    8     3   direction  Ljava/lang/String;
            1    8     4      offset  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      state       
      relativeTo  
      direction   

  private void printLaTexTransition(com.oracle.truffle.regex.tregex.nfa.NFAStateTransition, int);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        start local 2 // int priority
         0: .line 282
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* options */
        start local 3 // java.util.ArrayList options
         1: .line 283
            aload 1 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getSource:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            aload 1 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            if_acmpne 3
         2: .line 284
            aload 3 /* options */
            ldc "loop above"
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 286
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            ldc "(%s) edge [%s] node {%s} (%s)"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getSource:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateID:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         4: .line 287
            aload 3 /* options */
            invokevirtual java.util.ArrayList.stream:()Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
            dup
            iconst_2
         5: .line 288
            aload 0 /* this */
            aload 1 /* t */
            iload 2 /* priority */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelTransition:(Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)Ljava/lang/String;
            invokestatic com.oracle.truffle.regex.tregex.util.LaTexExport.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
         6: .line 289
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateID:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
            aastore
         7: .line 286
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         8: .line 290
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
            invokevirtual java.io.BufferedWriter.newLine:()V
         9: .line 291
            return
        end local 3 // java.util.ArrayList options
        end local 2 // int priority
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition t
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0   10     1         t  Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            0   10     2  priority  I
            1   10     3   options  Ljava/util/ArrayList<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      t         
      priority  

  private java.lang.String getLaTexStateID(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         0: .line 294
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
            ifeq 2
         1: .line 295
            ldc "af"
            areturn
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isUnAnchoredFinalState:(Z)Z
            ifeq 4
         3: .line 298
            ldc "f"
            areturn
         4: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 11
         5: .line 301
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isUnAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 6
            ldc "i"
            goto 7
      StackMap locals:
      StackMap stack:
         6: ldc "ai"
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 2 /* lbl */
        start local 2 // java.lang.String lbl
         8: .line 302
            new java.lang.StringBuilder
            dup
            aload 2 /* lbl */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isUnAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 9
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getUnAnchoredEntryOffset:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)I
            goto 10
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState java.lang.String
      StackMap stack: java.lang.StringBuilder
         9: aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getAnchoredEntryOffset:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)I
      StackMap locals: com.oracle.truffle.regex.tregex.util.NFAExport com.oracle.truffle.regex.tregex.nfa.NFAState java.lang.String
      StackMap stack: java.lang.StringBuilder int
        10: invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String lbl
        11: .line 304
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "s"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
            aload 1 /* state */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/regex/tregex/util/NFAExport;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/regex/tregex/util/NFAExport.lambda$0(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer; (7)
                  (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0   12     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            8   11     2    lbl  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      state  

  private java.lang.String getLaTexStateStyle(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         0: .line 308
            invokestatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:()[I
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getStateStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 1
                    2: 2
                    3: 3
                    4: 4
                    5: 5
              default: 6
          }
         1: .line 310
      StackMap locals:
      StackMap stack:
            ldc "anchored,initial,state"
            areturn
         2: .line 312
      StackMap locals:
      StackMap stack:
            ldc "initial,state"
            areturn
         3: .line 314
      StackMap locals:
      StackMap stack:
            ldc "anchored,accepting,state"
            areturn
         4: .line 316
      StackMap locals:
      StackMap stack:
            ldc "accepting,state"
            areturn
         5: .line 318
      StackMap locals:
      StackMap stack:
            ldc "state"
            areturn
         6: .line 320
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    7     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
    MethodParameters:
       Name  Flags
      state  

  private boolean showState(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         0: .line 325
            aload 1 /* state */
            ifnull 1
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getDummyInitialState:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            if_acmpne 2
         1: .line 326
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 5
         3: .line 329
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getSuccessors:(Z)[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            arraylength
            ifle 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 331
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
            ifeq 8
         6: .line 332
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getPredecessors:(Z)[Lcom/oracle/truffle/regex/tregex/automaton/AbstractTransition;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAStateTransition[]
            arraylength
            ifle 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 334
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    9     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
    MethodParameters:
       Name  Flags
      state  

  private com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle getStateStyle(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
         0: .line 338
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 4
         1: .line 339
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 3
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isUnAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifne 3
         2: .line 340
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ANCHORED_INITIAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            areturn
         3: .line 342
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.UN_ANCHORED_INITIAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            areturn
         4: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
            ifeq 5
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasTransitionToAnchoredFinalState:(Z)Z
            ifeq 5
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasTransitionToUnAnchoredFinalState:(Z)Z
            ifeq 6
         5: .line 345
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
            ifeq 7
         6: .line 346
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ANCHORED_FINAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            areturn
         7: .line 348
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
            ifne 8
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
            ifeq 9
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasTransitionToUnAnchoredFinalState:(Z)Z
            ifeq 9
         8: .line 349
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.UN_ANCHORED_FINAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            areturn
         9: .line 351
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.REGULAR:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            areturn
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0   10     1  state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
    MethodParameters:
       Name  Flags
      state  

  private java.lang.String labelState(com.oracle.truffle.regex.tregex.nfa.NFAState, boolean);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        start local 2 // boolean markAnchored
         0: .line 355
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 356
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 8
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isUnAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifne 8
         2: .line 357
            aload 3 /* sb */
            ldc "I"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 358
            iload 2 /* markAnchored */
            ifeq 5
         4: .line 359
            aload 3 /* sb */
            ldc "^"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 361
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            ifeq 25
         6: .line 362
            aload 3 /* sb */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getAnchoredEntryOffset:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         7: .line 364
            goto 25
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.isUnAnchoredEntry:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)Z
            ifeq 13
         9: .line 365
            aload 3 /* sb */
            ldc "I"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 366
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            ifeq 25
        11: .line 367
            aload 3 /* sb */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
            aload 1 /* state */
            iconst_1
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFA.getUnAnchoredEntryOffset:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;Z)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        12: .line 369
            goto 25
      StackMap locals:
      StackMap stack:
        13: aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
            ifeq 18
        14: .line 370
            aload 3 /* sb */
            ldc "F"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 371
            iload 2 /* markAnchored */
            ifeq 25
        16: .line 372
            aload 3 /* sb */
            ldc "$"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 374
            goto 25
      StackMap locals:
      StackMap stack:
        18: aload 1 /* state */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isUnAnchoredFinalState:(Z)Z
            ifeq 21
        19: .line 375
            aload 3 /* sb */
            ldc "F"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 376
            goto 25
        21: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
            ifeq 24
        22: .line 378
            aload 3 /* sb */
            ldc "S"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.idToString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 379
            goto 25
        24: .line 380
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
            aload 1 /* state */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/truffle/regex/tregex/util/NFAExport;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/regex/tregex/util/NFAExport.lambda$1(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer; (7)
                  (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        25: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
            ifeq 27
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasPossibleResults:()Z
            ifeq 27
        26: .line 384
            aload 3 /* sb */
            ldc "_r"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* state */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.getPossibleResults:()Lcom/oracle/truffle/regex/util/CompilationFinalBitSet;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        27: .line 386
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // boolean markAnchored
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState state
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0   28     1         state  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
            0   28     2  markAnchored  Z
            1   28     3            sb  Ljava/lang/StringBuilder;
    MethodParameters:
              Name  Flags
      state         
      markAnchored  

  private java.lang.String labelTransition(com.oracle.truffle.regex.tregex.nfa.NFAStateTransition, int);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition transition
        start local 2 // int priority
         0: .line 390
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 391
            aload 1 /* transition */
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:(Z)Lcom/oracle/truffle/regex/tregex/automaton/AbstractState;
            checkcast com.oracle.truffle.regex.tregex.nfa.NFAState
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
            ifne 3
         2: .line 392
            aload 3 /* sb */
            aload 1 /* transition */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getCodePointSet:()Lcom/oracle/truffle/regex/charset/CodePointSet;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 394
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
            ifeq 5
         4: .line 395
            aload 3 /* sb */
            ldc ", p"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* priority */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* transition */
            invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getGroupBoundaries:()Lcom/oracle/truffle/regex/tregex/parser/ast/GroupBoundaries;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         5: .line 397
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // int priority
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAStateTransition transition
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    6     1  transition  Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;
            0    6     2    priority  I
            1    6     3          sb  Ljava/lang/StringBuilder;
    MethodParameters:
            Name  Flags
      transition  
      priority    

  static int[] $SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 57
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.values:()[Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ANCHORED_FINAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ANCHORED_INITIAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.REGULAR:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.UN_ANCHORED_FINAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.UN_ANCHORED_INITIAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
            invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  private java.lang.Integer lambda$0(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState x
         0: .line 304
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
            dup_x1
            iconst_1
            iadd
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState x
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    1     1     x  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;

  private java.lang.Integer lambda$1(com.oracle.truffle.regex.tregex.nfa.NFAState);
    descriptor: (Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/Integer;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
        start local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState x
         0: .line 380
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
            dup_x1
            iconst_1
            iadd
            putfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 1 // com.oracle.truffle.regex.tregex.nfa.NFAState x
        end local 0 // com.oracle.truffle.regex.tregex.util.NFAExport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/util/NFAExport;
            0    1     1     x  Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
}
SourceFile: "NFAExport.java"
NestMembers:
  com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  private final StateStyle = com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle of com.oracle.truffle.regex.tregex.util.NFAExport
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles