UNPKG

@bitloops/bl-transpiler

Version:
29 lines 1.08 kB
// import { InferredTypes } from '../../../src/semantic-analysis/type-inference/ASTTypeInference.js'; // import { SymbolTable } from '../../../src/semantic-analysis/type-inference/SymbolTable.js'; import { ClassTypeThisSymbolEntry, VariableSymbolEntry, } from '../../../src/semantic-analysis/type-inference/SymbolEntry.js'; export class SymbolTableBuilder { value = { locals: {} }; insert(name, symbolEntry) { this.value.locals[name] = symbolEntry; return this; } insertVariableSymbolEntry(name, type, isConst) { this.value.locals[name] = new VariableSymbolEntry(type, isConst); return this; } insertThisClassTypeSymbolEntry(type) { this.value.locals['this'] = new 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; } } //# sourceMappingURL=SymbolTableBuilder.js.map