| 
					
				 | 
			
			
				@@ -35604,15 +35604,18 @@ fn: function (buffer){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var assignment,varName,value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-assignment=self._parseAssignment_onFailUseName_withExpr_(buffer,self._nextResultName(),buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+assignment=self._parseAssignment_onFail_(buffer,(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return ["name".__minus_gt(self._nextResultName()),"expr".__minus_gt(buffer)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 varName=_st(assignment)._at_("name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 self["@session"]=self._addVariableNamed_to_(varName,self["@session"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 value=self._eval_on_quiet_(_st(_st(varName).__comma(" := ")).__comma(_st(assignment)._at_("expr")),self["@session"],true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 self._presentResultNamed_withValue_(varName,value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"assignNewVariable:",{buffer:buffer,assignment:assignment,varName:varName,value:value},smalltalk.Repl)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["buffer"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "assignNewVariable: buffer\x0a\x09| assignment varName value |\x0a\x09assignment := self parseAssignment: buffer onFailUseName: self nextResultName withExpr: buffer.\x0a\x09varName := assignment at: 'name'.\x0a\x09session := self addVariableNamed: varName to: session.\x0a\x09value := self eval: varName, ' := ', (assignment at: 'expr') on: session quiet: true.\x0a\x09self presentResultNamed: varName withValue: value", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["parseAssignment:onFailUseName:withExpr:", "nextResultName", "at:", "addVariableNamed:to:", "eval:on:quiet:", ",", "presentResultNamed:withValue:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "assignNewVariable: buffer\x0a\x09| assignment varName value |\x0a\x09assignment := self parseAssignment: buffer onFail: [{'name' -> self nextResultName. 'expr' -> buffer}].\x0a\x09varName := assignment at: 'name'.\x0a\x09session := self addVariableNamed: varName to: session.\x0a\x09value := self eval: varName, ' := ', (assignment at: 'expr') on: session quiet: true.\x0a\x09self presentResultNamed: varName withValue: value", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["parseAssignment:onFail:", "->", "nextResultName", "at:", "addVariableNamed:to:", "eval:on:quiet:", ",", "presentResultNamed:withValue:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.Repl); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35950,9 +35953,9 @@ smalltalk.Repl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "parseAssignment:onFailUseName:withExpr:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "parseAssignment:onFail:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 category: 'private', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aString,nameString,exprString){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (aString,aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var assignment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35969,13 +35972,13 @@ return self._isIdentifier_(_st(assignment)._first()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(smalltalk.assert($2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $1=_st($Dictionary())._from_(["name".__minus_gt(_st(assignment)._first()),"expr".__minus_gt(_st(assignment)._last())]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=_st($Dictionary())._from_(["name".__minus_gt(nameString),"expr".__minus_gt(exprString)]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=_st($Dictionary())._from_(_st(aBlock)._value()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"parseAssignment:onFailUseName:withExpr:",{aString:aString,nameString:nameString,exprString:exprString,assignment:assignment},smalltalk.Repl)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aString", "nameString", "exprString"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "parseAssignment: aString onFailUseName: nameString withExpr: exprString\x0a\x09\x22Returns a variable name and its assigned expression if the given expression is an assignment; nil otherwise.\x22\x0a\x09| assignment |\x0a\x09assignment := (aString tokenize: ':=') collect: [:s | s trimBoth].\x0a\x09^ (assignment size = 2 and: [self isIdentifier: assignment first])\x0a\x09\x09ifTrue: [Dictionary from: {'name' -> assignment first. 'expr' -> assignment last}]\x0a\x09\x09ifFalse: [Dictionary from: {'name' -> nameString. 'expr' -> exprString}]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["collect:", "trimBoth", "tokenize:", "ifTrue:ifFalse:", "from:", "->", "first", "last", "and:", "isIdentifier:", "=", "size"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"parseAssignment:onFail:",{aString:aString,aBlock:aBlock,assignment:assignment},smalltalk.Repl)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+args: ["aString", "aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "parseAssignment: aString onFail: aBlock\x0a\x09\x22Returns a variable name and its assigned expression if the given expression is an assignment; nil otherwise.\x22\x0a\x09| assignment |\x0a\x09assignment := (aString tokenize: ':=') collect: [:s | s trimBoth].\x0a\x09^ (assignment size = 2 and: [self isIdentifier: assignment first])\x0a\x09\x09ifTrue: [Dictionary from: {'name' -> assignment first. 'expr' -> assignment last}]\x0a\x09\x09ifFalse: [Dictionary from: aBlock value]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["collect:", "trimBoth", "tokenize:", "ifTrue:ifFalse:", "from:", "->", "first", "last", "value", "and:", "isIdentifier:", "=", "size"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["Dictionary"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.Repl); 
			 |