@neo4j-cypher/language-support
Version:
Cypher language support
87 lines (86 loc) • 2.44 kB
TypeScript
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 {};