@dbml/parse
Version:
> TODO: description
38 lines (37 loc) • 2.01 kB
TypeScript
import { Option } from '../option';
import { ElementDeclarationNode, FunctionExpressionNode, InfixExpressionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from '../parser/nodes';
import { NodeSymbolIndex } from './symbol/symbolIndex';
import { NodeSymbol } from './symbol/symbols';
import { SyntaxToken } from '../lexer/tokens';
import { ElementKind } from './types';
export declare function getElementKind(node?: ElementDeclarationNode): Option<ElementKind>;
export declare function destructureMemberAccessExpression(node: SyntaxNode): Option<SyntaxNode[]>;
export declare function destructureComplexVariable(node?: SyntaxNode): Option<string[]>;
export declare function destructureComplexTuple(node?: SyntaxNode): Option<{
variables: string[];
tupleElements?: string[];
}>;
export declare function extractVariableFromExpression(node?: SyntaxNode): Option<string>;
export declare function destructureIndexNode(node: SyntaxNode): Option<{
functional: FunctionExpressionNode[];
nonFunctional: (PrimaryExpressionNode & {
expression: VariableNode;
})[];
}>;
export declare function extractVarNameFromPrimaryVariable(node?: PrimaryExpressionNode & {
expression: VariableNode;
}): Option<string>;
export declare function extractQuotedStringToken(value?: SyntaxNode): Option<string>;
export declare function isBinaryRelationship(value?: SyntaxNode): value is InfixExpressionNode;
export declare function isEqualTupleOperands(value: InfixExpressionNode): value is InfixExpressionNode;
export declare function isValidIndexName(value?: SyntaxNode): value is (PrimaryExpressionNode & {
expression: VariableNode;
}) | FunctionExpressionNode;
export declare function extractIndexName(value: (PrimaryExpressionNode & {
expression: VariableNode & {
variable: SyntaxToken;
};
}) | (FunctionExpressionNode & {
value: SyntaxToken;
})): string;
export declare function findSymbol(id: NodeSymbolIndex, startElement: ElementDeclarationNode): NodeSymbol | undefined;