1
0

Compiler-AST.deploy.js 22 KB

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