Compiler-AST.js 49 KB

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