public class org.hsqldb.cmdline.sqltool.Calculator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.cmdline.sqltool.Calculator
super_class: java.lang.Object
{
private java.util.List<org.hsqldb.cmdline.sqltool.Calculator$Atom> atoms;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;>;
private static java.util.regex.Pattern intPattern;
descriptor: Ljava/util/regex/Pattern;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.util.Map<java.lang.String, java.lang.String> vars;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private java.util.EnumSet<org.hsqldb.cmdline.sqltool.Calculator$MathOp> TradOrLParen;
descriptor: Ljava/util/EnumSet;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/EnumSet<Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;>;
private static volatile int[] $SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "[+-]?\\d+"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.hsqldb.cmdline.sqltool.Calculator.intPattern:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
private long deref(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.vars:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Undefined variable: "
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;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.vars:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
3: lreturn
4: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
5: new java.lang.IllegalStateException
dup
6: new java.lang.StringBuilder
dup
ldc "Variable's value not an integer: "
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;
7: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/cmdline/sqltool/Calculator;
0 8 1 varName Ljava/lang/String;
Exception table:
from to target type
2 3 4 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
varName
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/cmdline/sqltool/Calculator;
public void <init>(java.lang.String[], java.util.Map<java.lang.String, java.lang.String>);
descriptor: ([Ljava/lang/String;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
2: aload 0
3: getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.ADD:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
bipush 6
anewarray org.hsqldb.cmdline.sqltool.Calculator$MathOp
dup
iconst_0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.SUBTRACT:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
dup
iconst_1
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.LPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
dup
iconst_2
4: getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.MULTIPLY:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
dup
iconst_3
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.DIVIDE:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
dup
iconst_4
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.REM:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
dup
iconst_5
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.POWER:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
aastore
5: invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
putfield org.hsqldb.cmdline.sqltool.Calculator.TradOrLParen:Ljava/util/EnumSet;
6: aload 2
invokeinterface java.util.Map.size:()I
iconst_1
if_icmpge 8
7: new java.lang.IllegalArgumentException
dup
ldc "No expression supplied"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map
StackMap stack:
aload 0
aload 2
putfield org.hsqldb.cmdline.sqltool.Calculator.vars:Ljava/util/Map;
9: aconst_null
astore 3
start local 3 10: aload 1
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 40
StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom top top top int int java.lang.String[]
StackMap stack:
11: aload 9
iload 7
aaload
astore 6
start local 6 12: new org.hsqldb.cmdline.sqltool.Calculator$Atom
dup
aload 0
aload 6
invokespecial org.hsqldb.cmdline.sqltool.Calculator$Atom.<init>:(Lorg/hsqldb/cmdline/sqltool/Calculator;Ljava/lang/String;)V
astore 3
13: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 5
start local 5 14: iload 5
ifge 17
15: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: goto 39
17: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom top int java.lang.String int int java.lang.String[]
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.SUBTRACT:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpeq 20
18: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: goto 39
20: StackMap locals:
StackMap stack:
iload 5
ifle 21
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 5
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
goto 22
StackMap locals:
StackMap stack:
21: aconst_null
StackMap locals:
StackMap stack: org.hsqldb.cmdline.sqltool.Calculator$Atom
22: astore 4
start local 4 23: aload 4
ifnull 26
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.TradOrLParen:Ljava/util/EnumSet;
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifne 26
24: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: goto 39
26: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom org.hsqldb.cmdline.sqltool.Calculator$Atom int java.lang.String int int java.lang.String[]
StackMap stack:
aload 3
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnonnull 30
27: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 5
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
28: aload 3
dup
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
ldc -1
lmul
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
29: goto 38
StackMap locals:
StackMap stack:
30: aload 3
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.LPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpne 38
31: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 5
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
32: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
new org.hsqldb.cmdline.sqltool.Calculator$Atom
dup
aload 0
ldc -1
invokespecial org.hsqldb.cmdline.sqltool.Calculator$Atom.<init>:(Lorg/hsqldb/cmdline/sqltool/Calculator;J)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
33: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
new org.hsqldb.cmdline.sqltool.Calculator$Atom
dup
aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.MULTIPLY:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokespecial org.hsqldb.cmdline.sqltool.Calculator$Atom.<init>:(Lorg/hsqldb/cmdline/sqltool/Calculator;Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
34: goto 38
end local 5 end local 4 StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom top top java.lang.String int int java.lang.String[]
StackMap stack: java.lang.Throwable
35: astore 10
36: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
37: aload 10
athrow
start local 4 start local 5 38: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom org.hsqldb.cmdline.sqltool.Calculator$Atom int java.lang.String int int java.lang.String[]
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 4 39: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator java.lang.String[] java.util.Map org.hsqldb.cmdline.sqltool.Calculator$Atom top top top int int java.lang.String[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
40: iload 7
iload 8
if_icmplt 11
41: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/hsqldb/cmdline/sqltool/Calculator;
0 42 1 sa [Ljava/lang/String;
0 42 2 vars Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
10 42 3 atom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
23 35 4 prePrevAtom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
38 39 4 prePrevAtom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
14 35 5 prevIndex I
38 39 5 prevIndex I
12 39 6 token Ljava/lang/String;
Exception table:
from to target type
12 15 35 any
17 18 35 any
20 24 35 any
26 35 35 any
Signature: ([Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
sa
vars
public void <init>(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "([-()*/+^])"
ldc " $1 "
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
1: invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc "\\s+"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
aload 2
invokespecial org.hsqldb.cmdline.sqltool.Calculator.<init>:([Ljava/lang/String;Ljava/util/Map;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hsqldb/cmdline/sqltool/Calculator;
0 3 1 s Ljava/lang/String;
0 3 2 vars Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
s
vars
public long reduce(int, boolean);
descriptor: (IZ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iconst_1
isub
istore 3
start local 3 1: goto 17
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
invokeinterface java.util.List.size:()I
iload 3
if_icmpne 7
3: iload 2
ifeq 18
4: new java.lang.IllegalStateException
dup
5: new java.lang.StringBuilder
dup
ldc "Unbalanced '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.LPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
start local 4 8: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 17
invokestatic org.hsqldb.cmdline.sqltool.Calculator.$SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp:()[I
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 15
2: 9
default: 17
}
9: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator$Atom
StackMap stack:
iload 2
ifne 13
10: new java.lang.IllegalStateException
dup
11: new java.lang.StringBuilder
dup
ldc "Unbalanced '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.RPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
14: goto 18
15: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
16: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
new org.hsqldb.cmdline.sqltool.Calculator$Atom
dup
aload 0
aload 0
iload 3
iconst_1
invokevirtual org.hsqldb.cmdline.sqltool.Calculator.reduce:(IZ)J
invokespecial org.hsqldb.cmdline.sqltool.Calculator$Atom.<init>:(Lorg/hsqldb/cmdline/sqltool/Calculator;J)V
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
end local 4 17: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
invokeinterface java.util.List.size:()I
iinc 3 1
iload 3
if_icmpge 2
18: StackMap locals:
StackMap stack:
iload 3
iload 1
isub
istore 5
start local 5 19: iload 5
iconst_1
if_icmpge 21
20: new java.lang.IllegalStateException
dup
ldc "Empty expression"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int top int
StackMap stack:
iload 1
istore 3
22: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
start local 4 23: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 57
24: new java.lang.IllegalStateException
dup
25: new java.lang.StringBuilder
dup
ldc "Expected initial value expected but got operation "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
27: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int org.hsqldb.cmdline.sqltool.Calculator$Atom int
StackMap stack:
iload 1
iload 5
iadd
iload 3
iconst_3
iadd
if_icmpge 33
30: new java.lang.IllegalStateException
dup
31: ldc "No operator/operand pairing remaining"
32: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 6
start local 6 34: aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnonnull 38
35: new java.lang.IllegalStateException
dup
36: new java.lang.StringBuilder
dup
ldc "Operator expected but got value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator$Atom
StackMap stack:
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
astore 7
start local 7 39: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_2
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 6
40: aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 44
41: new java.lang.IllegalStateException
dup
42: new java.lang.StringBuilder
dup
ldc "Value expected but got operator "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator$MathOp
StackMap stack:
aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.POWER:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpeq 48
45: iinc 3 2
46: aload 6
astore 4
47: goto 57
48: StackMap locals:
StackMap stack:
iinc 5 -2
49: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
50: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
51: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lstore 8
start local 8 52: aload 4
lconst_1
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
53: iconst_0
istore 10
start local 10 54: goto 56
StackMap locals: long int
StackMap stack:
55: aload 4
dup
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lload 8
lmul
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
iinc 10 1
StackMap locals:
StackMap stack:
56: iload 10
i2l
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lcmp
iflt 55
end local 10 end local 8 end local 7 end local 6 57: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int org.hsqldb.cmdline.sqltool.Calculator$Atom int
StackMap stack:
iload 1
iload 5
iadd
iload 3
iconst_1
iadd
if_icmpgt 29
58: iload 1
istore 3
59: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
60: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 91
61: new java.lang.IllegalStateException
dup
62: new java.lang.StringBuilder
dup
ldc "Expected initial value expected but got operation "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
63: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
66: StackMap locals:
StackMap stack:
iload 1
iload 5
iadd
iload 3
iconst_3
iadd
if_icmpge 70
67: new java.lang.IllegalStateException
dup
68: ldc "No operator/operand pairing remaining"
69: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
70: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 6
start local 6 71: aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnonnull 75
72: new java.lang.IllegalStateException
dup
73: new java.lang.StringBuilder
dup
ldc "Operator expected but got value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
74: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
75: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator$Atom
StackMap stack:
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
astore 7
start local 7 76: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_2
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 6
77: aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 81
78: new java.lang.IllegalStateException
dup
79: new java.lang.StringBuilder
dup
ldc "Value expected but got operator "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
80: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
81: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator$MathOp
StackMap stack:
aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.MULTIPLY:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpeq 85
aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.DIVIDE:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpeq 85
aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.REM:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpeq 85
82: iinc 3 2
83: aload 6
astore 4
84: goto 91
85: StackMap locals:
StackMap stack:
iinc 5 -2
86: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
87: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 3
iconst_1
iadd
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
88: aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.MULTIPLY:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpne 89
aload 4
dup
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lmul
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
goto 91
89: StackMap locals:
StackMap stack:
aload 7
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.DIVIDE:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
if_acmpne 90
aload 4
dup
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
ldiv
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
goto 91
90: StackMap locals:
StackMap stack:
aload 4
dup
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
aload 6
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lrem
putfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
end local 7 end local 6 91: StackMap locals:
StackMap stack:
iload 1
iload 5
iadd
iload 3
iconst_1
iadd
if_icmpgt 66
92: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
93: iinc 5 -1
94: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 98
95: new java.lang.IllegalStateException
dup
96: new java.lang.StringBuilder
dup
ldc "Value expected but got operation "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
97: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
98: StackMap locals:
StackMap stack:
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lstore 8
start local 8 99: goto 121
100: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int org.hsqldb.cmdline.sqltool.Calculator$Atom int top top long
StackMap stack:
iinc 5 -1
101: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
102: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
astore 7
start local 7 103: aload 7
ifnonnull 107
104: new java.lang.IllegalStateException
dup
105: new java.lang.StringBuilder
dup
ldc "Operator expected but got value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
106: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
107: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int org.hsqldb.cmdline.sqltool.Calculator$Atom int top org.hsqldb.cmdline.sqltool.Calculator$MathOp long
StackMap stack:
iload 5
ifgt 109
108: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No operand for operator "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
109: StackMap locals:
StackMap stack:
iinc 5 -1
110: aload 0
getfield org.hsqldb.cmdline.sqltool.Calculator.atoms:Ljava/util/List;
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast org.hsqldb.cmdline.sqltool.Calculator$Atom
astore 4
111: aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
ifnull 115
112: new java.lang.IllegalStateException
dup
113: new java.lang.StringBuilder
dup
ldc "Value expected but got operation "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.op:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
114: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
115: StackMap locals:
StackMap stack:
invokestatic org.hsqldb.cmdline.sqltool.Calculator.$SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp:()[I
aload 7
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iaload
tableswitch { // 3 - 4
3: 116
4: 118
default: 120
}
116: StackMap locals:
StackMap stack:
lload 8
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
ladd
lstore 8
117: goto 121
118: StackMap locals:
StackMap stack:
lload 8
aload 4
getfield org.hsqldb.cmdline.sqltool.Calculator$Atom.val:J
lsub
lstore 8
119: goto 121
120: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unknown operator: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 7 121: StackMap locals: org.hsqldb.cmdline.sqltool.Calculator int int int org.hsqldb.cmdline.sqltool.Calculator$Atom int top top long
StackMap stack:
iload 5
ifgt 100
122: lload 8
lreturn
end local 8 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 123 0 this Lorg/hsqldb/cmdline/sqltool/Calculator;
0 123 1 startAtomIndex I
0 123 2 stopAtParenClose Z
1 123 3 i I
8 17 4 atom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
23 123 4 atom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
19 123 5 remaining I
34 57 6 nextAtom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
71 91 6 nextAtom Lorg/hsqldb/cmdline/sqltool/Calculator$Atom;
39 57 7 op Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
76 91 7 op Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
103 121 7 op Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
52 57 8 origVal J
54 57 10 j I
99 123 8 total J
MethodParameters:
Name Flags
startAtomIndex
stopAtParenClose
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
if_icmpeq 4
1: new java.lang.IllegalArgumentException
dup
2: ldc "SYNTAX: java Calculator 'expression'"
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 5: aload 1
ldc "one"
ldc "1"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 1
ldc "two"
ldc "2"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 1
ldc "three"
ldc "3"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 1
ldc "four"
ldc "4"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 1
ldc "five"
ldc "5"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 1
ldc "six"
ldc "6"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 1
ldc "seven"
ldc "7"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 1
ldc "eight"
ldc "8"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 1
ldc "nine"
ldc "9"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: new org.hsqldb.cmdline.sqltool.Calculator
dup
aload 0
iconst_0
aaload
aload 1
invokespecial org.hsqldb.cmdline.sqltool.Calculator.<init>:(Ljava/lang/String;Ljava/util/Map;)V
astore 2
start local 2 15: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 2
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 2
iconst_0
iconst_0
invokevirtual org.hsqldb.cmdline.sqltool.Calculator.reduce:(IZ)J
invokevirtual java.io.PrintStream.println:(J)V
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 sa [Ljava/lang/String;
5 18 1 uV Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
15 18 2 calc Lorg/hsqldb/cmdline/sqltool/Calculator;
MethodParameters:
Name Flags
sa
public static long reassignValue(java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: lconst_0
lstore 4
start local 4 1: aload 1
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 4
2: goto 9
StackMap locals: java.lang.String java.util.Map java.lang.String java.lang.String long
StackMap stack: java.lang.NumberFormatException
3: pop
4: new java.lang.IllegalArgumentException
dup
5: new java.lang.StringBuilder
dup
ldc "Can not perform a self-operation on a non-integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 3
ifnull 10
aload 3
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 11
StackMap locals:
StackMap stack:
10: aconst_null
goto 13
11: StackMap locals:
StackMap stack:
new org.hsqldb.cmdline.sqltool.Calculator
dup
aload 3
aload 1
invokespecial org.hsqldb.cmdline.sqltool.Calculator.<init>:(Ljava/lang/String;Ljava/util/Map;)V
iconst_0
iconst_0
invokevirtual org.hsqldb.cmdline.sqltool.Calculator.reduce:(IZ)J
12: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
13: StackMap locals:
StackMap stack: java.lang.Long
astore 6
start local 6 14: aload 2
ldc "++"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
15: aload 6
ifnull 19
16: new java.lang.IllegalStateException
dup
17: ldc "++ operator takes no right hand operand"
18: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: java.lang.Long
StackMap stack:
lconst_1
lload 4
ladd
lreturn
20: StackMap locals:
StackMap stack:
aload 2
ldc "--"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
21: aload 6
ifnull 25
22: new java.lang.IllegalStateException
dup
23: ldc "++ operator takes no right hand operand"
24: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
lload 4
lconst_1
lsub
lreturn
26: StackMap locals:
StackMap stack:
aload 6
ifnonnull 30
27: new java.lang.IllegalStateException
dup
28: new java.lang.StringBuilder
dup
ldc "Operator requires a right hand operand: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.lang.Long.intValue:()I
i2l
lstore 7
start local 7 31: aload 2
ldc "+="
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 34
32: lload 4
lload 7
ladd
lstore 4
33: goto 47
StackMap locals: long
StackMap stack:
34: aload 2
ldc "-="
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 37
35: lload 4
lload 7
lsub
lstore 4
36: goto 47
StackMap locals:
StackMap stack:
37: aload 2
ldc "*="
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 40
38: lload 4
lload 7
lmul
lstore 4
39: goto 47
StackMap locals:
StackMap stack:
40: aload 2
ldc "/="
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 43
41: lload 4
lload 7
ldiv
lstore 4
42: goto 47
StackMap locals:
StackMap stack:
43: aload 2
ldc "%="
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 46
44: lload 4
lload 7
lrem
lstore 4
45: goto 47
46: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported operator: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals:
StackMap stack:
lload 4
lreturn
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 assignee Ljava/lang/String;
0 48 1 valMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 48 2 opStr Ljava/lang/String;
0 48 3 expr Ljava/lang/String;
1 48 4 outVal J
14 48 6 rhValObj Ljava/lang/Long;
31 48 7 rhVal J
Exception table:
from to target type
1 2 3 Class java.lang.NumberFormatException
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;Ljava/lang/String;)J
MethodParameters:
Name Flags
assignee
valMap
opStr
expr
static int[] $SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.hsqldb.cmdline.sqltool.Calculator.$SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.values:()[Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.ADD:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.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 org.hsqldb.cmdline.sqltool.Calculator$MathOp.DIVIDE:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
bipush 6
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.LPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.MULTIPLY:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iconst_5
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.POWER:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
bipush 8
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.REM:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
bipush 7
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.RPAREN:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iconst_2
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic org.hsqldb.cmdline.sqltool.Calculator$MathOp.SUBTRACT:Lorg/hsqldb/cmdline/sqltool/Calculator$MathOp;
invokevirtual org.hsqldb.cmdline.sqltool.Calculator$MathOp.ordinal:()I
iconst_4
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
dup
putstatic org.hsqldb.cmdline.sqltool.Calculator.$SWITCH_TABLE$org$hsqldb$cmdline$sqltool$Calculator$MathOp:[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
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
}
SourceFile: "Calculator.java"
NestMembers:
org.hsqldb.cmdline.sqltool.Calculator$Atom org.hsqldb.cmdline.sqltool.Calculator$MathOp
InnerClasses:
private Atom = org.hsqldb.cmdline.sqltool.Calculator$Atom of org.hsqldb.cmdline.sqltool.Calculator
private final MathOp = org.hsqldb.cmdline.sqltool.Calculator$MathOp of org.hsqldb.cmdline.sqltool.Calculator