Compiler-AST.deploy.js 21 KB

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