Compiler-AST.js 49 KB

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