apollo_parser/lexer/
token_kind.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
16#[repr(u16)]
17pub enum TokenKind {
18 Whitespace, Comment, Bang, Dollar, Amp, Spread, Comma, Colon, Eq, At, LParen, RParen, LBracket, RBracket, LCurly, RCurly, Pipe, Eof,
36
37 Name,
39 StringValue,
40 Int,
41 Float,
42}
43
44#[macro_export]
46macro_rules! T {
47 [!] => { $ crate :: TokenKind :: Bang } ;
48 [$] => { $ crate :: TokenKind :: Dollar } ;
49 [&] => { $ crate :: TokenKind :: Amp } ;
50 [...] => { $ crate :: TokenKind :: Spread } ;
51 [,] => { $ crate :: TokenKind :: Comma } ;
52 [:] => { $ crate :: TokenKind :: Colon } ;
53 [=] => { $ crate :: TokenKind :: Eq } ;
54 [@] => { $ crate :: TokenKind :: At } ;
55 ['('] => { $ crate :: TokenKind :: LParen } ;
56 [')'] => { $ crate :: TokenKind :: RParen } ;
57 ['['] => { $ crate :: TokenKind :: LBracket } ;
58 [']'] => { $ crate :: TokenKind :: RBracket } ;
59 ['{'] => { $ crate :: TokenKind :: LCurly } ;
60 ['}'] => { $ crate :: TokenKind :: RCurly } ;
61 [|] => { $ crate :: TokenKind :: Pipe } ;
62
63 [name] => { $ crate :: TokenKind :: Name } ;
65 [string] => { $ crate :: TokenKind :: StringValue} ;
66 [int] => { $ crate :: TokenKind :: Int} ;
67 [float] => { $ crate :: TokenKind :: Float} ;
68}