1 | import { Core, Dict } from '@glimmer/interfaces';
|
2 | import { ASTv2 } from '..';
|
3 | export declare abstract class SymbolTable {
|
4 | static top(locals: string[], customizeComponentName: (input: string) => string): ProgramSymbolTable;
|
5 | abstract has(name: string): boolean;
|
6 | abstract get(name: string): [symbol: number, isRoot: boolean];
|
7 | abstract getLocalsMap(): Dict<number>;
|
8 | abstract getEvalInfo(): Core.EvalInfo;
|
9 | abstract allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
|
10 | abstract allocateNamed(name: string): number;
|
11 | abstract allocateBlock(name: string): number;
|
12 | abstract allocate(identifier: string): number;
|
13 | abstract setHasEval(): void;
|
14 | child(locals: string[]): BlockSymbolTable;
|
15 | }
|
16 | export declare class ProgramSymbolTable extends SymbolTable {
|
17 | #private;
|
18 | private templateLocals;
|
19 | private customizeComponentName;
|
20 | constructor(templateLocals: string[], customizeComponentName: (input: string) => string);
|
21 | symbols: string[];
|
22 | upvars: string[];
|
23 | private size;
|
24 | private named;
|
25 | private blocks;
|
26 | private usedTemplateLocals;
|
27 | getUsedTemplateLocals(): string[];
|
28 | setHasEval(): void;
|
29 | get hasEval(): boolean;
|
30 | has(name: string): boolean;
|
31 | get(name: string): [number, boolean];
|
32 | getLocalsMap(): Dict<number>;
|
33 | getEvalInfo(): Core.EvalInfo;
|
34 | allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
|
35 | allocateNamed(name: string): number;
|
36 | allocateBlock(name: string): number;
|
37 | allocate(identifier: string): number;
|
38 | }
|
39 | export declare class BlockSymbolTable extends SymbolTable {
|
40 | private parent;
|
41 | symbols: string[];
|
42 | slots: number[];
|
43 | constructor(parent: SymbolTable, symbols: string[], slots: number[]);
|
44 | get locals(): string[];
|
45 | has(name: string): boolean;
|
46 | get(name: string): [number, boolean];
|
47 | getLocalsMap(): Dict<number>;
|
48 | getEvalInfo(): Core.EvalInfo;
|
49 | setHasEval(): void;
|
50 | allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
|
51 | allocateNamed(name: string): number;
|
52 | allocateBlock(name: string): number;
|
53 | allocate(identifier: string): number;
|
54 | }
|
55 | //# sourceMappingURL=symbol-table.d.ts.map |
\ | No newline at end of file |