2
0

Compiler-AST.deploy.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128
  1. smalltalk.addPackage('Compiler-AST', {});
  2. smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'used', 'alias', 'canBeInlined'], 'Compiler-AST');
  3. smalltalk.addMethod(
  4. "_accept_",
  5. smalltalk.method({
  6. selector: "accept:",
  7. fn: function (aVisitor) {
  8. var self=this;
  9. smalltalk.send(aVisitor, "_visitNode_", [self]);
  10. return self;}
  11. }),
  12. smalltalk.Node);
  13. smalltalk.addMethod(
  14. "_addNode_",
  15. smalltalk.method({
  16. selector: "addNode:",
  17. fn: function (aNode) {
  18. var self=this;
  19. smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]);
  20. return self;}
  21. }),
  22. smalltalk.Node);
  23. smalltalk.addMethod(
  24. "_alias",
  25. smalltalk.method({
  26. selector: "alias",
  27. fn: function () {
  28. var self=this;
  29. return self['@alias'];
  30. return self;}
  31. }),
  32. smalltalk.Node);
  33. smalltalk.addMethod(
  34. "_alias_",
  35. smalltalk.method({
  36. selector: "alias:",
  37. fn: function (aString) {
  38. var self=this;
  39. (self['@alias']=aString);
  40. return self;}
  41. }),
  42. smalltalk.Node);
  43. smalltalk.addMethod(
  44. "_beUsed",
  45. smalltalk.method({
  46. selector: "beUsed",
  47. fn: function () {
  48. var self=this;
  49. (self['@used']=true);
  50. return self;}
  51. }),
  52. smalltalk.Node);
  53. smalltalk.addMethod(
  54. "_canAliasChildren",
  55. smalltalk.method({
  56. selector: "canAliasChildren",
  57. fn: function () {
  58. var self=this;
  59. return true;
  60. return self;}
  61. }),
  62. smalltalk.Node);
  63. smalltalk.addMethod(
  64. "_canBeInlined",
  65. smalltalk.method({
  66. selector: "canBeInlined",
  67. fn: function (){
  68. var self=this;
  69. return (($receiver = self['@canBeInlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
  70. return self;}
  71. }),
  72. smalltalk.Node);
  73. smalltalk.addMethod(
  74. "_canBeInlined_",
  75. smalltalk.method({
  76. selector: "canBeInlined:",
  77. fn: function (aBoolean){
  78. var self=this;
  79. (self['@canBeInlined']=aBoolean);
  80. return self;}
  81. }),
  82. smalltalk.Node);
  83. smalltalk.addMethod(
  84. "_isAliased",
  85. smalltalk.method({
  86. selector: "isAliased",
  87. fn: function () {
  88. var self=this;
  89. return smalltalk.send(smalltalk.send(self, "_alias", []), "_notNil", []);
  90. return self;}
  91. }),
  92. smalltalk.Node);
  93. smalltalk.addMethod(
  94. "_isBlockNode",
  95. smalltalk.method({
  96. selector: "isBlockNode",
  97. fn: function () {
  98. var self=this;
  99. return false;
  100. return self;}
  101. }),
  102. smalltalk.Node);
  103. smalltalk.addMethod(
  104. "_isBlockSequenceNode",
  105. smalltalk.method({
  106. selector: "isBlockSequenceNode",
  107. fn: function () {
  108. var self=this;
  109. return false;
  110. return self;}
  111. }),
  112. smalltalk.Node);
  113. smalltalk.addMethod(
  114. "_isSendNode",
  115. smalltalk.method({
  116. selector: "isSendNode",
  117. fn: function () {
  118. var self=this;
  119. return false;
  120. return self;}
  121. }),
  122. smalltalk.Node);
  123. smalltalk.addMethod(
  124. "_isUsed",
  125. smalltalk.method({
  126. selector: "isUsed",
  127. fn: function () {
  128. var self=this;
  129. return smalltalk.send(self, "_used", []);
  130. return self;}
  131. }),
  132. smalltalk.Node);
  133. smalltalk.addMethod(
  134. "_isValueNode",
  135. smalltalk.method({
  136. selector: "isValueNode",
  137. fn: function () {
  138. var self=this;
  139. return false;
  140. return self;}
  141. }),
  142. smalltalk.Node);
  143. smalltalk.addMethod(
  144. "_nodes",
  145. smalltalk.method({
  146. selector: "nodes",
  147. fn: function () {
  148. var self=this;
  149. return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
  150. return self;}
  151. }),
  152. smalltalk.Node);
  153. smalltalk.addMethod(
  154. "_nodes_",
  155. smalltalk.method({
  156. selector: "nodes:",
  157. fn: function (aCollection) {
  158. var self=this;
  159. (self['@nodes']=aCollection);
  160. return self;}
  161. }),
  162. smalltalk.Node);
  163. smalltalk.addMethod(
  164. "_shouldBeAliased",
  165. smalltalk.method({
  166. selector: "shouldBeAliased",
  167. fn: function () {
  168. var self=this;
  169. return smalltalk.send(smalltalk.send(self, "_isUsed", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_alias", []), "_isNil", []);})]);
  170. return self;}
  171. }),
  172. smalltalk.Node);
  173. smalltalk.addMethod(
  174. "_used",
  175. smalltalk.method({
  176. selector: "used",
  177. fn: function () {
  178. var self=this;
  179. return (($receiver = self['@used']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
  180. return self;}
  181. }),
  182. smalltalk.Node);
  183. smalltalk.addMethod(
  184. "_used_",
  185. smalltalk.method({
  186. selector: "used:",
  187. fn: function (aBoolean) {
  188. var self=this;
  189. (self['@used']=aBoolean);
  190. return self;}
  191. }),
  192. smalltalk.Node);
  193. smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler-AST');
  194. smalltalk.addMethod(
  195. "_accept_",
  196. smalltalk.method({
  197. selector: "accept:",
  198. fn: function (aVisitor) {
  199. var self=this;
  200. smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
  201. return self;}
  202. }),
  203. smalltalk.AssignmentNode);
  204. smalltalk.addMethod(
  205. "_left",
  206. smalltalk.method({
  207. selector: "left",
  208. fn: function () {
  209. var self=this;
  210. return self['@left'];
  211. return self;}
  212. }),
  213. smalltalk.AssignmentNode);
  214. smalltalk.addMethod(
  215. "_left_",
  216. smalltalk.method({
  217. selector: "left:",
  218. fn: function (aNode) {
  219. var self=this;
  220. (self['@left']=aNode);
  221. smalltalk.send(self['@left'], "_assigned_", [true]);
  222. return self;}
  223. }),
  224. smalltalk.AssignmentNode);
  225. smalltalk.addMethod(
  226. "_nodes",
  227. smalltalk.method({
  228. selector: "nodes",
  229. fn: function () {
  230. var self=this;
  231. return smalltalk.send((smalltalk.Array || Array), "_with_with_", [smalltalk.send(self, "_left", []), smalltalk.send(self, "_right", [])]);
  232. return self;}
  233. }),
  234. smalltalk.AssignmentNode);
  235. smalltalk.addMethod(
  236. "_right",
  237. smalltalk.method({
  238. selector: "right",
  239. fn: function () {
  240. var self=this;
  241. return self['@right'];
  242. return self;}
  243. }),
  244. smalltalk.AssignmentNode);
  245. smalltalk.addMethod(
  246. "_right_",
  247. smalltalk.method({
  248. selector: "right:",
  249. fn: function (aNode) {
  250. var self=this;
  251. (self['@right']=aNode);
  252. return self;}
  253. }),
  254. smalltalk.AssignmentNode);
  255. smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'scope'], 'Compiler-AST');
  256. smalltalk.addMethod(
  257. "_accept_",
  258. smalltalk.method({
  259. selector: "accept:",
  260. fn: function (aVisitor) {
  261. var self=this;
  262. smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
  263. return self;}
  264. }),
  265. smalltalk.BlockNode);
  266. smalltalk.addMethod(
  267. "_canInlineNonLocalReturns",
  268. smalltalk.method({
  269. selector: "canInlineNonLocalReturns",
  270. fn: function (){
  271. var self=this;
  272. return smalltalk.send(smalltalk.send(self, "_canBeInlined", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_scope", []), "_outerScope", []), "_node", []), "_canInlineNonLocalReturns", []);})]);
  273. return self;}
  274. }),
  275. smalltalk.BlockNode);
  276. smalltalk.addMethod(
  277. "_isBlockNode",
  278. smalltalk.method({
  279. selector: "isBlockNode",
  280. fn: function () {
  281. var self=this;
  282. return true;
  283. return self;}
  284. }),
  285. smalltalk.BlockNode);
  286. smalltalk.addMethod(
  287. "_parameters",
  288. smalltalk.method({
  289. selector: "parameters",
  290. fn: function () {
  291. var self=this;
  292. return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
  293. return self;}
  294. }),
  295. smalltalk.BlockNode);
  296. smalltalk.addMethod(
  297. "_parameters_",
  298. smalltalk.method({
  299. selector: "parameters:",
  300. fn: function (aCollection) {
  301. var self=this;
  302. (self['@parameters']=aCollection);
  303. return self;}
  304. }),
  305. smalltalk.BlockNode);
  306. smalltalk.addMethod(
  307. "_scope",
  308. smalltalk.method({
  309. selector: "scope",
  310. fn: function () {
  311. var self=this;
  312. return self['@scope'];
  313. return self;}
  314. }),
  315. smalltalk.BlockNode);
  316. smalltalk.addMethod(
  317. "_scope_",
  318. smalltalk.method({
  319. selector: "scope:",
  320. fn: function (aLexicalScope) {
  321. var self=this;
  322. (self['@scope']=aLexicalScope);
  323. return self;}
  324. }),
  325. smalltalk.BlockNode);
  326. smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler-AST');
  327. smalltalk.addMethod(
  328. "_accept_",
  329. smalltalk.method({
  330. selector: "accept:",
  331. fn: function (aVisitor) {
  332. var self=this;
  333. smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
  334. return self;}
  335. }),
  336. smalltalk.CascadeNode);
  337. smalltalk.addMethod(
  338. "_alias",
  339. smalltalk.method({
  340. selector: "alias",
  341. fn: function () {
  342. var self=this;
  343. return smalltalk.send(smalltalk.send(smalltalk.send(self, "_nodes", []), "_last", []), "_alias", []);
  344. return self;}
  345. }),
  346. smalltalk.CascadeNode);
  347. smalltalk.addMethod(
  348. "_beUsed",
  349. smalltalk.method({
  350. selector: "beUsed",
  351. fn: function () {
  352. var self=this;
  353. smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_beUsed", []);})]);
  354. return self;}
  355. }),
  356. smalltalk.CascadeNode);
  357. smalltalk.addMethod(
  358. "_receiver",
  359. smalltalk.method({
  360. selector: "receiver",
  361. fn: function () {
  362. var self=this;
  363. return self['@receiver'];
  364. return self;}
  365. }),
  366. smalltalk.CascadeNode);
  367. smalltalk.addMethod(
  368. "_receiver_",
  369. smalltalk.method({
  370. selector: "receiver:",
  371. fn: function (aNode) {
  372. var self=this;
  373. (self['@receiver']=aNode);
  374. return self;}
  375. }),
  376. smalltalk.CascadeNode);
  377. smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler-AST');
  378. smalltalk.addMethod(
  379. "_accept_",
  380. smalltalk.method({
  381. selector: "accept:",
  382. fn: function (aVisitor) {
  383. var self=this;
  384. smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
  385. return self;}
  386. }),
  387. smalltalk.DynamicArrayNode);
  388. smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler-AST');
  389. smalltalk.addMethod(
  390. "_accept_",
  391. smalltalk.method({
  392. selector: "accept:",
  393. fn: function (aVisitor) {
  394. var self=this;
  395. smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
  396. return self;}
  397. }),
  398. smalltalk.DynamicDictionaryNode);
  399. smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler-AST');
  400. smalltalk.addMethod(
  401. "_accept_",
  402. smalltalk.method({
  403. selector: "accept:",
  404. fn: function (aVisitor) {
  405. var self=this;
  406. smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
  407. return self;}
  408. }),
  409. smalltalk.JSStatementNode);
  410. smalltalk.addMethod(
  411. "_source",
  412. smalltalk.method({
  413. selector: "source",
  414. fn: function () {
  415. var self=this;
  416. return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
  417. return self;}
  418. }),
  419. smalltalk.JSStatementNode);
  420. smalltalk.addMethod(
  421. "_source_",
  422. smalltalk.method({
  423. selector: "source:",
  424. fn: function (aString) {
  425. var self=this;
  426. (self['@source']=aString);
  427. return self;}
  428. }),
  429. smalltalk.JSStatementNode);
  430. smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST');
  431. smalltalk.addMethod(
  432. "_accept_",
  433. smalltalk.method({
  434. selector: "accept:",
  435. fn: function (aVisitor) {
  436. var self=this;
  437. smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
  438. return self;}
  439. }),
  440. smalltalk.MethodNode);
  441. smalltalk.addMethod(
  442. "_arguments",
  443. smalltalk.method({
  444. selector: "arguments",
  445. fn: function () {
  446. var self=this;
  447. return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
  448. return self;}
  449. }),
  450. smalltalk.MethodNode);
  451. smalltalk.addMethod(
  452. "_arguments_",
  453. smalltalk.method({
  454. selector: "arguments:",
  455. fn: function (aCollection) {
  456. var self=this;
  457. (self['@arguments']=aCollection);
  458. return self;}
  459. }),
  460. smalltalk.MethodNode);
  461. smalltalk.addMethod(
  462. "_canAliasChildren",
  463. smalltalk.method({
  464. selector: "canAliasChildren",
  465. fn: function () {
  466. var self=this;
  467. return false;
  468. return self;}
  469. }),
  470. smalltalk.MethodNode);
  471. smalltalk.addMethod(
  472. "_canInlineNonLocalReturns",
  473. smalltalk.method({
  474. selector: "canInlineNonLocalReturns",
  475. fn: function (){
  476. var self=this;
  477. return true;
  478. return self;}
  479. }),
  480. smalltalk.MethodNode);
  481. smalltalk.addMethod(
  482. "_classReferences",
  483. smalltalk.method({
  484. selector: "classReferences",
  485. fn: function () {
  486. var self=this;
  487. return self['@classReferences'];
  488. return self;}
  489. }),
  490. smalltalk.MethodNode);
  491. smalltalk.addMethod(
  492. "_classReferences_",
  493. smalltalk.method({
  494. selector: "classReferences:",
  495. fn: function (aCollection) {
  496. var self=this;
  497. (self['@classReferences']=aCollection);
  498. return self;}
  499. }),
  500. smalltalk.MethodNode);
  501. smalltalk.addMethod(
  502. "_hasLocalReturn",
  503. smalltalk.method({
  504. selector: "hasLocalReturn",
  505. fn: function () {
  506. var self=this;
  507. return (($receiver = smalltalk.send(self, "_scope", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return smalltalk.send(smalltalk.send(self, "_scope", []), "_hasLocalReturn", []);})();
  508. return self;}
  509. }),
  510. smalltalk.MethodNode);
  511. smalltalk.addMethod(
  512. "_hasNonLocalReturn",
  513. smalltalk.method({
  514. selector: "hasNonLocalReturn",
  515. fn: function () {
  516. var self=this;
  517. return (($receiver = smalltalk.send(self, "_scope", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return smalltalk.send(smalltalk.send(self, "_scope", []), "_hasNonLocalReturn", []);})();
  518. return self;}
  519. }),
  520. smalltalk.MethodNode);
  521. smalltalk.addMethod(
  522. "_messageSends",
  523. smalltalk.method({
  524. selector: "messageSends",
  525. fn: function () {
  526. var self=this;
  527. return self['@messageSends'];
  528. return self;}
  529. }),
  530. smalltalk.MethodNode);
  531. smalltalk.addMethod(
  532. "_messageSends_",
  533. smalltalk.method({
  534. selector: "messageSends:",
  535. fn: function (aCollection) {
  536. var self=this;
  537. (self['@messageSends']=aCollection);
  538. return self;}
  539. }),
  540. smalltalk.MethodNode);
  541. smalltalk.addMethod(
  542. "_scope",
  543. smalltalk.method({
  544. selector: "scope",
  545. fn: function () {
  546. var self=this;
  547. return self['@scope'];
  548. return self;}
  549. }),
  550. smalltalk.MethodNode);
  551. smalltalk.addMethod(
  552. "_scope_",
  553. smalltalk.method({
  554. selector: "scope:",
  555. fn: function (aMethodScope) {
  556. var self=this;
  557. (self['@scope']=aMethodScope);
  558. return self;}
  559. }),
  560. smalltalk.MethodNode);
  561. smalltalk.addMethod(
  562. "_selector",
  563. smalltalk.method({
  564. selector: "selector",
  565. fn: function () {
  566. var self=this;
  567. return self['@selector'];
  568. return self;}
  569. }),
  570. smalltalk.MethodNode);
  571. smalltalk.addMethod(
  572. "_selector_",
  573. smalltalk.method({
  574. selector: "selector:",
  575. fn: function (aString) {
  576. var self=this;
  577. (self['@selector']=aString);
  578. return self;}
  579. }),
  580. smalltalk.MethodNode);
  581. smalltalk.addMethod(
  582. "_source",
  583. smalltalk.method({
  584. selector: "source",
  585. fn: function () {
  586. var self=this;
  587. return self['@source'];
  588. return self;}
  589. }),
  590. smalltalk.MethodNode);
  591. smalltalk.addMethod(
  592. "_source_",
  593. smalltalk.method({
  594. selector: "source:",
  595. fn: function (aString) {
  596. var self=this;
  597. (self['@source']=aString);
  598. return self;}
  599. }),
  600. smalltalk.MethodNode);
  601. smalltalk.addClass('ReturnNode', smalltalk.Node, ['nonLocalReturn', 'canBeInlined'], 'Compiler-AST');
  602. smalltalk.addMethod(
  603. "_accept_",
  604. smalltalk.method({
  605. selector: "accept:",
  606. fn: function (aVisitor) {
  607. var self=this;
  608. smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
  609. return self;}
  610. }),
  611. smalltalk.ReturnNode);
  612. smalltalk.addMethod(
  613. "_nonLocalReturn",
  614. smalltalk.method({
  615. selector: "nonLocalReturn",
  616. fn: function () {
  617. var self=this;
  618. return (($receiver = self['@nonLocalReturn']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
  619. return self;}
  620. }),
  621. smalltalk.ReturnNode);
  622. smalltalk.addMethod(
  623. "_nonLocalReturn_",
  624. smalltalk.method({
  625. selector: "nonLocalReturn:",
  626. fn: function (aBoolean) {
  627. var self=this;
  628. (self['@nonLocalReturn']=aBoolean);
  629. return self;}
  630. }),
  631. smalltalk.ReturnNode);
  632. smalltalk.addMethod(
  633. "_shouldBeAliased",
  634. smalltalk.method({
  635. selector: "shouldBeAliased",
  636. fn: function () {
  637. var self=this;
  638. return false;
  639. return self;}
  640. }),
  641. smalltalk.ReturnNode);
  642. smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver', 'superSend'], 'Compiler-AST');
  643. smalltalk.addMethod(
  644. "_accept_",
  645. smalltalk.method({
  646. selector: "accept:",
  647. fn: function (aVisitor) {
  648. var self=this;
  649. smalltalk.send(aVisitor, "_visitSendNode_", [self]);
  650. return self;}
  651. }),
  652. smalltalk.SendNode);
  653. smalltalk.addMethod(
  654. "_arguments",
  655. smalltalk.method({
  656. selector: "arguments",
  657. fn: function () {
  658. var self=this;
  659. return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver;
  660. return self;}
  661. }),
  662. smalltalk.SendNode);
  663. smalltalk.addMethod(
  664. "_arguments_",
  665. smalltalk.method({
  666. selector: "arguments:",
  667. fn: function (aCollection) {
  668. var self=this;
  669. (self['@arguments']=aCollection);
  670. return self;}
  671. }),
  672. smalltalk.SendNode);
  673. smalltalk.addMethod(
  674. "_cascadeNodeWithMessages_",
  675. smalltalk.method({
  676. selector: "cascadeNodeWithMessages:",
  677. fn: function (aCollection) {
  678. var self=this;
  679. var first=nil;
  680. (first=(function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", [])));
  681. return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", []));
  682. return self;}
  683. }),
  684. smalltalk.SendNode);
  685. smalltalk.addMethod(
  686. "_isSendNode",
  687. smalltalk.method({
  688. selector: "isSendNode",
  689. fn: function () {
  690. var self=this;
  691. return true;
  692. return self;}
  693. }),
  694. smalltalk.SendNode);
  695. smalltalk.addMethod(
  696. "_nodes",
  697. smalltalk.method({
  698. selector: "nodes",
  699. fn: function () {
  700. var self=this;
  701. return (function($rec){smalltalk.send($rec, "_add_", [smalltalk.send(self, "_receiver", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Array || Array), "_withAll_", [smalltalk.send(self, "_arguments", [])]));
  702. return self;}
  703. }),
  704. smalltalk.SendNode);
  705. smalltalk.addMethod(
  706. "_receiver",
  707. smalltalk.method({
  708. selector: "receiver",
  709. fn: function () {
  710. var self=this;
  711. return self['@receiver'];
  712. return self;}
  713. }),
  714. smalltalk.SendNode);
  715. smalltalk.addMethod(
  716. "_receiver_",
  717. smalltalk.method({
  718. selector: "receiver:",
  719. fn: function (aNode) {
  720. var self=this;
  721. (self['@receiver']=aNode);
  722. return self;}
  723. }),
  724. smalltalk.SendNode);
  725. smalltalk.addMethod(
  726. "_selector",
  727. smalltalk.method({
  728. selector: "selector",
  729. fn: function () {
  730. var self=this;
  731. return self['@selector'];
  732. return self;}
  733. }),
  734. smalltalk.SendNode);
  735. smalltalk.addMethod(
  736. "_selector_",
  737. smalltalk.method({
  738. selector: "selector:",
  739. fn: function (aString) {
  740. var self=this;
  741. (self['@selector']=aString);
  742. return self;}
  743. }),
  744. smalltalk.SendNode);
  745. smalltalk.addMethod(
  746. "_superSend",
  747. smalltalk.method({
  748. selector: "superSend",
  749. fn: function () {
  750. var self=this;
  751. return (($receiver = self['@superSend']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
  752. return self;}
  753. }),
  754. smalltalk.SendNode);
  755. smalltalk.addMethod(
  756. "_superSend_",
  757. smalltalk.method({
  758. selector: "superSend:",
  759. fn: function (aBoolean) {
  760. var self=this;
  761. (self['@superSend']=aBoolean);
  762. return self;}
  763. }),
  764. smalltalk.SendNode);
  765. smalltalk.addMethod(
  766. "_valueForReceiver_",
  767. smalltalk.method({
  768. selector: "valueForReceiver:",
  769. fn: function (anObject) {
  770. var self=this;
  771. return (function($rec){smalltalk.send($rec, "_receiver_", [(($receiver = smalltalk.send(self, "_receiver", [])) == nil || $receiver == undefined) ? (function(){return anObject;})() : (function(){return smalltalk.send(smalltalk.send(self, "_receiver", []), "_valueForReceiver_", [anObject]);})()]);smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []));
  772. return self;}
  773. }),
  774. smalltalk.SendNode);
  775. smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps', 'scope'], 'Compiler-AST');
  776. smalltalk.addMethod(
  777. "_accept_",
  778. smalltalk.method({
  779. selector: "accept:",
  780. fn: function (aVisitor) {
  781. var self=this;
  782. smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
  783. return self;}
  784. }),
  785. smalltalk.SequenceNode);
  786. smalltalk.addMethod(
  787. "_asBlockSequenceNode",
  788. smalltalk.method({
  789. selector: "asBlockSequenceNode",
  790. fn: function () {
  791. var self=this;
  792. return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", []));
  793. return self;}
  794. }),
  795. smalltalk.SequenceNode);
  796. smalltalk.addMethod(
  797. "_canAliasChildren",
  798. smalltalk.method({
  799. selector: "canAliasChildren",
  800. fn: function () {
  801. var self=this;
  802. return false;
  803. return self;}
  804. }),
  805. smalltalk.SequenceNode);
  806. smalltalk.addMethod(
  807. "_scope",
  808. smalltalk.method({
  809. selector: "scope",
  810. fn: function () {
  811. var self=this;
  812. return self['@scope'];
  813. return self;}
  814. }),
  815. smalltalk.SequenceNode);
  816. smalltalk.addMethod(
  817. "_scope_",
  818. smalltalk.method({
  819. selector: "scope:",
  820. fn: function (aLexicalScope) {
  821. var self=this;
  822. (self['@scope']=aLexicalScope);
  823. return self;}
  824. }),
  825. smalltalk.SequenceNode);
  826. smalltalk.addMethod(
  827. "_temps",
  828. smalltalk.method({
  829. selector: "temps",
  830. fn: function () {
  831. var self=this;
  832. return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
  833. return self;}
  834. }),
  835. smalltalk.SequenceNode);
  836. smalltalk.addMethod(
  837. "_temps_",
  838. smalltalk.method({
  839. selector: "temps:",
  840. fn: function (aCollection) {
  841. var self=this;
  842. (self['@temps']=aCollection);
  843. return self;}
  844. }),
  845. smalltalk.SequenceNode);
  846. smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler-AST');
  847. smalltalk.addMethod(
  848. "_accept_",
  849. smalltalk.method({
  850. selector: "accept:",
  851. fn: function (aVisitor) {
  852. var self=this;
  853. smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
  854. return self;}
  855. }),
  856. smalltalk.BlockSequenceNode);
  857. smalltalk.addMethod(
  858. "_isBlockSequenceNode",
  859. smalltalk.method({
  860. selector: "isBlockSequenceNode",
  861. fn: function () {
  862. var self=this;
  863. return true;
  864. return self;}
  865. }),
  866. smalltalk.BlockSequenceNode);
  867. smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler-AST');
  868. smalltalk.addMethod(
  869. "_accept_",
  870. smalltalk.method({
  871. selector: "accept:",
  872. fn: function (aVisitor) {
  873. var self=this;
  874. smalltalk.send(aVisitor, "_visitValueNode_", [self]);
  875. return self;}
  876. }),
  877. smalltalk.ValueNode);
  878. smalltalk.addMethod(
  879. "_isValueNode",
  880. smalltalk.method({
  881. selector: "isValueNode",
  882. fn: function () {
  883. var self=this;
  884. return true;
  885. return self;}
  886. }),
  887. smalltalk.ValueNode);
  888. smalltalk.addMethod(
  889. "_shouldBeAliased",
  890. smalltalk.method({
  891. selector: "shouldBeAliased",
  892. fn: function () {
  893. var self=this;
  894. return false;
  895. return self;}
  896. }),
  897. smalltalk.ValueNode);
  898. smalltalk.addMethod(
  899. "_value",
  900. smalltalk.method({
  901. selector: "value",
  902. fn: function () {
  903. var self=this;
  904. return self['@value'];
  905. return self;}
  906. }),
  907. smalltalk.ValueNode);
  908. smalltalk.addMethod(
  909. "_value_",
  910. smalltalk.method({
  911. selector: "value:",
  912. fn: function (anObject) {
  913. var self=this;
  914. (self['@value']=anObject);
  915. return self;}
  916. }),
  917. smalltalk.ValueNode);
  918. smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned', 'binding'], 'Compiler-AST');
  919. smalltalk.addMethod(
  920. "_accept_",
  921. smalltalk.method({
  922. selector: "accept:",
  923. fn: function (aVisitor) {
  924. var self=this;
  925. smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
  926. return self;}
  927. }),
  928. smalltalk.VariableNode);
  929. smalltalk.addMethod(
  930. "_alias",
  931. smalltalk.method({
  932. selector: "alias",
  933. fn: function () {
  934. var self=this;
  935. return smalltalk.send(smalltalk.send(self, "_binding", []), "_alias", []);
  936. return self;}
  937. }),
  938. smalltalk.VariableNode);
  939. smalltalk.addMethod(
  940. "_assigned",
  941. smalltalk.method({
  942. selector: "assigned",
  943. fn: function () {
  944. var self=this;
  945. return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
  946. return self;}
  947. }),
  948. smalltalk.VariableNode);
  949. smalltalk.addMethod(
  950. "_assigned_",
  951. smalltalk.method({
  952. selector: "assigned:",
  953. fn: function (aBoolean) {
  954. var self=this;
  955. (self['@assigned']=aBoolean);
  956. return self;}
  957. }),
  958. smalltalk.VariableNode);
  959. smalltalk.addMethod(
  960. "_beAssigned",
  961. smalltalk.method({
  962. selector: "beAssigned",
  963. fn: function () {
  964. var self=this;
  965. smalltalk.send(smalltalk.send(self, "_binding", []), "_validateAssignment", []);
  966. (self['@assigned']=true);
  967. return self;}
  968. }),
  969. smalltalk.VariableNode);
  970. smalltalk.addMethod(
  971. "_binding",
  972. smalltalk.method({
  973. selector: "binding",
  974. fn: function () {
  975. var self=this;
  976. return self['@binding'];
  977. return self;}
  978. }),
  979. smalltalk.VariableNode);
  980. smalltalk.addMethod(
  981. "_binding_",
  982. smalltalk.method({
  983. selector: "binding:",
  984. fn: function (aScopeVar) {
  985. var self=this;
  986. (self['@binding']=aScopeVar);
  987. return self;}
  988. }),
  989. smalltalk.VariableNode);
  990. smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler-AST');
  991. smalltalk.addMethod(
  992. "_accept_",
  993. smalltalk.method({
  994. selector: "accept:",
  995. fn: function (aVisitor) {
  996. var self=this;
  997. smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]);
  998. return self;}
  999. }),
  1000. smalltalk.ClassReferenceNode);