Browse Source

Use more generic #value: instead of #visit:.

Herbert Vojčík 7 years ago
parent
commit
563b35e9c3
4 changed files with 33 additions and 4 deletions
  1. 3 3
      src/Compiler-Core.js
  2. 1 1
      src/Compiler-Core.st
  3. 23 0
      src/Kernel-Dag.js
  4. 6 0
      src/Kernel-Dag.st

+ 3 - 3
src/Compiler-Core.js

@@ -23,7 +23,7 @@ return $recv(self._transformers())._inject_into_(aNode,(function(input,transform
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(transformer)._visit_(input);
+return $recv(transformer)._value_(input);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({input:input,transformer:transformer},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -34,10 +34,10 @@ return $recv(transformer)._visit_(input);
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aNode"],
-source: "compileNode: aNode\x0a\x09^ self transformers\x0a\x09\x09inject: aNode\x0a\x09\x09into: [ :input :transformer | transformer visit: input ]",
+source: "compileNode: aNode\x0a\x09^ self transformers\x0a\x09\x09inject: aNode\x0a\x09\x09into: [ :input :transformer | transformer value: input ]",
 referencedClasses: [],
 //>>excludeEnd("ide");
-messageSends: ["inject:into:", "transformers", "visit:"]
+messageSends: ["inject:into:", "transformers", "value:"]
 }),
 $globals.AbstractCodeGenerator);
 

+ 1 - 1
src/Compiler-Core.st

@@ -40,7 +40,7 @@ source: aString
 compileNode: aNode
 	^ self transformers
 		inject: aNode
-		into: [ :input :transformer | transformer visit: input ]
+		into: [ :input :transformer | transformer value: input ]
 !
 
 transformers

+ 23 - 0
src/Kernel-Dag.js

@@ -10,6 +10,29 @@ $core.addClass('AbstractDagVisitor', $globals.Object, [], 'Kernel-Dag');
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AbstractDagVisitor.comment="I am base class of `DagNode` visitor.\x0a\x0aConcrete classes should implement `visitDagNode:`,\x0athey can reuse possible variants of implementation\x0aoffered directly: `visitDagNodeVariantSimple:`\x0aand `visitDagNodeVariantRedux:`.";
 //>>excludeEnd("ide");
+$core.addMethod(
+$core.method({
+selector: "value:",
+protocol: 'evaluating',
+fn: function (anObject){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+return self._visit_(anObject);
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject},$globals.AbstractDagVisitor)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["anObject"],
+source: "value: anObject\x0a\x09^ self visit: anObject",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["visit:"]
+}),
+$globals.AbstractDagVisitor);
+
 $core.addMethod(
 $core.method({
 selector: "visit:",

+ 6 - 0
src/Kernel-Dag.st

@@ -10,6 +10,12 @@ they can reuse possible variants of implementation
 offered directly: `visitDagNodeVariantSimple:`
 and `visitDagNodeVariantRedux:`.!
 
+!AbstractDagVisitor methodsFor: 'evaluating'!
+
+value: anObject
+	^ self visit: anObject
+! !
+
 !AbstractDagVisitor methodsFor: 'visiting'!
 
 visit: aNode