resin 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. data/amber/css/amber-normalize.css +73 -73
  2. data/amber/css/amber-normalize.less +1 -1
  3. data/amber/css/amber.css +106 -106
  4. data/amber/css/helios.css +242 -0
  5. data/amber/images/hsplitter.png +0 -0
  6. data/amber/images/vsplitter.png +0 -0
  7. data/amber/js/Benchfib.deploy.js +116 -38
  8. data/amber/js/Benchfib.js +120 -42
  9. data/amber/js/Canvas.deploy.js +674 -403
  10. data/amber/js/Canvas.js +682 -411
  11. data/amber/js/Compiler-AST.deploy.js +1150 -0
  12. data/amber/js/Compiler-AST.js +1591 -0
  13. data/amber/js/Compiler-Core.deploy.js +1562 -0
  14. data/amber/js/Compiler-Core.js +1972 -0
  15. data/amber/js/Compiler-Exceptions.deploy.js +114 -0
  16. data/amber/js/Compiler-Exceptions.js +161 -0
  17. data/amber/js/Compiler-IR.deploy.js +2326 -0
  18. data/amber/js/Compiler-IR.js +3146 -0
  19. data/amber/js/Compiler-Inlining.deploy.js +1147 -0
  20. data/amber/js/Compiler-Inlining.js +1514 -0
  21. data/amber/js/Compiler-Semantic.deploy.js +1207 -0
  22. data/amber/js/Compiler-Semantic.js +1628 -0
  23. data/amber/js/Compiler-Tests.deploy.js +646 -60
  24. data/amber/js/Compiler-Tests.js +843 -82
  25. data/amber/js/Compiler.deploy.js +1097 -159
  26. data/amber/js/Compiler.js +1414 -161
  27. data/amber/js/Examples.deploy.js +31 -15
  28. data/amber/js/Examples.js +33 -17
  29. data/amber/js/Helios-Announcements.deploy.js +127 -0
  30. data/amber/js/Helios-Announcements.js +157 -0
  31. data/amber/js/Helios-Browser.deploy.js +1473 -0
  32. data/amber/js/Helios-Browser.js +1953 -0
  33. data/amber/js/Helios-Commands.deploy.js +403 -0
  34. data/amber/js/Helios-Commands.js +563 -0
  35. data/amber/js/Helios-Core.deploy.js +1070 -0
  36. data/amber/js/Helios-Core.js +1445 -0
  37. data/amber/js/Helios-Environments.deploy.js +132 -0
  38. data/amber/js/Helios-Environments.js +179 -0
  39. data/amber/js/Helios-Inspector.deploy.js +855 -0
  40. data/amber/js/Helios-Inspector.js +1155 -0
  41. data/amber/js/Helios-KeyBindings.deploy.js +753 -0
  42. data/amber/js/Helios-KeyBindings.js +1023 -0
  43. data/amber/js/Helios-Layout.deploy.js +383 -0
  44. data/amber/js/Helios-Layout.js +523 -0
  45. data/amber/js/Helios-Workspace.deploy.js +799 -0
  46. data/amber/js/Helios-Workspace.js +1074 -0
  47. data/amber/js/IDE.deploy.js +2541 -1490
  48. data/amber/js/IDE.js +2721 -1660
  49. data/amber/js/Importer-Exporter.deploy.js +671 -0
  50. data/amber/js/Importer-Exporter.js +816 -0
  51. data/amber/js/Kernel-Announcements.deploy.js +137 -20
  52. data/amber/js/Kernel-Announcements.js +176 -22
  53. data/amber/js/Kernel-Classes.deploy.js +555 -168
  54. data/amber/js/Kernel-Classes.js +662 -205
  55. data/amber/js/Kernel-Collections.deploy.js +1403 -618
  56. data/amber/js/Kernel-Collections.js +1545 -690
  57. data/amber/js/Kernel-Exceptions.deploy.js +109 -45
  58. data/amber/js/Kernel-Exceptions.js +123 -49
  59. data/amber/js/Kernel-Methods.deploy.js +196 -81
  60. data/amber/js/Kernel-Methods.js +214 -89
  61. data/amber/js/Kernel-Objects.deploy.js +1542 -1117
  62. data/amber/js/Kernel-Objects.js +1593 -1148
  63. data/amber/js/Kernel-Tests.deploy.js +1725 -772
  64. data/amber/js/Kernel-Tests.js +2301 -1123
  65. data/amber/js/Kernel-Transcript.deploy.js +23 -25
  66. data/amber/js/Kernel-Transcript.js +24 -26
  67. data/amber/js/SUnit.deploy.js +204 -131
  68. data/amber/js/SUnit.js +222 -139
  69. data/amber/js/Spaces.deploy.js +240 -0
  70. data/amber/js/Spaces.js +326 -0
  71. data/amber/js/amber.js +26 -7
  72. data/amber/js/boot.js +65 -47
  73. data/amber/js/init.js +1 -1
  74. data/amber/js/lib/CodeMirror/amber.css +21 -21
  75. data/amber/js/lib/CodeMirror/codemirror.css +119 -13
  76. data/amber/js/lib/CodeMirror/codemirror.js +2219 -1220
  77. data/amber/js/lib/CodeMirror/smalltalk.js +134 -129
  78. data/amber/js/lib/bootstrap/css/bootstrap.css +5837 -0
  79. data/amber/js/lib/bootstrap/css/bootstrap.min.css +841 -0
  80. data/amber/js/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
  81. data/amber/js/lib/bootstrap/img/glyphicons-halflings.png +0 -0
  82. data/amber/js/lib/bootstrap/js/bootstrap.js +2038 -0
  83. data/amber/js/lib/bootstrap/js/bootstrap.min.js +7 -0
  84. data/amber/js/lib/jQuery/jquery-1.8.2.min.js +2 -0
  85. data/amber/js/lib/jQuery/jquery-ui-1.8.24.custom.min.js +125 -0
  86. data/amber/st/Compiler-AST.st +505 -0
  87. data/amber/st/Compiler-Core.st +835 -0
  88. data/amber/st/Compiler-Exceptions.st +87 -0
  89. data/amber/st/Compiler-IR.st +1097 -0
  90. data/amber/st/Compiler-Inlining.st +650 -0
  91. data/amber/st/Compiler-Semantic.st +558 -0
  92. data/amber/st/Compiler-Tests.st +285 -381
  93. data/amber/st/Compiler.st +725 -2
  94. data/amber/st/Helios-Announcements.st +104 -0
  95. data/amber/st/Helios-Browser.st +708 -0
  96. data/amber/st/Helios-Commands.st +223 -0
  97. data/amber/st/Helios-Core.st +532 -0
  98. data/amber/st/Helios-Environments.st +98 -0
  99. data/amber/st/Helios-Inspector.st +367 -0
  100. data/amber/st/Helios-KeyBindings.st +337 -0
  101. data/amber/st/Helios-Layout.st +199 -0
  102. data/amber/st/Helios-Workspace.st +367 -0
  103. data/amber/st/IDE.st +75 -53
  104. data/amber/st/Importer-Exporter.st +386 -0
  105. data/amber/st/Kernel-Announcements.st +92 -0
  106. data/amber/st/Kernel-Classes.st +137 -15
  107. data/amber/st/Kernel-Collections.st +137 -47
  108. data/amber/st/Kernel-Exceptions.st +14 -0
  109. data/amber/st/Kernel-Methods.st +9 -1
  110. data/amber/st/Kernel-Objects.st +29 -5
  111. data/amber/st/Kernel-Tests.st +545 -199
  112. data/amber/st/SUnit.st +10 -0
  113. data/amber/st/Spaces.st +142 -0
  114. data/lib/resin/app.rb +1 -1
  115. metadata +86 -31
  116. data/amber/js/lib/jQuery/jquery-1.4.4.min.js +0 -167
  117. data/amber/js/lib/jQuery/jquery-1.6.4.min.js +0 -4
