Compiler-AST.js 32 KB

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