1#![allow(
5 bad_style,
6 missing_docs,
7 unreachable_pub,
8 clippy::manual_non_exhaustive,
9 clippy::upper_case_acronyms
10)]
11#[doc = r" A token generated by the `Parser`."]
12#[non_exhaustive]
13#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
14#[repr(u16)]
15pub enum SyntaxKind {
16 #[doc(hidden)]
17 TOMBSTONE,
18 #[doc(hidden)]
19 EOF,
20 BANG,
21 L_PAREN,
22 R_PAREN,
23 L_CURLY,
24 R_CURLY,
25 L_BRACK,
26 R_BRACK,
27 COMMA,
28 AT,
29 DOLLAR,
30 AMP,
31 PIPE,
32 SPREAD,
33 EQ,
34 COLON,
35 query_KW,
36 mutation_KW,
37 repeatable_KW,
38 subscription_KW,
39 fragment_KW,
40 on_KW,
41 null_KW,
42 extend_KW,
43 schema_KW,
44 scalar_KW,
45 implements_KW,
46 interface_KW,
47 union_KW,
48 enum_KW,
49 input_KW,
50 directive_KW,
51 type_KW,
52 true_KW,
53 false_KW,
54 QUERY_KW,
55 MUTATION_KW,
56 SUBSCRIPTION_KW,
57 FIELD_KW,
58 FRAGMENT_DEFINITION_KW,
59 FRAGMENT_SPREAD_KW,
60 INLINE_FRAGMENT_KW,
61 VARIABLE_DEFINITION_KW,
62 SCHEMA_KW,
63 SCALAR_KW,
64 OBJECT_KW,
65 FIELD_DEFINITION_KW,
66 ARGUMENT_DEFINITION_KW,
67 INTERFACE_KW,
68 UNION_KW,
69 ENUM_KW,
70 ENUM_VALUE_KW,
71 INPUT_OBJECT_KW,
72 INPUT_FIELD_DEFINITION_KW,
73 INT,
74 FLOAT,
75 STRING,
76 IDENT,
77 WHITESPACE,
78 COMMENT,
79 ERROR,
80 NAME,
81 INTEGER_PART,
82 NEGATIVE_SIGN,
83 NON_ZERO_DIGIT,
84 DIGIT,
85 FRACTIONAL_PART,
86 EXPONENT_PART,
87 EXPONENT_INDICATOR,
88 SIGN,
89 DOCUMENT,
90 DEFINITION,
91 EXECUTABLE_DEFINITION,
92 TYPE_SYSTEM_DEFINITION,
93 TYPE_SYSTEM_EXTENSION,
94 OPERATION_DEFINITION,
95 FRAGMENT_DEFINITION,
96 OPERATION_TYPE,
97 DIRECTIVE,
98 DIRECTIVES,
99 SELECTION_SET,
100 SELECTION,
101 FIELD,
102 FRAGMENT_SPREAD,
103 INLINE_FRAGMENT,
104 ALIAS,
105 ARGUMENTS,
106 ARGUMENT,
107 VALUE,
108 STRING_VALUE,
109 INT_VALUE,
110 FLOAT_VALUE,
111 FRAGMENT_NAME,
112 TYPE_CONDITION,
113 VARIABLE,
114 BOOLEAN_VALUE,
115 NULL_VALUE,
116 ENUM_VALUE,
117 LIST_VALUE,
118 OBJECT_VALUE,
119 OBJECT_FIELD,
120 VARIABLE_DEFINITIONS,
121 VARIABLE_DEFINITION,
122 TYPE,
123 DEFAULT_VALUE,
124 NAMED_TYPE,
125 LIST_TYPE,
126 NON_NULL_TYPE,
127 SCHEMA_DEFINITION,
128 TYPE_DEFINITION,
129 DIRECTIVE_DEFINITION,
130 SCHEMA_EXTENSION,
131 TYPE_EXTENSION,
132 ROOT_OPERATION_TYPE_DEFINITION,
133 DESCRIPTION,
134 SCALAR_TYPE_DEFINITION,
135 OBJECT_TYPE_DEFINITION,
136 INTERFACE_TYPE_DEFINITION,
137 UNION_TYPE_DEFINITION,
138 ENUM_TYPE_DEFINITION,
139 INPUT_OBJECT_TYPE_DEFINITION,
140 SCALAR_TYPE_EXTENSION,
141 OBJECT_TYPE_EXTENSION,
142 INTERFACE_TYPE_EXTENSION,
143 UNION_TYPE_EXTENSION,
144 ENUM_TYPE_EXTENSION,
145 INPUT_OBJECT_TYPE_EXTENSION,
146 IMPLEMENTS_INTERFACES,
147 FIELDS_DEFINITION,
148 FIELD_DEFINITION,
149 ARGUMENTS_DEFINITION,
150 UNION_MEMBER_TYPES,
151 ENUM_VALUES_DEFINITION,
152 ENUM_VALUE_DEFINITION,
153 INPUT_FIELDS_DEFINITION,
154 INPUT_VALUE_DEFINITION,
155 DIRECTIVE_LOCATIONS,
156 DIRECTIVE_LOCATION,
157 EXECUTABLE_DIRECTIVE_LOCATION,
158 TYPE_SYSTEM_DIRECTIVE_LOCATION,
159 #[doc(hidden)]
160 __LAST,
161}
162use self::SyntaxKind::*;
163impl SyntaxKind {
164 pub fn is_keyword(self) -> bool {
165 matches!(
166 self,
167 query_KW
168 | mutation_KW
169 | repeatable_KW
170 | subscription_KW
171 | fragment_KW
172 | on_KW
173 | null_KW
174 | extend_KW
175 | schema_KW
176 | scalar_KW
177 | implements_KW
178 | interface_KW
179 | union_KW
180 | enum_KW
181 | input_KW
182 | directive_KW
183 | type_KW
184 | true_KW
185 | false_KW
186 | QUERY_KW
187 | MUTATION_KW
188 | SUBSCRIPTION_KW
189 | FIELD_KW
190 | FRAGMENT_DEFINITION_KW
191 | FRAGMENT_SPREAD_KW
192 | INLINE_FRAGMENT_KW
193 | VARIABLE_DEFINITION_KW
194 | SCHEMA_KW
195 | SCALAR_KW
196 | OBJECT_KW
197 | FIELD_DEFINITION_KW
198 | ARGUMENT_DEFINITION_KW
199 | INTERFACE_KW
200 | UNION_KW
201 | ENUM_KW
202 | ENUM_VALUE_KW
203 | INPUT_OBJECT_KW
204 | INPUT_FIELD_DEFINITION_KW
205 )
206 }
207 pub fn is_punct(self) -> bool {
208 matches!(
209 self,
210 BANG | L_PAREN
211 | R_PAREN
212 | L_CURLY
213 | R_CURLY
214 | L_BRACK
215 | R_BRACK
216 | COMMA
217 | AT
218 | DOLLAR
219 | AMP
220 | PIPE
221 | SPREAD
222 | EQ
223 | COLON
224 )
225 }
226 pub fn is_literal(self) -> bool {
227 matches!(self, INT | FLOAT | STRING)
228 }
229 pub fn from_keyword(ident: &str) -> Option<SyntaxKind> {
230 let kw = match ident {
231 "query" => query_KW,
232 "mutation" => mutation_KW,
233 "repeatable" => repeatable_KW,
234 "subscription" => subscription_KW,
235 "fragment" => fragment_KW,
236 "on" => on_KW,
237 "null" => null_KW,
238 "extend" => extend_KW,
239 "schema" => schema_KW,
240 "scalar" => scalar_KW,
241 "implements" => implements_KW,
242 "interface" => interface_KW,
243 "union" => union_KW,
244 "enum" => enum_KW,
245 "input" => input_KW,
246 "directive" => directive_KW,
247 "type" => type_KW,
248 "true" => true_KW,
249 "false" => false_KW,
250 "QUERY" => QUERY_KW,
251 "MUTATION" => MUTATION_KW,
252 "SUBSCRIPTION" => SUBSCRIPTION_KW,
253 "FIELD" => FIELD_KW,
254 "FRAGMENT_DEFINITION" => FRAGMENT_DEFINITION_KW,
255 "FRAGMENT_SPREAD" => FRAGMENT_SPREAD_KW,
256 "INLINE_FRAGMENT" => INLINE_FRAGMENT_KW,
257 "VARIABLE_DEFINITION" => VARIABLE_DEFINITION_KW,
258 "SCHEMA" => SCHEMA_KW,
259 "SCALAR" => SCALAR_KW,
260 "OBJECT" => OBJECT_KW,
261 "FIELD_DEFINITION" => FIELD_DEFINITION_KW,
262 "ARGUMENT_DEFINITION" => ARGUMENT_DEFINITION_KW,
263 "INTERFACE" => INTERFACE_KW,
264 "UNION" => UNION_KW,
265 "ENUM" => ENUM_KW,
266 "ENUM_VALUE" => ENUM_VALUE_KW,
267 "INPUT_OBJECT" => INPUT_OBJECT_KW,
268 "INPUT_FIELD_DEFINITION" => INPUT_FIELD_DEFINITION_KW,
269 _ => return None,
270 };
271 Some(kw)
272 }
273 pub fn from_char(c: char) -> Option<SyntaxKind> {
274 let tok = match c {
275 '!' => BANG,
276 '(' => L_PAREN,
277 ')' => R_PAREN,
278 '{' => L_CURLY,
279 '}' => R_CURLY,
280 '[' => L_BRACK,
281 ']' => R_BRACK,
282 ',' => COMMA,
283 '@' => AT,
284 '$' => DOLLAR,
285 '&' => AMP,
286 '|' => PIPE,
287 '=' => EQ,
288 ':' => COLON,
289 _ => return None,
290 };
291 Some(tok)
292 }
293}
294#[doc = r" Create a new `SyntaxKind`."]
295#[macro_export]
296macro_rules ! S { [!] => { $ crate :: SyntaxKind :: BANG } ; ['('] => { $ crate :: SyntaxKind :: L_PAREN } ; [')'] => { $ crate :: SyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: SyntaxKind :: L_CURLY } ; ['}'] => { $ crate :: SyntaxKind :: R_CURLY } ; ['['] => { $ crate :: SyntaxKind :: L_BRACK } ; [']'] => { $ crate :: SyntaxKind :: R_BRACK } ; [,] => { $ crate :: SyntaxKind :: COMMA } ; [@] => { $ crate :: SyntaxKind :: AT } ; [$] => { $ crate :: SyntaxKind :: DOLLAR } ; [&] => { $ crate :: SyntaxKind :: AMP } ; [|] => { $ crate :: SyntaxKind :: PIPE } ; [...] => { $ crate :: SyntaxKind :: SPREAD } ; [=] => { $ crate :: SyntaxKind :: EQ } ; [:] => { $ crate :: SyntaxKind :: COLON } ; [query] => { $ crate :: SyntaxKind :: query_KW } ; [mutation] => { $ crate :: SyntaxKind :: mutation_KW } ; [repeatable] => { $ crate :: SyntaxKind :: repeatable_KW } ; [subscription] => { $ crate :: SyntaxKind :: subscription_KW } ; [fragment] => { $ crate :: SyntaxKind :: fragment_KW } ; [on] => { $ crate :: SyntaxKind :: on_KW } ; [null] => { $ crate :: SyntaxKind :: null_KW } ; [extend] => { $ crate :: SyntaxKind :: extend_KW } ; [schema] => { $ crate :: SyntaxKind :: schema_KW } ; [scalar] => { $ crate :: SyntaxKind :: scalar_KW } ; [implements] => { $ crate :: SyntaxKind :: implements_KW } ; [interface] => { $ crate :: SyntaxKind :: interface_KW } ; [union] => { $ crate :: SyntaxKind :: union_KW } ; [enum] => { $ crate :: SyntaxKind :: enum_KW } ; [input] => { $ crate :: SyntaxKind :: input_KW } ; [directive] => { $ crate :: SyntaxKind :: directive_KW } ; [type] => { $ crate :: SyntaxKind :: type_KW } ; [true] => { $ crate :: SyntaxKind :: true_KW } ; [false] => { $ crate :: SyntaxKind :: false_KW } ; [QUERY] => { $ crate :: SyntaxKind :: QUERY_KW } ; [MUTATION] => { $ crate :: SyntaxKind :: MUTATION_KW } ; [SUBSCRIPTION] => { $ crate :: SyntaxKind :: SUBSCRIPTION_KW } ; [FIELD] => { $ crate :: SyntaxKind :: FIELD_KW } ; [FRAGMENT_DEFINITION] => { $ crate :: SyntaxKind :: FRAGMENT_DEFINITION_KW } ; [FRAGMENT_SPREAD] => { $ crate :: SyntaxKind :: FRAGMENT_SPREAD_KW } ; [INLINE_FRAGMENT] => { $ crate :: SyntaxKind :: INLINE_FRAGMENT_KW } ; [VARIABLE_DEFINITION] => { $ crate :: SyntaxKind :: VARIABLE_DEFINITION_KW } ; [SCHEMA] => { $ crate :: SyntaxKind :: SCHEMA_KW } ; [SCALAR] => { $ crate :: SyntaxKind :: SCALAR_KW } ; [OBJECT] => { $ crate :: SyntaxKind :: OBJECT_KW } ; [FIELD_DEFINITION] => { $ crate :: SyntaxKind :: FIELD_DEFINITION_KW } ; [ARGUMENT_DEFINITION] => { $ crate :: SyntaxKind :: ARGUMENT_DEFINITION_KW } ; [INTERFACE] => { $ crate :: SyntaxKind :: INTERFACE_KW } ; [UNION] => { $ crate :: SyntaxKind :: UNION_KW } ; [ENUM] => { $ crate :: SyntaxKind :: ENUM_KW } ; [ENUM_VALUE] => { $ crate :: SyntaxKind :: ENUM_VALUE_KW } ; [INPUT_OBJECT] => { $ crate :: SyntaxKind :: INPUT_OBJECT_KW } ; [INPUT_FIELD_DEFINITION] => { $ crate :: SyntaxKind :: INPUT_FIELD_DEFINITION_KW } ; [ident] => { $ crate :: SyntaxKind :: IDENT } ; [float] => { $ crate :: SyntaxKind :: FLOAT } ; [string_value] => { $ crate :: SyntaxKind :: STRING_VALUE } ; [int] => { $ crate :: SyntaxKind :: INT } ; }