rust_grammar_dpdfa/
token.rs

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}