#[non_exhaustive]pub enum Token {
Show 36 variants
Keyword(Keyword, Span),
IntLit(i64, Span),
FloatLit(f64, Span),
StrLit(String, Span),
BoolLit(bool, Span),
NullLit(Span),
Ident(String, Span),
Param(String, Span),
LParen(Span),
RParen(Span),
LBracket(Span),
RBracket(Span),
LBrace(Span),
RBrace(Span),
Dot(Span),
Comma(Span),
Colon(Span),
Semi(Span),
Pipe(Span),
DotDot(Span),
Eq(Span),
Neq(Span),
Lt(Span),
Lte(Span),
Gt(Span),
Gte(Span),
Plus(Span),
Minus(Span),
Star(Span),
Slash(Span),
Percent(Span),
Caret(Span),
RegexMatch(Span),
Whitespace(Span),
Comment(String, Span),
Eof(Span),
}Expand description
A lexed token emitted by the GraphForge Cypher lexer.
Every variant carries a Span so that downstream consumers can report
precise error locations. The lexer never omits the span — not even for
whitespace tokens that the parser would normally discard.
§Stability
This enum is #[non_exhaustive]. Parsers and test harnesses must match
only the variants they care about and use a wildcard arm.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Keyword(Keyword, Span)
A reserved keyword (case-insensitive in openCypher).
IntLit(i64, Span)
A decimal or hexadecimal integer literal.
FloatLit(f64, Span)
A floating-point literal.
StrLit(String, Span)
A single- or double-quoted string literal (escape sequences resolved).
BoolLit(bool, Span)
true or false (also surfaced as Keyword::True/False for parity).
NullLit(Span)
The null literal.
Ident(String, Span)
An unquoted or backtick-quoted identifier.
Param(String, Span)
A Cypher parameter: $name or $0.
LParen(Span)
(
RParen(Span)
)
LBracket(Span)
[
RBracket(Span)
]
LBrace(Span)
{
RBrace(Span)
}
Dot(Span)
.
Comma(Span)
,
Colon(Span)
:
Semi(Span)
;
Pipe(Span)
|
DotDot(Span)
.. (variable-length relationship range separator)
Eq(Span)
=
Neq(Span)
<> or !=
Lt(Span)
<
Lte(Span)
<=
Gt(Span)
>
Gte(Span)
>=
Plus(Span)
+
Minus(Span)
-
Star(Span)
*
Slash(Span)
/
Percent(Span)
%
Caret(Span)
^
RegexMatch(Span)
=~ (regular expression match)
Whitespace(Span)
Whitespace (space, tab, newline).
Comment(String, Span)
A single- or multi-line comment.
Eof(Span)
End of input.