UNPKG

@dbml/parse

Version:
54 lines (53 loc) 3.19 kB
import { SyntaxToken, SyntaxTokenKind } from '../../lexer/tokens'; import { AttributeNode, BlockExpressionNode, ElementDeclarationNode, ListExpressionNode, LiteralNode, PrefixExpressionNode, PrimaryExpressionNode, SyntaxNode, TupleExpressionNode, VariableNode } from '../../parser/nodes'; import { default as CustomValidator } from './elementValidators/custom'; import { default as EnumValidator } from './elementValidators/enum'; import { default as IndexesValidator } from './elementValidators/indexes'; import { default as NoteValidator } from './elementValidators/note'; import { default as ProjectValidator } from './elementValidators/project'; import { default as RefValidator } from './elementValidators/ref'; import { default as TableValidator } from './elementValidators/table'; import { default as TableGroupValidator } from './elementValidators/tableGroup'; import { default as SymbolTable } from '../symbol/symbolTable'; import { default as SymbolFactory } from '../symbol/factory'; import { default as Report } from '../../report'; import { CompileError } from '../../errors'; export declare function pickValidator(element: ElementDeclarationNode & { type: SyntaxToken; }): typeof CustomValidator | typeof EnumValidator | typeof TableValidator | typeof TableGroupValidator | typeof ProjectValidator | typeof RefValidator | typeof NoteValidator | typeof IndexesValidator; export declare function isValidName(nameNode: SyntaxNode): boolean; export declare function isValidAlias(aliasNode: SyntaxNode): aliasNode is PrimaryExpressionNode & { expression: VariableNode; }; export declare function isSimpleName(nameNode: SyntaxNode): nameNode is PrimaryExpressionNode & { expression: VariableNode; }; export declare function isValidSettingList(settingListNode: SyntaxNode): settingListNode is ListExpressionNode; export declare function hasComplexBody(node: ElementDeclarationNode): node is ElementDeclarationNode & { body: BlockExpressionNode; bodyColon: undefined; }; export declare function hasSimpleBody(node: ElementDeclarationNode): node is ElementDeclarationNode & { bodyColon: SyntaxToken; }; export declare function registerSchemaStack(variables: string[], globalSchema: SymbolTable, symbolFactory: SymbolFactory): SymbolTable; export declare function isRelationshipOp(op?: string): boolean; export declare function isValidColor(value?: SyntaxNode): boolean; export declare function isVoid(value?: SyntaxNode): boolean; export declare function isValidDefaultValue(value?: SyntaxNode): boolean; export declare function isExpressionANumber(value?: SyntaxNode): value is PrimaryExpressionNode & { expression: LiteralNode & { literal: { kind: SyntaxTokenKind.NUMERIC_LITERAL; }; }; }; export declare function isUnaryRelationship(value?: SyntaxNode): value is PrefixExpressionNode; export declare function isTupleOfVariables(value?: SyntaxNode): value is TupleExpressionNode & { elementList: (PrimaryExpressionNode & { expression: VariableNode; })[]; }; export declare function aggregateSettingList(settingList?: ListExpressionNode): Report<{ [index: string]: AttributeNode[]; }, CompileError>;