recursiveAngularExpressionVisitor.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = function (d, b) {
  4. extendStatics = Object.setPrototypeOf ||
  5. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  6. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  7. return extendStatics(d, b);
  8. };
  9. return function (d, b) {
  10. extendStatics(d, b);
  11. function __() { this.constructor = d; }
  12. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  13. };
  14. })();
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. var sourceMappingVisitor_1 = require("../sourceMappingVisitor");
  17. var RecursiveAngularExpressionVisitor = (function (_super) {
  18. __extends(RecursiveAngularExpressionVisitor, _super);
  19. function RecursiveAngularExpressionVisitor(sourceFile, options, context, basePosition) {
  20. var _this = _super.call(this, sourceFile, options, context.template.template, basePosition) || this;
  21. _this.context = context;
  22. _this.basePosition = basePosition;
  23. _this.preDefinedVariables = {};
  24. return _this;
  25. }
  26. RecursiveAngularExpressionVisitor.prototype.visit = function (ast, context) {
  27. ast.visit(this, context);
  28. return null;
  29. };
  30. RecursiveAngularExpressionVisitor.prototype.visitNonNullAssert = function (ast, context) {
  31. ast.visit(this, context);
  32. return null;
  33. };
  34. RecursiveAngularExpressionVisitor.prototype.visitBinary = function (ast, context) {
  35. ast.left.visit(this, context);
  36. ast.right.visit(this, context);
  37. return null;
  38. };
  39. RecursiveAngularExpressionVisitor.prototype.visitChain = function (ast, context) {
  40. return this.visitAll(ast.expressions, context);
  41. };
  42. RecursiveAngularExpressionVisitor.prototype.visitConditional = function (ast, context) {
  43. ast.condition.visit(this, context);
  44. ast.trueExp.visit(this, context);
  45. ast.falseExp.visit(this, context);
  46. return null;
  47. };
  48. RecursiveAngularExpressionVisitor.prototype.visitPipe = function (ast, context) {
  49. ast.exp.visit(this, context);
  50. this.visitAll(ast.args, context);
  51. return null;
  52. };
  53. RecursiveAngularExpressionVisitor.prototype.visitFunctionCall = function (ast, context) {
  54. ast.target.visit(this, context);
  55. this.visitAll(ast.args, context);
  56. return null;
  57. };
  58. RecursiveAngularExpressionVisitor.prototype.visitImplicitReceiver = function (ast, context) {
  59. return null;
  60. };
  61. RecursiveAngularExpressionVisitor.prototype.visitInterpolation = function (ast, context) {
  62. var _this = this;
  63. ast.expressions.forEach(function (e, i) { return _this.visit(e, context); });
  64. return null;
  65. };
  66. RecursiveAngularExpressionVisitor.prototype.visitKeyedRead = function (ast, context) {
  67. ast.obj.visit(this, context);
  68. ast.key.visit(this, context);
  69. return null;
  70. };
  71. RecursiveAngularExpressionVisitor.prototype.visitKeyedWrite = function (ast, context) {
  72. ast.obj.visit(this, context);
  73. ast.key.visit(this, context);
  74. ast.value.visit(this, context);
  75. return null;
  76. };
  77. RecursiveAngularExpressionVisitor.prototype.visitLiteralArray = function (ast, context) {
  78. return this.visitAll(ast.expressions, context);
  79. };
  80. RecursiveAngularExpressionVisitor.prototype.visitLiteralMap = function (ast, context) {
  81. return this.visitAll(ast.values, context);
  82. };
  83. RecursiveAngularExpressionVisitor.prototype.visitLiteralPrimitive = function (ast, context) {
  84. return null;
  85. };
  86. RecursiveAngularExpressionVisitor.prototype.visitMethodCall = function (ast, context) {
  87. ast.receiver.visit(this, context);
  88. return this.visitAll(ast.args, context);
  89. };
  90. RecursiveAngularExpressionVisitor.prototype.visitPrefixNot = function (ast, context) {
  91. ast.expression.visit(this, context);
  92. return null;
  93. };
  94. RecursiveAngularExpressionVisitor.prototype.visitPropertyRead = function (ast, context) {
  95. ast.receiver.visit(this, context);
  96. return null;
  97. };
  98. RecursiveAngularExpressionVisitor.prototype.visitPropertyWrite = function (ast, context) {
  99. ast.receiver.visit(this, context);
  100. ast.value.visit(this, context);
  101. return null;
  102. };
  103. RecursiveAngularExpressionVisitor.prototype.visitSafePropertyRead = function (ast, context) {
  104. ast.receiver.visit(this, context);
  105. return null;
  106. };
  107. RecursiveAngularExpressionVisitor.prototype.visitSafeMethodCall = function (ast, context) {
  108. ast.receiver.visit(this, context);
  109. return this.visitAll(ast.args, context);
  110. };
  111. RecursiveAngularExpressionVisitor.prototype.visitAll = function (asts, context) {
  112. var _this = this;
  113. asts.forEach(function (ast) { return ast.visit(_this, context); });
  114. return null;
  115. };
  116. RecursiveAngularExpressionVisitor.prototype.visitQuote = function (ast, context) {
  117. return null;
  118. };
  119. return RecursiveAngularExpressionVisitor;
  120. }(sourceMappingVisitor_1.SourceMappingVisitor));
  121. exports.RecursiveAngularExpressionVisitor = RecursiveAngularExpressionVisitor;