UNPKG

@dbml/parse

Version:
38 lines (37 loc) 2.01 kB
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;