@dbml/parse
Version:
> TODO: description
106 lines (105 loc) • 3.27 kB
TypeScript
import { default as SymbolTable } from './symbolTable';
import { SyntaxNode } from '../../parser/nodes';
export type NodeSymbolId = number;
export declare class NodeSymbolIdGenerator {
private id;
reset(): void;
nextId(): NodeSymbolId;
}
export interface NodeSymbol {
id: NodeSymbolId;
symbolTable?: SymbolTable;
declaration?: SyntaxNode;
references: SyntaxNode[];
injectorDeclaration?: SyntaxNode;
}
export declare class SchemaSymbol implements NodeSymbol {
id: NodeSymbolId;
symbolTable: SymbolTable;
references: SyntaxNode[];
constructor({ symbolTable }: {
symbolTable: SymbolTable;
}, id: NodeSymbolId);
}
export declare class EnumSymbol implements NodeSymbol {
id: NodeSymbolId;
symbolTable: SymbolTable;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ symbolTable, declaration }: {
symbolTable: SymbolTable;
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class EnumFieldSymbol implements NodeSymbol {
id: NodeSymbolId;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ declaration }: {
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TableSymbol implements NodeSymbol {
id: NodeSymbolId;
symbolTable: SymbolTable;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ symbolTable, declaration }: {
symbolTable: SymbolTable;
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class ColumnSymbol implements NodeSymbol {
id: NodeSymbolId;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ declaration }: {
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TableGroupSymbol implements NodeSymbol {
id: NodeSymbolId;
symbolTable: SymbolTable;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ symbolTable, declaration }: {
symbolTable: SymbolTable;
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TableGroupFieldSymbol implements NodeSymbol {
id: NodeSymbolId;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ declaration }: {
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TablePartialSymbol implements NodeSymbol {
id: NodeSymbolId;
symbolTable: SymbolTable;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ symbolTable, declaration }: {
symbolTable: SymbolTable;
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TablePartialInjectionSymbol implements NodeSymbol {
id: NodeSymbolId;
declaration: SyntaxNode;
references: SyntaxNode[];
constructor({ declaration }: {
declaration: SyntaxNode;
}, id: NodeSymbolId);
}
export declare class TablePartialInjectedColumnSymbol implements NodeSymbol {
id: NodeSymbolId;
injectorDeclaration: SyntaxNode;
injectorFieldSymbol: NodeSymbol;
references: SyntaxNode[];
constructor({ injectorFieldSymbol, injectorDeclaration }: {
injectorFieldSymbol: NodeSymbol;
injectorDeclaration: SyntaxNode;
}, id: NodeSymbolId);
}