Skip to main content

Class: ASTDeterministicStringifier

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:58

Converts a Cypher AST into a deterministic string, used to generate stable cache keys and computed-column aliases during logical plan building. Embedded LangSwitch sub-expressions are replaced with opaque lang_<lang>_<N> placeholders; uniqueId is incremented on each encounter to keep them unique within one traversal.

Implements

Constructors

Constructor

new ASTDeterministicStringifier(): ASTDeterministicStringifier

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:62

Returns

ASTDeterministicStringifier

Properties

uniqueId

protected uniqueId: number = 0

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:60

Counter appended to LangSwitch placeholders to keep them unique within one traversal.

Methods

addQuotes()

protected addQuotes(str, quot): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:106

Wraps str in quot, doubling any existing occurrences of that character.

Parameters

ParameterType
strstring
quot""" | "'" | "`"

Returns

string


processAttr()

protected processAttr(x): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:82

Serializes an aliased AST pair as expr AS alias.

Parameters

ParameterType
xAliased<ASTNode>

Returns

string


processNode()

protected processNode(x): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:70

Dispatches x through this visitor and returns its string form.

Parameters

ParameterType
xASTNode

Returns

string


processNodeOrAttr()

protected processNodeOrAttr(x): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:74

Returns '*' unchanged, serializes an aliased pair as expr AS alias, or dispatches a bare node.

Parameters

ParameterType
x"*" | ASTNode | Aliased<ASTNode>

Returns

string


visitBooleanLiteral()

visitBooleanLiteral(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:124

Parameters

ParameterType
nodeASTBooleanLiteral

Returns

string

Implementation of

CypherVisitor.visitBooleanLiteral


visitCaseExpr()

visitCaseExpr(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:203

Parameters

ParameterType
nodeCaseExpr

Returns

string

Implementation of

CypherVisitor.visitCaseExpr


visitCountAll()

visitCountAll(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:210

Parameters

ParameterType
nodeCountAll

Returns

string

Implementation of

CypherVisitor.visitCountAll


visitCreateClause()

visitCreateClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:242

Parameters

ParameterType
nodeCreateClause

Returns

string

Implementation of

CypherVisitor.visitCreateClause


visitCypherIdentifier()

visitCypherIdentifier(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:102

Parameters

ParameterType
nodeCypherIdentifier

Returns

string

Implementation of

CypherVisitor.visitCypherIdentifier


visitDeleteClause()

visitDeleteClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:273

Parameters

ParameterType
nodeDeleteClause

Returns

string

Implementation of

CypherVisitor.visitDeleteClause


visitExistsSubquery()

visitExistsSubquery(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:142

Parameters

ParameterType
nodeExistsSubquery

Returns

string

Implementation of

CypherVisitor.visitExistsSubquery


visitFnCallWrapper()

visitFnCallWrapper(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:127

Parameters

ParameterType
nodeFnCallWrapper

Returns

string

Implementation of

CypherVisitor.visitFnCallWrapper


visitFunction()

visitFunction(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:311

Not implemented in the base class; subclasses must override.

Parameters

ParameterType
nodeASTFunction

Returns

string

Throws

Always throws Error('Method not implemented.').

Implementation of

CypherVisitor.visitFunction


visitIdentifier()

visitIdentifier(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:98

Parameters

ParameterType
nodeASTIdentifier

Returns

string

Implementation of

CypherVisitor.visitIdentifier


visitLabelFilterExpr()

visitLabelFilterExpr(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:213

Parameters

ParameterType
nodeLabelFilterExpr

Returns

string

Implementation of

CypherVisitor.visitLabelFilterExpr


visitLangSwitch()

visitLangSwitch(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:319

Returns an opaque lang_<lang>_<N> placeholder and increments uniqueId, producing a stable unique alias for the embedded sub-expression without recursing into it.

Parameters

ParameterType
nodeLangSwitch

Returns

string

Implementation of

CypherVisitor.visitLangSwitch


visitListComprehension()

visitListComprehension(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:197

Parameters

ParameterType
nodeListComprehension

Returns

string

Implementation of

CypherVisitor.visitListComprehension


visitListLiteral()

visitListLiteral(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:115

Parameters

ParameterType
nodeASTListLiteral

Returns

string

Implementation of

CypherVisitor.visitListLiteral


visitLiteral()

visitLiteral<T>(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:301

Not implemented in the base class; subclasses must override.

Type Parameters

Type Parameter
T

Parameters

ParameterType
nodeASTLiteral<T>

Returns

string

Throws

Always throws Error('Method not implemented.').

Implementation of

CypherVisitor.visitLiteral


visitMapLiteral()

visitMapLiteral(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:118

Parameters

ParameterType
nodeASTMapLiteral

Returns

string

Implementation of

CypherVisitor.visitMapLiteral


visitMatchClause()

visitMatchClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:233

Parameters

ParameterType
nodeMatchClause

Returns

string

Implementation of

CypherVisitor.visitMatchClause


visitMergeClause()

visitMergeClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:245

Parameters

ParameterType
nodeMergeClause

Returns

string

Implementation of

CypherVisitor.visitMergeClause


visitNodePattern()

visitNodePattern(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:155

Parameters

ParameterType
nodeNodePattern

Returns

string

Implementation of

CypherVisitor.visitNodePattern


visitNumberLiteral()

visitNumberLiteral(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:112

Parameters

ParameterType
nodeASTNumberLiteral

Returns

string

Implementation of

CypherVisitor.visitNumberLiteral


visitOperator()

visitOperator(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:304

Parameters

ParameterType
nodeASTOperator

Returns

string

Implementation of

CypherVisitor.visitOperator


visitOrderItem()

visitOrderItem(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:287

Parameters

ParameterType
nodeOrderItem

Returns

string

Implementation of

CypherVisitor.visitOrderItem


visitPatternComprehension()

visitPatternComprehension(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:191

Parameters

ParameterType
nodePatternComprehension

Returns

string

Implementation of

CypherVisitor.visitPatternComprehension


visitPatternElChain()

visitPatternElChain(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:150

Parameters

ParameterType
nodePatternElChain

Returns

string

Implementation of

CypherVisitor.visitPatternElChain


visitProjectionBody()

visitProjectionBody(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:277

Parameters

ParameterType
nodeProjectionBody

Returns

string

Implementation of

CypherVisitor.visitProjectionBody


visitPropLookup()

visitPropLookup(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:219

Parameters

ParameterType
nodePropLookup

Returns

string

Implementation of

CypherVisitor.visitPropLookup


visitQuantifiedExpr()

visitQuantifiedExpr(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:145

Parameters

ParameterType
nodeQuantifiedExpr

Returns

string

Implementation of

CypherVisitor.visitQuantifiedExpr


visitQuery()

visitQuery(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:225

Parameters

ParameterType
nodeQuery

Returns

string

Implementation of

CypherVisitor.visitQuery


visitRange()

protected visitRange(range): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:169

Serializes a relationship hop range: a single-element tuple emits just start; a two-element tuple emits start..end with missing bounds left blank (e.g. ..5 or 1..).

Parameters

ParameterType
range[ASTNode, ASTNode] | [ASTNode]

Returns

string


visitRelPattern()

visitRelPattern(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:178

Parameters

ParameterType
nodeRelPattern

Returns

string

Implementation of

CypherVisitor.visitRelPattern


visitRemoveClause()

visitRemoveClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:263

Parameters

ParameterType
nodeRemoveClause

Returns

string

Implementation of

CypherVisitor.visitRemoveClause


visitRemoveItem()

visitRemoveItem(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:266

Parameters

ParameterType
nodeRemoveItem

Returns

string

Implementation of

CypherVisitor.visitRemoveItem


visitReturnClause()

visitReturnClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:294

Parameters

ParameterType
nodeReturnClause

Returns

string

Implementation of

CypherVisitor.visitReturnClause


visitSchemaPart()

protected visitSchemaPart(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:91

Serializes one segment of a schema path: allAttrs becomes '*', other symbols and numbers use .toString(), and plain strings are backtick-quoted.

Parameters

ParameterType
nodestring | number | symbol

Returns

string


visitSetClause()

visitSetClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:253

Parameters

ParameterType
nodeSetClause

Returns

string

Implementation of

CypherVisitor.visitSetClause


visitSetItem()

visitSetItem(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:256

Parameters

ParameterType
nodeSetItem

Returns

string

Implementation of

CypherVisitor.visitSetItem


visitSetOp()

visitSetOp(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:222

Parameters

ParameterType
nodeSetOp

Returns

string

Implementation of

CypherVisitor.visitSetOp


visitStringLiteral()

visitStringLiteral(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:109

Parameters

ParameterType
nodeASTStringLiteral

Returns

string

Implementation of

CypherVisitor.visitStringLiteral


visitSubscriptExpr()

visitSubscriptExpr(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:216

Parameters

ParameterType
nodeSubscriptExpr

Returns

string

Implementation of

CypherVisitor.visitSubscriptExpr


visitUnwindClause()

visitUnwindClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:239

Parameters

ParameterType
nodeUnwindClause

Returns

string

Implementation of

CypherVisitor.visitUnwindClause


visitWithClause()

visitWithClause(node): string

Defined in: lang-cypher/src/visitors/ast-stringifier.ts:290

Parameters

ParameterType
nodeWithClause

Returns

string

Implementation of

CypherVisitor.visitWithClause