@dbml/parse
Version:
> TODO: description
47 lines (46 loc) • 2.09 kB
TypeScript
import { SyntaxToken, SyntaxTokenKind } from '../lexer/tokens';
import { Option } from '../option';
import { default as NodeFactory } from './factory';
import { ElementDeclarationNode, ExpressionNode, IdentiferStreamNode, InfixExpressionNode, LiteralNode, NormalExpressionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from './nodes';
export declare function convertFuncAppToElem(callee: ExpressionNode | undefined, args: NormalExpressionNode[], factory: NodeFactory): Option<ElementDeclarationNode>;
export declare function isAsKeyword(token: SyntaxToken): token is SyntaxToken & {
kind: SyntaxTokenKind.IDENTIFIER;
value: 'as';
};
export declare function markInvalid(nodeOrToken?: SyntaxNode | SyntaxToken): void;
export declare function isInvalidToken(token?: SyntaxToken): boolean;
export declare function getMemberChain(node: SyntaxNode): Readonly<(SyntaxNode | SyntaxToken)[]>;
export declare function extractVariableNode(value?: unknown): Option<SyntaxToken>;
export declare function isExpressionAQuotedString(value?: unknown): value is PrimaryExpressionNode & ({
expression: VariableNode & {
variable: SyntaxToken & {
kind: SyntaxTokenKind.QUOTED_STRING;
};
};
} | {
expression: LiteralNode & {
literal: SyntaxToken & {
kind: SyntaxTokenKind.STRING_LITERAL;
};
};
});
export declare function isExpressionAVariableNode(value?: unknown): value is PrimaryExpressionNode & {
expression: VariableNode & {
variable: SyntaxToken;
};
};
export declare function isExpressionAnIdentifierNode(value?: unknown): value is PrimaryExpressionNode & {
expression: VariableNode & {
variable: {
kind: SyntaxTokenKind.IDENTIFIER;
};
};
};
export declare function isAccessExpression(node: SyntaxNode): node is InfixExpressionNode & {
leftExpression: SyntaxNode;
rightExpression: SyntaxNode;
op: SyntaxToken & {
value: '.';
};
};
export declare function extractStringFromIdentifierStream(stream?: IdentiferStreamNode): Option<string>;