@@ -0,0 +1,1591 @@
1
+ smalltalk.addPackage('Compiler-AST', {});
2
+ smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
3
+ smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree."
4
+ smalltalk.addMethod(
5
+ "_accept_",
6
+ smalltalk.method({
7
+ selector: "accept:",
8
+ category: 'visiting',
9
+ fn: function (aVisitor){
10
+ var self=this;
11
+ var $1;
12
+ $1=smalltalk.send(aVisitor,"_visitNode_",[self]);
13
+ return $1;
14
+ },
15
+ args: ["aVisitor"],
16
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
17
+ messageSends: ["visitNode:"],
18
+ referencedClasses: []
19
+ }),
20
+ smalltalk.Node);
21
+
22
+ smalltalk.addMethod(
23
+ "_addNode_",
24
+ smalltalk.method({
25
+ selector: "addNode:",
26
+ category: 'accessing',
27
+ fn: function (aNode){
28
+ var self=this;
29
+ smalltalk.send(smalltalk.send(self,"_nodes",[]),"_add_",[aNode]);
30
+ return self},
31
+ args: ["aNode"],
32
+ source: "addNode: aNode\x0a\x09self nodes add: aNode",
33
+ messageSends: ["add:", "nodes"],
34
+ referencedClasses: []
35
+ }),
36
+ smalltalk.Node);
37
+
38
+ smalltalk.addMethod(
39
+ "_isAssignmentNode",
40
+ smalltalk.method({
41
+ selector: "isAssignmentNode",
42
+ category: 'testing',
43
+ fn: function (){
44
+ var self=this;
45
+ return false;
46
+ },
47
+ args: [],
48
+ source: "isAssignmentNode\x0a\x09^ false",
49
+ messageSends: [],
50
+ referencedClasses: []
51
+ }),
52
+ smalltalk.Node);
53
+
54
+ smalltalk.addMethod(
55
+ "_isBlockNode",
56
+ smalltalk.method({
57
+ selector: "isBlockNode",
58
+ category: 'testing',
59
+ fn: function (){
60
+ var self=this;
61
+ return false;
62
+ },
63
+ args: [],
64
+ source: "isBlockNode\x0a\x09^false",
65
+ messageSends: [],
66
+ referencedClasses: []
67
+ }),
68
+ smalltalk.Node);
69
+
70
+ smalltalk.addMethod(
71
+ "_isBlockSequenceNode",
72
+ smalltalk.method({
73
+ selector: "isBlockSequenceNode",
74
+ category: 'testing',
75
+ fn: function (){
76
+ var self=this;
77
+ return false;
78
+ },
79
+ args: [],
80
+ source: "isBlockSequenceNode\x0a\x09^false",
81
+ messageSends: [],
82
+ referencedClasses: []
83
+ }),
84
+ smalltalk.Node);
85
+
86
+ smalltalk.addMethod(
87
+ "_isReturnNode",
88
+ smalltalk.method({
89
+ selector: "isReturnNode",
90
+ category: 'testing',
91
+ fn: function (){
92
+ var self=this;
93
+ return false;
94
+ },
95
+ args: [],
96
+ source: "isReturnNode\x0a\x09^false",
97
+ messageSends: [],
98
+ referencedClasses: []
99
+ }),
100
+ smalltalk.Node);
101
+
102
+ smalltalk.addMethod(
103
+ "_isSendNode",
104
+ smalltalk.method({
105
+ selector: "isSendNode",
106
+ category: 'testing',
107
+ fn: function (){
108
+ var self=this;
109
+ return false;
110
+ },
111
+ args: [],
112
+ source: "isSendNode\x0a\x09^false",
113
+ messageSends: [],
114
+ referencedClasses: []
115
+ }),
116
+ smalltalk.Node);
117
+
118
+ smalltalk.addMethod(
119
+ "_isValueNode",
120
+ smalltalk.method({
121
+ selector: "isValueNode",
122
+ category: 'testing',
123
+ fn: function (){
124
+ var self=this;
125
+ return false;
126
+ },
127
+ args: [],
128
+ source: "isValueNode\x0a\x09^false",
129
+ messageSends: [],
130
+ referencedClasses: []
131
+ }),
132
+ smalltalk.Node);
133
+
134
+ smalltalk.addMethod(
135
+ "_nodes",
136
+ smalltalk.method({
137
+ selector: "nodes",
138
+ category: 'accessing',
139
+ fn: function (){
140
+ var self=this;
141
+ var $1;
142
+ if(($receiver = self["@nodes"]) == nil || $receiver == undefined){
143
+ self["@nodes"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
144
+ $1=self["@nodes"];
145
+ } else {
146
+ $1=self["@nodes"];
147
+ };
148
+ return $1;
149
+ },
150
+ args: [],
151
+ source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
152
+ messageSends: ["ifNil:", "new"],
153
+ referencedClasses: ["Array"]
154
+ }),
155
+ smalltalk.Node);
156
+
157
+ smalltalk.addMethod(
158
+ "_nodes_",
159
+ smalltalk.method({
160
+ selector: "nodes:",
161
+ category: 'building',
162
+ fn: function (aCollection){
163
+ var self=this;
164
+ self["@nodes"]=aCollection;
165
+ return self},
166
+ args: ["aCollection"],
167
+ source: "nodes: aCollection\x0a\x09nodes := aCollection",
168
+ messageSends: [],
169
+ referencedClasses: []
170
+ }),
171
+ smalltalk.Node);
172
+
173
+ smalltalk.addMethod(
174
+ "_shouldBeAliased",
175
+ smalltalk.method({
176
+ selector: "shouldBeAliased",
177
+ category: 'accessing',
178
+ fn: function (){
179
+ var self=this;
180
+ var $1;
181
+ if(($receiver = self["@shouldBeAliased"]) == nil || $receiver == undefined){
182
+ $1=false;
183
+ } else {
184
+ $1=self["@shouldBeAliased"];
185
+ };
186
+ return $1;
187
+ },
188
+ args: [],
189
+ source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
190
+ messageSends: ["ifNil:"],
191
+ referencedClasses: []
192
+ }),
193
+ smalltalk.Node);
194
+
195
+ smalltalk.addMethod(
196
+ "_shouldBeAliased_",
197
+ smalltalk.method({
198
+ selector: "shouldBeAliased:",
199
+ category: 'accessing',
200
+ fn: function (aBoolean){
201
+ var self=this;
202
+ self["@shouldBeAliased"]=aBoolean;
203
+ return self},
204
+ args: ["aBoolean"],
205
+ source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
206
+ messageSends: [],
207
+ referencedClasses: []
208
+ }),
209
+ smalltalk.Node);
210
+
211
+ smalltalk.addMethod(
212
+ "_shouldBeInlined",
213
+ smalltalk.method({
214
+ selector: "shouldBeInlined",
215
+ category: 'accessing',
216
+ fn: function (){
217
+ var self=this;
218
+ var $1;
219
+ if(($receiver = self["@shouldBeInlined"]) == nil || $receiver == undefined){
220
+ $1=false;
221
+ } else {
222
+ $1=self["@shouldBeInlined"];
223
+ };
224
+ return $1;
225
+ },
226
+ args: [],
227
+ source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
228
+ messageSends: ["ifNil:"],
229
+ referencedClasses: []
230
+ }),
231
+ smalltalk.Node);
232
+
233
+ smalltalk.addMethod(
234
+ "_shouldBeInlined_",
235
+ smalltalk.method({
236
+ selector: "shouldBeInlined:",
237
+ category: 'accessing',
238
+ fn: function (aBoolean){
239
+ var self=this;
240
+ self["@shouldBeInlined"]=aBoolean;
241
+ return self},
242
+ args: ["aBoolean"],
243
+ source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
244
+ messageSends: [],
245
+ referencedClasses: []
246
+ }),
247
+ smalltalk.Node);
248
+
249
+
250
+
251
+ smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler-AST');
252
+ smalltalk.addMethod(
253
+ "_accept_",
254
+ smalltalk.method({
255
+ selector: "accept:",
256
+ category: 'visiting',
257
+ fn: function (aVisitor){
258
+ var self=this;
259
+ var $1;
260
+ $1=smalltalk.send(aVisitor,"_visitAssignmentNode_",[self]);
261
+ return $1;
262
+ },
263
+ args: ["aVisitor"],
264
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
265
+ messageSends: ["visitAssignmentNode:"],
266
+ referencedClasses: []
267
+ }),
268
+ smalltalk.AssignmentNode);
269
+
270
+ smalltalk.addMethod(
271
+ "_isAssignmentNode",
272
+ smalltalk.method({
273
+ selector: "isAssignmentNode",
274
+ category: 'testing',
275
+ fn: function (){
276
+ var self=this;
277
+ return true;
278
+ },
279
+ args: [],
280
+ source: "isAssignmentNode\x0a\x09^ true",
281
+ messageSends: [],
282
+ referencedClasses: []
283
+ }),
284
+ smalltalk.AssignmentNode);
285
+
286
+ smalltalk.addMethod(
287
+ "_left",
288
+ smalltalk.method({
289
+ selector: "left",
290
+ category: 'accessing',
291
+ fn: function (){
292
+ var self=this;
293
+ return self["@left"];
294
+ },
295
+ args: [],
296
+ source: "left\x0a\x09^left",
297
+ messageSends: [],
298
+ referencedClasses: []
299
+ }),
300
+ smalltalk.AssignmentNode);
301
+
302
+ smalltalk.addMethod(
303
+ "_left_",
304
+ smalltalk.method({
305
+ selector: "left:",
306
+ category: 'accessing',
307
+ fn: function (aNode){
308
+ var self=this;
309
+ self["@left"]=aNode;
310
+ return self},
311
+ args: ["aNode"],
312
+ source: "left: aNode\x0a\x09left := aNode",
313
+ messageSends: [],
314
+ referencedClasses: []
315
+ }),
316
+ smalltalk.AssignmentNode);
317
+
318
+ smalltalk.addMethod(
319
+ "_nodes",
320
+ smalltalk.method({
321
+ selector: "nodes",
322
+ category: 'accessing',
323
+ fn: function (){
324
+ var self=this;
325
+ var $1;
326
+ $1=smalltalk.send((smalltalk.Array || Array),"_with_with_",[smalltalk.send(self,"_left",[]),smalltalk.send(self,"_right",[])]);
327
+ return $1;
328
+ },
329
+ args: [],
330
+ source: "nodes\x0a\x09^ Array with: self left with: self right",
331
+ messageSends: ["with:with:", "left", "right"],
332
+ referencedClasses: ["Array"]
333
+ }),
334
+ smalltalk.AssignmentNode);
335
+
336
+ smalltalk.addMethod(
337
+ "_right",
338
+ smalltalk.method({
339
+ selector: "right",
340
+ category: 'accessing',
341
+ fn: function (){
342
+ var self=this;
343
+ return self["@right"];
344
+ },
345
+ args: [],
346
+ source: "right\x0a\x09^right",
347
+ messageSends: [],
348
+ referencedClasses: []
349
+ }),
350
+ smalltalk.AssignmentNode);
351
+
352
+ smalltalk.addMethod(
353
+ "_right_",
354
+ smalltalk.method({
355
+ selector: "right:",
356
+ category: 'accessing',
357
+ fn: function (aNode){
358
+ var self=this;
359
+ self["@right"]=aNode;
360
+ return self},
361
+ args: ["aNode"],
362
+ source: "right: aNode\x0a\x09right := aNode",
363
+ messageSends: [],
364
+ referencedClasses: []
365
+ }),
366
+ smalltalk.AssignmentNode);
367
+
368
+
369
+
370
+ smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'scope'], 'Compiler-AST');
371
+ smalltalk.addMethod(
372
+ "_accept_",
373
+ smalltalk.method({
374
+ selector: "accept:",
375
+ category: 'visiting',
376
+ fn: function (aVisitor){
377
+ var self=this;
378
+ var $1;
379
+ $1=smalltalk.send(aVisitor,"_visitBlockNode_",[self]);
380
+ return $1;
381
+ },
382
+ args: ["aVisitor"],
383
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
384
+ messageSends: ["visitBlockNode:"],
385
+ referencedClasses: []
386
+ }),
387
+ smalltalk.BlockNode);
388
+
389
+ smalltalk.addMethod(
390
+ "_isBlockNode",
391
+ smalltalk.method({
392
+ selector: "isBlockNode",
393
+ category: 'testing',
394
+ fn: function (){
395
+ var self=this;
396
+ return true;
397
+ },
398
+ args: [],
399
+ source: "isBlockNode\x0a\x09^true",
400
+ messageSends: [],
401
+ referencedClasses: []
402
+ }),
403
+ smalltalk.BlockNode);
404
+
405
+ smalltalk.addMethod(
406
+ "_parameters",
407
+ smalltalk.method({
408
+ selector: "parameters",
409
+ category: 'accessing',
410
+ fn: function (){
411
+ var self=this;
412
+ var $1;
413
+ if(($receiver = self["@parameters"]) == nil || $receiver == undefined){
414
+ self["@parameters"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
415
+ $1=self["@parameters"];
416
+ } else {
417
+ $1=self["@parameters"];
418
+ };
419
+ return $1;
420
+ },
421
+ args: [],
422
+ source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
423
+ messageSends: ["ifNil:", "new"],
424
+ referencedClasses: ["Array"]
425
+ }),
426
+ smalltalk.BlockNode);
427
+
428
+ smalltalk.addMethod(
429
+ "_parameters_",
430
+ smalltalk.method({
431
+ selector: "parameters:",
432
+ category: 'accessing',
433
+ fn: function (aCollection){
434
+ var self=this;
435
+ self["@parameters"]=aCollection;
436
+ return self},
437
+ args: ["aCollection"],
438
+ source: "parameters: aCollection\x0a\x09parameters := aCollection",
439
+ messageSends: [],
440
+ referencedClasses: []
441
+ }),
442
+ smalltalk.BlockNode);
443
+
444
+ smalltalk.addMethod(
445
+ "_scope",
446
+ smalltalk.method({
447
+ selector: "scope",
448
+ category: 'accessing',
449
+ fn: function (){
450
+ var self=this;
451
+ return self["@scope"];
452
+ },
453
+ args: [],
454
+ source: "scope\x0a\x09^ scope",
455
+ messageSends: [],
456
+ referencedClasses: []
457
+ }),
458
+ smalltalk.BlockNode);
459
+
460
+ smalltalk.addMethod(
461
+ "_scope_",
462
+ smalltalk.method({
463
+ selector: "scope:",
464
+ category: 'accessing',
465
+ fn: function (aLexicalScope){
466
+ var self=this;
467
+ self["@scope"]=aLexicalScope;
468
+ return self},
469
+ args: ["aLexicalScope"],
470
+ source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
471
+ messageSends: [],
472
+ referencedClasses: []
473
+ }),
474
+ smalltalk.BlockNode);
475
+
476
+
477
+
478
+ smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler-AST');
479
+ smalltalk.addMethod(
480
+ "_accept_",
481
+ smalltalk.method({
482
+ selector: "accept:",
483
+ category: 'visiting',
484
+ fn: function (aVisitor){
485
+ var self=this;
486
+ var $1;
487
+ $1=smalltalk.send(aVisitor,"_visitCascadeNode_",[self]);
488
+ return $1;
489
+ },
490
+ args: ["aVisitor"],
491
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
492
+ messageSends: ["visitCascadeNode:"],
493
+ referencedClasses: []
494
+ }),
495
+ smalltalk.CascadeNode);
496
+
497
+ smalltalk.addMethod(
498
+ "_receiver",
499
+ smalltalk.method({
500
+ selector: "receiver",
501
+ category: 'accessing',
502
+ fn: function (){
503
+ var self=this;
504
+ return self["@receiver"];
505
+ },
506
+ args: [],
507
+ source: "receiver\x0a\x09^receiver",
508
+ messageSends: [],
509
+ referencedClasses: []
510
+ }),
511
+ smalltalk.CascadeNode);
512
+
513
+ smalltalk.addMethod(
514
+ "_receiver_",
515
+ smalltalk.method({
516
+ selector: "receiver:",
517
+ category: 'accessing',
518
+ fn: function (aNode){
519
+ var self=this;
520
+ self["@receiver"]=aNode;
521
+ return self},
522
+ args: ["aNode"],
523
+ source: "receiver: aNode\x0a\x09receiver := aNode",
524
+ messageSends: [],
525
+ referencedClasses: []
526
+ }),
527
+ smalltalk.CascadeNode);
528
+
529
+
530
+
531
+ smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler-AST');
532
+ smalltalk.addMethod(
533
+ "_accept_",
534
+ smalltalk.method({
535
+ selector: "accept:",
536
+ category: 'visiting',
537
+ fn: function (aVisitor){
538
+ var self=this;
539
+ var $1;
540
+ $1=smalltalk.send(aVisitor,"_visitDynamicArrayNode_",[self]);
541
+ return $1;
542
+ },
543
+ args: ["aVisitor"],
544
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
545
+ messageSends: ["visitDynamicArrayNode:"],
546
+ referencedClasses: []
547
+ }),
548
+ smalltalk.DynamicArrayNode);
549
+
550
+
551
+
552
+ smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler-AST');
553
+ smalltalk.addMethod(
554
+ "_accept_",
555
+ smalltalk.method({
556
+ selector: "accept:",
557
+ category: 'visiting',
558
+ fn: function (aVisitor){
559
+ var self=this;
560
+ var $1;
561
+ $1=smalltalk.send(aVisitor,"_visitDynamicDictionaryNode_",[self]);
562
+ return $1;
563
+ },
564
+ args: ["aVisitor"],
565
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
566
+ messageSends: ["visitDynamicDictionaryNode:"],
567
+ referencedClasses: []
568
+ }),
569
+ smalltalk.DynamicDictionaryNode);
570
+
571
+
572
+
573
+ smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler-AST');
574
+ smalltalk.addMethod(
575
+ "_accept_",
576
+ smalltalk.method({
577
+ selector: "accept:",
578
+ category: 'visiting',
579
+ fn: function (aVisitor){
580
+ var self=this;
581
+ var $1;
582
+ $1=smalltalk.send(aVisitor,"_visitJSStatementNode_",[self]);
583
+ return $1;
584
+ },
585
+ args: ["aVisitor"],
586
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
587
+ messageSends: ["visitJSStatementNode:"],
588
+ referencedClasses: []
589
+ }),
590
+ smalltalk.JSStatementNode);
591
+
592
+ smalltalk.addMethod(
593
+ "_source",
594
+ smalltalk.method({
595
+ selector: "source",
596
+ category: 'accessing',
597
+ fn: function (){
598
+ var self=this;
599
+ var $1;
600
+ if(($receiver = self["@source"]) == nil || $receiver == undefined){
601
+ $1="";
602
+ } else {
603
+ $1=self["@source"];
604
+ };
605
+ return $1;
606
+ },
607
+ args: [],
608
+ source: "source\x0a\x09^source ifNil: ['']",
609
+ messageSends: ["ifNil:"],
610
+ referencedClasses: []
611
+ }),
612
+ smalltalk.JSStatementNode);
613
+
614
+ smalltalk.addMethod(
615
+ "_source_",
616
+ smalltalk.method({
617
+ selector: "source:",
618
+ category: 'accessing',
619
+ fn: function (aString){
620
+ var self=this;
621
+ self["@source"]=aString;
622
+ return self},
623
+ args: ["aString"],
624
+ source: "source: aString\x0a\x09source := aString",
625
+ messageSends: [],
626
+ referencedClasses: []
627
+ }),
628
+ smalltalk.JSStatementNode);
629
+
630
+
631
+
632
+ smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST');
633
+ smalltalk.addMethod(
634
+ "_accept_",
635
+ smalltalk.method({
636
+ selector: "accept:",
637
+ category: 'visiting',
638
+ fn: function (aVisitor){
639
+ var self=this;
640
+ var $1;
641
+ $1=smalltalk.send(aVisitor,"_visitMethodNode_",[self]);
642
+ return $1;
643
+ },
644
+ args: ["aVisitor"],
645
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
646
+ messageSends: ["visitMethodNode:"],
647
+ referencedClasses: []
648
+ }),
649
+ smalltalk.MethodNode);
650
+
651
+ smalltalk.addMethod(
652
+ "_arguments",
653
+ smalltalk.method({
654
+ selector: "arguments",
655
+ category: 'accessing',
656
+ fn: function (){
657
+ var self=this;
658
+ var $1;
659
+ if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
660
+ $1=[];
661
+ } else {
662
+ $1=self["@arguments"];
663
+ };
664
+ return $1;
665
+ },
666
+ args: [],
667
+ source: "arguments\x0a\x09^arguments ifNil: [#()]",
668
+ messageSends: ["ifNil:"],
669
+ referencedClasses: []
670
+ }),
671
+ smalltalk.MethodNode);
672
+
673
+ smalltalk.addMethod(
674
+ "_arguments_",
675
+ smalltalk.method({
676
+ selector: "arguments:",
677
+ category: 'accessing',
678
+ fn: function (aCollection){
679
+ var self=this;
680
+ self["@arguments"]=aCollection;
681
+ return self},
682
+ args: ["aCollection"],
683
+ source: "arguments: aCollection\x0a\x09arguments := aCollection",
684
+ messageSends: [],
685
+ referencedClasses: []
686
+ }),
687
+ smalltalk.MethodNode);
688
+
689
+ smalltalk.addMethod(
690
+ "_classReferences",
691
+ smalltalk.method({
692
+ selector: "classReferences",
693
+ category: 'accessing',
694
+ fn: function (){
695
+ var self=this;
696
+ return self["@classReferences"];
697
+ },
698
+ args: [],
699
+ source: "classReferences\x0a\x09^ classReferences",
700
+ messageSends: [],
701
+ referencedClasses: []
702
+ }),
703
+ smalltalk.MethodNode);
704
+
705
+ smalltalk.addMethod(
706
+ "_classReferences_",
707
+ smalltalk.method({
708
+ selector: "classReferences:",
709
+ category: 'accessing',
710
+ fn: function (aCollection){
711
+ var self=this;
712
+ self["@classReferences"]=aCollection;
713
+ return self},
714
+ args: ["aCollection"],
715
+ source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
716
+ messageSends: [],
717
+ referencedClasses: []
718
+ }),
719
+ smalltalk.MethodNode);
720
+
721
+ smalltalk.addMethod(
722
+ "_messageSends",
723
+ smalltalk.method({
724
+ selector: "messageSends",
725
+ category: 'accessing',
726
+ fn: function (){
727
+ var self=this;
728
+ return self["@messageSends"];
729
+ },
730
+ args: [],
731
+ source: "messageSends\x0a\x09^ messageSends",
732
+ messageSends: [],
733
+ referencedClasses: []
734
+ }),
735
+ smalltalk.MethodNode);
736
+
737
+ smalltalk.addMethod(
738
+ "_messageSends_",
739
+ smalltalk.method({
740
+ selector: "messageSends:",
741
+ category: 'accessing',
742
+ fn: function (aCollection){
743
+ var self=this;
744
+ self["@messageSends"]=aCollection;
745
+ return self},
746
+ args: ["aCollection"],
747
+ source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
748
+ messageSends: [],
749
+ referencedClasses: []
750
+ }),
751
+ smalltalk.MethodNode);
752
+
753
+ smalltalk.addMethod(
754
+ "_scope",
755
+ smalltalk.method({
756
+ selector: "scope",
757
+ category: 'accessing',
758
+ fn: function (){
759
+ var self=this;
760
+ return self["@scope"];
761
+ },
762
+ args: [],
763
+ source: "scope\x0a\x09^ scope",
764
+ messageSends: [],
765
+ referencedClasses: []
766
+ }),
767
+ smalltalk.MethodNode);
768
+
769
+ smalltalk.addMethod(
770
+ "_scope_",
771
+ smalltalk.method({
772
+ selector: "scope:",
773
+ category: 'accessing',
774
+ fn: function (aMethodScope){
775
+ var self=this;
776
+ self["@scope"]=aMethodScope;
777
+ return self},
778
+ args: ["aMethodScope"],
779
+ source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
780
+ messageSends: [],
781
+ referencedClasses: []
782
+ }),
783
+ smalltalk.MethodNode);
784
+
785
+ smalltalk.addMethod(
786
+ "_selector",
787
+ smalltalk.method({
788
+ selector: "selector",
789
+ category: 'accessing',
790
+ fn: function (){
791
+ var self=this;
792
+ return self["@selector"];
793
+ },
794
+ args: [],
795
+ source: "selector\x0a\x09^selector",
796
+ messageSends: [],
797
+ referencedClasses: []
798
+ }),
799
+ smalltalk.MethodNode);
800
+
801
+ smalltalk.addMethod(
802
+ "_selector_",
803
+ smalltalk.method({
804
+ selector: "selector:",
805
+ category: 'accessing',
806
+ fn: function (aString){
807
+ var self=this;
808
+ self["@selector"]=aString;
809
+ return self},
810
+ args: ["aString"],
811
+ source: "selector: aString\x0a\x09selector := aString",
812
+ messageSends: [],
813
+ referencedClasses: []
814
+ }),
815
+ smalltalk.MethodNode);
816
+
817
+ smalltalk.addMethod(
818
+ "_source",
819
+ smalltalk.method({
820
+ selector: "source",
821
+ category: 'accessing',
822
+ fn: function (){
823
+ var self=this;
824
+ return self["@source"];
825
+ },
826
+ args: [],
827
+ source: "source\x0a\x09^source",
828
+ messageSends: [],
829
+ referencedClasses: []
830
+ }),
831
+ smalltalk.MethodNode);
832
+
833
+ smalltalk.addMethod(
834
+ "_source_",
835
+ smalltalk.method({
836
+ selector: "source:",
837
+ category: 'accessing',
838
+ fn: function (aString){
839
+ var self=this;
840
+ self["@source"]=aString;
841
+ return self},
842
+ args: ["aString"],
843
+ source: "source: aString\x0a\x09source := aString",
844
+ messageSends: [],
845
+ referencedClasses: []
846
+ }),
847
+ smalltalk.MethodNode);
848
+
849
+
850
+
851
+ smalltalk.addClass('ReturnNode', smalltalk.Node, ['scope'], 'Compiler-AST');
852
+ smalltalk.addMethod(
853
+ "_accept_",
854
+ smalltalk.method({
855
+ selector: "accept:",
856
+ category: 'visiting',
857
+ fn: function (aVisitor){
858
+ var self=this;
859
+ var $1;
860
+ $1=smalltalk.send(aVisitor,"_visitReturnNode_",[self]);
861
+ return $1;
862
+ },
863
+ args: ["aVisitor"],
864
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
865
+ messageSends: ["visitReturnNode:"],
866
+ referencedClasses: []
867
+ }),
868
+ smalltalk.ReturnNode);
869
+
870
+ smalltalk.addMethod(
871
+ "_isReturnNode",
872
+ smalltalk.method({
873
+ selector: "isReturnNode",
874
+ category: 'testing',
875
+ fn: function (){
876
+ var self=this;
877
+ return true;
878
+ },
879
+ args: [],
880
+ source: "isReturnNode\x0a\x09^ true",
881
+ messageSends: [],
882
+ referencedClasses: []
883
+ }),
884
+ smalltalk.ReturnNode);
885
+
886
+ smalltalk.addMethod(
887
+ "_nonLocalReturn",
888
+ smalltalk.method({
889
+ selector: "nonLocalReturn",
890
+ category: 'testing',
891
+ fn: function (){
892
+ var self=this;
893
+ var $1;
894
+ $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_scope",[]),"_isMethodScope",[]),"_not",[]);
895
+ return $1;
896
+ },
897
+ args: [],
898
+ source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
899
+ messageSends: ["not", "isMethodScope", "scope"],
900
+ referencedClasses: []
901
+ }),
902
+ smalltalk.ReturnNode);
903
+
904
+ smalltalk.addMethod(
905
+ "_scope",
906
+ smalltalk.method({
907
+ selector: "scope",
908
+ category: 'accessing',
909
+ fn: function (){
910
+ var self=this;
911
+ return self["@scope"];
912
+ },
913
+ args: [],
914
+ source: "scope\x0a\x09^ scope",
915
+ messageSends: [],
916
+ referencedClasses: []
917
+ }),
918
+ smalltalk.ReturnNode);
919
+
920
+ smalltalk.addMethod(
921
+ "_scope_",
922
+ smalltalk.method({
923
+ selector: "scope:",
924
+ category: 'accessing',
925
+ fn: function (aLexicalScope){
926
+ var self=this;
927
+ self["@scope"]=aLexicalScope;
928
+ return self},
929
+ args: ["aLexicalScope"],
930
+ source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
931
+ messageSends: [],
932
+ referencedClasses: []
933
+ }),
934
+ smalltalk.ReturnNode);
935
+
936
+
937
+
938
+ smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver', 'superSend', 'index'], 'Compiler-AST');
939
+ smalltalk.addMethod(
940
+ "_accept_",
941
+ smalltalk.method({
942
+ selector: "accept:",
943
+ category: 'visiting',
944
+ fn: function (aVisitor){
945
+ var self=this;
946
+ var $1;
947
+ $1=smalltalk.send(aVisitor,"_visitSendNode_",[self]);
948
+ return $1;
949
+ },
950
+ args: ["aVisitor"],
951
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
952
+ messageSends: ["visitSendNode:"],
953
+ referencedClasses: []
954
+ }),
955
+ smalltalk.SendNode);
956
+
957
+ smalltalk.addMethod(
958
+ "_arguments",
959
+ smalltalk.method({
960
+ selector: "arguments",
961
+ category: 'accessing',
962
+ fn: function (){
963
+ var self=this;
964
+ var $1;
965
+ if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
966
+ self["@arguments"]=[];
967
+ $1=self["@arguments"];
968
+ } else {
969
+ $1=self["@arguments"];
970
+ };
971
+ return $1;
972
+ },
973
+ args: [],
974
+ source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
975
+ messageSends: ["ifNil:"],
976
+ referencedClasses: []
977
+ }),
978
+ smalltalk.SendNode);
979
+
980
+ smalltalk.addMethod(
981
+ "_arguments_",
982
+ smalltalk.method({
983
+ selector: "arguments:",
984
+ category: 'accessing',
985
+ fn: function (aCollection){
986
+ var self=this;
987
+ self["@arguments"]=aCollection;
988
+ return self},
989
+ args: ["aCollection"],
990
+ source: "arguments: aCollection\x0a\x09arguments := aCollection",
991
+ messageSends: [],
992
+ referencedClasses: []
993
+ }),
994
+ smalltalk.SendNode);
995
+
996
+ smalltalk.addMethod(
997
+ "_cascadeNodeWithMessages_",
998
+ smalltalk.method({
999
+ selector: "cascadeNodeWithMessages:",
1000
+ category: 'accessing',
1001
+ fn: function (aCollection){
1002
+ var self=this;
1003
+ var $1,$2,$4,$5,$3;
1004
+ var first;
1005
+ $1=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
1006
+ smalltalk.send($1,"_selector_",[smalltalk.send(self,"_selector",[])]);
1007
+ smalltalk.send($1,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
1008
+ $2=smalltalk.send($1,"_yourself",[]);
1009
+ first=$2;
1010
+ $4=smalltalk.send((smalltalk.CascadeNode || CascadeNode),"_new",[]);
1011
+ smalltalk.send($4,"_receiver_",[smalltalk.send(self,"_receiver",[])]);
1012
+ smalltalk.send($4,"_nodes_",[smalltalk.send(smalltalk.send((smalltalk.Array || Array),"_with_",[first]),"__comma",[aCollection])]);
1013
+ $5=smalltalk.send($4,"_yourself",[]);
1014
+ $3=$5;
1015
+ return $3;
1016
+ },
1017
+ args: ["aCollection"],
1018
+ source: "cascadeNodeWithMessages: aCollection\x0a\x09| first |\x0a\x09first := SendNode new\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself.\x0a\x09^CascadeNode new\x0a\x09 receiver: self receiver;\x0a\x09 nodes: (Array with: first), aCollection;\x0a\x09 yourself",
1019
+ messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
1020
+ referencedClasses: ["SendNode", "CascadeNode", "Array"]
1021
+ }),
1022
+ smalltalk.SendNode);
1023
+
1024
+ smalltalk.addMethod(
1025
+ "_index",
1026
+ smalltalk.method({
1027
+ selector: "index",
1028
+ category: 'accessing',
1029
+ fn: function (){
1030
+ var self=this;
1031
+ return self["@index"];
1032
+ },
1033
+ args: [],
1034
+ source: "index\x0a\x09^ index",
1035
+ messageSends: [],
1036
+ referencedClasses: []
1037
+ }),
1038
+ smalltalk.SendNode);
1039
+
1040
+ smalltalk.addMethod(
1041
+ "_index_",
1042
+ smalltalk.method({
1043
+ selector: "index:",
1044
+ category: 'accessing',
1045
+ fn: function (anInteger){
1046
+ var self=this;
1047
+ self["@index"]=anInteger;
1048
+ return self},
1049
+ args: ["anInteger"],
1050
+ source: "index: anInteger\x0a\x09index := anInteger",
1051
+ messageSends: [],
1052
+ referencedClasses: []
1053
+ }),
1054
+ smalltalk.SendNode);
1055
+
1056
+ smalltalk.addMethod(
1057
+ "_isSendNode",
1058
+ smalltalk.method({
1059
+ selector: "isSendNode",
1060
+ category: 'testing',
1061
+ fn: function (){
1062
+ var self=this;
1063
+ return true;
1064
+ },
1065
+ args: [],
1066
+ source: "isSendNode\x0a\x09^ true",
1067
+ messageSends: [],
1068
+ referencedClasses: []
1069
+ }),
1070
+ smalltalk.SendNode);
1071
+
1072
+ smalltalk.addMethod(
1073
+ "_nodes",
1074
+ smalltalk.method({
1075
+ selector: "nodes",
1076
+ category: 'accessing',
1077
+ fn: function (){
1078
+ var self=this;
1079
+ var $2,$3,$1;
1080
+ $2=smalltalk.send((smalltalk.Array || Array),"_withAll_",[smalltalk.send(self,"_arguments",[])]);
1081
+ smalltalk.send($2,"_add_",[smalltalk.send(self,"_receiver",[])]);
1082
+ $3=smalltalk.send($2,"_yourself",[]);
1083
+ $1=$3;
1084
+ return $1;
1085
+ },
1086
+ args: [],
1087
+ source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
1088
+ messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
1089
+ referencedClasses: ["Array"]
1090
+ }),
1091
+ smalltalk.SendNode);
1092
+
1093
+ smalltalk.addMethod(
1094
+ "_receiver",
1095
+ smalltalk.method({
1096
+ selector: "receiver",
1097
+ category: 'accessing',
1098
+ fn: function (){
1099
+ var self=this;
1100
+ return self["@receiver"];
1101
+ },
1102
+ args: [],
1103
+ source: "receiver\x0a\x09^receiver",
1104
+ messageSends: [],
1105
+ referencedClasses: []
1106
+ }),
1107
+ smalltalk.SendNode);
1108
+
1109
+ smalltalk.addMethod(
1110
+ "_receiver_",
1111
+ smalltalk.method({
1112
+ selector: "receiver:",
1113
+ category: 'accessing',
1114
+ fn: function (aNode){
1115
+ var self=this;
1116
+ self["@receiver"]=aNode;
1117
+ return self},
1118
+ args: ["aNode"],
1119
+ source: "receiver: aNode\x0a\x09receiver := aNode",
1120
+ messageSends: [],
1121
+ referencedClasses: []
1122
+ }),
1123
+ smalltalk.SendNode);
1124
+
1125
+ smalltalk.addMethod(
1126
+ "_selector",
1127
+ smalltalk.method({
1128
+ selector: "selector",
1129
+ category: 'accessing',
1130
+ fn: function (){
1131
+ var self=this;
1132
+ return self["@selector"];
1133
+ },
1134
+ args: [],
1135
+ source: "selector\x0a\x09^selector",
1136
+ messageSends: [],
1137
+ referencedClasses: []
1138
+ }),
1139
+ smalltalk.SendNode);
1140
+
1141
+ smalltalk.addMethod(
1142
+ "_selector_",
1143
+ smalltalk.method({
1144
+ selector: "selector:",
1145
+ category: 'accessing',
1146
+ fn: function (aString){
1147
+ var self=this;
1148
+ self["@selector"]=aString;
1149
+ return self},
1150
+ args: ["aString"],
1151
+ source: "selector: aString\x0a\x09selector := aString",
1152
+ messageSends: [],
1153
+ referencedClasses: []
1154
+ }),
1155
+ smalltalk.SendNode);
1156
+
1157
+ smalltalk.addMethod(
1158
+ "_superSend",
1159
+ smalltalk.method({
1160
+ selector: "superSend",
1161
+ category: 'accessing',
1162
+ fn: function (){
1163
+ var self=this;
1164
+ var $1;
1165
+ if(($receiver = self["@superSend"]) == nil || $receiver == undefined){
1166
+ $1=false;
1167
+ } else {
1168
+ $1=self["@superSend"];
1169
+ };
1170
+ return $1;
1171
+ },
1172
+ args: [],
1173
+ source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
1174
+ messageSends: ["ifNil:"],
1175
+ referencedClasses: []
1176
+ }),
1177
+ smalltalk.SendNode);
1178
+
1179
+ smalltalk.addMethod(
1180
+ "_superSend_",
1181
+ smalltalk.method({
1182
+ selector: "superSend:",
1183
+ category: 'accessing',
1184
+ fn: function (aBoolean){
1185
+ var self=this;
1186
+ self["@superSend"]=aBoolean;
1187
+ return self},
1188
+ args: ["aBoolean"],
1189
+ source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
1190
+ messageSends: [],
1191
+ referencedClasses: []
1192
+ }),
1193
+ smalltalk.SendNode);
1194
+
1195
+ smalltalk.addMethod(
1196
+ "_valueForReceiver_",
1197
+ smalltalk.method({
1198
+ selector: "valueForReceiver:",
1199
+ category: 'accessing',
1200
+ fn: function (anObject){
1201
+ var self=this;
1202
+ var $2,$4,$3,$5,$1;
1203
+ $2=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
1204
+ $4=smalltalk.send(self,"_receiver",[]);
1205
+ if(($receiver = $4) == nil || $receiver == undefined){
1206
+ $3=anObject;
1207
+ } else {
1208
+ $3=smalltalk.send(smalltalk.send(self,"_receiver",[]),"_valueForReceiver_",[anObject]);
1209
+ };
1210
+ smalltalk.send($2,"_receiver_",[$3]);
1211
+ smalltalk.send($2,"_selector_",[smalltalk.send(self,"_selector",[])]);
1212
+ smalltalk.send($2,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
1213
+ $5=smalltalk.send($2,"_yourself",[]);
1214
+ $1=$5;
1215
+ return $1;
1216
+ },
1217
+ args: ["anObject"],
1218
+ source: "valueForReceiver: anObject\x0a\x09^SendNode new\x0a\x09 receiver: (self receiver \x0a\x09\x09ifNil: [anObject]\x0a\x09\x09ifNotNil: [self receiver valueForReceiver: anObject]);\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself",
1219
+ messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
1220
+ referencedClasses: ["SendNode"]
1221
+ }),
1222
+ smalltalk.SendNode);
1223
+
1224
+
1225
+
1226
+ smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps', 'scope'], 'Compiler-AST');
1227
+ smalltalk.addMethod(
1228
+ "_accept_",
1229
+ smalltalk.method({
1230
+ selector: "accept:",
1231
+ category: 'visiting',
1232
+ fn: function (aVisitor){
1233
+ var self=this;
1234
+ var $1;
1235
+ $1=smalltalk.send(aVisitor,"_visitSequenceNode_",[self]);
1236
+ return $1;
1237
+ },
1238
+ args: ["aVisitor"],
1239
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
1240
+ messageSends: ["visitSequenceNode:"],
1241
+ referencedClasses: []
1242
+ }),
1243
+ smalltalk.SequenceNode);
1244
+
1245
+ smalltalk.addMethod(
1246
+ "_asBlockSequenceNode",
1247
+ smalltalk.method({
1248
+ selector: "asBlockSequenceNode",
1249
+ category: 'testing',
1250
+ fn: function (){
1251
+ var self=this;
1252
+ var $2,$3,$1;
1253
+ $2=smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode),"_new",[]);
1254
+ smalltalk.send($2,"_nodes_",[smalltalk.send(self,"_nodes",[])]);
1255
+ smalltalk.send($2,"_temps_",[smalltalk.send(self,"_temps",[])]);
1256
+ $3=smalltalk.send($2,"_yourself",[]);
1257
+ $1=$3;
1258
+ return $1;
1259
+ },
1260
+ args: [],
1261
+ source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09 nodes: self nodes;\x0a\x09 temps: self temps;\x0a\x09 yourself",
1262
+ messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
1263
+ referencedClasses: ["BlockSequenceNode"]
1264
+ }),
1265
+ smalltalk.SequenceNode);
1266
+
1267
+ smalltalk.addMethod(
1268
+ "_scope",
1269
+ smalltalk.method({
1270
+ selector: "scope",
1271
+ category: 'accessing',
1272
+ fn: function (){
1273
+ var self=this;
1274
+ return self["@scope"];
1275
+ },
1276
+ args: [],
1277
+ source: "scope\x0a\x09^ scope",
1278
+ messageSends: [],
1279
+ referencedClasses: []
1280
+ }),
1281
+ smalltalk.SequenceNode);
1282
+
1283
+ smalltalk.addMethod(
1284
+ "_scope_",
1285
+ smalltalk.method({
1286
+ selector: "scope:",
1287
+ category: 'accessing',
1288
+ fn: function (aLexicalScope){
1289
+ var self=this;
1290
+ self["@scope"]=aLexicalScope;
1291
+ return self},
1292
+ args: ["aLexicalScope"],
1293
+ source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
1294
+ messageSends: [],
1295
+ referencedClasses: []
1296
+ }),
1297
+ smalltalk.SequenceNode);
1298
+
1299
+ smalltalk.addMethod(
1300
+ "_temps",
1301
+ smalltalk.method({
1302
+ selector: "temps",
1303
+ category: 'accessing',
1304
+ fn: function (){
1305
+ var self=this;
1306
+ var $1;
1307
+ if(($receiver = self["@temps"]) == nil || $receiver == undefined){
1308
+ $1=[];
1309
+ } else {
1310
+ $1=self["@temps"];
1311
+ };
1312
+ return $1;
1313
+ },
1314
+ args: [],
1315
+ source: "temps\x0a\x09^temps ifNil: [#()]",
1316
+ messageSends: ["ifNil:"],
1317
+ referencedClasses: []
1318
+ }),
1319
+ smalltalk.SequenceNode);
1320
+
1321
+ smalltalk.addMethod(
1322
+ "_temps_",
1323
+ smalltalk.method({
1324
+ selector: "temps:",
1325
+ category: 'accessing',
1326
+ fn: function (aCollection){
1327
+ var self=this;
1328
+ self["@temps"]=aCollection;
1329
+ return self},
1330
+ args: ["aCollection"],
1331
+ source: "temps: aCollection\x0a\x09temps := aCollection",
1332
+ messageSends: [],
1333
+ referencedClasses: []
1334
+ }),
1335
+ smalltalk.SequenceNode);
1336
+
1337
+
1338
+
1339
+ smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler-AST');
1340
+ smalltalk.addMethod(
1341
+ "_accept_",
1342
+ smalltalk.method({
1343
+ selector: "accept:",
1344
+ category: 'visiting',
1345
+ fn: function (aVisitor){
1346
+ var self=this;
1347
+ var $1;
1348
+ $1=smalltalk.send(aVisitor,"_visitBlockSequenceNode_",[self]);
1349
+ return $1;
1350
+ },
1351
+ args: ["aVisitor"],
1352
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
1353
+ messageSends: ["visitBlockSequenceNode:"],
1354
+ referencedClasses: []
1355
+ }),
1356
+ smalltalk.BlockSequenceNode);
1357
+
1358
+ smalltalk.addMethod(
1359
+ "_isBlockSequenceNode",
1360
+ smalltalk.method({
1361
+ selector: "isBlockSequenceNode",
1362
+ category: 'testing',
1363
+ fn: function (){
1364
+ var self=this;
1365
+ return true;
1366
+ },
1367
+ args: [],
1368
+ source: "isBlockSequenceNode\x0a\x09^true",
1369
+ messageSends: [],
1370
+ referencedClasses: []
1371
+ }),
1372
+ smalltalk.BlockSequenceNode);
1373
+
1374
+
1375
+
1376
+ smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler-AST');
1377
+ smalltalk.addMethod(
1378
+ "_accept_",
1379
+ smalltalk.method({
1380
+ selector: "accept:",
1381
+ category: 'visiting',
1382
+ fn: function (aVisitor){
1383
+ var self=this;
1384
+ var $1;
1385
+ $1=smalltalk.send(aVisitor,"_visitValueNode_",[self]);
1386
+ return $1;
1387
+ },
1388
+ args: ["aVisitor"],
1389
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
1390
+ messageSends: ["visitValueNode:"],
1391
+ referencedClasses: []
1392
+ }),
1393
+ smalltalk.ValueNode);
1394
+
1395
+ smalltalk.addMethod(
1396
+ "_isValueNode",
1397
+ smalltalk.method({
1398
+ selector: "isValueNode",
1399
+ category: 'testing',
1400
+ fn: function (){
1401
+ var self=this;
1402
+ return true;
1403
+ },
1404
+ args: [],
1405
+ source: "isValueNode\x0a\x09^true",
1406
+ messageSends: [],
1407
+ referencedClasses: []
1408
+ }),
1409
+ smalltalk.ValueNode);
1410
+
1411
+ smalltalk.addMethod(
1412
+ "_value",
1413
+ smalltalk.method({
1414
+ selector: "value",
1415
+ category: 'accessing',
1416
+ fn: function (){
1417
+ var self=this;
1418
+ return self["@value"];
1419
+ },
1420
+ args: [],
1421
+ source: "value\x0a\x09^value",
1422
+ messageSends: [],
1423
+ referencedClasses: []
1424
+ }),
1425
+ smalltalk.ValueNode);
1426
+
1427
+ smalltalk.addMethod(
1428
+ "_value_",
1429
+ smalltalk.method({
1430
+ selector: "value:",
1431
+ category: 'accessing',
1432
+ fn: function (anObject){
1433
+ var self=this;
1434
+ self["@value"]=anObject;
1435
+ return self},
1436
+ args: ["anObject"],
1437
+ source: "value: anObject\x0a\x09value := anObject",
1438
+ messageSends: [],
1439
+ referencedClasses: []
1440
+ }),
1441
+ smalltalk.ValueNode);
1442
+
1443
+
1444
+
1445
+ smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned', 'binding'], 'Compiler-AST');
1446
+ smalltalk.addMethod(
1447
+ "_accept_",
1448
+ smalltalk.method({
1449
+ selector: "accept:",
1450
+ category: 'visiting',
1451
+ fn: function (aVisitor){
1452
+ var self=this;
1453
+ var $1;
1454
+ $1=smalltalk.send(aVisitor,"_visitVariableNode_",[self]);
1455
+ return $1;
1456
+ },
1457
+ args: ["aVisitor"],
1458
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
1459
+ messageSends: ["visitVariableNode:"],
1460
+ referencedClasses: []
1461
+ }),
1462
+ smalltalk.VariableNode);
1463
+
1464
+ smalltalk.addMethod(
1465
+ "_alias",
1466
+ smalltalk.method({
1467
+ selector: "alias",
1468
+ category: 'accessing',
1469
+ fn: function (){
1470
+ var self=this;
1471
+ var $1;
1472
+ $1=smalltalk.send(smalltalk.send(self,"_binding",[]),"_alias",[]);
1473
+ return $1;
1474
+ },
1475
+ args: [],
1476
+ source: "alias\x0a\x09^ self binding alias",
1477
+ messageSends: ["alias", "binding"],
1478
+ referencedClasses: []
1479
+ }),
1480
+ smalltalk.VariableNode);
1481
+
1482
+ smalltalk.addMethod(
1483
+ "_assigned",
1484
+ smalltalk.method({
1485
+ selector: "assigned",
1486
+ category: 'accessing',
1487
+ fn: function (){
1488
+ var self=this;
1489
+ var $1;
1490
+ if(($receiver = self["@assigned"]) == nil || $receiver == undefined){
1491
+ $1=false;
1492
+ } else {
1493
+ $1=self["@assigned"];
1494
+ };
1495
+ return $1;
1496
+ },
1497
+ args: [],
1498
+ source: "assigned\x0a\x09^assigned ifNil: [false]",
1499
+ messageSends: ["ifNil:"],
1500
+ referencedClasses: []
1501
+ }),
1502
+ smalltalk.VariableNode);
1503
+
1504
+ smalltalk.addMethod(
1505
+ "_assigned_",
1506
+ smalltalk.method({
1507
+ selector: "assigned:",
1508
+ category: 'accessing',
1509
+ fn: function (aBoolean){
1510
+ var self=this;
1511
+ self["@assigned"]=aBoolean;
1512
+ return self},
1513
+ args: ["aBoolean"],
1514
+ source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
1515
+ messageSends: [],
1516
+ referencedClasses: []
1517
+ }),
1518
+ smalltalk.VariableNode);
1519
+
1520
+ smalltalk.addMethod(
1521
+ "_beAssigned",
1522
+ smalltalk.method({
1523
+ selector: "beAssigned",
1524
+ category: 'accessing',
1525
+ fn: function (){
1526
+ var self=this;
1527
+ smalltalk.send(smalltalk.send(self,"_binding",[]),"_validateAssignment",[]);
1528
+ self["@assigned"]=true;
1529
+ return self},
1530
+ args: [],
1531
+ source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
1532
+ messageSends: ["validateAssignment", "binding"],
1533
+ referencedClasses: []
1534
+ }),
1535
+ smalltalk.VariableNode);
1536
+
1537
+ smalltalk.addMethod(
1538
+ "_binding",
1539
+ smalltalk.method({
1540
+ selector: "binding",
1541
+ category: 'accessing',
1542
+ fn: function (){
1543
+ var self=this;
1544
+ return self["@binding"];
1545
+ },
1546
+ args: [],
1547
+ source: "binding\x0a\x09^ binding",
1548
+ messageSends: [],
1549
+ referencedClasses: []
1550
+ }),
1551
+ smalltalk.VariableNode);
1552
+
1553
+ smalltalk.addMethod(
1554
+ "_binding_",
1555
+ smalltalk.method({
1556
+ selector: "binding:",
1557
+ category: 'accessing',
1558
+ fn: function (aScopeVar){
1559
+ var self=this;
1560
+ self["@binding"]=aScopeVar;
1561
+ return self},
1562
+ args: ["aScopeVar"],
1563
+ source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
1564
+ messageSends: [],
1565
+ referencedClasses: []
1566
+ }),
1567
+ smalltalk.VariableNode);
1568
+
1569
+
1570
+
1571
+ smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler-AST');
1572
+ smalltalk.addMethod(
1573
+ "_accept_",
1574
+ smalltalk.method({
1575
+ selector: "accept:",
1576
+ category: 'visiting',
1577
+ fn: function (aVisitor){
1578
+ var self=this;
1579
+ var $1;
1580
+ $1=smalltalk.send(aVisitor,"_visitClassReferenceNode_",[self]);
1581
+ return $1;
1582
+ },
1583
+ args: ["aVisitor"],
1584
+ source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
1585
+ messageSends: ["visitClassReferenceNode:"],
1586
+ referencedClasses: []
1587
+ }),
1588
+ smalltalk.ClassReferenceNode);
1589
+
1590
+
1591
+