1#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)]
2pub enum TokenDescription {
3 Ident,
4 Lifetime,
5 As,
6 Async,
7 Await,
8 Break,
9 Const,
10 Continue,
11 Crate,
12 Dyn,
13 Else,
14 Enum,
15 Extern,
16 False,
17 Fn,
18 For,
19 If,
20 Impl,
21 In,
22 Let,
23 Loop,
24 Match,
25 Mod,
26 Move,
27 Mut,
28 Pub,
29 Ref,
30 Return,
31 Self_,
32 SelfUpper,
33 Static,
34 Struct,
35 Super,
36 Trait,
37 True,
38 Type,
39 Union,
40 Unsafe,
41 Use,
42 Where,
43 While,
44 Yield,
45 Abstract,
46 Become,
47 Box,
48 Do,
49 Final,
50 Macro,
51 Override,
52 Priv,
53 Try,
54 Typeof,
55 Unsized,
56 Virtual,
57 Literal,
58 Plus,
59 Minus,
60 Star,
61 Slash,
62 Percent,
63 Caret,
64 Not,
65 And,
66 Or,
67 AndAnd,
68 OrOr,
69 Shl,
70 Shr,
71 PlusEquals,
72 MinusEquals,
73 StarEquals,
74 SlashEquals,
75 PercentEquals,
76 CaretEquals,
77 AndEquals,
78 OrEquals,
79 ShlEquals,
80 ShrEquals,
81 Equals,
82 EqualsEquals,
83 NotEquals,
84 GreaterThan,
85 LessThan,
86 GreaterThanEquals,
87 LessThanEquals,
88 At,
89 Underscore,
90 Dot,
91 DotDot,
92 DotDotDot,
93 DotDotEquals,
94 Comma,
95 Semicolon,
96 Colon,
97 ColonColon,
98 RightArrow,
99 FatArrow,
100 Pound,
101 Dollar,
102 QuestionMark,
103 LParen,
104 RParen,
105 LBracket,
106 RBracket,
107 LBrace,
108 RBrace,
109 FragmentBlock,
110 FragmentExpr,
111 FragmentIdent,
112 FragmentItem,
113 FragmentLifetime,
114 FragmentLiteral,
115 FragmentMeta,
116 FragmentPat,
117 FragmentPatParam,
118 FragmentPath,
119 FragmentStmt,
120 FragmentTt,
121 FragmentTy,
122 FragmentVis,
123
124 Eof,
125}
126
127impl TokenDescription {
128 pub(crate) fn try_split_with(self, first: TokenDescription) -> Option<TokenDescription> {
129 use TokenDescription::*;
130
131 match (self, first) {
132 (AndAnd, And) => Some(And),
133 (OrOr, Or) => Some(Or),
134 (Shl, LessThan) => Some(LessThan),
135 (Shr, GreaterThan) => Some(GreaterThan),
136 (PlusEquals, Plus) => Some(Equals),
137 (MinusEquals, Minus) => Some(Equals),
138 (StarEquals, Star) => Some(Equals),
139 (SlashEquals, Slash) => Some(Equals),
140 (PercentEquals, Percent) => Some(Equals),
141 (CaretEquals, Caret) => Some(Equals),
142 (AndEquals, And) => Some(Equals),
143 (OrEquals, Or) => Some(Equals),
144 (ShlEquals, Shl) => Some(Equals),
145 (ShrEquals, Shr) => Some(Equals),
146 (ShrEquals, GreaterThan) => Some(GreaterThanEquals),
147 (DotDot, Dot) => Some(Dot),
148 _ => None,
149 }
150 }
151}