123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Import = void 0;
- const ast_1 = require("./ast");
- class Import {
- constructor(parent, symbols) {
- this.parent = parent;
- this.symbols = symbols;
- this.byText = new Map();
- this.offset = parent ? parent.offset + parent.length : 1;
- this.length = symbols.length;
- for (let i = 0; i < symbols.length; i++) {
- const symbol = symbols[i];
- this.byText.set(symbol, this.offset + i);
- }
- }
- getId(symbol) {
- const id = this.byText.get(symbol);
- if (id !== undefined)
- return id;
- if (this.parent)
- this.parent.getId(symbol);
- return undefined;
- }
- getText(id) {
- if (id < this.offset)
- return this.parent ? this.parent.getText(id) : undefined;
- return this.symbols[id - this.offset];
- }
- add(symbol) {
- let id = this.byText.get(symbol);
- if (id !== undefined)
- return id;
- const length = this.symbols.length;
- id = this.offset + length;
- this.symbols.push(symbol);
- this.length++;
- this.byText.set(symbol, id);
- return id;
- }
- toAst() {
- const map = new Map();
- map.set(7, (0, ast_1.toAst)(this.symbols, this));
- return new ast_1.ObjAstNode(map);
- }
- }
- exports.Import = Import;
- //# sourceMappingURL=Import.js.map
|