MapHandler.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. "use strict";
  2. var __values = (this && this.__values) || function(o) {
  3. var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
  4. if (m) return m.call(o);
  5. if (o && typeof o.length === "number") return {
  6. next: function () {
  7. if (o && i >= o.length) o = void 0;
  8. return { value: o && o[i++], done: !o };
  9. }
  10. };
  11. throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
  12. };
  13. var __read = (this && this.__read) || function (o, n) {
  14. var m = typeof Symbol === "function" && o[Symbol.iterator];
  15. if (!m) return o;
  16. var i = m.call(o), r, ar = [], e;
  17. try {
  18. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  19. }
  20. catch (error) { e = { error: error }; }
  21. finally {
  22. try {
  23. if (r && !r.done && (m = i["return"])) m.call(i);
  24. }
  25. finally { if (e) throw e.error; }
  26. }
  27. return ar;
  28. };
  29. Object.defineProperty(exports, "__esModule", { value: true });
  30. exports.SubHandlers = exports.SubHandler = exports.MapHandler = void 0;
  31. var PrioritizedList_js_1 = require("../../util/PrioritizedList.js");
  32. var FunctionList_js_1 = require("../../util/FunctionList.js");
  33. var MapHandler;
  34. (function (MapHandler) {
  35. var maps = new Map();
  36. MapHandler.register = function (map) {
  37. maps.set(map.name, map);
  38. };
  39. MapHandler.getMap = function (name) {
  40. return maps.get(name);
  41. };
  42. })(MapHandler = exports.MapHandler || (exports.MapHandler = {}));
  43. var SubHandler = (function () {
  44. function SubHandler() {
  45. this._configuration = new PrioritizedList_js_1.PrioritizedList();
  46. this._fallback = new FunctionList_js_1.FunctionList();
  47. }
  48. SubHandler.prototype.add = function (maps, fallback, priority) {
  49. var e_1, _a;
  50. if (priority === void 0) { priority = PrioritizedList_js_1.PrioritizedList.DEFAULTPRIORITY; }
  51. try {
  52. for (var _b = __values(maps.slice().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {
  53. var name_1 = _c.value;
  54. var map = MapHandler.getMap(name_1);
  55. if (!map) {
  56. this.warn('Configuration ' + name_1 + ' not found! Omitted.');
  57. return;
  58. }
  59. this._configuration.add(map, priority);
  60. }
  61. }
  62. catch (e_1_1) { e_1 = { error: e_1_1 }; }
  63. finally {
  64. try {
  65. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  66. }
  67. finally { if (e_1) throw e_1.error; }
  68. }
  69. if (fallback) {
  70. this._fallback.add(fallback, priority);
  71. }
  72. };
  73. SubHandler.prototype.parse = function (input) {
  74. var e_2, _a;
  75. try {
  76. for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {
  77. var map = _c.value.item;
  78. var result = map.parse(input);
  79. if (result) {
  80. return result;
  81. }
  82. }
  83. }
  84. catch (e_2_1) { e_2 = { error: e_2_1 }; }
  85. finally {
  86. try {
  87. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  88. }
  89. finally { if (e_2) throw e_2.error; }
  90. }
  91. var _d = __read(input, 2), env = _d[0], symbol = _d[1];
  92. Array.from(this._fallback)[0].item(env, symbol);
  93. };
  94. SubHandler.prototype.lookup = function (symbol) {
  95. var map = this.applicable(symbol);
  96. return map ? map.lookup(symbol) : null;
  97. };
  98. SubHandler.prototype.contains = function (symbol) {
  99. return this.applicable(symbol) ? true : false;
  100. };
  101. SubHandler.prototype.toString = function () {
  102. var e_3, _a;
  103. var names = [];
  104. try {
  105. for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {
  106. var map = _c.value.item;
  107. names.push(map.name);
  108. }
  109. }
  110. catch (e_3_1) { e_3 = { error: e_3_1 }; }
  111. finally {
  112. try {
  113. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  114. }
  115. finally { if (e_3) throw e_3.error; }
  116. }
  117. return names.join(', ');
  118. };
  119. SubHandler.prototype.applicable = function (symbol) {
  120. var e_4, _a;
  121. try {
  122. for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {
  123. var map = _c.value.item;
  124. if (map.contains(symbol)) {
  125. return map;
  126. }
  127. }
  128. }
  129. catch (e_4_1) { e_4 = { error: e_4_1 }; }
  130. finally {
  131. try {
  132. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  133. }
  134. finally { if (e_4) throw e_4.error; }
  135. }
  136. return null;
  137. };
  138. SubHandler.prototype.retrieve = function (name) {
  139. var e_5, _a;
  140. try {
  141. for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {
  142. var map = _c.value.item;
  143. if (map.name === name) {
  144. return map;
  145. }
  146. }
  147. }
  148. catch (e_5_1) { e_5 = { error: e_5_1 }; }
  149. finally {
  150. try {
  151. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  152. }
  153. finally { if (e_5) throw e_5.error; }
  154. }
  155. return null;
  156. };
  157. SubHandler.prototype.warn = function (message) {
  158. console.log('TexParser Warning: ' + message);
  159. };
  160. return SubHandler;
  161. }());
  162. exports.SubHandler = SubHandler;
  163. var SubHandlers = (function () {
  164. function SubHandlers() {
  165. this.map = new Map();
  166. }
  167. SubHandlers.prototype.add = function (handlers, fallbacks, priority) {
  168. var e_6, _a;
  169. if (priority === void 0) { priority = PrioritizedList_js_1.PrioritizedList.DEFAULTPRIORITY; }
  170. try {
  171. for (var _b = __values(Object.keys(handlers)), _c = _b.next(); !_c.done; _c = _b.next()) {
  172. var key = _c.value;
  173. var name_2 = key;
  174. var subHandler = this.get(name_2);
  175. if (!subHandler) {
  176. subHandler = new SubHandler();
  177. this.set(name_2, subHandler);
  178. }
  179. subHandler.add(handlers[name_2], fallbacks[name_2], priority);
  180. }
  181. }
  182. catch (e_6_1) { e_6 = { error: e_6_1 }; }
  183. finally {
  184. try {
  185. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  186. }
  187. finally { if (e_6) throw e_6.error; }
  188. }
  189. };
  190. SubHandlers.prototype.set = function (name, subHandler) {
  191. this.map.set(name, subHandler);
  192. };
  193. SubHandlers.prototype.get = function (name) {
  194. return this.map.get(name);
  195. };
  196. SubHandlers.prototype.retrieve = function (name) {
  197. var e_7, _a;
  198. try {
  199. for (var _b = __values(this.map.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
  200. var handler = _c.value;
  201. var map = handler.retrieve(name);
  202. if (map) {
  203. return map;
  204. }
  205. }
  206. }
  207. catch (e_7_1) { e_7 = { error: e_7_1 }; }
  208. finally {
  209. try {
  210. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  211. }
  212. finally { if (e_7) throw e_7.error; }
  213. }
  214. return null;
  215. };
  216. SubHandlers.prototype.keys = function () {
  217. return this.map.keys();
  218. };
  219. return SubHandlers;
  220. }());
  221. exports.SubHandlers = SubHandlers;
  222. //# sourceMappingURL=MapHandler.js.map