@dbml/parse
Version:
> TODO: description
28 lines (27 loc) • 1.4 kB
TypeScript
import { default as SymbolFactory } from '../../symbol/factory';
import { CompileError } from '../../../errors';
import { BlockExpressionNode, ElementDeclarationNode, ExpressionNode, FunctionApplicationNode, PartialInjectionNode } from '../../../parser/nodes';
import { ElementValidator } from '../types';
import { SyntaxToken } from '../../../lexer/tokens';
import { default as SymbolTable } from '../../symbol/symbolTable';
export default class TableValidator implements ElementValidator {
private declarationNode;
private symbolFactory;
private publicSymbolTable;
constructor(declarationNode: ElementDeclarationNode & {
type: SyntaxToken;
}, publicSymbolTable: SymbolTable, symbolFactory: SymbolFactory);
validate(): CompileError[];
private validateContext;
private validateName;
private validateAlias;
private validateSettingList;
registerElement(): CompileError[];
validateBody(body?: FunctionApplicationNode | BlockExpressionNode): CompileError[];
validateInjections(injections: PartialInjectionNode[]): CompileError[];
registerInjection(injection: PartialInjectionNode): CompileError[];
validateFields(fields: FunctionApplicationNode[]): CompileError[];
registerField(field: FunctionApplicationNode): CompileError[];
validateFieldSetting(parts: ExpressionNode[]): CompileError[];
private validateSubElements;
}