class freemarker.core.Configurable$SettingStringParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.Configurable$SettingStringParser
super_class: java.lang.Object
{
private java.lang.String text;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int p;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int ln;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
2: aload 0
iconst_0
putfield freemarker.core.Configurable$SettingStringParser.p:I
3: aload 0
aload 1
invokevirtual java.lang.String.length:()I
putfield freemarker.core.Configurable$SettingStringParser.ln:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lfreemarker/core/Configurable$SettingStringParser;
0 5 1 text Ljava/lang/String;
MethodParameters:
Name Flags
text
java.util.ArrayList parseAsSegmentedList();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: StackMap locals: java.util.ArrayList java.util.ArrayList
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 3
start local 3 3: iload 3
bipush 32
if_icmpne 4
goto 24
4: StackMap locals: int
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchStringValue:()Ljava/lang/String;
astore 4
start local 4 5: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 3
6: iload 3
bipush 58
if_icmpne 10
7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
8: aload 1
new freemarker.core.Configurable$KeyValuePair
dup
aload 4
aload 2
invokespecial freemarker.core.Configurable$KeyValuePair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
9: goto 16
10: StackMap locals: java.lang.String
StackMap stack:
aload 2
ifnonnull 15
11: new freemarker.core.ParseException
dup
12: ldc "The very first list item must be followed by \":\" so it will be the key for the following sub-list."
13: iconst_0
iconst_0
14: invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
aload 4
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
iload 3
bipush 32
if_icmpne 17
goto 24
17: StackMap locals:
StackMap stack:
iload 3
bipush 44
if_icmpeq 22
iload 3
bipush 58
if_icmpeq 22
new freemarker.core.ParseException
dup
18: new java.lang.StringBuilder
dup
ldc "Expected \",\" or \":\" or the end of text but found \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: iload 3
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
end local 4 end local 3 23: goto 2
start local 3 24: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lfreemarker/core/Configurable$SettingStringParser;
1 25 1 segments Ljava/util/ArrayList;
2 25 2 currentSegment Ljava/util/ArrayList;
3 23 3 c C
24 25 3 c C
5 23 4 item Ljava/lang/String;
Exceptions:
throws freemarker.core.ParseException
java.util.ArrayList parseAsList();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: StackMap locals: freemarker.core.Configurable$SettingStringParser top java.util.ArrayList
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
start local 1 2: iload 1
bipush 32
if_icmpne 3
goto 13
3: StackMap locals: freemarker.core.Configurable$SettingStringParser int java.util.ArrayList
StackMap stack:
aload 2
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchStringValue:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
4: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
5: iload 1
bipush 32
if_icmpne 6
goto 13
6: StackMap locals:
StackMap stack:
iload 1
bipush 44
if_icmpeq 11
new freemarker.core.ParseException
dup
7: new java.lang.StringBuilder
dup
ldc "Expected \",\" or the end of text but found \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
end local 1 12: goto 1
start local 1 13: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lfreemarker/core/Configurable$SettingStringParser;
2 12 1 c C
13 14 1 c C
1 14 2 seq Ljava/util/ArrayList;
Exceptions:
throws freemarker.core.ParseException
java.util.HashMap parseAsImportList();
descriptor: ()Ljava/util/HashMap;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: StackMap locals: freemarker.core.Configurable$SettingStringParser top java.util.HashMap
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
start local 1 2: iload 1
bipush 32
if_icmpne 3
goto 24
3: StackMap locals: freemarker.core.Configurable$SettingStringParser int java.util.HashMap
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchStringValue:()Ljava/lang/String;
astore 3
start local 3 4: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
5: iload 1
bipush 32
if_icmpne 7
new freemarker.core.ParseException
dup
6: ldc "Unexpected end of text: expected \"as\""
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
7: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchKeyword:()Ljava/lang/String;
astore 4
start local 4 8: aload 4
ldc "as"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 10
new freemarker.core.ParseException
dup
9: new java.lang.StringBuilder
dup
ldc "Expected \"as\", but found "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokestatic freemarker.template.utility.StringUtil.jQuote:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
10: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
11: iload 1
bipush 32
if_icmpne 13
new freemarker.core.ParseException
dup
12: ldc "Unexpected end of text: expected gate hash name"
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchStringValue:()Ljava/lang/String;
astore 5
start local 5 14: aload 2
aload 5
aload 3
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.skipWS:()C
istore 1
16: iload 1
bipush 32
if_icmpne 17
goto 24
17: StackMap locals: java.lang.String
StackMap stack:
iload 1
bipush 44
if_icmpeq 22
new freemarker.core.ParseException
dup
18: new java.lang.StringBuilder
dup
ldc "Expected \",\" or the end of text but found \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
end local 5 end local 4 end local 3 end local 1 23: goto 1
start local 1 24: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lfreemarker/core/Configurable$SettingStringParser;
2 23 1 c C
24 25 1 c C
1 25 2 map Ljava/util/HashMap;
4 23 3 lib Ljava/lang/String;
8 23 4 s Ljava/lang/String;
14 23 5 ns Ljava/lang/String;
Exceptions:
throws freemarker.core.ParseException
java.lang.String fetchStringValue();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchWord:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "'"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 2
aload 1
ldc "\""
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
2: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_1
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
invokestatic freemarker.template.utility.StringUtil.FTLStringLiteralDec:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/core/Configurable$SettingStringParser;
1 4 1 w Ljava/lang/String;
Exceptions:
throws freemarker.core.ParseException
java.lang.String fetchKeyword();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual freemarker.core.Configurable$SettingStringParser.fetchWord:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "'"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 2
aload 1
ldc "\""
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
2: StackMap locals: java.lang.String
StackMap stack:
new freemarker.core.ParseException
dup
3: new java.lang.StringBuilder
dup
ldc "Keyword expected, but a string value found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
iconst_0
4: invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/core/Configurable$SettingStringParser;
1 6 1 w Ljava/lang/String;
Exceptions:
throws freemarker.core.ParseException
char skipWS();
descriptor: ()C
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: goto 4
1: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
start local 1 2: iload 1
invokestatic java.lang.Character.isWhitespace:(C)Z
ifne 3
iload 1
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
end local 1 4: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
aload 0
getfield freemarker.core.Configurable$SettingStringParser.ln:I
if_icmplt 1
5: bipush 32
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/core/Configurable$SettingStringParser;
2 4 1 c C
private java.lang.String fetchWord();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
aload 0
getfield freemarker.core.Configurable$SettingStringParser.ln:I
if_icmpne 2
new freemarker.core.ParseException
dup
1: ldc "Unexpeced end of text"
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
start local 1 3: aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
istore 2
start local 2 4: iload 1
bipush 39
if_icmpeq 5
iload 1
bipush 34
if_icmpne 23
5: StackMap locals: int int
StackMap stack:
iconst_0
istore 3
start local 3 6: iload 1
istore 4
start local 4 7: aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
8: goto 18
9: StackMap locals: int int
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
10: iload 3
ifne 16
11: iload 1
bipush 92
if_icmpne 14
12: iconst_1
istore 3
13: goto 17
StackMap locals:
StackMap stack:
14: iload 1
iload 4
if_icmpne 17
15: goto 19
16: StackMap locals:
StackMap stack:
iconst_0
istore 3
17: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
18: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
aload 0
getfield freemarker.core.Configurable$SettingStringParser.ln:I
if_icmplt 9
19: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
aload 0
getfield freemarker.core.Configurable$SettingStringParser.ln:I
if_icmpne 21
20: new freemarker.core.ParseException
dup
new java.lang.StringBuilder
dup
ldc "Missing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
21: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
22: aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
iload 2
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 4 end local 3 23: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
24: iload 1
invokestatic java.lang.Character.isLetterOrDigit:(C)Z
ifne 28
25: iload 1
bipush 47
if_icmpeq 28
iload 1
bipush 92
if_icmpeq 28
iload 1
bipush 95
if_icmpeq 28
26: iload 1
bipush 46
if_icmpeq 28
iload 1
bipush 45
if_icmpeq 28
iload 1
bipush 33
if_icmpeq 28
27: iload 1
bipush 42
if_icmpeq 28
iload 1
bipush 63
if_icmpeq 28
goto 31
28: StackMap locals:
StackMap stack:
aload 0
dup
getfield freemarker.core.Configurable$SettingStringParser.p:I
iconst_1
iadd
putfield freemarker.core.Configurable$SettingStringParser.p:I
29: aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
aload 0
getfield freemarker.core.Configurable$SettingStringParser.ln:I
30: if_icmplt 23
31: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
if_icmpne 33
32: new freemarker.core.ParseException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected character: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
iconst_0
invokespecial freemarker.core.ParseException.<init>:(Ljava/lang/String;II)V
athrow
33: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.Configurable$SettingStringParser.text:Ljava/lang/String;
iload 2
aload 0
getfield freemarker.core.Configurable$SettingStringParser.p:I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lfreemarker/core/Configurable$SettingStringParser;
3 34 1 c C
4 34 2 b I
6 23 3 escaped Z
7 23 4 q C
Exceptions:
throws freemarker.core.ParseException
}
SourceFile: "Configurable.java"
NestHost: freemarker.core.Configurable
InnerClasses:
private KeyValuePair = freemarker.core.Configurable$KeyValuePair of freemarker.core.Configurable
private SettingStringParser = freemarker.core.Configurable$SettingStringParser of freemarker.core.Configurable