/**
* The Computer Language Shootout
* http://shootout.alioth.debian.org/
*
* contributed by Jochen Hinrichsen
*/
def dict = new TreeMap()
// read input, build dictionary
System.in.eachLine() { line ->
// split on words
line.split("\\W").each() { word ->
def s = word.toLowerCase()
def entry = dict[s]
dict[s] = (entry == null) ? 1 : entry + 1
}
}
// default sort() is smallest first
// sort for multiple properties: [ it.value, it.key ]
assert dict != null
assert dict.values() != null
assert (dict.values().sort({ l, r -> r <=> l })) != null
dict.values().sort({ l, r -> r <=> l }).each() { value ->
println "${value.toString().padLeft(8)}"
}
Groovyc (Legacy)
Compiled from "wordfreq.groovy"
public class wordfreq extends groovy.lang.Script {
public static transient boolean __$stMC;
public wordfreq();
Code:
0: aload_0
1: invokespecial #13 // Method groovy/lang/Script."<init>":()V
4: invokestatic #17 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
7: astore_1
8: return
public wordfreq(groovy.lang.Binding);
Code:
0: invokestatic #17 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_2
4: aload_0
5: aload_1
6: invokespecial #22 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
9: return
public static void main(java.lang.String...);
Code:
0: invokestatic #17 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_1
4: aload_1
5: ldc #27 // int 0
7: aaload
8: ldc #29 // class org/codehaus/groovy/runtime/InvokerHelper
10: ldc #2 // class wordfreq
12: aload_0
13: invokeinterface #35, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
18: pop
19: return
public java.lang.Object run();
Code:
0: invokestatic #17 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_1
4: aload_1
5: ldc #40 // int 1
7: aaload
8: ldc #42 // class java/util/TreeMap
10: invokeinterface #46, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callConstructor:(Ljava/lang/Object;)Ljava/lang/Object;
15: new #48 // class groovy/lang/Reference
18: dup_x1
19: swap
20: invokespecial #51 // Method groovy/lang/Reference."<init>":(Ljava/lang/Object;)V
23: astore_2
24: aload_2
25: pop
26: aload_1
27: ldc #52 // int 2
29: aaload
30: aload_1
31: ldc #53 // int 3
33: aaload
34: ldc #55 // class java/lang/System
36: invokeinterface #58, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
41: new #60 // class wordfreq$_run_closure1
44: dup
45: aload_0
46: aload_0
47: aload_2
48: invokespecial #63 // Method wordfreq$_run_closure1."<init>":(Ljava/lang/Object;Ljava/lang/Object;Lgroovy/lang/Reference;)V
51: invokeinterface #66, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
56: pop
57: new #68 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
60: dup
61: invokespecial #69 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
64: astore_3
65: aload_2
66: invokevirtual #72 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
69: dup
70: aload_3
71: swap
72: ldc #73 // int 8
74: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
77: pop
78: aconst_null
79: invokestatic #83 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
82: dup
83: invokestatic #89 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
86: aload_3
87: swap
88: ldc #90 // int 13
90: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
93: pop
94: ifeq 104
97: aload_3
98: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
101: goto 122
104: ldc #95 // String assert dict != null
106: aload_3
107: invokestatic #101 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
110: aconst_null
111: invokestatic #105 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
114: goto 122
117: aload_3
118: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
121: athrow
122: new #68 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
125: dup
126: invokespecial #69 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
129: astore 4
131: aload_1
132: ldc #106 // int 4
134: aaload
135: aload_2
136: invokevirtual #72 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
139: dup
140: aload 4
142: swap
143: ldc #73 // int 8
145: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
148: pop
149: invokeinterface #108, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
154: dup
155: aload 4
157: swap
158: ldc #90 // int 13
160: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
163: pop
164: aconst_null
165: invokestatic #83 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
168: dup
169: invokestatic #89 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
172: aload 4
174: swap
175: ldc #109 // int 22
177: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
180: pop
181: ifeq 192
184: aload 4
186: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
189: goto 212
192: ldc #111 // String assert dict.values() != null
194: aload 4
196: invokestatic #101 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
199: aconst_null
200: invokestatic #105 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
203: goto 212
206: aload 4
208: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
211: athrow
212: new #68 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
215: dup
216: invokespecial #69 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
219: astore 5
221: aload_1
222: ldc #112 // int 5
224: aaload
225: aload_1
226: ldc #113 // int 6
228: aaload
229: aload_2
230: invokevirtual #72 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
233: dup
234: aload 5
236: swap
237: ldc #114 // int 9
239: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
242: pop
243: invokeinterface #108, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
248: dup
249: aload 5
251: swap
252: ldc #115 // int 14
254: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
257: pop
258: new #117 // class wordfreq$_run_closure2
261: dup
262: aload_0
263: aload_0
264: invokespecial #119 // Method wordfreq$_run_closure2."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
267: invokeinterface #66, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
272: dup
273: aload 5
275: swap
276: ldc #120 // int 23
278: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
281: pop
282: aconst_null
283: invokestatic #83 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
286: dup
287: invokestatic #89 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
290: aload 5
292: swap
293: ldc #121 // int 50
295: invokevirtual #77 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
298: pop
299: ifeq 310
302: aload 5
304: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
307: goto 330
310: ldc #123 // String assert (dict.values().sort({ l, r -> r <=> l })) != null
312: aload 5
314: invokestatic #101 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
317: aconst_null
318: invokestatic #105 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
321: goto 330
324: aload 5
326: invokevirtual #93 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
329: athrow
330: aload_1
331: ldc #124 // int 7
333: aaload
334: aload_1
335: ldc #73 // int 8
337: aaload
338: aload_1
339: ldc #114 // int 9
341: aaload
342: aload_2
343: invokevirtual #72 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
346: invokeinterface #108, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
351: new #126 // class wordfreq$_run_closure3
354: dup
355: aload_0
356: aload_0
357: invokespecial #127 // Method wordfreq$_run_closure3."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
360: invokeinterface #66, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
365: new #129 // class wordfreq$_run_closure4
368: dup
369: aload_0
370: aload_0
371: invokespecial #130 // Method wordfreq$_run_closure4."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
374: invokeinterface #66, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
379: areturn
380: aconst_null
381: areturn
Exception table:
from to target type
65 114 117 any
131 203 206 any
221 321 324 any
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #140 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class wordfreq
6: if_acmpeq 14
9: aload_0
10: invokestatic #144 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #146 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #140 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #152 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #146 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #155 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
}
Invoke Dynamic
Compiled from "wordfreq.groovy"
public class wordfreq extends groovy.lang.Script {
public static transient boolean __$stMC;
public wordfreq();
Code:
0: aload_0
1: invokespecial #13 // Method groovy/lang/Script."<init>":()V
4: return
public wordfreq(groovy.lang.Binding);
Code:
0: aload_0
1: aload_1
2: invokespecial #18 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
5: return
public static void main(java.lang.String...);
Code:
0: ldc #24 // class org/codehaus/groovy/runtime/InvokerHelper
2: ldc #2 // class wordfreq
4: aload_0
5: invokedynamic #38, 0 // InvokeDynamic #0:invoke:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
10: pop
11: return
public java.lang.Object run();
Code:
0: ldc #44 // class java/util/TreeMap
2: invokedynamic #49, 0 // InvokeDynamic #1:init:(Ljava/lang/Class;)Ljava/lang/Object;
7: new #51 // class groovy/lang/Reference
10: dup_x1
11: swap
12: invokespecial #54 // Method groovy/lang/Reference."<init>":(Ljava/lang/Object;)V
15: astore_1
16: aload_1
17: pop
18: ldc #56 // class java/lang/System
20: invokedynamic #61, 0 // InvokeDynamic #2:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
25: new #63 // class wordfreq$_run_closure1
28: dup
29: aload_0
30: aload_0
31: aload_1
32: invokespecial #66 // Method wordfreq$_run_closure1."<init>":(Ljava/lang/Object;Ljava/lang/Object;Lgroovy/lang/Reference;)V
35: invokedynamic #71, 0 // InvokeDynamic #3:invoke:(Ljava/lang/Object;Lgroovy/lang/Closure;)Ljava/lang/Object;
40: pop
41: new #73 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
44: dup
45: invokespecial #74 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
48: astore_2
49: aload_1
50: invokevirtual #77 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
53: dup
54: aload_2
55: swap
56: ldc #78 // int 8
58: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
61: pop
62: aconst_null
63: invokestatic #88 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
66: dup
67: invokestatic #94 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
70: aload_2
71: swap
72: ldc #95 // int 13
74: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
77: pop
78: ifeq 88
81: aload_2
82: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
85: goto 106
88: ldc #100 // String assert dict != null
90: aload_2
91: invokestatic #106 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
94: aconst_null
95: invokestatic #110 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
98: goto 106
101: aload_2
102: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
105: athrow
106: new #73 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
109: dup
110: invokespecial #74 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
113: astore_3
114: aload_1
115: invokevirtual #77 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
118: dup
119: aload_3
120: swap
121: ldc #78 // int 8
123: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
126: pop
127: invokedynamic #115, 0 // InvokeDynamic #4:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
132: dup
133: aload_3
134: swap
135: ldc #95 // int 13
137: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
140: pop
141: aconst_null
142: invokestatic #88 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
145: dup
146: invokestatic #94 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
149: aload_3
150: swap
151: ldc #116 // int 22
153: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
156: pop
157: ifeq 167
160: aload_3
161: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
164: goto 185
167: ldc #118 // String assert dict.values() != null
169: aload_3
170: invokestatic #106 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
173: aconst_null
174: invokestatic #110 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
177: goto 185
180: aload_3
181: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
184: athrow
185: new #73 // class org/codehaus/groovy/runtime/powerassert/ValueRecorder
188: dup
189: invokespecial #74 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder."<init>":()V
192: astore 4
194: aload_1
195: invokevirtual #77 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
198: dup
199: aload 4
201: swap
202: ldc #119 // int 9
204: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
207: pop
208: invokedynamic #115, 0 // InvokeDynamic #4:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
213: dup
214: aload 4
216: swap
217: ldc #120 // int 14
219: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
222: pop
223: new #122 // class wordfreq$_run_closure2
226: dup
227: aload_0
228: aload_0
229: invokespecial #124 // Method wordfreq$_run_closure2."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
232: invokedynamic #127, 0 // InvokeDynamic #5:invoke:(Ljava/lang/Object;Lgroovy/lang/Closure;)Ljava/lang/Object;
237: dup
238: aload 4
240: swap
241: ldc #128 // int 23
243: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
246: pop
247: aconst_null
248: invokestatic #88 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareNotEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
251: dup
252: invokestatic #94 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
255: aload 4
257: swap
258: ldc #129 // int 50
260: invokevirtual #82 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.record:(Ljava/lang/Object;I)Ljava/lang/Object;
263: pop
264: ifeq 275
267: aload 4
269: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
272: goto 295
275: ldc #131 // String assert (dict.values().sort({ l, r -> r <=> l })) != null
277: aload 4
279: invokestatic #106 // Method org/codehaus/groovy/runtime/powerassert/AssertionRenderer.render:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/powerassert/ValueRecorder;)Ljava/lang/String;
282: aconst_null
283: invokestatic #110 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.assertFailed:(Ljava/lang/Object;Ljava/lang/Object;)V
286: goto 295
289: aload 4
291: invokevirtual #98 // Method org/codehaus/groovy/runtime/powerassert/ValueRecorder.clear:()V
294: athrow
295: aload_1
296: invokevirtual #77 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
299: invokedynamic #115, 0 // InvokeDynamic #4:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
304: new #133 // class wordfreq$_run_closure3
307: dup
308: aload_0
309: aload_0
310: invokespecial #134 // Method wordfreq$_run_closure3."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
313: invokedynamic #127, 0 // InvokeDynamic #5:invoke:(Ljava/lang/Object;Lgroovy/lang/Closure;)Ljava/lang/Object;
318: new #136 // class wordfreq$_run_closure4
321: dup
322: aload_0
323: aload_0
324: invokespecial #137 // Method wordfreq$_run_closure4."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
327: invokedynamic #140, 0 // InvokeDynamic #6:invoke:(Ljava/lang/Object;Lgroovy/lang/Closure;)Ljava/lang/Object;
332: areturn
333: nop
334: athrow
Exception table:
from to target type
49 98 101 any
114 177 180 any
194 286 289 any
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #152 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class wordfreq
6: if_acmpeq 14
9: aload_0
10: invokestatic #156 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #158 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #152 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #164 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #158 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #167 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
}
Static Compilation
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/wordfreq.groovy: 14: [Static type checking] - Cannot find matching method java.lang.Object#toLowerCase(). Please check if the declared type is right and if the method exists.
@ line 14, column 17.
def s = word.toLowerCase()
^
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/wordfreq.groovy: 16: [Static type checking] - Cannot find matching method java.lang.Object#plus(int). Please check if the declared type is right and if the method exists.
@ line 16, column 47.
= (entry == null) ? 1 : entry + 1
^
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/wordfreq.groovy: 24: [Static type checking] - Cannot find matching method java.lang.Object#compareTo(java.lang.Object). Please check if the declared type is right and if the method exists.
@ line 24, column 38.
assert (dict.values().sort({ l, r -> r <=> l })) != null
^
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/wordfreq.groovy: 25: [Static type checking] - Cannot find matching method java.lang.Object#compareTo(java.lang.Object). Please check if the declared type is right and if the method exists.
@ line 25, column 30.
dict.values().sort({ l, r -> r <=> l }).each() { value ->
^
4 errors
Groovyc (Legacy)
Compiled from "wordfreq.groovy"
public class wordfreq$_run_closure1$_closure5 extends groovy.lang.Closure implements org.codehaus.groovy.runtime.GeneratedClosure {
public static transient boolean __$stMC;
public wordfreq$_run_closure1$_closure5(java.lang.Object, java.lang.Object, groovy.lang.Reference);
Code:
0: invokestatic #27 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore 4
5: aload_0
6: aload_1
7: aload_2
8: invokespecial #30 // Method groovy/lang/Closure."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
11: aload_3
12: astore 5
14: aload 5
16: aload_0
17: swap
18: putfield #32 // Field dict:Lgroovy/lang/Reference;
21: return
public java.lang.Object doCall(java.lang.Object);
Code:
0: invokestatic #27 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_2
4: aload_2
5: ldc #38 // int 0
7: aaload
8: aload_1
9: invokeinterface #43, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
14: astore_3
15: aload_2
16: ldc #44 // int 1
18: aaload
19: aload_0
20: getfield #32 // Field dict:Lgroovy/lang/Reference;
23: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
26: aload_3
27: invokeinterface #53, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
32: astore 4
34: aload 4
36: aconst_null
37: invokestatic #59 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
40: ifeq 50
43: iconst_1
44: invokestatic #65 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
47: goto 65
50: aload_2
51: ldc #66 // int 2
53: aaload
54: aload 4
56: iconst_1
57: invokestatic #65 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
60: invokeinterface #53, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
65: astore 5
67: aload_2
68: ldc #67 // int 3
70: aaload
71: aload_0
72: getfield #32 // Field dict:Lgroovy/lang/Reference;
75: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
78: aload_3
79: aload 5
81: invokeinterface #70, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
86: pop
87: aload 5
89: areturn
90: aconst_null
91: areturn
public java.lang.Object getDict();
Code:
0: invokestatic #27 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_1
4: aload_0
5: getfield #32 // Field dict:Lgroovy/lang/Reference;
8: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
11: areturn
12: aconst_null
13: areturn
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #82 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class wordfreq$_run_closure1$_closure5
6: if_acmpeq 14
9: aload_0
10: invokestatic #86 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #88 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #82 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #94 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #88 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #97 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
}
Invoke Dynamic
Compiled from "wordfreq.groovy"
public class wordfreq$_run_closure1$_closure5 extends groovy.lang.Closure implements org.codehaus.groovy.runtime.GeneratedClosure {
public static transient boolean __$stMC;
public wordfreq$_run_closure1$_closure5(java.lang.Object, java.lang.Object, groovy.lang.Reference);
Code:
0: aload_0
1: aload_1
2: aload_2
3: invokespecial #24 // Method groovy/lang/Closure."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
6: aload_3
7: astore 4
9: aload 4
11: aload_0
12: swap
13: putfield #26 // Field dict:Lgroovy/lang/Reference;
16: return
public java.lang.Object doCall(java.lang.Object);
Code:
0: aload_1
1: invokedynamic #44, 0 // InvokeDynamic #0:invoke:(Ljava/lang/Object;)Ljava/lang/Object;
6: astore_2
7: aload_0
8: getfield #26 // Field dict:Lgroovy/lang/Reference;
11: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
14: aload_2
15: invokedynamic #55, 0 // InvokeDynamic #1:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
20: astore_3
21: aload_3
22: aconst_null
23: invokestatic #61 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
26: ifeq 36
29: iconst_1
30: invokestatic #67 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
33: goto 43
36: aload_3
37: iconst_1
38: invokedynamic #74, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
43: astore 4
45: aload_0
46: getfield #26 // Field dict:Lgroovy/lang/Reference;
49: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
52: aload_2
53: aload 4
55: invokedynamic #79, 0 // InvokeDynamic #3:invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
60: pop
61: aload 4
63: areturn
64: nop
65: athrow
public java.lang.Object getDict();
Code:
0: aload_0
1: getfield #26 // Field dict:Lgroovy/lang/Reference;
4: invokevirtual #50 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
7: areturn
8: nop
9: athrow
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #91 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class wordfreq$_run_closure1$_closure5
6: if_acmpeq 14
9: aload_0
10: invokestatic #95 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #97 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #91 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #103 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #97 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #106 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
}