Compiler-AST.deploy.js 20 KB

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