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