UNPKG

@neo4j-cypher/language-support

Version:
87 lines (86 loc) 2.44 kB
import type { ParserRuleContext, Token } from 'antlr4'; import { default as CypherParser, StatementOrCommandContext, StatementsOrCommandsContext } from './generated-parser/CypherCmdParser'; import { SyntaxDiagnostic } from './syntaxValidation/syntaxValidationHelpers'; export interface ParsedStatement { command: ParsedCommand; parser: CypherParser; tokens: Token[]; ctx: StatementsOrCommandsContext; diagnostics: SyntaxDiagnostic[]; stopNode: ParserRuleContext; collectedLabelOrRelTypes: LabelOrRelType[]; collectedVariables: string[]; } export interface ParsingResult { query: string; statementsParsing: ParsedStatement[]; } export interface ParsingScaffolding { query: string; statementsScaffolding: StatementParsingScaffolding[]; } export interface StatementParsingScaffolding { parser: CypherParser; tokens: Token[]; } export declare enum LabelType { nodeLabelType = "Label", relLabelType = "Relationship type", unknown = "Label or relationship type" } export type LabelOrRelType = { labeltype: LabelType; labelText: string; couldCreateNewLabel: boolean; line: number; column: number; offsets: { start: number; end: number; }; }; export declare function createParsingScaffolding(query: string): ParsingScaffolding; export declare function parse(query: string): StatementOrCommandContext[]; export declare function createParsingResult(query: string): ParsingResult; type CypherCmd = { type: 'cypher'; query: string; }; type RuleTokens = { start: Token; stop: Token; }; export type ParsedCypherCmd = CypherCmd & RuleTokens; export type ParsedCommandNoPosition = { type: 'cypher'; statement: string; } | { type: 'use'; database?: string; } | { type: 'clear'; } | { type: 'history'; } | { type: 'set-parameters'; parameters: { name: string; expression: string; }[]; } | { type: 'list-parameters'; } | { type: 'clear-parameters'; } | { type: 'parse-error'; }; export type ParsedCommand = ParsedCommandNoPosition & RuleTokens; declare class ParserWrapper { parsingResult?: ParsingResult; parse(query: string): ParsingResult; clearCache(): void; } export declare function setConsoleCommandsEnabled(enabled: boolean): void; export declare function consoleCommandEnabled(): boolean; export declare const parserWrapper: ParserWrapper; export {};