| 
					
				 | 
			
			
				@@ -1,1283 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPParser', smalltalk.Object, ['memo'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_initialize', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'initialize', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@memo']=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_memo', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'memo', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self['@memo']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_flatten', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'flatten', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPFlattenParser || PPFlattenParser), "_on_", [self]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_withSource', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'withSource', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPSourceParser || PPSourceParser), "_on_", [self]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'__eq_eq_gt', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: '==>', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPActionParser || PPActionParser), "_on_block_", [self, aBlock]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'__comma', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: ',', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPSequenceParser || PPSequenceParser), "_with_with_", [self, aParser]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'__slash', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: '/', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPChoiceParser || PPChoiceParser), "_with_with_", [self, aParser]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_plus', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'plus', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPRepeatingParser || PPRepeatingParser), "_on_min_", [self, (1)]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_star', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'star', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPRepeatingParser || PPRepeatingParser), "_on_min_", [self, (0)]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_not', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'not', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send((smalltalk.PPNotParser || PPNotParser), "_on_", [self]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_optional', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'optional', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self).klass === smalltalk.Number) ? $receiver /smalltalk.send((smalltalk.PPEpsilonParser || PPEpsilonParser), "_new", []) : smalltalk.send($receiver, "__slash", [smalltalk.send((smalltalk.PPEpsilonParser || PPEpsilonParser), "_new", [])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_memoizedParse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'memoizedParse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var r=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var start=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var end=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var node=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-start=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_subclassResponsibility", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parseAll_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parseAll:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var result=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-result=smalltalk.send(smalltalk.send((smalltalk.PPSequenceParser || PPSequenceParser), "_with_with_", [self, smalltalk.send((smalltalk.PPEOFParser || PPEOFParser), "_new", [])]), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPEOFParser', smalltalk.PPParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPEOFParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPAnyParser', smalltalk.PPParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPAnyParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPEpsilonParser', smalltalk.PPParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPEpsilonParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPStringParser', smalltalk.PPParser, ['string'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_string', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'string', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self['@string']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPStringParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_string_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'string:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@string']=aString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPStringParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var position=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var result=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-position=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-result=smalltalk.send(aStream, "_next_", [smalltalk.send(smalltalk.send(self, "_string", []), "_size", [])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPStringParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPCharacterParser', smalltalk.PPParser, ['regexp'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_string_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'string:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@regexp']=smalltalk.send((smalltalk.RegularExpression || RegularExpression), "_fromString_", [smalltalk.send(smalltalk.send(unescape("%5B"), "__comma", [aString]), "__comma", [unescape("%5D")])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPCharacterParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPCharacterParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_match_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'match:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(aString, "_match_", [self['@regexp']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPCharacterParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPListParser', smalltalk.PPParser, ['parsers'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parsers', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parsers', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@parsers']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPListParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parsers_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parsers:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aCollection){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@parsers']=aCollection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPListParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_copyWith_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'copyWith:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(self, "_class", []), "_withAll_", [smalltalk.send(smalltalk.send(self, "_parsers", []), "_copyWith_", [aParser])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPListParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_withAll_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'withAll:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aCollection){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (function($rec){smalltalk.send($rec, "_parsers_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPListParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_with_with_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'with:with:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser, anotherParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(self, "_withAll_", [smalltalk.send((smalltalk.Array || Array), "_with_with_", [aParser, anotherParser])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPListParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPSequenceParser', smalltalk.PPListParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'__comma', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: ',', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aRule){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(self, "_copyWith_", [aRule]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPSequenceParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var start=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var elements=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-start=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-elements=[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPSequenceParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPChoiceParser', smalltalk.PPListParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'__slash', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: '/', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aRule){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(self, "_copyWith_", [aRule]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPChoiceParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var result=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPChoiceParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPDelegateParser', smalltalk.PPParser, ['parser'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self['@parser']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPDelegateParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parser_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parser:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@parser']=aParser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPDelegateParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPDelegateParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPDelegateParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPAndParser', smalltalk.PPDelegateParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(self, "_basicParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPAndParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_basicParse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'basicParse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var position=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-position=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aStream, "_position_", [position]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return element; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPAndParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPNotParser', smalltalk.PPAndParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-element=smalltalk.send(self, "_basicParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPNotParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPActionParser', smalltalk.PPDelegateParser, ['block'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_block', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'block', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self['@block']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPActionParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_block_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'block:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@block']=aBlock; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPActionParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPActionParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_on_block_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'on:block:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser, aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);smalltalk.send($rec, "_block_", [aBlock]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPActionParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPFlattenParser', smalltalk.PPDelegateParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var start=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var stop=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-start=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFlattenParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPSourceParser', smalltalk.PPDelegateParser, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var start=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var stop=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var result=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-start=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-element=smalltalk.send(smalltalk.send(self, "_parser", []), "_memoizedParse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPSourceParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPRepeatingParser', smalltalk.PPDelegateParser, ['min'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_min', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'min', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self['@min']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPRepeatingParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_min_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'min:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aNumber){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@min']=aNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPRepeatingParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var start=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var element=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var elements=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var failure=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-start=smalltalk.send(aStream, "_position", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-elements=smalltalk.send((smalltalk.Array || Array), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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;})]);})()}})(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPRepeatingParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_on_min_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'on:min:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aParser, aNumber){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (function($rec){smalltalk.send($rec, "_parser_", [aParser]);smalltalk.send($rec, "_min_", [aNumber]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPRepeatingParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('PPFailure', smalltalk.Object, ['position', 'reason'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_position', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'position', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@position']) == nil || $receiver == undefined) ? (function(){return (0);})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_position_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'position:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aNumber){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@position']=aNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_reason', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'reason', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@reason']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_reason_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'reason:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@reason']=aString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_reason_at_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'reason:at:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString, anInteger){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(function($rec){smalltalk.send($rec, "_reason_", [aString]);return smalltalk.send($rec, "_position_", [anInteger]);})(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_isParseFailure', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'isParseFailure', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_accept_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'accept:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aVisitor){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aVisitor, "_visitFailure_", [self]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_asString', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'asString', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(self['@reason'], "__comma", [" at "]), "__comma", [smalltalk.send(self['@position'], "_asString", [])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_reason_at_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'reason:at:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString, anInteger){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (function($rec){smalltalk.send($rec, "_reason_at_", [aString, anInteger]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.PPFailure.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('SmalltalkParser', smalltalk.Object, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(self, "_parser", []), "_parse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.SmalltalkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var method=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var expression=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var separator=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var comment=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var ws=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var identifier=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keyword=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var className=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var string=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var symbol=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var number=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var literalArray=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var variable=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var reference=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var classReference=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var literal=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var ret=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var methodParser=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var expressionParser=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keyword=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var unarySelector=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var binarySelector=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keywordPattern=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var unaryPattern=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var binaryPattern=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var assignment=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var temps=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var blockParamList=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var block=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var expression=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var expressions=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var subexpression=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var statements=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var sequence=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var operand=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var unaryMessage=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var unarySend=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var unaryTail=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var binaryMessage=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var binarySend=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var binaryTail=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keywordMessage=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keywordSend=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var keywordPair=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var cascade=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var message=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var jsStatement=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-ws=smalltalk.send((($receiver = separator).klass === smalltalk.Number) ? $receiver /comment : smalltalk.send($receiver, "__slash", [comment]), "_star", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-identifier=smalltalk.send(smalltalk.send(smalltalk.send(unescape("a-z"), "_asCharacterParser", []), "__comma", [smalltalk.send(smalltalk.send(unescape("a-zA-Z0-9"), "_asCharacterParser", []), "_star", [])]), "_flatten", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-keyword=smalltalk.send(smalltalk.send(identifier, "__comma", [smalltalk.send(":", "_asParser", [])]), "_flatten", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-className=smalltalk.send(smalltalk.send(smalltalk.send(unescape("A-Z"), "_asCharacterParser", []), "__comma", [smalltalk.send(smalltalk.send(unescape("a-zA-Z0-9"), "_asCharacterParser", []), "_star", [])]), "_flatten", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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")])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-literal=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})])])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-variable=smalltalk.send(identifier, "__eq_eq_gt", [(function(token){return smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode), "_new", []), "_value_", [token]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-classReference=smalltalk.send(className, "__eq_eq_gt", [(function(token){return smalltalk.send(smalltalk.send((smalltalk.ClassReferenceNode || ClassReferenceNode), "_new", []), "_value_", [token]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-reference=(($receiver = variable).klass === smalltalk.Number) ? $receiver /classReference : smalltalk.send($receiver, "__slash", [classReference]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-binarySelector=smalltalk.send(smalltalk.send(smalltalk.send(unescape("+*/%3D%3E%3C%2C@%25%7E%7C%26-"), "_asCharacterParser", []), "_plus", []), "_flatten", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-unarySelector=identifier; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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)]);})])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-expression=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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;})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-operand=(($receiver = (($receiver = literal).klass === smalltalk.Number) ? $receiver /reference : smalltalk.send($receiver, "__slash", [reference])).klass === smalltalk.Number) ? $receiver /subexpression : smalltalk.send($receiver, "__slash", [subexpression]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-unaryTail=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})();})])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})();})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-binaryTail=smalltalk.send((smalltalk.PPDelegateParser || PPDelegateParser), "_new", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})();})])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})();})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-keywordPair=smalltalk.send(smalltalk.send(keyword, "__comma", [ws]), "__comma", [binarySend]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", [])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-message=(($receiver = (($receiver = binaryMessage).klass === smalltalk.Number) ? $receiver /unaryMessage : smalltalk.send($receiver, "__slash", [unaryMessage])).klass === smalltalk.Number) ? $receiver /keywordMessage : smalltalk.send($receiver, "__slash", [keywordMessage]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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])]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []));})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(method, "__comma", [smalltalk.send((smalltalk.PPEOFParser || PPEOFParser), "_new", [])]), "__eq_eq_gt", [(function(node){return smalltalk.send(node, "_first", []);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.SmalltalkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parse_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parse:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(self, "_new", []), "_parse_", [aStream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.SmalltalkParser.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('Chunk', smalltalk.Object, ['contents'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_contents', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'contents', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@contents']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Chunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_contents_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'contents:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self['@contents']=aString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Chunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_isEmptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'isEmptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Chunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_isInstructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'isInstructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Chunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('InstructionChunk', smalltalk.Chunk, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_isInstructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'isInstructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.InstructionChunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('EmptyChunk', smalltalk.Chunk, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_isEmptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'isEmptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.EmptyChunk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('ChunkParser', smalltalk.Object, ['parser', 'separator', 'eof', 'ws', 'chunk', 'emptyChunk', 'instructionChunk'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_eof', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'eof', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_separator', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'separator', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_ws', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'ws', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@ws']) == nil || $receiver == undefined) ? (function(){return self['@ws']=smalltalk.send(smalltalk.send(self, "_separator", []), "_star", []);})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_chunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'chunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_emptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'emptyChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_instructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'instructionChunk', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkParser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('Importer', smalltalk.Object, ['chunkParser'], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_chunkParser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'chunkParser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return (($receiver = self['@chunkParser']) == nil || $receiver == undefined) ? (function(){return self['@chunkParser']=smalltalk.send(smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []), "_parser", []);})() : $receiver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Importer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_import_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'import:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-try{var nextChunk=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var result=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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]);})]);})()}})(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} catch(e) {if(e.name === 'stReturn' && e.selector === '_import_'){return e.fn()} throw(e)}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Importer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('Exporter', smalltalk.Object, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportCategory_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportCategory:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var stream=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-stream=smalltalk.send("", "_writeStream", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_exportCategoryExtensions_on_", [aString, stream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(stream, "_contents", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_export_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'export:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var stream=nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-stream=smalltalk.send("", "_writeStream", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_exportDefinitionOf_on_", [aClass, stream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_exportMethodsOf_on_", [aClass, stream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_exportMetaDefinitionOf_on_", [aClass, stream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(self, "_exportMethodsOf_on_", [smalltalk.send(aClass, "_class", []), stream]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(stream, "_contents", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportDefinitionOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportDefinitionOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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")]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(($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);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aStream, "_lf", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMetaDefinitionOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMetaDefinitionOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(($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", [])])]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethodsOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethodsOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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]);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aStream, "_lf", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_classNameFor_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'classNameFor:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethod_of_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethod:of:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aMethod, aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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")]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportCategoryExtensions_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportCategoryExtensions:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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]);})]);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Exporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportDefinitionOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportDefinitionOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(($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);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aStream, "_lf", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethod_of_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethod:of:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aMethod, aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethodsOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethodsOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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]);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMetaDefinitionOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMetaDefinitionOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(($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);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_classNameFor_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'classNameFor:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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", []);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_chunkEscape_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'chunkEscape:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.send(smalltalk.send(aString, "_replace_with_", [unescape("%21"), unescape("%21%21")]), "_trimBoth", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportCategoryExtensions_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportCategoryExtensions:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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]);})]);})]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethods_category_of_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethods:category:of:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (methods, category, aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(methods, "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%20%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.ChunkExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportDefinitionOf_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportDefinitionOf:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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")]);})]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.send(aStream, "_lf", []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.StrippedExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'_exportMethod_of_on_', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: 'exportMethod:of:on:', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aMethod, aClass, aStream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.StrippedExporter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 |