|
@@ -1,4 +1,159 @@
|
|
|
smalltalk.addPackage('Compiler', {});
|
|
|
+smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_nodes'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('nodes'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_nodes_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('nodes%3A'),
|
|
|
+fn: function (aCollection){
|
|
|
+var self=this;
|
|
|
+(self['@nodes']=aCollection);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_addNode_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('addNode%3A'),
|
|
|
+fn: function (aNode){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isValueNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isValueNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return false;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isBlockNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isBlockNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return false;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isBlockSequenceNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isBlockSequenceNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return false;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.Node);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_temps'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('temps'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.SequenceNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_temps_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('temps%3A'),
|
|
|
+fn: function (aCollection){
|
|
|
+var self=this;
|
|
|
+(self['@temps']=aCollection);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.SequenceNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_asBlockSequenceNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('asBlockSequenceNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", []));
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.SequenceNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.SequenceNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.DynamicDictionaryNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.ReturnNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_stream_'),
|
|
@@ -41,23 +196,50 @@ return self;}
|
|
|
smalltalk.ChunkParser.klass);
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('Importer', smalltalk.Object, [], 'Compiler');
|
|
|
+smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
-unescape('_import_'),
|
|
|
+unescape('_value'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('import%3A'),
|
|
|
-fn: function (aStream){
|
|
|
+selector: unescape('value'),
|
|
|
+fn: function (){
|
|
|
var self=this;
|
|
|
-var chunk=nil;
|
|
|
-var result=nil;
|
|
|
-var parser=nil;
|
|
|
-var lastEmpty=nil;
|
|
|
-(parser=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_on_", [aStream]));
|
|
|
-(lastEmpty=false);
|
|
|
-(function(){while(!(function(){(chunk=smalltalk.send(parser, "_nextChunk", []));return smalltalk.send(chunk, "_isNil", []);})()) {(function(){return ((($receiver = smalltalk.send(chunk, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (lastEmpty=true);})() : (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (lastEmpty=true);}), (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})]));})()}})();
|
|
|
+return self['@value'];
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.Importer);
|
|
|
+smalltalk.ValueNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_value_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('value%3A'),
|
|
|
+fn: function (anObject){
|
|
|
+var self=this;
|
|
|
+(self['@value']=anObject);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.ValueNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitValueNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.ValueNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isValueNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isValueNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return true;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.ValueNode);
|
|
|
|
|
|
|
|
|
|
|
@@ -130,7 +312,7 @@ selector: unescape('exportPackage%3A'),
|
|
|
fn: function (packageName){
|
|
|
var self=this;
|
|
|
var package=nil;
|
|
|
-return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){(package=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packageAt_", [packageName]));smalltalk.send(self, "_exportPackageDefinitionOf_on_", [package, stream]);smalltalk.send(smalltalk.send(package, "_classes", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
|
|
|
+return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){(package=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packageAt_", [packageName]));smalltalk.send(self, "_exportPackageDefinitionOf_on_", [package, stream]);smalltalk.send(smalltalk.send(smalltalk.send(package, "_classes", []), "_sorted_", [(function(a, b){return smalltalk.send(smalltalk.send(a, "_subclasses", []), "_includes_", [b]);})]), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
|
|
|
return self;}
|
|
|
}),
|
|
|
smalltalk.Exporter);
|
|
@@ -184,6 +366,42 @@ smalltalk.Exporter);
|
|
|
|
|
|
|
|
|
|
|
|
+smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.VariableNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_assigned'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('assigned'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.VariableNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_assigned_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('assigned%3A'),
|
|
|
+fn: function (aBoolean){
|
|
|
+var self=this;
|
|
|
+(self['@assigned']=aBoolean);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.VariableNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_exportDefinitionOf_on_'),
|
|
@@ -294,191 +512,17 @@ smalltalk.ChunkExporter);
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Compiler');
|
|
|
+smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
-unescape('_exportDefinitionOf_on_'),
|
|
|
+unescape('_accept_'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('exportDefinitionOf%3Aon%3A'),
|
|
|
-fn: function (aClass, aStream){
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
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", []);
|
|
|
+smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.StrippedExporter);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_exportMethod_of_on_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('exportMethod%3Aof%3Aon%3A'),
|
|
|
-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("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_escaped", [])]), "__comma", [unescape("%27%29%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%20unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_escaped", [])]), "__comma", [unescape("%27%29%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);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_nodes'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('nodes'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_nodes_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('nodes%3A'),
|
|
|
-fn: function (aCollection){
|
|
|
-var self=this;
|
|
|
-(self['@nodes']=aCollection);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_addNode_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('addNode%3A'),
|
|
|
-fn: function (aNode){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isValueNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isValueNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return false;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isBlockNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isBlockNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return false;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isBlockSequenceNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isBlockSequenceNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return false;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.Node);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_selector'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('selector'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return self['@selector'];
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_selector_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('selector%3A'),
|
|
|
-fn: function (aString){
|
|
|
-var self=this;
|
|
|
-(self['@selector']=aString);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_arguments'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('arguments'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_arguments_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('arguments%3A'),
|
|
|
-fn: function (aCollection){
|
|
|
-var self=this;
|
|
|
-(self['@arguments']=aCollection);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_source'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('source'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return self['@source'];
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_source_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('source%3A'),
|
|
|
-fn: function (aString){
|
|
|
-var self=this;
|
|
|
-(self['@source']=aString);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.MethodNode);
|
|
|
+smalltalk.ClassReferenceNode);
|
|
|
|
|
|
|
|
|
|
|
@@ -586,28 +630,28 @@ smalltalk.SendNode);
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
|
|
|
+smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
-unescape('_receiver'),
|
|
|
+unescape('_source'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('receiver'),
|
|
|
+selector: unescape('source'),
|
|
|
fn: function (){
|
|
|
var self=this;
|
|
|
-return self['@receiver'];
|
|
|
+return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.CascadeNode);
|
|
|
+smalltalk.JSStatementNode);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
|
-unescape('_receiver_'),
|
|
|
+unescape('_source_'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('receiver%3A'),
|
|
|
-fn: function (aNode){
|
|
|
+selector: unescape('source%3A'),
|
|
|
+fn: function (aString){
|
|
|
var self=this;
|
|
|
-(self['@receiver']=aNode);
|
|
|
+(self['@source']=aString);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.CascadeNode);
|
|
|
+smalltalk.JSStatementNode);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_accept_'),
|
|
@@ -615,10 +659,10 @@ smalltalk.method({
|
|
|
selector: unescape('accept%3A'),
|
|
|
fn: function (aVisitor){
|
|
|
var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
|
|
|
+smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.CascadeNode);
|
|
|
+smalltalk.JSStatementNode);
|
|
|
|
|
|
|
|
|
|
|
@@ -671,304 +715,53 @@ smalltalk.AssignmentNode);
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_accept_'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.AssignmentNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_parameters'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('parameters'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_parameters_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('parameters%3A'),
|
|
|
-fn: function (aCollection){
|
|
|
-var self=this;
|
|
|
-(self['@parameters']=aCollection);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isBlockNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isBlockNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return true;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_inlined'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('inlined'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_inlined_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('inlined%3A'),
|
|
|
-fn: function (aBoolean){
|
|
|
-var self=this;
|
|
|
-(self['@inlined']=aBoolean);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_temps'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('temps'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.SequenceNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_temps_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('temps%3A'),
|
|
|
-fn: function (aCollection){
|
|
|
-var self=this;
|
|
|
-(self['@temps']=aCollection);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.SequenceNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_asBlockSequenceNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('asBlockSequenceNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", []));
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.SequenceNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.SequenceNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockSequenceNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isBlockSequenceNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isBlockSequenceNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return true;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.BlockSequenceNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ReturnNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_value'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('value'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return self['@value'];
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ValueNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_value_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('value%3A'),
|
|
|
-fn: function (anObject){
|
|
|
-var self=this;
|
|
|
-(self['@value']=anObject);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ValueNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitValueNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ValueNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_isValueNode'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('isValueNode'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return true;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ValueNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.VariableNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_assigned'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('assigned'),
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.VariableNode);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_assigned_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('assigned%3A'),
|
|
|
-fn: function (aBoolean){
|
|
|
-var self=this;
|
|
|
-(self['@assigned']=aBoolean);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.VariableNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_accept_'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('accept%3A'),
|
|
|
-fn: function (aVisitor){
|
|
|
-var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]);
|
|
|
-return self;}
|
|
|
-}),
|
|
|
-smalltalk.ClassReferenceNode);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
|
|
|
-smalltalk.addMethod(
|
|
|
-unescape('_source'),
|
|
|
-smalltalk.method({
|
|
|
-selector: unescape('source'),
|
|
|
-fn: function (){
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
var self=this;
|
|
|
-return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
|
|
|
+smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.JSStatementNode);
|
|
|
+smalltalk.AssignmentNode);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+smalltalk.addClass('Importer', smalltalk.Object, [], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
-unescape('_source_'),
|
|
|
+unescape('_import_'),
|
|
|
smalltalk.method({
|
|
|
-selector: unescape('source%3A'),
|
|
|
-fn: function (aString){
|
|
|
+selector: unescape('import%3A'),
|
|
|
+fn: function (aStream){
|
|
|
var self=this;
|
|
|
-(self['@source']=aString);
|
|
|
+var chunk=nil;
|
|
|
+var result=nil;
|
|
|
+var parser=nil;
|
|
|
+var lastEmpty=nil;
|
|
|
+(parser=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_on_", [aStream]));
|
|
|
+(lastEmpty=false);
|
|
|
+(function(){while(!(function(){(chunk=smalltalk.send(parser, "_nextChunk", []));return smalltalk.send(chunk, "_isNil", []);})()) {(function(){return ((($receiver = smalltalk.send(chunk, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (lastEmpty=true);})() : (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (lastEmpty=true);}), (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})]));})()}})();
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.JSStatementNode);
|
|
|
+smalltalk.Importer);
|
|
|
+
|
|
|
|
|
|
+
|
|
|
+smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_accept_'),
|
|
|
smalltalk.method({
|
|
|
selector: unescape('accept%3A'),
|
|
|
fn: function (aVisitor){
|
|
|
var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
|
|
|
+smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.JSStatementNode);
|
|
|
+smalltalk.DynamicArrayNode);
|
|
|
|
|
|
|
|
|
|
|
|
+smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
|
|
|
+
|
|
|
+
|
|
|
smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler');
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_visit_'),
|
|
@@ -1838,34 +1631,241 @@ return self;}
|
|
|
smalltalk.Compiler.klass);
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
|
|
|
+smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockSequenceNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isBlockSequenceNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isBlockSequenceNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return true;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockSequenceNode);
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler');
|
|
|
+
|
|
|
+smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_parameters'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('parameters'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_parameters_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('parameters%3A'),
|
|
|
+fn: function (aCollection){
|
|
|
+var self=this;
|
|
|
+(self['@parameters']=aCollection);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockNode);
|
|
|
+
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_accept_'),
|
|
|
smalltalk.method({
|
|
|
selector: unescape('accept%3A'),
|
|
|
fn: function (aVisitor){
|
|
|
var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
|
|
|
+smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.DynamicArrayNode);
|
|
|
+smalltalk.BlockNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_isBlockNode'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('isBlockNode'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return true;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_inlined'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('inlined'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_inlined_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('inlined%3A'),
|
|
|
+fn: function (aBoolean){
|
|
|
+var self=this;
|
|
|
+(self['@inlined']=aBoolean);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.BlockNode);
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler');
|
|
|
+smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_receiver'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('receiver'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return self['@receiver'];
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.CascadeNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_receiver_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('receiver%3A'),
|
|
|
+fn: function (aNode){
|
|
|
+var self=this;
|
|
|
+(self['@receiver']=aNode);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.CascadeNode);
|
|
|
+
|
|
|
smalltalk.addMethod(
|
|
|
unescape('_accept_'),
|
|
|
smalltalk.method({
|
|
|
selector: unescape('accept%3A'),
|
|
|
fn: function (aVisitor){
|
|
|
var self=this;
|
|
|
-smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
|
|
|
+smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
|
|
|
return self;}
|
|
|
}),
|
|
|
-smalltalk.DynamicDictionaryNode);
|
|
|
+smalltalk.CascadeNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_selector'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('selector'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return self['@selector'];
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_selector_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('selector%3A'),
|
|
|
+fn: function (aString){
|
|
|
+var self=this;
|
|
|
+(self['@selector']=aString);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_arguments'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('arguments'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_arguments_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('arguments%3A'),
|
|
|
+fn: function (aCollection){
|
|
|
+var self=this;
|
|
|
+(self['@arguments']=aCollection);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_source'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('source'),
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return self['@source'];
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_source_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('source%3A'),
|
|
|
+fn: function (aString){
|
|
|
+var self=this;
|
|
|
+(self['@source']=aString);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_accept_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('accept%3A'),
|
|
|
+fn: function (aVisitor){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
|
|
|
+return self;}
|
|
|
+}),
|
|
|
+smalltalk.MethodNode);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Compiler');
|
|
|
+smalltalk.addMethod(
|
|
|
+unescape('_exportDefinitionOf_on_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('exportDefinitionOf%3Aon%3A'),
|
|
|
+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(
|
|
|
+unescape('_exportMethod_of_on_'),
|
|
|
+smalltalk.method({
|
|
|
+selector: unescape('exportMethod%3Aof%3Aon%3A'),
|
|
|
+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("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_escaped", [])]), "__comma", [unescape("%27%29%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%20unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_escaped", [])]), "__comma", [unescape("%27%29%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);
|
|
|
|
|
|
|
|
|
|