public class com.oracle.truffle.regex.tregex.util.DotExport
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.regex.tregex.util.DotExport
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern specialChars;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 55
            ldc "[\"\\\\]"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic com.oracle.truffle.regex.tregex.util.DotExport.specialChars:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.tregex.util.DotExport this
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.regex.tregex.util.DotExport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/tregex/util/DotExport;

  public static void printConnection(java.io.BufferedWriter, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/BufferedWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.io.BufferedWriter writer
        start local 1 // java.lang.String from
        start local 2 // java.lang.String to
        start local 3 // java.lang.String label
         0: .line 51
            aload 0 /* writer */
            ldc "    \"%s\" -> \"%s\" [ label = \"%s\" ];"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* from */
            invokestatic com.oracle.truffle.regex.tregex.util.DotExport.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* to */
            invokestatic com.oracle.truffle.regex.tregex.util.DotExport.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 3 /* label */
            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 52
            aload 0 /* writer */
            invokevirtual java.io.BufferedWriter.newLine:()V
         2: .line 53
            return
        end local 3 // java.lang.String label
        end local 2 // java.lang.String to
        end local 1 // java.lang.String from
        end local 0 // java.io.BufferedWriter writer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  writer  Ljava/io/BufferedWriter;
            0    3     1    from  Ljava/lang/String;
            0    3     2      to  Ljava/lang/String;
            0    3     3   label  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      writer  
      from    
      to      
      label   

  public static java.lang.String escape(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String str
         0: .line 58
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* escapedString */
        start local 1 // java.lang.StringBuffer escapedString
         1: .line 59
            getstatic com.oracle.truffle.regex.tregex.util.DotExport.specialChars:Ljava/util/regex/Pattern;
            aload 0 /* str */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 2 /* m */
        start local 2 // java.util.regex.Matcher m
         2: .line 60
            goto 10
         3: .line 62
      StackMap locals: java.lang.StringBuffer java.util.regex.Matcher
      StackMap stack:
            aload 0 /* str */
            aload 2 /* m */
            invokevirtual java.util.regex.Matcher.start:()I
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 2
                   34: 4
                   92: 6
              default: 8
          }
         4: .line 64
      StackMap locals:
      StackMap stack:
            ldc "\\\\\""
            astore 3 /* replacement */
        start local 3 // java.lang.String replacement
         5: .line 65
            goto 9
        end local 3 // java.lang.String replacement
         6: .line 67
      StackMap locals:
      StackMap stack:
            ldc "\\\\\\\\"
            astore 3 /* replacement */
        start local 3 // java.lang.String replacement
         7: .line 68
            goto 9
        end local 3 // java.lang.String replacement
         8: .line 70
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 3 // java.lang.String replacement
         9: .line 72
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* m */
            aload 1 /* escapedString */
            aload 3 /* replacement */
            invokevirtual java.util.regex.Matcher.appendReplacement:(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
            pop
        end local 3 // java.lang.String replacement
        10: .line 60
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 3
        11: .line 74
            aload 2 /* m */
            aload 1 /* escapedString */
            invokevirtual java.util.regex.Matcher.appendTail:(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            pop
        12: .line 75
            aload 1 /* escapedString */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.util.regex.Matcher m
        end local 1 // java.lang.StringBuffer escapedString
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0            str  Ljava/lang/String;
            1   13     1  escapedString  Ljava/lang/StringBuffer;
            2   13     2              m  Ljava/util/regex/Matcher;
            5    6     3    replacement  Ljava/lang/String;
            7    8     3    replacement  Ljava/lang/String;
            9   10     3    replacement  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   
}
SourceFile: "DotExport.java"