@bitloops/bl-transpiler
Version:
The one and only Bitloops Language transpiler
33 lines • 1.24 kB
JavaScript
;
// import { InferredTypes } from '../../../src/semantic-analysis/type-inference/ASTTypeInference.js';
// import { SymbolTable } from '../../../src/semantic-analysis/type-inference/SymbolTable.js';
Object.defineProperty(exports, "__esModule", { value: true });
exports.SymbolTableBuilder = void 0;
const SymbolEntry_js_1 = require("../../../src/semantic-analysis/type-inference/SymbolEntry.js");
class SymbolTableBuilder {
value = { locals: {} };
insert(name, symbolEntry) {
this.value.locals[name] = symbolEntry;
return this;
}
insertVariableSymbolEntry(name, type, isConst) {
this.value.locals[name] = new SymbolEntry_js_1.VariableSymbolEntry(type, isConst);
return this;
}
insertThisClassTypeSymbolEntry(type) {
this.value.locals['this'] = new SymbolEntry_js_1.ClassTypeThisSymbolEntry(type);
return this;
}
insertChildScope(name, child) {
if (!this.value.children) {
this.value.children = {};
}
this.value.children[name] = child.build();
return this;
}
build() {
return this.value;
}
}
exports.SymbolTableBuilder = SymbolTableBuilder;
//# sourceMappingURL=SymbolTableBuilder.js.map