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 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield com.oracle.truffle.regex.tregex.util.NFAExport.nextStateNumber:I
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
3: aload 0
aload 1
putfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
4: aload 0
aload 2
putfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
5: aload 0
iload 3
putfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
6: aload 0
iload 4
putfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
7: aload 0
iload 5
putfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
8: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: aload 1
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
start local 6 2: new com.oracle.truffle.regex.tregex.util.NFAExport
dup
aload 0
aload 6
iconst_1
iload 2
iload 3
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: aload 6
ifnull 11
aload 6
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
ifnull 5
aload 6
invokevirtual java.io.BufferedWriter.close:()V
end local 6 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
start local 4 10: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: aload 1
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
start local 6 2: new com.oracle.truffle.regex.tregex.util.NFAExport
dup
aload 0
aload 6
iconst_0
iload 2
iload 3
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: aload 6
ifnull 11
aload 6
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
ifnull 5
aload 6
invokevirtual java.io.BufferedWriter.close:()V
end local 6 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
start local 4 10: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: aload 1
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
start local 6 2: new com.oracle.truffle.regex.tregex.util.NFAExport
dup
aload 0
aload 6
iconst_1
iload 2
iload 3
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: aload 6
ifnull 11
aload 6
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
ifnull 5
aload 6
invokevirtual java.io.BufferedWriter.close:()V
end local 6 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
start local 4 10: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 0: aload 0
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
2: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
3: aload 0
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
start local 1 5: aload 0
aload 1
invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.showState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Z
ifeq 7
6: aload 0
aload 1
aload 0
aload 1
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 7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 3
if_icmplt 4
9: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
10: aload 0
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
start local 1 12: aload 0
aload 1
invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.showState:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Z
ifeq 23
13: iconst_0
istore 5
start local 5 14: goto 22
15: 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
aload 0
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
aaload
astore 6
start local 6 16: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
17: aload 0
aload 6
aload 0
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: aload 0
aload 6
aload 0
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: aload 0
aload 6
iload 5
invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.labelTransition:(Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)Ljava/lang/String;
20: 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 21: iinc 5 1
StackMap locals:
StackMap stack:
22: iload 5
aload 1
aload 0
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 end local 1 23: 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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
ldc "}"
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
26: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
27: return
end local 0 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 start local 1 0: invokestatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:()[I
aload 0
aload 1
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: StackMap locals:
StackMap stack:
ldc "Mcircle"
areturn
2: StackMap locals:
StackMap stack:
ldc "doublecircle"
areturn
3: StackMap locals:
StackMap stack:
ldc "circle"
areturn
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
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
aastore
dup
iconst_1
aload 0
aload 1
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
2: return
end local 2 end local 1 end local 0 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 0: aload 0
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
start local 1 1: aload 0
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: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 0
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
start local 4 5: aload 0
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
aaload
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
astore 5
start local 5 6: aload 0
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
aaload
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
astore 6
start local 6 7: aload 1
aload 5
invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
pop
8: aload 1
aload 6
invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
pop
9: aload 2
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
10: aload 0
aload 5
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: aload 5
aload 6
if_acmpeq 14
12: aload 2
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
13: aload 0
aload 6
aload 5
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: 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 -1
15: goto 48
16: StackMap locals:
StackMap stack:
aload 2
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
start local 7 18: aload 7
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
start local 9 20: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
ifeq 21
aload 9
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
aload 0
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
aload 9
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: aload 3
aload 9
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 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 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 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:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
26: iload 4
iflt 34
27: aload 0
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
aaload
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
astore 7
start local 7 28: aload 1
aload 7
invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
ifeq 30
29: aload 3
aload 7
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
30: 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
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
aaload
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
astore 8
start local 8 31: aload 1
aload 8
invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.add:(Ljava/lang/Object;)Z
ifeq 33
32: aload 3
aload 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
33: StackMap locals: com.oracle.truffle.regex.tregex.nfa.NFAState
StackMap stack:
iinc 4 -1
end local 8 end local 7 34: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 35: aload 3
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
start local 8 37: aload 0
aload 8
aload 7
ifnonnull 38
aload 2
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
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
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: aload 8
astore 7
end local 8 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:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
44: aload 2
astore 8
start local 8 45: aload 3
astore 2
46: aload 8
astore 3
47: aload 3
invokevirtual java.util.ArrayList.clear:()V
end local 8 end local 7 48: 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
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 16
49: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
50: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
ldc "\\path[->]"
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
51: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
52: aload 0
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
start local 7 54: aload 7
ifnonnull 56
55: goto 63
56: 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
start local 11 57: goto 62
58: StackMap locals: int
StackMap stack:
aload 7
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
aaload
astore 12
start local 12 59: aload 1
aload 7
invokeinterface com.oracle.truffle.regex.tregex.automaton.StateSet.contains:(Ljava/lang/Object;)Z
ifeq 61
aload 1
aload 12
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: aload 0
aload 12
iload 11
invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.printLaTexTransition:(Lcom/oracle/truffle/regex/tregex/nfa/NFAStateTransition;I)V
end local 12 61: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
62: iload 11
aload 7
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 end local 7 63: 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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
ldc ";"
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
66: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
67: aload 0
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
69: aload 0
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
71: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: ldc ""
astore 4
start local 4 1: aload 2
ifnull 3
2: ldc "%s of=%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 0
aload 2
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
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
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
aload 1
invokevirtual com.oracle.truffle.regex.tregex.util.NFAExport.getLaTexStateStyle:(Lcom/oracle/truffle/regex/tregex/nfa/NFAState;)Ljava/lang/String;
aastore
dup
iconst_1
4: aload 0
aload 1
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
aastore
dup
iconst_3
aload 0
aload 1
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: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
6: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 (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 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 1
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getSource:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
aload 1
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAStateTransition.getTarget:()Lcom/oracle/truffle/regex/tregex/nfa/NFAState;
if_acmpne 3
2: aload 3
ldc "loop above"
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
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
aload 1
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: aload 3
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: aload 0
aload 1
iload 2
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: aload 0
aload 1
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: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
8: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.writer:Ljava/io/BufferedWriter;
invokevirtual java.io.BufferedWriter.newLine:()V
9: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
ifeq 2
1: ldc "af"
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isUnAnchoredFinalState:(Z)Z
ifeq 4
3: ldc "f"
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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
start local 2 8: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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 11: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "s"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
aload 1
aload 0
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 end local 0 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 start local 1 0: invokestatic com.oracle.truffle.regex.tregex.util.NFAExport.$SWITCH_TABLE$com$oracle$truffle$regex$tregex$util$NFAExport$StateStyle:()[I
aload 0
aload 1
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: StackMap locals:
StackMap stack:
ldc "anchored,initial,state"
areturn
2: StackMap locals:
StackMap stack:
ldc "initial,state"
areturn
3: StackMap locals:
StackMap stack:
ldc "anchored,accepting,state"
areturn
4: StackMap locals:
StackMap stack:
ldc "accepting,state"
areturn
5: StackMap locals:
StackMap stack:
ldc "state"
areturn
6: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.regex.tregex.util.Exceptions.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 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 start local 1 0: aload 1
ifnull 1
aload 1
aload 0
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: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: aload 1
aload 0
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: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
ifeq 8
6: aload 1
aload 0
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: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 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 start local 1 0: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: getstatic com.oracle.truffle.regex.tregex.util.NFAExport$StateStyle.ANCHORED_INITIAL:Lcom/oracle/truffle/regex/tregex/util/NFAExport$StateStyle;
areturn
3: 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: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
ifeq 5
aload 1
aload 0
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
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasTransitionToUnAnchoredFinalState:(Z)Z
ifeq 6
5: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
ifeq 7
6: 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: StackMap locals:
StackMap stack:
aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.mergeFinalStates:Z
ifeq 9
aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasTransitionToUnAnchoredFinalState:(Z)Z
ifeq 9
8: 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: 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 end local 0 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 start local 1 start local 2 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 1: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: aload 3
ldc "I"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: iload 2
ifeq 5
4: aload 3
ldc "^"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
ifeq 25
6: aload 3
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
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: goto 25
StackMap locals:
StackMap stack:
8: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
aload 0
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: aload 3
ldc "I"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
ifeq 25
11: aload 3
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.nfa:Lcom/oracle/truffle/regex/tregex/nfa/NFA;
aload 1
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: goto 25
StackMap locals:
StackMap stack:
13: aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isAnchoredFinalState:(Z)Z
ifeq 18
14: aload 3
ldc "F"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: iload 2
ifeq 25
16: aload 3
ldc "$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: goto 25
StackMap locals:
StackMap stack:
18: aload 1
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isUnAnchoredFinalState:(Z)Z
ifeq 21
19: aload 3
ldc "F"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: goto 25
21: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
ifeq 24
22: aload 3
ldc "S"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: goto 25
24: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.stateNumberMap:Ljava/util/HashMap;
aload 1
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
ifeq 27
aload 1
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.hasPossibleResults:()Z
ifeq 27
26: aload 3
ldc "_r"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 1: aload 1
aload 0
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
getfield com.oracle.truffle.regex.tregex.util.NFAExport.forward:Z
invokevirtual com.oracle.truffle.regex.tregex.nfa.NFAState.isFinalState:(Z)Z
ifne 3
2: aload 3
aload 1
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: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.tregex.util.NFAExport.fullLabels:Z
ifeq 5
4: aload 3
ldc ", p"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 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: 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 start local 1 0: aload 0
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 end local 0 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 start local 1 0: aload 0
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 end local 0 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