| 
					
				 | 
			
			
				@@ -223,7 +223,7 @@ smalltalk.HLGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "generate", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "compile", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: 'protocol', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -235,9 +235,9 @@ self._error_("class should not be nil"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self}, function($ctx1) {$ctx1.fill(self,"generate",{},smalltalk.HLGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self}, function($ctx1) {$ctx1.fill(self,"compile",{},smalltalk.HLGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "generate\x0a\x0a\x09output targetClass ifNil: [ self error: 'class should not be nil'].", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "compile\x0a\x0a\x09output targetClass ifNil: [ self error: 'class should not be nil'].", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["ifNil:", "targetClass", "error:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -329,20 +329,20 @@ smalltalk.HLAccessorsGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "generate", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "compile", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: 'protocol', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.HLAccessorsGenerator.superclass.fn.prototype._generate.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.HLAccessorsGenerator.superclass.fn.prototype._compile.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $1=_st(self["@output"])._targetClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st($1)._accessorsSourceCodesWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $2=_st($1)._accessorProtocolWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self}, function($ctx1) {$ctx1.fill(self,"generate",{},smalltalk.HLAccessorsGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self}, function($ctx1) {$ctx1.fill(self,"compile",{},smalltalk.HLAccessorsGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "generate\x0a\x09super generate.\x0a\x09\x0a\x09output targetClass \x0a\x09\x09accessorsSourceCodesWith: self;\x0a\x09\x09accessorProtocolWith: self", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["generate", "accessorsSourceCodesWith:", "targetClass", "accessorProtocolWith:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "compile\x0a\x09super compile.\x0a\x09\x0a\x09output targetClass \x0a\x09\x09accessorsSourceCodesWith: self;\x0a\x09\x09accessorProtocolWith: self", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["compile", "accessorsSourceCodesWith:", "targetClass", "accessorProtocolWith:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.HLAccessorsGenerator); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -356,16 +356,14 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $HLMethodSourceCode(){return smalltalk.HLMethodSourceCode||(typeof HLMethodSourceCode=="undefined"?nil:HLMethodSourceCode)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $2,$4,$3,$1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $2,$3,$1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $2=_st($HLMethodSourceCode())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st($2)._selector_(anInstanceVariable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $3=_st($2)._sourceCode_(_st($String())._streamContents_((function(stream){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(stream).__lt_lt(anInstanceVariable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["<<"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4=_st(_st(stream)._cr())._cr(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["cr"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($4)._tab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(_st(stream)._cr())._tab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return _st(_st(stream).__lt_lt("^ ")).__lt_lt(anInstanceVariable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["<<"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1,1)})}))); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -373,7 +371,7 @@ $1=$3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"getterFor:",{anInstanceVariable:anInstanceVariable},smalltalk.HLAccessorsGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anInstanceVariable"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "getterFor: anInstanceVariable\x0a\x09^ HLMethodSourceCode new\x0a\x09\x09selector:anInstanceVariable;\x0a\x09\x09sourceCode: (String streamContents: [ :stream |\x0a\x09\x09stream << anInstanceVariable.\x0a\x09\x09stream cr cr tab.\x0a\x09\x09stream << '^ ' << anInstanceVariable ])", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "getterFor: anInstanceVariable\x0a\x09^ HLMethodSourceCode new\x0a\x09\x09selector:anInstanceVariable;\x0a\x09\x09sourceCode: (String streamContents: [ :stream |\x0a\x09\x09stream << anInstanceVariable.\x0a\x09\x09stream cr tab.\x0a\x09\x09stream << '^ ' << anInstanceVariable ])", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["selector:", "new", "sourceCode:", "streamContents:", "<<", "tab", "cr"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["HLMethodSourceCode", "String"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -388,7 +386,7 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $HLMethodSourceCode(){return smalltalk.HLMethodSourceCode||(typeof HLMethodSourceCode=="undefined"?nil:HLMethodSourceCode)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $2,$4,$5,$3,$1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $2,$4,$3,$1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $2=_st($HLMethodSourceCode())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st($2)._selector_(_st(anInstanceVariable).__comma(":")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $3=_st($2)._sourceCode_(_st($String())._streamContents_((function(stream){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -397,9 +395,7 @@ $4=_st(stream).__lt_lt(anInstanceVariable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["<<"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st($4).__lt_lt(": anObject"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["<<"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5=_st(_st(stream)._cr())._cr(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["cr"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($5)._tab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(_st(stream)._cr())._tab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return _st(_st(stream).__lt_lt(anInstanceVariable)).__lt_lt(" := anObject"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["<<"]=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1,1)})}))); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -407,7 +403,7 @@ $1=$3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"setterFor:",{anInstanceVariable:anInstanceVariable},smalltalk.HLAccessorsGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anInstanceVariable"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "setterFor: anInstanceVariable\x0a\x09^ HLMethodSourceCode new\x0a\x09\x09selector: anInstanceVariable, ':';\x0a\x09\x09sourceCode: (String streamContents: [ :stream |\x0a\x09\x09stream << anInstanceVariable << ': anObject'.\x0a\x09\x09stream cr cr tab.\x0a\x09\x09stream << anInstanceVariable << ' := anObject' ])", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "setterFor: anInstanceVariable\x0a\x09^ HLMethodSourceCode new\x0a\x09\x09selector: anInstanceVariable, ':';\x0a\x09\x09sourceCode: (String streamContents: [ :stream |\x0a\x09\x09stream << anInstanceVariable << ': anObject'.\x0a\x09\x09stream cr tab.\x0a\x09\x09stream << anInstanceVariable << ' := anObject' ])", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["selector:", "new", ",", "sourceCode:", "streamContents:", "<<", "tab", "cr"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["HLMethodSourceCode", "String"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -417,6 +413,27 @@ smalltalk.HLAccessorsGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addClass('HLInitializeGenerator', smalltalk.HLGenerator, [], 'Helios-Helpers'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.HLInitializeGenerator.comment="I am used to double-dispatch the `initialize` method(s) generation.\x0a\x0aUsage:\x0a\x0a    ^ HLInitializeGenerator new\x0a        class: aClass;\x0a        generate;\x0a        output\x0a\x0aI am a disposable object"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "compile", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+protocol: 'protocol', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.HLInitializeGenerator.superclass.fn.prototype._compile.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=_st(self["@output"])._targetClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._initializeSourceCodesWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._initializeIndexWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=_st($1)._initializeProtocolWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self}, function($ctx1) {$ctx1.fill(self,"compile",{},smalltalk.HLInitializeGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "compile\x0a\x09super compile.\x0a\x09\x0a\x09output targetClass \x0a\x09\x09initializeSourceCodesWith: self;\x0a\x09\x09initializeIndexWith: self;\x0a\x09\x09initializeProtocolWith: self", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["compile", "initializeSourceCodesWith:", "targetClass", "initializeIndexWith:", "initializeProtocolWith:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.HLInitializeGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "computeIndexForObject", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -446,27 +463,6 @@ referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.HLInitializeGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "generate", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: 'protocol', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.HLInitializeGenerator.superclass.fn.prototype._generate.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=_st(self["@output"])._targetClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._initializeSourceCodesWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._initializeIndexWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=_st($1)._initializeProtocolWith_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self}, function($ctx1) {$ctx1.fill(self,"generate",{},smalltalk.HLInitializeGenerator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "generate\x0a\x09super generate.\x0a\x09\x0a\x09output targetClass \x0a\x09\x09initializeSourceCodesWith: self;\x0a\x09\x09initializeIndexWith: self;\x0a\x09\x09initializeProtocolWith: self", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["generate", "initializeSourceCodesWith:", "targetClass", "initializeIndexWith:", "initializeProtocolWith:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.HLInitializeGenerator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "generateInitializeCodeForObject", 
			 |