@dbml/parse
Version:
> TODO: description
77 lines (76 loc) • 2.29 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[];
}
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);
}