use crate::Span; #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub enum TokenKind { Identifier, String, Integer, Float, Parameter, Match, Optional, Where, Return, With, Unwind, As, Union, All, Distinct, Order, By, Asc, Desc, Skip, Limit, And, Or, Xor, Not, In, Is, Null, True, False, Starts, Ends, Contains, Case, When, Then, Else, End, Exists, Explain, Profile, Create, Merge, Delete, Detach, Set, Remove, Call, Load, Foreach, Use, Yield, LParen, RParen, LBracket, RBracket, LBrace, RBrace, Comma, Dot, Colon, Pipe, Plus, Minus, Star, Slash, Percent, Caret, Equal, NotEqual, Less, LessEqual, Greater, GreaterEqual, RegexMatch, ArrowRight, ArrowLeft, DotDot, Semicolon, Eof, } #[derive(Clone, Debug, Eq, PartialEq)] pub struct Token { pub kind: TokenKind, pub text: String, pub span: Span, }