Compiler-Strom.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. define(["amber/boot", "amber_core/Compiler-AST"], function($boot){"use strict";
  2. if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
  3. var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  5. $core.addPackage("Compiler-Strom");
  6. $core.packages["Compiler-Strom"].innerEval = function (expr) { return eval(expr); };
  7. $core.packages["Compiler-Strom"].transport = {"type":"amd","amdNamespace":"amber_core"};
  8. $core.addClass("StromNode", $globals.ASTNode, ["tag", "attributes", "children"], "Compiler-Strom");
  9. //>>excludeStart("ide", pragmas.excludeIdeData);
  10. $globals.StromNode.comment="I represent an assignment node.";
  11. //>>excludeEnd("ide");
  12. $core.addMethod(
  13. $core.method({
  14. selector: "acceptDagVisitor:",
  15. protocol: "visiting",
  16. fn: function (aVisitor){
  17. var self=this,$self=this;
  18. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  19. return $core.withContext(function($ctx1) {
  20. //>>excludeEnd("ctx");
  21. return $recv(aVisitor)._visitDagNode_(self);
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. }, function($ctx1) {$ctx1.fill(self,"acceptDagVisitor:",{aVisitor:aVisitor},$globals.StromNode)});
  24. //>>excludeEnd("ctx");
  25. },
  26. //>>excludeStart("ide", pragmas.excludeIdeData);
  27. args: ["aVisitor"],
  28. source: "acceptDagVisitor: aVisitor\x0a\x09^ aVisitor visitDagNode: self",
  29. referencedClasses: [],
  30. //>>excludeEnd("ide");
  31. messageSends: ["visitDagNode:"]
  32. }),
  33. $globals.StromNode);
  34. $core.addMethod(
  35. $core.method({
  36. selector: "attributes",
  37. protocol: "accessing",
  38. fn: function (){
  39. var self=this,$self=this;
  40. return $self["@attributes"];
  41. },
  42. //>>excludeStart("ide", pragmas.excludeIdeData);
  43. args: [],
  44. source: "attributes\x0a\x09^ attributes",
  45. referencedClasses: [],
  46. //>>excludeEnd("ide");
  47. messageSends: []
  48. }),
  49. $globals.StromNode);
  50. $core.addMethod(
  51. $core.method({
  52. selector: "attributes:",
  53. protocol: "accessing",
  54. fn: function (anObject){
  55. var self=this,$self=this;
  56. $self["@attributes"]=anObject;
  57. return self;
  58. },
  59. //>>excludeStart("ide", pragmas.excludeIdeData);
  60. args: ["anObject"],
  61. source: "attributes: anObject\x0a\x09attributes := anObject",
  62. referencedClasses: [],
  63. //>>excludeEnd("ide");
  64. messageSends: []
  65. }),
  66. $globals.StromNode);
  67. $core.addMethod(
  68. $core.method({
  69. selector: "children",
  70. protocol: "accessing",
  71. fn: function (){
  72. var self=this,$self=this;
  73. return $self["@children"];
  74. },
  75. //>>excludeStart("ide", pragmas.excludeIdeData);
  76. args: [],
  77. source: "children\x0a\x09^ children",
  78. referencedClasses: [],
  79. //>>excludeEnd("ide");
  80. messageSends: []
  81. }),
  82. $globals.StromNode);
  83. $core.addMethod(
  84. $core.method({
  85. selector: "children:",
  86. protocol: "accessing",
  87. fn: function (anObject){
  88. var self=this,$self=this;
  89. $self["@children"]=anObject;
  90. return self;
  91. },
  92. //>>excludeStart("ide", pragmas.excludeIdeData);
  93. args: ["anObject"],
  94. source: "children: anObject\x0a\x09children := anObject",
  95. referencedClasses: [],
  96. //>>excludeEnd("ide");
  97. messageSends: []
  98. }),
  99. $globals.StromNode);
  100. $core.addMethod(
  101. $core.method({
  102. selector: "dagChildren",
  103. protocol: "accessing",
  104. fn: function (){
  105. var self=this,$self=this;
  106. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  107. return $core.withContext(function($ctx1) {
  108. //>>excludeEnd("ctx");
  109. var $1;
  110. $1=[$self._tag()];
  111. $recv($1)._addAll_($self._attributes());
  112. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  113. $ctx1.sendIdx["addAll:"]=1;
  114. //>>excludeEnd("ctx");
  115. $recv($1)._addAll_($self._children());
  116. return $recv($1)._yourself();
  117. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  118. }, function($ctx1) {$ctx1.fill(self,"dagChildren",{},$globals.StromNode)});
  119. //>>excludeEnd("ctx");
  120. },
  121. //>>excludeStart("ide", pragmas.excludeIdeData);
  122. args: [],
  123. source: "dagChildren\x0a\x09^ { self tag }\x0a\x09\x09addAll: self attributes;\x0a\x09\x09addAll: self children;\x0a\x09\x09yourself",
  124. referencedClasses: [],
  125. //>>excludeEnd("ide");
  126. messageSends: ["addAll:", "tag", "attributes", "children", "yourself"]
  127. }),
  128. $globals.StromNode);
  129. $core.addMethod(
  130. $core.method({
  131. selector: "tag",
  132. protocol: "accessing",
  133. fn: function (){
  134. var self=this,$self=this;
  135. return $self["@tag"];
  136. },
  137. //>>excludeStart("ide", pragmas.excludeIdeData);
  138. args: [],
  139. source: "tag\x0a\x09^ tag",
  140. referencedClasses: [],
  141. //>>excludeEnd("ide");
  142. messageSends: []
  143. }),
  144. $globals.StromNode);
  145. $core.addMethod(
  146. $core.method({
  147. selector: "tag:",
  148. protocol: "accessing",
  149. fn: function (anObject){
  150. var self=this,$self=this;
  151. $self["@tag"]=anObject;
  152. return self;
  153. },
  154. //>>excludeStart("ide", pragmas.excludeIdeData);
  155. args: ["anObject"],
  156. source: "tag: anObject\x0a\x09tag := anObject",
  157. referencedClasses: [],
  158. //>>excludeEnd("ide");
  159. messageSends: []
  160. }),
  161. $globals.StromNode);
  162. });