public class jflex.generator.LexGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jflex.generator.LexGenerator
super_class: java.lang.Object
{
private final java.io.File inputFile;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jflex.dfa.DFA dfa;
descriptor: Ljflex/dfa/DFA;
flags: (0x0002) ACC_PRIVATE
private final jflex.performance.Timer totalTime;
descriptor: Ljflex/performance/Timer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new jflex.performance.Timer
dup
invokespecial jflex.performance.Timer.<init>:()V
putfield jflex.generator.LexGenerator.totalTime:Ljflex/performance/Timer;
2: aload 0
aload 1
putfield jflex.generator.LexGenerator.inputFile:Ljava/io/File;
3: getstatic jflex.option.Options.encoding:Ljava/nio/charset/Charset;
ifnonnull 5
4: invokestatic jflex.core.OptionUtils.setDefaultOptions:()V
5: StackMap locals: jflex.generator.LexGenerator java.io.File
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljflex/generator/LexGenerator;
0 6 1 inputFile Ljava/io/File;
MethodParameters:
Name Flags
inputFile
public java.lang.String generate();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: invokestatic jflex.logging.Out.resetCounters:()V
1: new jflex.performance.Timer
dup
invokespecial jflex.performance.Timer.<init>:()V
astore 1
start local 1 2: aload 0
getfield jflex.generator.LexGenerator.totalTime:Ljflex/performance/Timer;
invokevirtual jflex.performance.Timer.start:()V
3: aconst_null
astore 2
aconst_null
astore 3
4: new java.io.InputStreamReader
dup
5: aload 0
getfield jflex.generator.LexGenerator.inputFile:Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
getstatic jflex.option.Options.encoding:Ljava/nio/charset/Charset;
6: invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
7: astore 4
start local 4 8: getstatic jflex.l10n.ErrorMessages.READING:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 0
getfield jflex.generator.LexGenerator.inputFile:Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
invokestatic jflex.logging.Out.println:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljava/lang/String;)V
9: new jflex.core.LexScan
dup
aload 4
invokespecial jflex.core.LexScan.<init>:(Ljava/io/Reader;)V
astore 5
start local 5 10: aload 5
aload 0
getfield jflex.generator.LexGenerator.inputFile:Ljava/io/File;
invokevirtual jflex.core.LexScan.setFile:(Ljava/io/File;)V
11: new jflex.core.LexParse
dup
aload 5
invokespecial jflex.core.LexParse.<init>:(Ljflex/core/LexScan;)V
astore 6
start local 6 12: aload 6
invokevirtual jflex.core.LexParse.parse:()Ljava_cup/runtime/Symbol;
getfield java_cup.runtime.Symbol.value:Ljava/lang/Object;
checkcast jflex.core.NFA
astore 7
start local 7 13: invokestatic jflex.logging.Out.checkErrors:()V
14: getstatic jflex.option.Options.dump:Z
ifeq 15
new java.lang.StringBuilder
dup
getstatic jflex.l10n.ErrorMessages.NFA_IS:Ljflex/l10n/ErrorMessages$ErrorMessage;
invokestatic jflex.l10n.ErrorMessages.get:(Ljflex/l10n/ErrorMessages$ErrorMessage;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic jflex.logging.Out.NL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
getstatic jflex.logging.Out.NL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jflex.logging.Out.dump:(Ljava/lang/String;)V
15: StackMap locals: jflex.generator.LexGenerator jflex.performance.Timer java.lang.Throwable java.lang.Throwable java.io.Reader jflex.core.LexScan jflex.core.LexParse jflex.core.NFA
StackMap stack:
getstatic jflex.option.Options.dot:Z
ifeq 16
aload 7
ldc "nfa.dot"
aconst_null
invokestatic jflex.generator.Emitter.normalize:(Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
invokevirtual jflex.core.NFA.writeDot:(Ljava/io/File;)V
16: StackMap locals:
StackMap stack:
getstatic jflex.l10n.ErrorMessages.NFA_STATES:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 7
invokevirtual jflex.core.NFA.numStates:()I
invokestatic jflex.logging.Out.println:(Ljflex/l10n/ErrorMessages$ErrorMessage;I)V
17: aload 1
invokevirtual jflex.performance.Timer.start:()V
18: aload 0
aload 7
invokestatic jflex.dfa.DfaFactory.createFromNfa:(Ljflex/core/NFA;)Ljflex/dfa/DFA;
putfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
19: aload 1
invokevirtual jflex.performance.Timer.stop:()V
20: getstatic jflex.l10n.ErrorMessages.DFA_TOOK:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 1
invokestatic jflex.logging.Out.time:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljflex/performance/Timer;)V
21: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
aload 5
aload 6
invokevirtual jflex.dfa.DFA.checkActions:(Ljflex/core/LexScan;Ljflex/core/LexParse;)V
22: getstatic jflex.option.Options.dump:Z
ifeq 23
new java.lang.StringBuilder
dup
getstatic jflex.l10n.ErrorMessages.DFA_IS:Ljflex/l10n/ErrorMessages$ErrorMessage;
invokestatic jflex.l10n.ErrorMessages.get:(Ljflex/l10n/ErrorMessages$ErrorMessage;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic jflex.logging.Out.NL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
getstatic jflex.logging.Out.NL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jflex.logging.Out.dump:(Ljava/lang/String;)V
23: StackMap locals:
StackMap stack:
getstatic jflex.option.Options.dot:Z
ifeq 24
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
ldc "dfa-big.dot"
aconst_null
invokestatic jflex.generator.Emitter.normalize:(Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
invokevirtual jflex.dfa.DFA.writeDot:(Ljava/io/File;)V
24: StackMap locals:
StackMap stack:
invokestatic jflex.logging.Out.checkErrors:()V
25: aload 1
invokevirtual jflex.performance.Timer.start:()V
26: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual jflex.dfa.DFA.numStates:()I
istore 8
start local 8 27: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual jflex.dfa.DFA.minimize:()V
28: ldc "%d states before minimization, %d states in minimized DFA"
iconst_2
anewarray java.lang.Object
dup
iconst_0
29: iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual jflex.dfa.DFA.numStates:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
30: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
31: invokestatic jflex.logging.Out.println:(Ljava/lang/String;)V
32: aload 1
invokevirtual jflex.performance.Timer.stop:()V
33: getstatic jflex.l10n.ErrorMessages.MIN_TOOK:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 1
invokestatic jflex.logging.Out.time:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljflex/performance/Timer;)V
34: getstatic jflex.option.Options.dump:Z
ifeq 35
new java.lang.StringBuilder
dup
getstatic jflex.l10n.ErrorMessages.MIN_DFA_IS:Ljflex/l10n/ErrorMessages$ErrorMessage;
invokestatic jflex.l10n.ErrorMessages.get:(Ljflex/l10n/ErrorMessages$ErrorMessage;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic jflex.logging.Out.NL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jflex.logging.Out.dump:(Ljava/lang/String;)V
35: StackMap locals: int
StackMap stack:
getstatic jflex.option.Options.dot:Z
ifeq 36
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
ldc "dfa-min.dot"
aconst_null
invokestatic jflex.generator.Emitter.normalize:(Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
invokevirtual jflex.dfa.DFA.writeDot:(Ljava/io/File;)V
36: StackMap locals:
StackMap stack:
aload 1
invokevirtual jflex.performance.Timer.start:()V
37: aload 0
getfield jflex.generator.LexGenerator.inputFile:Ljava/io/File;
aload 6
aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokestatic jflex.generator.Emitters.createFileEmitter:(Ljava/io/File;Ljflex/core/LexParse;Ljflex/dfa/DFA;)Ljflex/generator/Emitter;
astore 9
start local 9 38: aload 9
invokevirtual jflex.generator.Emitter.emit:()V
39: aload 1
invokevirtual jflex.performance.Timer.stop:()V
40: getstatic jflex.l10n.ErrorMessages.WRITE_TOOK:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 1
invokestatic jflex.logging.Out.time:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljflex/performance/Timer;)V
41: aload 0
getfield jflex.generator.LexGenerator.totalTime:Ljflex/performance/Timer;
invokevirtual jflex.performance.Timer.stop:()V
42: getstatic jflex.l10n.ErrorMessages.TOTAL_TIME:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 0
getfield jflex.generator.LexGenerator.totalTime:Ljflex/performance/Timer;
invokestatic jflex.logging.Out.time:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljflex/performance/Timer;)V
43: aload 9
getfield jflex.generator.Emitter.outputFileName:Ljava/lang/String;
44: aload 4
ifnull 45
aload 4
invokevirtual java.io.Reader.close:()V
45: StackMap locals: jflex.generator.LexGenerator jflex.performance.Timer java.lang.Throwable java.lang.Throwable java.io.Reader jflex.core.LexScan jflex.core.LexParse jflex.core.NFA int jflex.generator.Emitter
StackMap stack: java.lang.String
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 StackMap locals: jflex.generator.LexGenerator jflex.performance.Timer java.lang.Throwable java.lang.Throwable java.io.Reader
StackMap stack: java.lang.Throwable
46: astore 2
47: aload 4
ifnull 48
aload 4
invokevirtual java.io.Reader.close:()V
end local 4 StackMap locals:
StackMap stack:
48: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 3
aload 2
ifnonnull 50
aload 3
astore 2
goto 51
StackMap locals:
StackMap stack:
50: aload 2
aload 3
if_acmpeq 51
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
51: aload 2
athrow
StackMap locals: jflex.generator.LexGenerator jflex.performance.Timer
StackMap stack: jflex.scanner.ScannerException
52: astore 2
start local 2 53: aload 2
getfield jflex.scanner.ScannerException.file:Ljava/io/File;
aload 2
getfield jflex.scanner.ScannerException.message:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 2
getfield jflex.scanner.ScannerException.line:I
aload 2
getfield jflex.scanner.ScannerException.column:I
invokestatic jflex.logging.Out.error:(Ljava/io/File;Ljflex/l10n/ErrorMessages$ErrorMessage;II)V
54: new jflex.exceptions.GeneratorException
dup
aload 2
invokespecial jflex.exceptions.GeneratorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 55: StackMap locals:
StackMap stack: jflex.exceptions.MacroException
astore 2
start local 2 56: aload 2
invokevirtual jflex.exceptions.MacroException.getMessage:()Ljava/lang/String;
invokestatic jflex.logging.Out.error:(Ljava/lang/String;)V
57: new jflex.exceptions.GeneratorException
dup
aload 2
invokespecial jflex.exceptions.GeneratorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 58: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 59: getstatic jflex.l10n.ErrorMessages.IO_ERROR:Ljflex/l10n/ErrorMessages$ErrorMessage;
aload 2
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokestatic jflex.logging.Out.error:(Ljflex/l10n/ErrorMessages$ErrorMessage;Ljava/lang/String;)V
60: new jflex.exceptions.GeneratorException
dup
aload 2
invokespecial jflex.exceptions.GeneratorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 61: StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
astore 2
start local 2 62: getstatic jflex.l10n.ErrorMessages.OUT_OF_MEMORY:Ljflex/l10n/ErrorMessages$ErrorMessage;
invokestatic jflex.logging.Out.error:(Ljflex/l10n/ErrorMessages$ErrorMessage;)V
63: new jflex.exceptions.GeneratorException
dup
aload 2
invokespecial jflex.exceptions.GeneratorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 64: StackMap locals:
StackMap stack: jflex.exceptions.GeneratorException
astore 2
start local 2 65: aload 2
athrow
end local 2 66: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 67: new jflex.exceptions.GeneratorException
dup
aload 2
iconst_1
invokespecial jflex.exceptions.GeneratorException.<init>:(Ljava/lang/Throwable;Z)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Ljflex/generator/LexGenerator;
2 68 1 time Ljflex/performance/Timer;
8 48 4 inputReader Ljava/io/Reader;
10 46 5 scanner Ljflex/core/LexScan;
12 46 6 parser Ljflex/core/LexParse;
13 46 7 nfa Ljflex/core/NFA;
27 46 8 numStatesBefore I
38 46 9 emitter Ljflex/generator/Emitter;
53 55 2 e Ljflex/scanner/ScannerException;
56 58 2 e Ljflex/exceptions/MacroException;
59 61 2 e Ljava/io/IOException;
62 64 2 e Ljava/lang/OutOfMemoryError;
65 66 2 e Ljflex/exceptions/GeneratorException;
67 68 2 e Ljava/lang/Exception;
Exception table:
from to target type
8 44 46 any
4 45 49 any
46 49 49 any
3 45 52 Class jflex.scanner.ScannerException
46 52 52 Class jflex.scanner.ScannerException
3 45 55 Class jflex.exceptions.MacroException
46 52 55 Class jflex.exceptions.MacroException
3 45 58 Class java.io.IOException
46 52 58 Class java.io.IOException
3 45 61 Class java.lang.OutOfMemoryError
46 52 61 Class java.lang.OutOfMemoryError
3 45 64 Class jflex.exceptions.GeneratorException
46 52 64 Class jflex.exceptions.GeneratorException
3 45 66 Class java.lang.Exception
46 52 66 Class java.lang.Exception
public int minimizedDfaStatesCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
ldc "DFA doesn't exist. Call generate() first."
invokestatic jflex.generator.LexGenerator.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual jflex.dfa.DFA.isMinimized:()Z
ldc "DFA is not minimized. Call minimize() first."
invokestatic jflex.generator.LexGenerator.checkState:(ZLjava/lang/String;)V
2: aload 0
getfield jflex.generator.LexGenerator.dfa:Ljflex/dfa/DFA;
invokevirtual jflex.dfa.DFA.numStates:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljflex/generator/LexGenerator;
private static java.lang.Object checkNotNull(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
aload 1
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 object Ljava/lang/Object;
0 3 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
object
msg
private static void checkState(boolean, java.lang.String);
descriptor: (ZLjava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
ifne 2
1: new java.lang.IllegalStateException
dup
aload 1
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 state Z
0 3 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
state
msg
}
SourceFile: "LexGenerator.java"
InnerClasses:
public ErrorMessage = jflex.l10n.ErrorMessages$ErrorMessage of jflex.l10n.ErrorMessages