|
@@ -1511,6 +1511,91 @@ $core.addClass("ParseError", $globals.Error, [], "Compiler-Core");
|
|
|
$globals.ParseError.comment="Instance of ParseError are signaled on any parsing error.\x0aSee `Compiler >> #parse:`";
|
|
|
|
|
|
|
|
|
+
|
|
|
+$core.addTrait("TPragmator", "Compiler-Core");
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "canProcessPragma:",
|
|
|
+protocol: "pragma processing",
|
|
|
+
|
|
|
+args: ["aMessage"],
|
|
|
+source: "canProcessPragma: aMessage\x0a\x09^ self class includesSelector: aMessage selector",
|
|
|
+referencedClasses: [],
|
|
|
+
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["includesSelector:", "class", "selector"]
|
|
|
+}, function ($methodClass){ return function (aMessage){
|
|
|
+var self=this,$self=this;
|
|
|
+
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+
|
|
|
+return $recv($self._class())._includesSelector_($recv(aMessage)._selector());
|
|
|
+
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"canProcessPragma:",{aMessage:aMessage})});
|
|
|
+
|
|
|
+}; }),
|
|
|
+$globals.TPragmator);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "processPragma:",
|
|
|
+protocol: "pragma processing",
|
|
|
+
|
|
|
+args: ["aMessage"],
|
|
|
+source: "processPragma: aMessage\x0a\x09(self canProcessPragma: aMessage) ifTrue: [\x0a\x09\x09^ aMessage sendTo: self ]",
|
|
|
+referencedClasses: [],
|
|
|
+
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["ifTrue:", "canProcessPragma:", "sendTo:"]
|
|
|
+}, function ($methodClass){ return function (aMessage){
|
|
|
+var self=this,$self=this;
|
|
|
+
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+
|
|
|
+var $1;
|
|
|
+$1=$self._canProcessPragma_(aMessage);
|
|
|
+if($core.assert($1)){
|
|
|
+return $recv(aMessage)._sendTo_(self);
|
|
|
+}
|
|
|
+return self;
|
|
|
+
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"processPragma:",{aMessage:aMessage})});
|
|
|
+
|
|
|
+}; }),
|
|
|
+$globals.TPragmator);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "processPragmas:",
|
|
|
+protocol: "pragma processing",
|
|
|
+
|
|
|
+args: ["aCollection"],
|
|
|
+source: "processPragmas: aCollection\x0a\x09aCollection do: [ :each | self processPragma: each ]",
|
|
|
+referencedClasses: [],
|
|
|
+
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["do:", "processPragma:"]
|
|
|
+}, function ($methodClass){ return function (aCollection){
|
|
|
+var self=this,$self=this;
|
|
|
+
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+
|
|
|
+$recv(aCollection)._do_((function(each){
|
|
|
+
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+
|
|
|
+return $self._processPragma_(each);
|
|
|
+
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
|
|
|
+
|
|
|
+}));
|
|
|
+return self;
|
|
|
+
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"processPragmas:",{aCollection:aCollection})});
|
|
|
+
|
|
|
+}; }),
|
|
|
+$globals.TPragmator);
|
|
|
+
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "asVariableName",
|