Parser.deploy.js 78 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281
  1. smalltalk.addClass('PPParser', smalltalk.Object, ['memo'], 'Parser');
  2. smalltalk.addMethod(
  3. '_initialize',
  4. smalltalk.method({
  5. selector: 'initialize',
  6. fn: function (){
  7. var self=this;
  8. self['@memo']=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
  9. return self;}
  10. }),
  11. smalltalk.PPParser);
  12. smalltalk.addMethod(
  13. '_memo',
  14. smalltalk.method({
  15. selector: 'memo',
  16. fn: function (){
  17. var self=this;
  18. return self['@memo'];
  19. return self;}
  20. }),
  21. smalltalk.PPParser);
  22. smalltalk.addMethod(
  23. '_flatten',
  24. smalltalk.method({
  25. selector: 'flatten',
  26. fn: function (){
  27. var self=this;
  28. return smalltalk.send((smalltalk.PPFlattenParser || PPFlattenParser), "_on_", [self]);
  29. return self;}
  30. }),
  31. smalltalk.PPParser);
  32. smalltalk.addMethod(
  33. '_withSource',
  34. smalltalk.method({
  35. selector: 'withSource',
  36. fn: function (){
  37. var self=this;
  38. return smalltalk.send((smalltalk.PPSourceParser || PPSourceParser), "_on_", [self]);
  39. return self;}
  40. }),
  41. smalltalk.PPParser);
  42. smalltalk.addMethod(
  43. '__eq_eq_gt',
  44. smalltalk.method({
  45. selector: '==>',
  46. fn: function (aBlock){
  47. var self=this;
  48. return smalltalk.send((smalltalk.PPActionParser || PPActionParser), "_on_block_", [self, aBlock]);
  49. return self;}
  50. }),
  51. smalltalk.PPParser);
  52. smalltalk.addMethod(
  53. '__comma',
  54. smalltalk.method({
  55. selector: ',',
  56. fn: function (aParser){
  57. var self=this;
  58. return smalltalk.send((smalltalk.PPSequenceParser || PPSequenceParser), "_with_with_", [self, aParser]);
  59. return self;}
  60. }),
  61. smalltalk.PPParser);
  62. smalltalk.addMethod(
  63. '__slash',
  64. smalltalk.method({
  65. selector: '/',
  66. fn: function (aParser){
  67. var self=this;
  68. return smalltalk.send((smalltalk.PPChoiceParser || PPChoiceParser), "_with_with_", [self, aParser]);
  69. return self;}
  70. }),
  71. smalltalk.PPParser);
  72. smalltalk.addMethod(
  73. '_plus',
  74. smalltalk.method({
  75. selector: 'plus',
  76. fn: function (){
  77. var self=this;
  78. return smalltalk.send((smalltalk.PPRepeatingParser || PPRepeatingParser), "_on_min_", [self, (1)]);
  79. return self;}
  80. }),
  81. smalltalk.PPParser);
  82. smalltalk.addMethod(
  83. '_star',
  84. smalltalk.method({
  85. selector: 'star',
  86. fn: function (){
  87. var self=this;
  88. return smalltalk.send((smalltalk.PPRepeatingParser || PPRepeatingParser), "_on_min_", [self, (0)]);
  89. return self;}
  90. }),
  91. smalltalk.PPParser);
  92. smalltalk.addMethod(
  93. '_not',
  94. smalltalk.method({
  95. selector: 'not',
  96. fn: function (){
  97. var self=this;
  98. return smalltalk.send((smalltalk.PPNotParser || PPNotParser), "_on_", [self]);
  99. return self;}
  100. }),
  101. smalltalk.PPParser);
  102. smalltalk.addMethod(
  103. '_optional',
  104. smalltalk.method({
  105. selector: 'optional',
  106. fn: function (){
  107. var self=this;
  108. return (($receiver = self).klass === smalltalk.Number) ? $receiver /smalltalk.send((smalltalk.PPEpsilonParser || PPEpsilonParser), "_new", []) : smalltalk.send($receiver, "__slash", [smalltalk.send((smalltalk.PPEpsilonParser || PPEpsilonParser), "_new", [])]);
  109. return self;}
  110. }),
  111. smalltalk.PPParser);
  112. smalltalk.addMethod(
  113. '_memoizedParse_',
  114. smalltalk.method({
  115. selector: 'memoizedParse:',
  116. fn: function (aStream){
  117. var self=this;
  118. var start=nil;
  119. var end=nil;
  120. var node=nil;
  121. start=smalltalk.send(aStream, "_position", []);
  122. return smalltalk.send(smalltalk.send(self, "_memo", []), "_at_ifPresent_ifAbsent_", [start, (function(value){smalltalk.send(aStream, "_position_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_memo", []), "_at_", [start]), "_second", [])]);return smalltalk.send(value, "_first", []);}), (function(){node=smalltalk.send(self, "_parse_", [aStream]);end=smalltalk.send(aStream, "_position", []);smalltalk.send(smalltalk.send(self, "_memo", []), "_at_put_", [start, smalltalk.send((smalltalk.Array || Array), "_with_with_", [node, end])]);return node;})]);
  123. return self;}
  124. }),
  125. smalltalk.PPParser);
  126. smalltalk.addMethod(
  127. '_parse_',
  128. smalltalk.method({
  129. selector: 'parse:',
  130. fn: function (aStream){
  131. var self=this;
  132. smalltalk.send(self, "_subclassResponsibility", []);
  133. return self;}
  134. }),
  135. smalltalk.PPParser);
  136. smalltalk.addMethod(
  137. '_parseAll_',
  138. smalltalk.method({
  139. selector: 'parseAll:',
  140. fn: function (aStream){
  141. var self=this;
  142. var result=nil;
  143. result=smalltalk.send(smalltalk.send((smalltalk.PPSequenceParser || PPSequenceParser), "_with_with_", [self, smalltalk.send((smalltalk.PPEOFParser || PPEOFParser), "_new", [])]), "_memoizedParse_", [aStream]);
  144. return (($receiver = smalltalk.send(result, "_isParseFailure", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_error_", [smalltalk.send(result, "_messageFor_", [smalltalk.send(aStream, "_contents", [])])]);})() : (function(){return smalltalk.send(result, "_first", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_error_", [smalltalk.send(result, "_messageFor_", [smalltalk.send(aStream, "_contents", [])])]);}), (function(){return smalltalk.send(result, "_first", []);})]);
  145. return self;}
  146. }),
  147. smalltalk.PPParser);
  148. smalltalk.addClass('PPEOFParser', smalltalk.PPParser, [], 'Parser');
  149. smalltalk.addMethod(
  150. '_parse_',
  151. smalltalk.method({
  152. selector: 'parse:',
  153. fn: function (aStream){
  154. var self=this;
  155. return (($receiver = smalltalk.send(aStream, "_atEnd", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aStream, "_contents", []), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", [unescape("---------------")]), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", ["EOF expected"]), smalltalk.send(aStream, "_position", [])]);})() : (function(){return nil;})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aStream, "_contents", []), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", [unescape("---------------")]), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", ["EOF expected"]), smalltalk.send(aStream, "_position", [])]);}), (function(){return nil;})]);
  156. return self;}
  157. }),
  158. smalltalk.PPEOFParser);
  159. smalltalk.addClass('PPAnyParser', smalltalk.PPParser, [], 'Parser');
  160. smalltalk.addMethod(
  161. '_parse_',
  162. smalltalk.method({
  163. selector: 'parse:',
  164. fn: function (aStream){
  165. var self=this;
  166. return (($receiver = smalltalk.send(aStream, "_atEnd", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", ["did not expect EOF", smalltalk.send(aStream, "_position", [])]);})() : (function(){return smalltalk.send(aStream, "_next", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", ["did not expect EOF", smalltalk.send(aStream, "_position", [])]);}), (function(){return smalltalk.send(aStream, "_next", []);})]);
  167. return self;}
  168. }),
  169. smalltalk.PPAnyParser);
  170. smalltalk.addClass('PPEpsilonParser', smalltalk.PPParser, [], 'Parser');
  171. smalltalk.addMethod(
  172. '_parse_',
  173. smalltalk.method({
  174. selector: 'parse:',
  175. fn: function (aStream){
  176. var self=this;
  177. return nil;
  178. return self;}
  179. }),
  180. smalltalk.PPEpsilonParser);
  181. smalltalk.addClass('PPStringParser', smalltalk.PPParser, ['string'], 'Parser');
  182. smalltalk.addMethod(
  183. '_string',
  184. smalltalk.method({
  185. selector: 'string',
  186. fn: function (){
  187. var self=this;
  188. return self['@string'];
  189. return self;}
  190. }),
  191. smalltalk.PPStringParser);
  192. smalltalk.addMethod(
  193. '_string_',
  194. smalltalk.method({
  195. selector: 'string:',
  196. fn: function (aString){
  197. var self=this;
  198. self['@string']=aString;
  199. return self;}
  200. }),
  201. smalltalk.PPStringParser);
  202. smalltalk.addMethod(
  203. '_parse_',
  204. smalltalk.method({
  205. selector: 'parse:',
  206. fn: function (aStream){
  207. var self=this;
  208. var position=nil;
  209. var result=nil;
  210. position=smalltalk.send(aStream, "_position", []);
  211. result=smalltalk.send(aStream, "_next_", [smalltalk.send(smalltalk.send(self, "_string", []), "_size", [])]);
  212. return (($receiver = smalltalk.send(result, "__eq", [smalltalk.send(self, "_string", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return result;})() : (function(){smalltalk.send(aStream, "_position_", [position]);return (function($rec){smalltalk.send($rec, "_reason_", [smalltalk.send(smalltalk.send(smalltalk.send("Expected ", "__comma", [smalltalk.send(self, "_string", [])]), "__comma", [" but got "]), "__comma", [smalltalk.send(smalltalk.send(result, "_at_", [position]), "_printString", [])])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return result;}), (function(){smalltalk.send(aStream, "_position_", [position]);return (function($rec){smalltalk.send($rec, "_reason_", [smalltalk.send(smalltalk.send(smalltalk.send("Expected ", "__comma", [smalltalk.send(self, "_string", [])]), "__comma", [" but got "]), "__comma", [smalltalk.send(smalltalk.send(result, "_at_", [position]), "_printString", [])])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []));})]);
  213. return self;}
  214. }),
  215. smalltalk.PPStringParser);
  216. smalltalk.addClass('PPCharacterParser', smalltalk.PPParser, ['regexp'], 'Parser');
  217. smalltalk.addMethod(
  218. '_string_',
  219. smalltalk.method({
  220. selector: 'string:',
  221. fn: function (aString){
  222. var self=this;
  223. self['@regexp']=smalltalk.send((smalltalk.RegularExpression || RegularExpression), "_fromString_", [smalltalk.send(smalltalk.send(unescape("%5B"), "__comma", [aString]), "__comma", [unescape("%5D")])]);
  224. return self;}
  225. }),
  226. smalltalk.PPCharacterParser);
  227. smalltalk.addMethod(
  228. '_parse_',
  229. smalltalk.method({
  230. selector: 'parse:',
  231. fn: function (aStream){
  232. var self=this;
  233. return (($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aStream, "_peek", []), "_notNil", []), "_and_", [(function(){return smalltalk.send(self, "_match_", [smalltalk.send(aStream, "_peek", [])]);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aStream, "_next", []);})() : (function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", ["Could not match", smalltalk.send(aStream, "_position", [])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aStream, "_next", []);}), (function(){return smalltalk.send(smalltalk.send((smalltalk.PPFailure || PPFailure), "_new", []), "_reason_at_", ["Could not match", smalltalk.send(aStream, "_position", [])]);})]);
  234. return self;}
  235. }),
  236. smalltalk.PPCharacterParser);
  237. smalltalk.addMethod(
  238. '_match_',
  239. smalltalk.method({
  240. selector: 'match:',
  241. fn: function (aString){
  242. var self=this;
  243. return smalltalk.send(aString, "_match_", [self['@regexp']]);
  244. return self;}
  245. }),
  246. smalltalk.PPCharacterParser);
  247. smalltalk.addClass('PPListParser', smalltalk.PPParser, ['parsers'], 'Parser');
  248. smalltalk.addMethod(
  249. '_parsers',
  250. smalltalk.method({
  251. selector: 'parsers',
  252. fn: function (){
  253. var self=this;
  254. return (($receiver = self['@parsers']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
  255. return self;}
  256. }),
  257. smalltalk.PPListParser);
  258. smalltalk.addMethod(
  259. '_parsers_',
  260. smalltalk.method({
  261. selector: 'parsers:',
  262. fn: function (aCollection){
  263. var self=this;
  264. self['@parsers']=aCollection;
  265. return self;}
  266. }),
  267. smalltalk.PPListParser);
  268. smalltalk.addMethod(
  269. '_copyWith_',
  270. smalltalk.method({
  271. selector: 'copyWith:',
  272. fn: function (aParser){
  273. var self=this;
  274. return smalltalk.send(smalltalk.send(self, "_class", []), "_withAll_", [smalltalk.send(smalltalk.send(self, "_parsers", []), "_copyWith_", [aParser])]);
  275. return self;}
  276. }),
  277. smalltalk.PPListParser);
  278. smalltalk.addMethod(
  279. '_withAll_',
  280. smalltalk.method({
  281. selector: 'withAll:',
  282. fn: function (aCollection){
  283. var self=this;
  284. return (function($rec){smalltalk.send($rec, "_parsers_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  285. return self;}
  286. }),
  287. smalltalk.PPListParser.klass);
  288. smalltalk.addMethod(
  289. '_with_with_',
  290. smalltalk.method({
  291. selector: 'with:with:',
  292. fn: function (aParser, anotherParser){
  293. var self=this;
  294. return smalltalk.send(self, "_withAll_", [smalltalk.send((smalltalk.Array || Array), "_with_with_", [aParser, anotherParser])]);
  295. return self;}
  296. }),
  297. smalltalk.PPListParser.klass);
  298. smalltalk.addClass('PPSequenceParser', smalltalk.PPListParser, [], 'Parser');
  299. smalltalk.addMethod(
  300. '__comma',
  301. smalltalk.method({
  302. selector: ',',
  303. fn: function (aRule){
  304. var self=this;
  305. return smalltalk.send(self, "_copyWith_", [aRule]);
  306. return self;}
  307. }),
  308. smalltalk.PPSequenceParser);
  309. smalltalk.addMethod(
  310. '_parse_',
  311. smalltalk.method({
  312. selector: 'parse:',
  313. fn: function (aStream){
  314. var self=this;
  315. var start=nil;
  316. var elements=nil;
  317. var element=nil;
  318. start=smalltalk.send(aStream, "_position", []);
  319. elements=[];
  320. smalltalk.send(smalltalk.send(self, "_parsers", []), "_detect_ifNone_", [(function(each){element=smalltalk.send(each, "_memoizedParse_", [aStream]);smalltalk.send(elements, "_add_", [element]);return smalltalk.send(element, "_isParseFailure", []);}), (function(){return nil;})]);
  321. return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return elements;})() : (function(){smalltalk.send(aStream, "_position_", [start]);return element;})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return elements;}), (function(){smalltalk.send(aStream, "_position_", [start]);return element;})]);
  322. return self;}
  323. }),
  324. smalltalk.PPSequenceParser);
  325. smalltalk.addClass('PPChoiceParser', smalltalk.PPListParser, [], 'Parser');
  326. smalltalk.addMethod(
  327. '__slash',
  328. smalltalk.method({
  329. selector: '/',
  330. fn: function (aRule){
  331. var self=this;
  332. return smalltalk.send(self, "_copyWith_", [aRule]);
  333. return self;}
  334. }),
  335. smalltalk.PPChoiceParser);
  336. smalltalk.addMethod(
  337. '_parse_',
  338. smalltalk.method({
  339. selector: 'parse:',
  340. fn: function (aStream){
  341. var self=this;
  342. var result=nil;
  343. smalltalk.send(smalltalk.send(self, "_parsers", []), "_detect_ifNone_", [(function(each){result=smalltalk.send(each, "_memoizedParse_", [aStream]);return smalltalk.send(smalltalk.send(result, "_isParseFailure", []), "_not", []);}), (function(){return nil;})]);
  344. return result;
  345. return self;}
  346. }),
  347. smalltalk.PPChoiceParser);
  348. smalltalk.addClass('PPDelegateParser', smalltalk.PPParser, ['parser'], 'Parser');
  349. smalltalk.addMethod(
  350. '_parser',
  351. smalltalk.method({
  352. selector: 'parser',
  353. fn: function (){
  354. var self=this;
  355. return self['@parser'];
  356. return self;}
  357. }),
  358. smalltalk.PPDelegateParser);
  359. smalltalk.addMethod(
  360. '_parser_',
  361. smalltalk.method({
  362. selector: 'parser:',
  363. fn: function (aParser){
  364. var self=this;
  365. self['@parser']=aParser;
  366. return self;}
  367. }),
  368. smalltalk.PPDelegateParser);
  369. smalltalk.addMethod(
  370. '_parse_',
  371. smalltalk.method({
  372. selector: 'parse:',
  373. fn: function (aStream){
  374. var self=this;
  375. return smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);
  376. return self;}
  377. }),
  378. smalltalk.PPDelegateParser);
  379. smalltalk.addMethod(
  380. '_on_',
  381. smalltalk.method({
  382. selector: 'on:',
  383. fn: function (aParser){
  384. var self=this;
  385. return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  386. return self;}
  387. }),
  388. smalltalk.PPDelegateParser.klass);
  389. smalltalk.addClass('PPAndParser', smalltalk.PPDelegateParser, [], 'Parser');
  390. smalltalk.addMethod(
  391. '_parse_',
  392. smalltalk.method({
  393. selector: 'parse:',
  394. fn: function (aStream){
  395. var self=this;
  396. return smalltalk.send(self, "_basicParse_", [aStream]);
  397. return self;}
  398. }),
  399. smalltalk.PPAndParser);
  400. smalltalk.addMethod(
  401. '_basicParse_',
  402. smalltalk.method({
  403. selector: 'basicParse:',
  404. fn: function (aStream){
  405. var self=this;
  406. var element=nil;
  407. var position=nil;
  408. position=smalltalk.send(aStream, "_position", []);
  409. element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);
  410. smalltalk.send(aStream, "_position_", [position]);
  411. return element;
  412. return self;}
  413. }),
  414. smalltalk.PPAndParser);
  415. smalltalk.addClass('PPNotParser', smalltalk.PPAndParser, [], 'Parser');
  416. smalltalk.addMethod(
  417. '_parse_',
  418. smalltalk.method({
  419. selector: 'parse:',
  420. fn: function (aStream){
  421. var self=this;
  422. var element=nil;
  423. element=smalltalk.send(self, "_basicParse_", [aStream]);
  424. return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return nil;})() : (function(){return smalltalk.send((smalltalk.PPFailure || PPFailure), "_reason_at_", [element, smalltalk.send(aStream, "_position", [])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return nil;}), (function(){return smalltalk.send((smalltalk.PPFailure || PPFailure), "_reason_at_", [element, smalltalk.send(aStream, "_position", [])]);})]);
  425. return self;}
  426. }),
  427. smalltalk.PPNotParser);
  428. smalltalk.addClass('PPActionParser', smalltalk.PPDelegateParser, ['block'], 'Parser');
  429. smalltalk.addMethod(
  430. '_block',
  431. smalltalk.method({
  432. selector: 'block',
  433. fn: function (){
  434. var self=this;
  435. return self['@block'];
  436. return self;}
  437. }),
  438. smalltalk.PPActionParser);
  439. smalltalk.addMethod(
  440. '_block_',
  441. smalltalk.method({
  442. selector: 'block:',
  443. fn: function (aBlock){
  444. var self=this;
  445. self['@block']=aBlock;
  446. return self;}
  447. }),
  448. smalltalk.PPActionParser);
  449. smalltalk.addMethod(
  450. '_parse_',
  451. smalltalk.method({
  452. selector: 'parse:',
  453. fn: function (aStream){
  454. var self=this;
  455. var element=nil;
  456. element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);
  457. return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [element]);})() : (function(){return element;})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [element]);}), (function(){return element;})]);
  458. return self;}
  459. }),
  460. smalltalk.PPActionParser);
  461. smalltalk.addMethod(
  462. '_on_block_',
  463. smalltalk.method({
  464. selector: 'on:block:',
  465. fn: function (aParser, aBlock){
  466. var self=this;
  467. return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);smalltalk.send($rec, "_block_", [aBlock]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  468. return self;}
  469. }),
  470. smalltalk.PPActionParser.klass);
  471. smalltalk.addClass('PPFlattenParser', smalltalk.PPDelegateParser, [], 'Parser');
  472. smalltalk.addMethod(
  473. '_parse_',
  474. smalltalk.method({
  475. selector: 'parse:',
  476. fn: function (aStream){
  477. var self=this;
  478. var start=nil;
  479. var element=nil;
  480. var stop=nil;
  481. start=smalltalk.send(aStream, "_position", []);
  482. element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);
  483. return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return element;})() : (function(){return smalltalk.send(smalltalk.send(aStream, "_collection", []), "_copyFrom_to_", [(($receiver = start).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]), smalltalk.send(aStream, "_position", [])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return element;}), (function(){return smalltalk.send(smalltalk.send(aStream, "_collection", []), "_copyFrom_to_", [(($receiver = start).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]), smalltalk.send(aStream, "_position", [])]);})]);
  484. return self;}
  485. }),
  486. smalltalk.PPFlattenParser);
  487. smalltalk.addClass('PPSourceParser', smalltalk.PPDelegateParser, [], 'Parser');
  488. smalltalk.addMethod(
  489. '_parse_',
  490. smalltalk.method({
  491. selector: 'parse:',
  492. fn: function (aStream){
  493. var self=this;
  494. var start=nil;
  495. var element=nil;
  496. var stop=nil;
  497. var result=nil;
  498. start=smalltalk.send(aStream, "_position", []);
  499. element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);
  500. return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return element;})() : (function(){result=smalltalk.send(smalltalk.send(aStream, "_collection", []), "_copyFrom_to_", [(($receiver = start).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]), smalltalk.send(aStream, "_position", [])]);return smalltalk.send((smalltalk.Array || Array), "_with_with_", [element, result]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return element;}), (function(){result=smalltalk.send(smalltalk.send(aStream, "_collection", []), "_copyFrom_to_", [(($receiver = start).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]), smalltalk.send(aStream, "_position", [])]);return smalltalk.send((smalltalk.Array || Array), "_with_with_", [element, result]);})]);
  501. return self;}
  502. }),
  503. smalltalk.PPSourceParser);
  504. smalltalk.addClass('PPRepeatingParser', smalltalk.PPDelegateParser, ['min'], 'Parser');
  505. smalltalk.addMethod(
  506. '_min',
  507. smalltalk.method({
  508. selector: 'min',
  509. fn: function (){
  510. var self=this;
  511. return self['@min'];
  512. return self;}
  513. }),
  514. smalltalk.PPRepeatingParser);
  515. smalltalk.addMethod(
  516. '_min_',
  517. smalltalk.method({
  518. selector: 'min:',
  519. fn: function (aNumber){
  520. var self=this;
  521. self['@min']=aNumber;
  522. return self;}
  523. }),
  524. smalltalk.PPRepeatingParser);
  525. smalltalk.addMethod(
  526. '_parse_',
  527. smalltalk.method({
  528. selector: 'parse:',
  529. fn: function (aStream){
  530. var self=this;
  531. var start=nil;
  532. var element=nil;
  533. var elements=nil;
  534. var failure=nil;
  535. start=smalltalk.send(aStream, "_position", []);
  536. elements=smalltalk.send((smalltalk.Array || Array), "_new", []);
  537. (function(){while((function(){return smalltalk.send((($receiver = smalltalk.send(elements, "_size", [])).klass === smalltalk.Number) ? $receiver <smalltalk.send(self, "_min", []) : smalltalk.send($receiver, "__lt", [smalltalk.send(self, "_min", [])]), "_and_", [(function(){return smalltalk.send(failure, "_isNil", []);})]);})()) {(function(){element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(elements, "_addLast_", [element]);})() : (function(){smalltalk.send(aStream, "_position_", [start]);return failure=element;})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return smalltalk.send(elements, "_addLast_", [element]);}), (function(){smalltalk.send(aStream, "_position_", [start]);return failure=element;})]);})()}})();
  538. return (($receiver = failure) == nil || $receiver == undefined) ? (function(){(function(){while((function(){return smalltalk.send(failure, "_isNil", []);})()) {(function(){element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]);return (($receiver = smalltalk.send(element, "_isParseFailure", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return failure=element;})() : (function(){return smalltalk.send(elements, "_addLast_", [element]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return failure=element;}), (function(){return smalltalk.send(elements, "_addLast_", [element]);})]);})()}})();return elements;})() : (function(){return failure;})();
  539. return self;}
  540. }),
  541. smalltalk.PPRepeatingParser);
  542. smalltalk.addMethod(
  543. '_on_min_',
  544. smalltalk.method({
  545. selector: 'on:min:',
  546. fn: function (aParser, aNumber){
  547. var self=this;
  548. return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);smalltalk.send($rec, "_min_", [aNumber]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  549. return self;}
  550. }),
  551. smalltalk.PPRepeatingParser.klass);
  552. smalltalk.addClass('PPFailure', smalltalk.Object, ['position', 'reason'], 'Parser');
  553. smalltalk.addMethod(
  554. '_position',
  555. smalltalk.method({
  556. selector: 'position',
  557. fn: function (){
  558. var self=this;
  559. return (($receiver = self['@position']) == nil || $receiver == undefined) ? (function(){return (0);})() : $receiver;
  560. return self;}
  561. }),
  562. smalltalk.PPFailure);
  563. smalltalk.addMethod(
  564. '_position_',
  565. smalltalk.method({
  566. selector: 'position:',
  567. fn: function (aNumber){
  568. var self=this;
  569. self['@position']=aNumber;
  570. return self;}
  571. }),
  572. smalltalk.PPFailure);
  573. smalltalk.addMethod(
  574. '_reason',
  575. smalltalk.method({
  576. selector: 'reason',
  577. fn: function (){
  578. var self=this;
  579. return (($receiver = self['@reason']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
  580. return self;}
  581. }),
  582. smalltalk.PPFailure);
  583. smalltalk.addMethod(
  584. '_reason_',
  585. smalltalk.method({
  586. selector: 'reason:',
  587. fn: function (aString){
  588. var self=this;
  589. self['@reason']=aString;
  590. return self;}
  591. }),
  592. smalltalk.PPFailure);
  593. smalltalk.addMethod(
  594. '_reason_at_',
  595. smalltalk.method({
  596. selector: 'reason:at:',
  597. fn: function (aString, anInteger){
  598. var self=this;
  599. (function($rec){smalltalk.send($rec, "_reason_", [aString]);return smalltalk.send($rec, "_position_", [anInteger]);})(self);
  600. return self;}
  601. }),
  602. smalltalk.PPFailure);
  603. smalltalk.addMethod(
  604. '_isParseFailure',
  605. smalltalk.method({
  606. selector: 'isParseFailure',
  607. fn: function (){
  608. var self=this;
  609. return true;
  610. return self;}
  611. }),
  612. smalltalk.PPFailure);
  613. smalltalk.addMethod(
  614. '_accept_',
  615. smalltalk.method({
  616. selector: 'accept:',
  617. fn: function (aVisitor){
  618. var self=this;
  619. smalltalk.send(aVisitor, "_visitFailure_", [self]);
  620. return self;}
  621. }),
  622. smalltalk.PPFailure);
  623. smalltalk.addMethod(
  624. '_asString',
  625. smalltalk.method({
  626. selector: 'asString',
  627. fn: function (){
  628. var self=this;
  629. return smalltalk.send(smalltalk.send(self['@reason'], "__comma", [" at "]), "__comma", [smalltalk.send(self['@position'], "_asString", [])]);
  630. return self;}
  631. }),
  632. smalltalk.PPFailure);
  633. smalltalk.addMethod(
  634. '_reason_at_',
  635. smalltalk.method({
  636. selector: 'reason:at:',
  637. fn: function (aString, anInteger){
  638. var self=this;
  639. return (function($rec){smalltalk.send($rec, "_reason_at_", [aString, anInteger]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  640. return self;}
  641. }),
  642. smalltalk.PPFailure.klass);
  643. smalltalk.addClass('SmalltalkParser', smalltalk.Object, [], 'Parser');
  644. smalltalk.addMethod(
  645. '_parse_',
  646. smalltalk.method({
  647. selector: 'parse:',
  648. fn: function (aStream){
  649. var self=this;
  650. return smalltalk.send(smalltalk.send(self, "_parser", []), "_parse_", [aStream]);
  651. return self;}
  652. }),
  653. smalltalk.SmalltalkParser);
  654. smalltalk.addMethod(
  655. '_parser',
  656. smalltalk.method({
  657. selector: 'parser',
  658. fn: function (){
  659. var self=this;
  660. var method=nil;
  661. var expression=nil;
  662. var separator=nil;
  663. var comment=nil;
  664. var ws=nil;
  665. var identifier=nil;
  666. var keyword=nil;
  667. var className=nil;
  668. var string=nil;
  669. var symbol=nil;
  670. var number=nil;
  671. var literalArray=nil;
  672. var variable=nil;
  673. var reference=nil;
  674. var classReference=nil;
  675. var literal=nil;
  676. var ret=nil;
  677. var methodParser=nil;
  678. var expressionParser=nil;
  679. var keyword=nil;
  680. var unarySelector=nil;
  681. var binarySelector=nil;
  682. var keywordPattern=nil;
  683. var unaryPattern=nil;
  684. var binaryPattern=nil;
  685. var assignment=nil;
  686. var temps=nil;
  687. var blockParamList=nil;
  688. var block=nil;
  689. var expression=nil;
  690. var expressions=nil;
  691. var subexpression=nil;
  692. var statements=nil;
  693. var sequence=nil;
  694. var operand=nil;
  695. var unaryMessage=nil;
  696. var unarySend=nil;
  697. var unaryTail=nil;
  698. var binaryMessage=nil;
  699. var binarySend=nil;
  700. var binaryTail=nil;
  701. var keywordMessage=nil;
  702. var keywordSend=nil;
  703. var keywordPair=nil;
  704. var cascade=nil;
  705. var message=nil;
  706. var jsStatement=nil;
  707. separator=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.String || String), "_cr", []), "__comma", [smalltalk.send((smalltalk.String || String), "_space", [])]), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", [smalltalk.send((smalltalk.String || String), "_tab", [])]), "_asChoiceParser", []);
  708. comment=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%22"), "_asCharacterParser", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%22"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])]), "_star", [])]), "__comma", [smalltalk.send(unescape("%22"), "_asCharacterParser", [])]), "_flatten", []);
  709. ws=smalltalk.send((($receiver = separator).klass === smalltalk.Number) ? $receiver /comment : smalltalk.send($receiver, "__slash", [comment]), "_star", []);
  710. identifier=smalltalk.send(smalltalk.send(smalltalk.send(unescape("a-z"), "_asCharacterParser", []), "__comma", [smalltalk.send(smalltalk.send(unescape("a-zA-Z0-9"), "_asCharacterParser", []), "_star", [])]), "_flatten", []);
  711. keyword=smalltalk.send(smalltalk.send(identifier, "__comma", [smalltalk.send(":", "_asParser", [])]), "_flatten", []);
  712. className=smalltalk.send(smalltalk.send(smalltalk.send(unescape("A-Z"), "_asCharacterParser", []), "__comma", [smalltalk.send(smalltalk.send(unescape("a-zA-Z0-9"), "_asCharacterParser", []), "_star", [])]), "_flatten", []);
  713. string=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%27"), "_asParser", []), "__comma", [smalltalk.send(smalltalk.send((($receiver = smalltalk.send(unescape("%27%27"), "_asParser", [])).klass === smalltalk.Number) ? $receiver /smalltalk.send(smalltalk.send(smalltalk.send(unescape("%27"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])]) : smalltalk.send($receiver, "__slash", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("%27"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])])]), "_star", []), "_flatten", [])]), "__comma", [smalltalk.send(unescape("%27"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.ValueNode || ValueNode), "_new", []), "_value_", [smalltalk.send(smalltalk.send(node, "_at_", [(2)]), "_replace_with_", [unescape("%27%27"), unescape("%27")])]);})]);
  714. symbol=smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23"), "_asParser", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("a-zA-Z0-9"), "_asCharacterParser", []), "_plus", []), "_flatten", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.ValueNode || ValueNode), "_new", []), "_value_", [smalltalk.send(node, "_second", [])]);})]);
  715. number=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("0-9"), "_asCharacterParser", []), "_plus", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(".", "_asParser", []), "__comma", [smalltalk.send(smalltalk.send(unescape("0-9"), "_asCharacterParser", []), "_plus", [])]), "_optional", [])]), "_flatten", []), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.ValueNode || ValueNode), "_new", []), "_value_", [smalltalk.send(node, "_asNumber", [])]);})]);
  716. literal=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []);
  717. literalArray=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23%28"), "_asParser", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [literal]), "__comma", [ws]), "_star", [])]), "__comma", [smalltalk.send(unescape("%29"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.ValueNode || ValueNode), "_new", []), "_value_", [smalltalk.send((smalltalk.Array || Array), "_withAll_", [smalltalk.send(smalltalk.send(node, "_second", []), "_collect_", [(function(each){return smalltalk.send(smalltalk.send(each, "_second", []), "_value", []);})])])]);})]);
  718. variable=smalltalk.send(identifier, "__eq_eq_gt", [(function(token){return smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode), "_new", []), "_value_", [token]);})]);
  719. classReference=smalltalk.send(className, "__eq_eq_gt", [(function(token){return smalltalk.send(smalltalk.send((smalltalk.ClassReferenceNode || ClassReferenceNode), "_new", []), "_value_", [token]);})]);
  720. reference=(($receiver = variable).klass === smalltalk.Number) ? $receiver /classReference : smalltalk.send($receiver, "__slash", [classReference]);
  721. binarySelector=smalltalk.send(smalltalk.send(smalltalk.send(unescape("+*/%3D%3E%3C%2C@%25%7E%7C%26-"), "_asCharacterParser", []), "_plus", []), "_flatten", []);
  722. unarySelector=identifier;
  723. keywordPattern=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [keyword]), "__comma", [ws]), "__comma", [identifier]), "_plus", []), "__eq_eq_gt", [(function(nodes){return smalltalk.send((smalltalk.Array || Array), "_with_with_", [smalltalk.send(smalltalk.send(nodes, "_collect_", [(function(each){return smalltalk.send(each, "_at_", [(2)]);})]), "_join_", [""]), smalltalk.send(nodes, "_collect_", [(function(each){return smalltalk.send(each, "_at_", [(4)]);})])]);})]);
  724. binaryPattern=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [binarySelector]), "__comma", [ws]), "__comma", [identifier]), "__eq_eq_gt", [(function(node){return smalltalk.send((smalltalk.Array || Array), "_with_with_", [smalltalk.send(node, "_second", []), smalltalk.send((smalltalk.Array || Array), "_with_", [smalltalk.send(node, "_fourth", [])])]);})]);
  725. unaryPattern=smalltalk.send(smalltalk.send(ws, "__comma", [unarySelector]), "__eq_eq_gt", [(function(node){return smalltalk.send((smalltalk.Array || Array), "_with_with_", [smalltalk.send(node, "_second", []), smalltalk.send((smalltalk.Array || Array), "_new", [])]);})]);
  726. expression=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []);
  727. expressions=smalltalk.send(smalltalk.send(expression, "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [smalltalk.send(".", "_asParser", [])]), "__comma", [ws]), "__comma", [expression]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_fourth", []);})]), "_star", [])]), "__eq_eq_gt", [(function(node){var result=nil;
  728. result=smalltalk.send((smalltalk.Array || Array), "_with_", [smalltalk.send(node, "_first", [])]);smalltalk.send(smalltalk.send(node, "_second", []), "_do_", [(function(each){return smalltalk.send(result, "_add_", [each]);})]);return result;})]);
  729. assignment=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(variable, "__comma", [ws]), "__comma", [smalltalk.send(unescape("%3A%3D"), "_asParser", [])]), "__comma", [ws]), "__comma", [expression]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_left_", [smalltalk.send(node, "_first", [])]);return smalltalk.send($rec, "_right_", [smalltalk.send(node, "_at_", [(5)])]);})(smalltalk.send((smalltalk.AssignmentNode || AssignmentNode), "_new", []));})]);
  730. ret=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%5E"), "_asParser", []), "__comma", [ws]), "__comma", [expression]), "__comma", [ws]), "__comma", [smalltalk.send(smalltalk.send(".", "_asParser", []), "_optional", [])]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_addNode_", [smalltalk.send(node, "_third", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.ReturnNode || ReturnNode), "_new", []));})]);
  731. temps=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%7C"), "_asParser", []), "__comma", [smalltalk.send(smalltalk.send(ws, "__comma", [identifier]), "_star", [])]), "__comma", [ws]), "__comma", [smalltalk.send(unescape("%7C"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send(node, "_second", []), "_collect_", [(function(each){return smalltalk.send(each, "_second", []);})]);})]);
  732. blockParamList=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(":", "_asParser", []), "__comma", [identifier]), "__comma", [ws]), "_plus", []), "__comma", [smalltalk.send(unescape("%7C"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send(node, "_first", []), "_collect_", [(function(each){return smalltalk.send(each, "_second", []);})]);})]);
  733. subexpression=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28"), "_asParser", []), "__comma", [ws]), "__comma", [expression]), "__comma", [ws]), "__comma", [smalltalk.send(unescape("%29"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_third", []);})]);
  734. statements=(($receiver = (($receiver = smalltalk.send(ret, "__eq_eq_gt", [(function(node){return smalltalk.send((smalltalk.Array || Array), "_with_", [node]);})])).klass === smalltalk.Number) ? $receiver /smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(expressions, "__comma", [ws]), "__comma", [smalltalk.send(".", "_asParser", [])]), "__comma", [ws]), "__comma", [ret]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_add_", [smalltalk.send(node, "_at_", [(5)])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(node, "_first", []));})]) : smalltalk.send($receiver, "__slash", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(expressions, "__comma", [ws]), "__comma", [smalltalk.send(".", "_asParser", [])]), "__comma", [ws]), "__comma", [ret]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_add_", [smalltalk.send(node, "_at_", [(5)])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(node, "_first", []));})])])).klass === smalltalk.Number) ? $receiver /smalltalk.send(smalltalk.send(expressions, "__comma", [smalltalk.send(smalltalk.send(".", "_asParser", []), "_optional", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_first", []);})]) : smalltalk.send($receiver, "__slash", [smalltalk.send(smalltalk.send(expressions, "__comma", [smalltalk.send(smalltalk.send(".", "_asParser", []), "_optional", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_first", []);})])]);
  735. sequence=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(temps, "_optional", []), "__comma", [ws]), "__comma", [smalltalk.send(statements, "_optional", [])]), "__comma", [ws]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_temps_", [smalltalk.send(node, "_first", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(node, "_third", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SequenceNode || SequenceNode), "_new", []));})]);
  736. block=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%5B"), "_asParser", []), "__comma", [ws]), "__comma", [smalltalk.send(blockParamList, "_optional", [])]), "__comma", [ws]), "__comma", [smalltalk.send(sequence, "_optional", [])]), "__comma", [ws]), "__comma", [smalltalk.send(unescape("%5D"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_parameters_", [smalltalk.send(node, "_third", [])]);return smalltalk.send($rec, "_addNode_", [smalltalk.send(smalltalk.send(node, "_at_", [(5)]), "_asBlockSequenceNode", [])]);})(smalltalk.send((smalltalk.BlockNode || BlockNode), "_new", []));})]);
  737. operand=(($receiver = (($receiver = literal).klass === smalltalk.Number) ? $receiver /reference : smalltalk.send($receiver, "__slash", [reference])).klass === smalltalk.Number) ? $receiver /subexpression : smalltalk.send($receiver, "__slash", [subexpression]);
  738. smalltalk.send(literal, "_parser_", [(($receiver = (($receiver = (($receiver = (($receiver = number).klass === smalltalk.Number) ? $receiver /string : smalltalk.send($receiver, "__slash", [string])).klass === smalltalk.Number) ? $receiver /literalArray : smalltalk.send($receiver, "__slash", [literalArray])).klass === smalltalk.Number) ? $receiver /symbol : smalltalk.send($receiver, "__slash", [symbol])).klass === smalltalk.Number) ? $receiver /block : smalltalk.send($receiver, "__slash", [block])]);
  739. unaryMessage=smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [unarySelector]), "__comma", [smalltalk.send(smalltalk.send(":", "_asParser", []), "_not", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []), "_selector_", [smalltalk.send(node, "_second", [])]);})]);
  740. unaryTail=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []);
  741. smalltalk.send(unaryTail, "_parser_", [smalltalk.send(smalltalk.send(unaryMessage, "__comma", [smalltalk.send(unaryTail, "_optional", [])]), "__eq_eq_gt", [(function(node){return (($receiver = smalltalk.send(node, "_second", [])) == nil || $receiver == undefined) ? (function(){return smalltalk.send(node, "_first", []);})() : (function(){return smalltalk.send(smalltalk.send(node, "_second", []), "_valueForReceiver_", [smalltalk.send(node, "_first", [])]);})();})])]);
  742. unarySend=smalltalk.send(smalltalk.send(operand, "__comma", [smalltalk.send(unaryTail, "_optional", [])]), "__eq_eq_gt", [(function(node){return (($receiver = smalltalk.send(node, "_second", [])) == nil || $receiver == undefined) ? (function(){return smalltalk.send(node, "_first", []);})() : (function(){return smalltalk.send(smalltalk.send(node, "_second", []), "_valueForReceiver_", [smalltalk.send(node, "_first", [])]);})();})]);
  743. binaryMessage=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [binarySelector]), "__comma", [ws]), "__comma", [(($receiver = unarySend).klass === smalltalk.Number) ? $receiver /operand : smalltalk.send($receiver, "__slash", [operand])]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(node, "_second", [])]);return smalltalk.send($rec, "_arguments_", [smalltalk.send((smalltalk.Array || Array), "_with_", [smalltalk.send(node, "_fourth", [])])]);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []));})]);
  744. binaryTail=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []);
  745. smalltalk.send(binaryTail, "_parser_", [smalltalk.send(smalltalk.send(binaryMessage, "__comma", [smalltalk.send(binaryTail, "_optional", [])]), "__eq_eq_gt", [(function(node){return (($receiver = smalltalk.send(node, "_second", [])) == nil || $receiver == undefined) ? (function(){return smalltalk.send(node, "_first", []);})() : (function(){return smalltalk.send(smalltalk.send(node, "_second", []), "_valueForReceiver_", [smalltalk.send(node, "_first", [])]);})();})])]);
  746. binarySend=smalltalk.send(smalltalk.send(unarySend, "__comma", [smalltalk.send(binaryTail, "_optional", [])]), "__eq_eq_gt", [(function(node){return (($receiver = smalltalk.send(node, "_second", [])) == nil || $receiver == undefined) ? (function(){return smalltalk.send(node, "_first", []);})() : (function(){return smalltalk.send(smalltalk.send(node, "_second", []), "_valueForReceiver_", [smalltalk.send(node, "_first", [])]);})();})]);
  747. keywordPair=smalltalk.send(smalltalk.send(keyword, "__comma", [ws]), "__comma", [binarySend]);
  748. keywordMessage=smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [keywordPair]), "_plus", []), "__eq_eq_gt", [(function(nodes){return (function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(smalltalk.send(nodes, "_collect_", [(function(each){return smalltalk.send(smalltalk.send(each, "_second", []), "_first", []);})]), "_join_", [""])]);return smalltalk.send($rec, "_arguments_", [smalltalk.send(nodes, "_collect_", [(function(each){return smalltalk.send(smalltalk.send(each, "_second", []), "_third", []);})])]);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []));})]);
  749. keywordSend=smalltalk.send(smalltalk.send(binarySend, "__comma", [keywordMessage]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send(node, "_second", []), "_valueForReceiver_", [smalltalk.send(node, "_first", [])]);})]);
  750. message=(($receiver = (($receiver = binaryMessage).klass === smalltalk.Number) ? $receiver /unaryMessage : smalltalk.send($receiver, "__slash", [unaryMessage])).klass === smalltalk.Number) ? $receiver /keywordMessage : smalltalk.send($receiver, "__slash", [keywordMessage]);
  751. cascade=smalltalk.send(smalltalk.send((($receiver = keywordSend).klass === smalltalk.Number) ? $receiver /binarySend : smalltalk.send($receiver, "__slash", [binarySend]), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [smalltalk.send(unescape("%3B"), "_asParser", [])]), "__comma", [message]), "_plus", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send(node, "_first", []), "_cascadeNodeWithMessages_", [smalltalk.send(smalltalk.send(node, "_second", []), "_collect_", [(function(each){return smalltalk.send(each, "_third", []);})])]);})]);
  752. jsStatement=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%3C"), "_asParser", []), "__comma", [smalltalk.send(smalltalk.send((($receiver = smalltalk.send(unescape("%3E%3E"), "_asParser", [])).klass === smalltalk.Number) ? $receiver /smalltalk.send(smalltalk.send(smalltalk.send(unescape("%3E"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])]) : smalltalk.send($receiver, "__slash", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("%3E"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])])]), "_star", []), "_flatten", [])]), "__comma", [smalltalk.send(unescape("%3E"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_source_", [smalltalk.send(node, "_second", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.JSStatementNode || JSStatementNode), "_new", []));})]);
  753. smalltalk.send(expression, "_parser_", [(($receiver = (($receiver = (($receiver = (($receiver = assignment).klass === smalltalk.Number) ? $receiver /cascade : smalltalk.send($receiver, "__slash", [cascade])).klass === smalltalk.Number) ? $receiver /keywordSend : smalltalk.send($receiver, "__slash", [keywordSend])).klass === smalltalk.Number) ? $receiver /binarySend : smalltalk.send($receiver, "__slash", [binarySend])).klass === smalltalk.Number) ? $receiver /jsStatement : smalltalk.send($receiver, "__slash", [jsStatement])]);
  754. method=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ws, "__comma", [(($receiver = (($receiver = keywordPattern).klass === smalltalk.Number) ? $receiver /binaryPattern : smalltalk.send($receiver, "__slash", [binaryPattern])).klass === smalltalk.Number) ? $receiver /unaryPattern : smalltalk.send($receiver, "__slash", [unaryPattern])]), "__comma", [ws]), "__comma", [smalltalk.send(sequence, "_optional", [])]), "__comma", [ws]), "_withSource", []), "__eq_eq_gt", [(function(node){return (function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_first", []), "_second", []), "_first", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_first", []), "_second", []), "_second", [])]);smalltalk.send($rec, "_addNode_", [smalltalk.send(smalltalk.send(node, "_first", []), "_fourth", [])]);smalltalk.send($rec, "_source_", [smalltalk.send(node, "_second", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.MethodNode || MethodNode), "_new", []));})]);
  755. return smalltalk.send(smalltalk.send(method, "__comma", [smalltalk.send((smalltalk.PPEOFParser || PPEOFParser), "_new", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_first", []);})]);
  756. return self;}
  757. }),
  758. smalltalk.SmalltalkParser);
  759. smalltalk.addMethod(
  760. '_parse_',
  761. smalltalk.method({
  762. selector: 'parse:',
  763. fn: function (aStream){
  764. var self=this;
  765. return smalltalk.send(smalltalk.send(self, "_new", []), "_parse_", [aStream]);
  766. return self;}
  767. }),
  768. smalltalk.SmalltalkParser.klass);
  769. smalltalk.addClass('Chunk', smalltalk.Object, ['contents'], 'Parser');
  770. smalltalk.addMethod(
  771. '_contents',
  772. smalltalk.method({
  773. selector: 'contents',
  774. fn: function (){
  775. var self=this;
  776. return (($receiver = self['@contents']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
  777. return self;}
  778. }),
  779. smalltalk.Chunk);
  780. smalltalk.addMethod(
  781. '_contents_',
  782. smalltalk.method({
  783. selector: 'contents:',
  784. fn: function (aString){
  785. var self=this;
  786. self['@contents']=aString;
  787. return self;}
  788. }),
  789. smalltalk.Chunk);
  790. smalltalk.addMethod(
  791. '_isEmptyChunk',
  792. smalltalk.method({
  793. selector: 'isEmptyChunk',
  794. fn: function (){
  795. var self=this;
  796. return false;
  797. return self;}
  798. }),
  799. smalltalk.Chunk);
  800. smalltalk.addMethod(
  801. '_isInstructionChunk',
  802. smalltalk.method({
  803. selector: 'isInstructionChunk',
  804. fn: function (){
  805. var self=this;
  806. return false;
  807. return self;}
  808. }),
  809. smalltalk.Chunk);
  810. smalltalk.addClass('InstructionChunk', smalltalk.Chunk, [], 'Parser');
  811. smalltalk.addMethod(
  812. '_isInstructionChunk',
  813. smalltalk.method({
  814. selector: 'isInstructionChunk',
  815. fn: function (){
  816. var self=this;
  817. return true;
  818. return self;}
  819. }),
  820. smalltalk.InstructionChunk);
  821. smalltalk.addClass('EmptyChunk', smalltalk.Chunk, [], 'Parser');
  822. smalltalk.addMethod(
  823. '_isEmptyChunk',
  824. smalltalk.method({
  825. selector: 'isEmptyChunk',
  826. fn: function (){
  827. var self=this;
  828. return true;
  829. return self;}
  830. }),
  831. smalltalk.EmptyChunk);
  832. smalltalk.addClass('ChunkParser', smalltalk.Object, ['parser', 'separator', 'eof', 'ws', 'chunk', 'emptyChunk', 'instructionChunk'], 'Parser');
  833. smalltalk.addMethod(
  834. '_parser',
  835. smalltalk.method({
  836. selector: 'parser',
  837. fn: function (){
  838. var self=this;
  839. return (($receiver = self['@parser']) == nil || $receiver == undefined) ? (function(){return self['@parser']=(($receiver = (($receiver = (($receiver = smalltalk.send(self, "_instructionChunk", [])).klass === smalltalk.Number) ? $receiver /smalltalk.send(self, "_emptyChunk", []) : smalltalk.send($receiver, "__slash", [smalltalk.send(self, "_emptyChunk", [])])).klass === smalltalk.Number) ? $receiver /smalltalk.send(self, "_chunk", []) : smalltalk.send($receiver, "__slash", [smalltalk.send(self, "_chunk", [])])).klass === smalltalk.Number) ? $receiver /smalltalk.send(self, "_eof", []) : smalltalk.send($receiver, "__slash", [smalltalk.send(self, "_eof", [])]);})() : $receiver;
  840. return self;}
  841. }),
  842. smalltalk.ChunkParser);
  843. smalltalk.addMethod(
  844. '_eof',
  845. smalltalk.method({
  846. selector: 'eof',
  847. fn: function (){
  848. var self=this;
  849. return (($receiver = self['@eof']) == nil || $receiver == undefined) ? (function(){return self['@eof']=smalltalk.send(smalltalk.send(smalltalk.send(self, "_ws", []), "__comma", [smalltalk.send((smalltalk.PPEOFParser || PPEOFParser), "_new", [])]), "__eq_eq_gt", [(function(node){return nil;})]);})() : $receiver;
  850. return self;}
  851. }),
  852. smalltalk.ChunkParser);
  853. smalltalk.addMethod(
  854. '_separator',
  855. smalltalk.method({
  856. selector: 'separator',
  857. fn: function (){
  858. var self=this;
  859. return (($receiver = self['@separator']) == nil || $receiver == undefined) ? (function(){return self['@separator']=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.String || String), "_cr", []), "__comma", [smalltalk.send((smalltalk.String || String), "_space", [])]), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", [smalltalk.send((smalltalk.String || String), "_tab", [])]), "_asChoiceParser", []);})() : $receiver;
  860. return self;}
  861. }),
  862. smalltalk.ChunkParser);
  863. smalltalk.addMethod(
  864. '_ws',
  865. smalltalk.method({
  866. selector: 'ws',
  867. fn: function (){
  868. var self=this;
  869. return (($receiver = self['@ws']) == nil || $receiver == undefined) ? (function(){return self['@ws']=smalltalk.send(smalltalk.send(self, "_separator", []), "_star", []);})() : $receiver;
  870. return self;}
  871. }),
  872. smalltalk.ChunkParser);
  873. smalltalk.addMethod(
  874. '_chunk',
  875. smalltalk.method({
  876. selector: 'chunk',
  877. fn: function (){
  878. var self=this;
  879. return (($receiver = self['@chunk']) == nil || $receiver == undefined) ? (function(){return self['@chunk']=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_ws", []), "__comma", [smalltalk.send(smalltalk.send((($receiver = smalltalk.send(unescape("%21%21"), "_asParser", [])).klass === smalltalk.Number) ? $receiver /smalltalk.send(smalltalk.send(smalltalk.send(unescape("%21"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])]) : smalltalk.send($receiver, "__slash", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("%21"), "_asParser", []), "_not", []), "__comma", [smalltalk.send((smalltalk.PPAnyParser || PPAnyParser), "_new", [])])]), "_plus", []), "_flatten", [])]), "__comma", [smalltalk.send(unescape("%21"), "_asParser", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.Chunk || Chunk), "_new", []), "_contents_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_second", []), "_replace_with_", [unescape("%21%21"), unescape("%21")]), "_trimBoth", [])]);})]);})() : $receiver;
  880. return self;}
  881. }),
  882. smalltalk.ChunkParser);
  883. smalltalk.addMethod(
  884. '_emptyChunk',
  885. smalltalk.method({
  886. selector: 'emptyChunk',
  887. fn: function (){
  888. var self=this;
  889. return (($receiver = self['@emptyChunk']) == nil || $receiver == undefined) ? (function(){return self['@emptyChunk']=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_separator", []), "_plus", []), "__comma", [smalltalk.send(unescape("%21"), "_asParser", [])]), "__comma", [smalltalk.send(self, "_ws", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send((smalltalk.EmptyChunk || EmptyChunk), "_new", []);})]);})() : $receiver;
  890. return self;}
  891. }),
  892. smalltalk.ChunkParser);
  893. smalltalk.addMethod(
  894. '_instructionChunk',
  895. smalltalk.method({
  896. selector: 'instructionChunk',
  897. fn: function (){
  898. var self=this;
  899. return (($receiver = self['@instructionChunk']) == nil || $receiver == undefined) ? (function(){return self['@instructionChunk']=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_ws", []), "__comma", [smalltalk.send(unescape("%21"), "_asParser", [])]), "__comma", [smalltalk.send(self, "_chunk", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(smalltalk.send((smalltalk.InstructionChunk || InstructionChunk), "_new", []), "_contents_", [smalltalk.send(smalltalk.send(node, "_last", []), "_contents", [])]);})]);})() : $receiver;
  900. return self;}
  901. }),
  902. smalltalk.ChunkParser);
  903. smalltalk.addClass('Importer', smalltalk.Object, ['chunkParser'], 'Parser');
  904. smalltalk.addMethod(
  905. '_chunkParser',
  906. smalltalk.method({
  907. selector: 'chunkParser',
  908. fn: function (){
  909. var self=this;
  910. return (($receiver = self['@chunkParser']) == nil || $receiver == undefined) ? (function(){return self['@chunkParser']=smalltalk.send(smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []), "_parser", []);})() : $receiver;
  911. return self;}
  912. }),
  913. smalltalk.Importer);
  914. smalltalk.addMethod(
  915. '_import_',
  916. smalltalk.method({
  917. selector: 'import:',
  918. fn: function (aStream){
  919. var self=this;
  920. try{var nextChunk=nil;
  921. var result=nil;
  922. (function(){while(!(function(){return smalltalk.send(aStream, "_atEnd", []);})()) {(function(){nextChunk=smalltalk.send(smalltalk.send(self, "_chunkParser", []), "_parse_", [aStream]);(($receiver = nextChunk) == nil || $receiver == undefined) ? (function(){return (function(){throw({name: 'stReturn', selector: '_import_', fn: function(){return self}})})();})() : $receiver;result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [smalltalk.send(nextChunk, "_contents", [])]);return (($receiver = smalltalk.send(nextChunk, "_isInstructionChunk", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(result, "_scanFrom_", [aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(result, "_scanFrom_", [aStream]);})]);})()}})();
  923. return self;
  924. } catch(e) {if(e.name === 'stReturn' && e.selector === '_import_'){return e.fn()} throw(e)}}
  925. }),
  926. smalltalk.Importer);
  927. smalltalk.addClass('Exporter', smalltalk.Object, [], 'Parser');
  928. smalltalk.addMethod(
  929. '_exportCategory_',
  930. smalltalk.method({
  931. selector: 'exportCategory:',
  932. fn: function (aString){
  933. var self=this;
  934. var stream=nil;
  935. stream=smalltalk.send("", "_writeStream", []);
  936. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_select_", [(function(each){return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [aString]);})]), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_export_", [each])]);})]);
  937. smalltalk.send(self, "_exportCategoryExtensions_on_", [aString, stream]);
  938. return smalltalk.send(stream, "_contents", []);
  939. return self;}
  940. }),
  941. smalltalk.Exporter);
  942. smalltalk.addMethod(
  943. '_export_',
  944. smalltalk.method({
  945. selector: 'export:',
  946. fn: function (aClass){
  947. var self=this;
  948. var stream=nil;
  949. stream=smalltalk.send("", "_writeStream", []);
  950. smalltalk.send(self, "_exportDefinitionOf_on_", [aClass, stream]);
  951. smalltalk.send(self, "_exportMethodsOf_on_", [aClass, stream]);
  952. smalltalk.send(self, "_exportMetaDefinitionOf_on_", [aClass, stream]);
  953. smalltalk.send(self, "_exportMethodsOf_on_", [smalltalk.send(aClass, "_class", []), stream]);
  954. return smalltalk.send(stream, "_contents", []);
  955. return self;}
  956. }),
  957. smalltalk.Exporter);
  958. smalltalk.addMethod(
  959. '_exportDefinitionOf_on_',
  960. smalltalk.method({
  961. selector: 'exportDefinitionOf:on:',
  962. fn: function (aClass, aStream){
  963. var self=this;
  964. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addClass%28")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%27%2C%20")])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20%5B")]);})(aStream);
  965. smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
  966. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
  967. (($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [unescape(".comment%3D")]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_escaped", [])]), "__comma", [unescape("%27%29")])]);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [unescape(".comment%3D")]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_escaped", [])]), "__comma", [unescape("%27%29")])]);})(aStream);})]);
  968. smalltalk.send(aStream, "_lf", []);
  969. return self;}
  970. }),
  971. smalltalk.Exporter);
  972. smalltalk.addMethod(
  973. '_exportMetaDefinitionOf_on_',
  974. smalltalk.method({
  975. selector: 'exportMetaDefinitionOf:on:',
  976. fn: function (aClass, aStream){
  977. var self=this;
  978. (($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape(".iVarNames%20%3D%20%5B")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C")]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(unescape("%5D%3B"), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape(".iVarNames%20%3D%20%5B")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C")]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(unescape("%5D%3B"), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})]);
  979. return self;}
  980. }),
  981. smalltalk.Exporter);
  982. smalltalk.addMethod(
  983. '_exportMethodsOf_on_',
  984. smalltalk.method({
  985. selector: 'exportMethodsOf:on:',
  986. fn: function (aClass, aStream){
  987. var self=this;
  988. smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_values", []), "_do_", [(function(each){return (($receiver = smalltalk.send(smalltalk.send(each, "_category", []), "_match_", [unescape("%5E%5C*")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);})]);
  989. smalltalk.send(aStream, "_lf", []);
  990. return self;}
  991. }),
  992. smalltalk.Exporter);
  993. smalltalk.addMethod(
  994. '_classNameFor_',
  995. smalltalk.method({
  996. selector: 'classNameFor:',
  997. fn: function (aClass){
  998. var self=this;
  999. return (($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);})() : (function(){return (($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);}), (function(){return (($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]);})]);
  1000. return self;}
  1001. }),
  1002. smalltalk.Exporter);
  1003. smalltalk.addMethod(
  1004. '_exportMethod_of_on_',
  1005. smalltalk.method({
  1006. selector: 'exportMethod:of:on:',
  1007. fn: function (aMethod, aClass, aStream){
  1008. var self=this;
  1009. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addMethod%28")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", [])]), "__comma", [unescape("%27%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.method%28%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("selector%3A%20%27"), "__comma", [smalltalk.send(aMethod, "_selector", [])]), "__comma", [unescape("%27%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("category%3A%20%27"), "__comma", [smalltalk.send(aMethod, "_category", [])]), "__comma", [unescape("%27%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])]), "__comma", [unescape("%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("source%3A%20unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_source", []), "_escaped", [])]), "__comma", [unescape("%27%29%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("messageSends: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_messageSends", []), "_asJavascript", [])]), "__comma", [unescape("%2C")])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("referencedClasses%3A%20%5B")]);})(aStream);
  1010. smalltalk.send(smalltalk.send(aMethod, "_referencedClasses", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [each])])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C")]);})]);
  1011. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("%7D%29%2C")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
  1012. return self;}
  1013. }),
  1014. smalltalk.Exporter);
  1015. smalltalk.addMethod(
  1016. '_exportCategoryExtensions_on_',
  1017. smalltalk.method({
  1018. selector: 'exportCategoryExtensions:on:',
  1019. fn: function (aString, aStream){
  1020. var self=this;
  1021. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]), "_do_", [(function(each){return smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_values", []), "_do_", [(function(method){return (($receiver = smalltalk.send(smalltalk.send(method, "_category", []), "__eq", [smalltalk.send(unescape("*"), "__comma", [aString])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethod_of_on_", [method, each, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethod_of_on_", [method, each, aStream]);})]);})]);})]);
  1022. return self;}
  1023. }),
  1024. smalltalk.Exporter);
  1025. smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Parser');
  1026. smalltalk.addMethod(
  1027. '_exportDefinitionOf_on_',
  1028. smalltalk.method({
  1029. selector: 'exportDefinitionOf:on:',
  1030. fn: function (aClass, aStream){
  1031. var self=this;
  1032. (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%20subclass%3A%20%23"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%09instanceVariableNames%3A%20%27")]);})(aStream);
  1033. smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
  1034. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%09category%3A%20%27"), "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", [unescape("%27%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
  1035. (($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
  1036. smalltalk.send(aStream, "_lf", []);
  1037. return self;}
  1038. }),
  1039. smalltalk.ChunkExporter);
  1040. smalltalk.addMethod(
  1041. '_exportMethod_of_on_',
  1042. smalltalk.method({
  1043. selector: 'exportMethod:of:on:',
  1044. fn: function (aMethod, aClass, aStream){
  1045. var self=this;
  1046. (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aMethod, "_source", [])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%21")]);})(aStream);
  1047. return self;}
  1048. }),
  1049. smalltalk.ChunkExporter);
  1050. smalltalk.addMethod(
  1051. '_exportMethodsOf_on_',
  1052. smalltalk.method({
  1053. selector: 'exportMethodsOf:on:',
  1054. fn: function (aClass, aStream){
  1055. var self=this;
  1056. smalltalk.send(aClass, "_protocolsDo_", [(function(category, methods){return (($receiver = smalltalk.send(category, "_match_", [unescape("%5E%5C*")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})]);})]);
  1057. return self;}
  1058. }),
  1059. smalltalk.ChunkExporter);
  1060. smalltalk.addMethod(
  1061. '_exportMetaDefinitionOf_on_',
  1062. smalltalk.method({
  1063. selector: 'exportMetaDefinitionOf:on:',
  1064. fn: function (aClass, aStream){
  1065. var self=this;
  1066. (($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%20instanceVariableNames%3A%20%27")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%20instanceVariableNames%3A%20%27")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
  1067. return self;}
  1068. }),
  1069. smalltalk.ChunkExporter);
  1070. smalltalk.addMethod(
  1071. '_classNameFor_',
  1072. smalltalk.method({
  1073. selector: 'classNameFor:',
  1074. fn: function (aClass){
  1075. var self=this;
  1076. return (($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);})() : (function(){return (($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);}), (function(){return (($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]);})]);
  1077. return self;}
  1078. }),
  1079. smalltalk.ChunkExporter);
  1080. smalltalk.addMethod(
  1081. '_chunkEscape_',
  1082. smalltalk.method({
  1083. selector: 'chunkEscape:',
  1084. fn: function (aString){
  1085. var self=this;
  1086. return smalltalk.send(smalltalk.send(aString, "_replace_with_", [unescape("%21"), unescape("%21%21")]), "_trimBoth", []);
  1087. return self;}
  1088. }),
  1089. smalltalk.ChunkExporter);
  1090. smalltalk.addMethod(
  1091. '_exportCategoryExtensions_on_',
  1092. smalltalk.method({
  1093. selector: 'exportCategoryExtensions:on:',
  1094. fn: function (aString, aStream){
  1095. var self=this;
  1096. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]), "_do_", [(function(each){return smalltalk.send(each, "_protocolsDo_", [(function(category, methods){return (($receiver = smalltalk.send(category, "__eq", [smalltalk.send(unescape("*"), "__comma", [aString])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})]);})]);})]);
  1097. return self;}
  1098. }),
  1099. smalltalk.ChunkExporter);
  1100. smalltalk.addMethod(
  1101. '_exportMethods_category_of_on_',
  1102. smalltalk.method({
  1103. selector: 'exportMethods:category:of:on:',
  1104. fn: function (methods, category, aClass, aStream){
  1105. var self=this;
  1106. (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%20methodsFor%3A%20%27"), "__comma", [category]), "__comma", [unescape("%27%21")])]);})(aStream);
  1107. smalltalk.send(methods, "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
  1108. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%20%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
  1109. return self;}
  1110. }),
  1111. smalltalk.ChunkExporter);
  1112. smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Parser');
  1113. smalltalk.addMethod(
  1114. '_exportDefinitionOf_on_',
  1115. smalltalk.method({
  1116. selector: 'exportDefinitionOf:on:',
  1117. fn: function (aClass, aStream){
  1118. var self=this;
  1119. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addClass%28")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%27%2C%20")])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20%5B")]);})(aStream);
  1120. smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
  1121. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
  1122. smalltalk.send(aStream, "_lf", []);
  1123. return self;}
  1124. }),
  1125. smalltalk.StrippedExporter);
  1126. smalltalk.addMethod(
  1127. '_exportMethod_of_on_',
  1128. smalltalk.method({
  1129. selector: 'exportMethod:of:on:',
  1130. fn: function (aMethod, aClass, aStream){
  1131. var self=this;
  1132. (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addMethod%28")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", [])]), "__comma", [unescape("%27%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.method%28%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("selector%3A%20%27"), "__comma", [smalltalk.send(aMethod, "_selector", [])]), "__comma", [unescape("%27%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("%7D%29%2C")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
  1133. return self;}
  1134. }),
  1135. smalltalk.StrippedExporter);