@bitloops/bl-transpiler
Version:
The one and only Bitloops Language transpiler
29 lines • 1.08 kB
JavaScript
// 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