Parser.deploy.js 78 KB

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