public class org.jruby.ext.ripper.HeredocTerm extends org.jruby.ext.ripper.StrTerm
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.ripper.HeredocTerm
super_class: org.jruby.ext.ripper.StrTerm
{
private final org.jruby.util.ByteList nd_lit;
descriptor: Lorg/jruby/util/ByteList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int flags;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final int nth;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int line;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.jruby.util.ByteList lastLine;
descriptor: Lorg/jruby/util/ByteList;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
public void <init>(org.jruby.util.ByteList, int, int, int, org.jruby.util.ByteList);
descriptor: (Lorg/jruby/util/ByteList;IIILorg/jruby/util/ByteList;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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 org.jruby.ext.ripper.StrTerm.<init>:()V
1: aload 0
aload 1
putfield org.jruby.ext.ripper.HeredocTerm.nd_lit:Lorg/jruby/util/ByteList;
2: aload 0
iload 2
putfield org.jruby.ext.ripper.HeredocTerm.flags:I
3: aload 0
iload 3
putfield org.jruby.ext.ripper.HeredocTerm.nth:I
4: aload 0
iload 4
putfield org.jruby.ext.ripper.HeredocTerm.line:I
5: aload 0
aload 5
putfield org.jruby.ext.ripper.HeredocTerm.lastLine:Lorg/jruby/util/ByteList;
6: 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 7 0 this Lorg/jruby/ext/ripper/HeredocTerm;
0 7 1 marker Lorg/jruby/util/ByteList;
0 7 2 func I
0 7 3 nth I
0 7 4 line I
0 7 5 lastLine Lorg/jruby/util/ByteList;
MethodParameters:
Name Flags
marker
func
nth
line
lastLine
public int getFlags();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.ripper.HeredocTerm.flags:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ripper/HeredocTerm;
protected int error(org.jruby.ext.ripper.RipperLexer, int, org.jruby.util.ByteList, org.jruby.util.ByteList);
descriptor: (Lorg/jruby/ext/ripper/RipperLexer;ILorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
new java.lang.StringBuilder
dup
ldc "can't find string \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual org.jruby.util.ByteList.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" anywhere before EOF"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.ext.ripper.RipperLexer.compile_error:(Ljava/lang/String;)V
1: aload 1
getfield org.jruby.ext.ripper.RipperLexer.delayed:Lorg/jruby/util/ByteList;
ifnonnull 4
2: aload 1
sipush 378
invokevirtual org.jruby.ext.ripper.RipperLexer.dispatchScanEvent:(I)V
3: goto 11
4: StackMap locals:
StackMap stack:
aload 3
ifnull 7
5: aload 1
getfield org.jruby.ext.ripper.RipperLexer.delayed:Lorg/jruby/util/ByteList;
aload 3
invokevirtual org.jruby.util.ByteList.append:(Lorg/jruby/util/ByteList;)V
6: goto 10
7: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.ext.ripper.RipperLexer.lex_p:I
aload 1
getfield org.jruby.ext.ripper.RipperLexer.tokp:I
isub
istore 2
8: iload 2
ifle 10
9: aload 1
getfield org.jruby.ext.ripper.RipperLexer.delayed:Lorg/jruby/util/ByteList;
aload 1
getfield org.jruby.ext.ripper.RipperLexer.lexb:Lorg/jruby/util/ByteList;
aload 1
getfield org.jruby.ext.ripper.RipperLexer.tokp:I
iload 2
invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
invokevirtual org.jruby.util.ByteList.append:(Lorg/jruby/util/ByteList;)V
10: StackMap locals:
StackMap stack:
aload 1
sipush 378
invokevirtual org.jruby.ext.ripper.RipperLexer.dispatchDelayedToken:(I)V
11: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.lex_goto_eol:()V
12: aload 0
aload 1
invokevirtual org.jruby.ext.ripper.HeredocTerm.restore:(Lorg/jruby/ext/ripper/RipperLexer;)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ext/ripper/HeredocTerm;
0 13 1 lexer Lorg/jruby/ext/ripper/RipperLexer;
0 13 2 len I
0 13 3 str Lorg/jruby/util/ByteList;
0 13 4 eos Lorg/jruby/util/ByteList;
MethodParameters:
Name Flags
lexer
len
str
eos
protected int restore(org.jruby.ext.ripper.RipperLexer);
descriptor: (Lorg/jruby/ext/ripper/RipperLexer;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.jruby.ext.ripper.RipperLexer.heredoc_restore:(Lorg/jruby/ext/ripper/HeredocTerm;)V
1: aload 1
new org.jruby.ext.ripper.StringTerm
dup
aload 0
getfield org.jruby.ext.ripper.HeredocTerm.flags:I
ldc 32768
ior
iconst_0
iconst_0
invokespecial org.jruby.ext.ripper.StringTerm.<init>:(III)V
invokevirtual org.jruby.ext.ripper.RipperLexer.setStrTerm:(Lorg/jruby/ext/ripper/StrTerm;)V
2: sipush 378
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/ripper/HeredocTerm;
0 3 1 lexer Lorg/jruby/ext/ripper/RipperLexer;
MethodParameters:
Name Flags
lexer
public int parseString(org.jruby.ext.ripper.RipperLexer, org.jruby.lexer.LexerSource);
descriptor: (Lorg/jruby/ext/ripper/RipperLexer;Lorg/jruby/lexer/LexerSource;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
getfield org.jruby.ext.ripper.HeredocTerm.nd_lit:Lorg/jruby/util/ByteList;
astore 4
start local 4 2: aload 0
getfield org.jruby.ext.ripper.HeredocTerm.nd_lit:Lorg/jruby/util/ByteList;
invokevirtual org.jruby.util.ByteList.length:()I
iconst_1
isub
istore 5
start local 5 3: aload 0
getfield org.jruby.ext.ripper.HeredocTerm.flags:I
bipush 32
iand
ifeq 4
iconst_1
goto 5
StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteList int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.nextc:()I
istore 7
start local 7 7: iload 7
iconst_m1
if_icmpne 8
aload 0
aload 1
iload 5
aload 3
aload 4
invokevirtual org.jruby.ext.ripper.HeredocTerm.error:(Lorg/jruby/ext/ripper/RipperLexer;ILorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
ireturn
8: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.was_bol:()Z
ifeq 14
aload 1
aload 0
getfield org.jruby.ext.ripper.HeredocTerm.nd_lit:Lorg/jruby/util/ByteList;
iload 6
invokevirtual org.jruby.ext.ripper.RipperLexer.whole_match_p:(Lorg/jruby/util/ByteList;Z)Z
ifeq 14
9: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.dispatchHeredocEnd:()V
10: aload 1
aload 0
invokevirtual org.jruby.ext.ripper.RipperLexer.heredoc_restore:(Lorg/jruby/ext/ripper/HeredocTerm;)V
11: aload 1
aconst_null
invokevirtual org.jruby.ext.ripper.RipperLexer.setStrTerm:(Lorg/jruby/ext/ripper/StrTerm;)V
12: aload 1
iconst_2
invokevirtual org.jruby.ext.ripper.RipperLexer.setState:(I)V
13: sipush 373
ireturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.ripper.HeredocTerm.flags:I
iconst_2
iand
ifne 43
15: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.ext.ripper.RipperLexer.lex_lastline:Lorg/jruby/util/ByteList;
astore 8
start local 8 16: iconst_0
istore 9
start local 9 17: aload 1
getfield org.jruby.ext.ripper.RipperLexer.lex_pend:I
istore 10
start local 10 18: iload 10
iload 9
if_icmple 25
19: aload 1
iload 10
iconst_1
isub
invokevirtual org.jruby.ext.ripper.RipperLexer.p:(I)I
tableswitch { // 10 - 13
10: 20
11: 25
12: 25
13: 24
default: 25
}
20: StackMap locals: org.jruby.util.ByteList int int
StackMap stack:
iinc 10 -1
21: iload 10
iload 9
if_icmpeq 22
aload 1
iload 10
iconst_1
isub
invokevirtual org.jruby.ext.ripper.RipperLexer.p:(I)I
bipush 13
if_icmpne 25
22: StackMap locals:
StackMap stack:
iinc 10 1
23: goto 25
24: StackMap locals:
StackMap stack:
iinc 10 -1
25: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getHeredocIndent:()I
ifle 31
26: lconst_0
lstore 11
start local 11 27: goto 29
StackMap locals: long
StackMap stack:
28: lload 11
lconst_1
ladd
lstore 11
StackMap locals:
StackMap stack:
29: iload 9
i2l
lload 11
ladd
iload 10
i2l
lcmp
ifge 30
aload 1
aload 1
iload 9
invokevirtual org.jruby.ext.ripper.RipperLexer.p:(I)I
invokevirtual org.jruby.ext.ripper.RipperLexer.update_heredoc_indent:(I)Z
ifne 28
end local 11 30: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual org.jruby.ext.ripper.RipperLexer.setHeredocLineIndent:(I)V
31: StackMap locals:
StackMap stack:
aload 3
ifnull 34
32: aload 3
aload 8
iload 9
iload 10
iload 9
isub
invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
invokevirtual org.jruby.util.ByteList.append:(Lorg/jruby/util/ByteList;)V
33: goto 35
34: StackMap locals:
StackMap stack:
new org.jruby.util.ByteList
dup
aload 8
iload 9
iload 10
iload 9
isub
invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
invokespecial org.jruby.util.ByteList.<init>:(Lorg/jruby/util/ByteList;)V
astore 3
35: StackMap locals:
StackMap stack:
iload 10
aload 1
getfield org.jruby.ext.ripper.RipperLexer.lex_pend:I
if_icmpge 36
aload 3
bipush 10
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
36: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.lex_goto_eol:()V
37: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getHeredocIndent:()I
ifle 40
38: aload 1
aload 1
aload 3
iconst_0
invokevirtual org.jruby.ext.ripper.RipperLexer.createStr:(Lorg/jruby/util/ByteList;I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.ext.ripper.RipperLexer.setValue:(Ljava/lang/Object;)V
39: sipush 378
ireturn
40: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.nextc:()I
iconst_m1
if_icmpne 41
aload 0
aload 1
iload 5
aconst_null
aload 4
invokevirtual org.jruby.ext.ripper.HeredocTerm.error:(Lorg/jruby/ext/ripper/RipperLexer;ILorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
ireturn
end local 10 end local 9 end local 8 41: StackMap locals:
StackMap stack:
aload 1
aload 4
iload 6
invokevirtual org.jruby.ext.ripper.RipperLexer.whole_match_p:(Lorg/jruby/util/ByteList;Z)Z
ifeq 15
42: goto 74
43: StackMap locals:
StackMap stack:
new org.jruby.util.ByteList
dup
invokespecial org.jruby.util.ByteList.<init>:()V
astore 8
start local 8 44: aload 8
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
45: iload 7
bipush 35
if_icmpne 56
46: aload 1
sipush 372
sipush 371
invokevirtual org.jruby.ext.ripper.RipperLexer.peekVariableName:(II)I
istore 9
start local 9 47: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getHeredocLineIndent:()I
istore 10
start local 10 48: iload 10
iconst_m1
if_icmpeq 52
49: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getHeredocIndent:()I
iload 10
if_icmple 51
50: aload 1
iload 10
invokevirtual org.jruby.ext.ripper.RipperLexer.setHeredocIndent:(I)V
51: StackMap locals: org.jruby.util.ByteList int int
StackMap stack:
aload 1
iconst_m1
invokevirtual org.jruby.ext.ripper.RipperLexer.setHeredocLineIndent:(I)V
52: StackMap locals:
StackMap stack:
iload 9
ifeq 54
53: iload 9
ireturn
54: StackMap locals:
StackMap stack:
aload 8
iload 7
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
55: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.nextc:()I
istore 7
end local 10 end local 9 56: StackMap locals:
StackMap stack:
aload 1
iload 7
invokevirtual org.jruby.ext.ripper.RipperLexer.pushback:(I)V
57: new org.jruby.ext.ripper.StringTerm
dup
aload 0
getfield org.jruby.ext.ripper.HeredocTerm.flags:I
iconst_0
bipush 10
invokespecial org.jruby.ext.ripper.StringTerm.<init>:(III)V
astore 9
start local 9 58: aload 9
aload 1
aload 2
aload 8
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jruby.ext.ripper.StringTerm.parseStringIntoBuffer:(Lorg/jruby/ext/ripper/RipperLexer;Lorg/jruby/lexer/LexerSource;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)I
dup
istore 7
iconst_m1
if_icmpne 61
59: aload 1
getfield org.jruby.ext.ripper.RipperLexer.eofp:Z
ifeq 60
aload 0
aload 1
iload 5
aload 3
aload 4
invokevirtual org.jruby.ext.ripper.HeredocTerm.error:(Lorg/jruby/ext/ripper/RipperLexer;ILorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
ireturn
60: StackMap locals: org.jruby.ext.ripper.StringTerm
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.ext.ripper.HeredocTerm.restore:(Lorg/jruby/ext/ripper/RipperLexer;)I
ireturn
61: StackMap locals:
StackMap stack:
iload 7
bipush 10
if_icmpeq 65
62: aload 1
aload 1
aload 8
iconst_0
invokevirtual org.jruby.ext.ripper.RipperLexer.createStr:(Lorg/jruby/util/ByteList;I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.ext.ripper.RipperLexer.setValue:(Ljava/lang/Object;)V
63: aload 1
aload 9
getfield org.jruby.ext.ripper.StringTerm.encodingOut:Lorg/jcodings/Encoding;
invokevirtual org.jruby.ext.ripper.RipperLexer.flush_string_content:(Lorg/jcodings/Encoding;)V
64: sipush 378
ireturn
65: StackMap locals:
StackMap stack:
aload 8
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.nextc:()I
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
66: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getHeredocIndent:()I
ifle 71
67: aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.lex_goto_eol:()V
68: aload 1
aload 1
aload 8
iconst_0
invokevirtual org.jruby.ext.ripper.RipperLexer.createStr:(Lorg/jruby/util/ByteList;I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.ext.ripper.RipperLexer.setValue:(Ljava/lang/Object;)V
69: aload 1
aload 9
getfield org.jruby.ext.ripper.StringTerm.encodingOut:Lorg/jcodings/Encoding;
invokevirtual org.jruby.ext.ripper.RipperLexer.flush_string_content:(Lorg/jcodings/Encoding;)V
70: sipush 378
ireturn
71: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.nextc:()I
dup
istore 7
iconst_m1
if_icmpne 72
aload 0
aload 1
iload 5
aload 3
aload 4
invokevirtual org.jruby.ext.ripper.HeredocTerm.error:(Lorg/jruby/ext/ripper/RipperLexer;ILorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
ireturn
end local 9 72: StackMap locals:
StackMap stack:
aload 1
aload 4
iload 6
invokevirtual org.jruby.ext.ripper.RipperLexer.whole_match_p:(Lorg/jruby/util/ByteList;Z)Z
ifeq 56
73: aload 8
astore 3
end local 8 74: StackMap locals:
StackMap stack:
aload 1
iload 7
invokevirtual org.jruby.ext.ripper.RipperLexer.pushback:(I)V
75: aload 1
aload 1
aload 3
iconst_0
invokevirtual org.jruby.ext.ripper.RipperLexer.createStr:(Lorg/jruby/util/ByteList;I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.ext.ripper.RipperLexer.setValue:(Ljava/lang/Object;)V
76: aload 1
aload 1
invokevirtual org.jruby.ext.ripper.RipperLexer.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jruby.ext.ripper.RipperLexer.flush_string_content:(Lorg/jcodings/Encoding;)V
77: sipush 378
ireturn
end local 7 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 78 0 this Lorg/jruby/ext/ripper/HeredocTerm;
0 78 1 lexer Lorg/jruby/ext/ripper/RipperLexer;
0 78 2 src Lorg/jruby/lexer/LexerSource;
1 78 3 str Lorg/jruby/util/ByteList;
2 78 4 eos Lorg/jruby/util/ByteList;
3 78 5 len I
6 78 6 indent Z
7 78 7 c I
16 41 8 lbuf Lorg/jruby/util/ByteList;
17 41 9 p I
18 41 10 pend I
27 30 11 i J
44 74 8 tok Lorg/jruby/util/ByteList;
47 56 9 token I
48 56 10 heredoc_line_indent I
58 72 9 stringTerm Lorg/jruby/ext/ripper/StringTerm;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lexer
src
}
SourceFile: "HeredocTerm.java"