Compiler-AST.js 50 KB

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