Skip to main content

reed_parser/parser/generated/
syntax_kind.rs

1//! This is a generated file, please do not edit manually. Changes can be
2//! made in codegeneration that lives in `xtask` top-level dir.
3
4#![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    DIRECTIVE_EXTENSION,
131    SCHEMA_EXTENSION,
132    TYPE_EXTENSION,
133    ROOT_OPERATION_TYPE_DEFINITION,
134    DESCRIPTION,
135    SCALAR_TYPE_DEFINITION,
136    OBJECT_TYPE_DEFINITION,
137    INTERFACE_TYPE_DEFINITION,
138    UNION_TYPE_DEFINITION,
139    ENUM_TYPE_DEFINITION,
140    INPUT_OBJECT_TYPE_DEFINITION,
141    SCALAR_TYPE_EXTENSION,
142    OBJECT_TYPE_EXTENSION,
143    INTERFACE_TYPE_EXTENSION,
144    UNION_TYPE_EXTENSION,
145    ENUM_TYPE_EXTENSION,
146    INPUT_OBJECT_TYPE_EXTENSION,
147    IMPLEMENTS_INTERFACES,
148    FIELDS_DEFINITION,
149    FIELD_DEFINITION,
150    ARGUMENTS_DEFINITION,
151    UNION_MEMBER_TYPES,
152    ENUM_VALUES_DEFINITION,
153    ENUM_VALUE_DEFINITION,
154    INPUT_FIELDS_DEFINITION,
155    INPUT_VALUE_DEFINITION,
156    DIRECTIVE_LOCATIONS,
157    DIRECTIVE_LOCATION,
158    EXECUTABLE_DIRECTIVE_LOCATION,
159    TYPE_SYSTEM_DIRECTIVE_LOCATION,
160    #[doc(hidden)]
161    __LAST,
162}
163use self::SyntaxKind::*;
164impl SyntaxKind {
165    pub fn is_keyword(self) -> bool {
166        matches!(
167            self,
168            query_KW
169                | mutation_KW
170                | repeatable_KW
171                | subscription_KW
172                | fragment_KW
173                | on_KW
174                | null_KW
175                | extend_KW
176                | schema_KW
177                | scalar_KW
178                | implements_KW
179                | interface_KW
180                | union_KW
181                | enum_KW
182                | input_KW
183                | directive_KW
184                | type_KW
185                | true_KW
186                | false_KW
187                | QUERY_KW
188                | MUTATION_KW
189                | SUBSCRIPTION_KW
190                | FIELD_KW
191                | FRAGMENT_DEFINITION_KW
192                | FRAGMENT_SPREAD_KW
193                | INLINE_FRAGMENT_KW
194                | VARIABLE_DEFINITION_KW
195                | SCHEMA_KW
196                | SCALAR_KW
197                | OBJECT_KW
198                | FIELD_DEFINITION_KW
199                | ARGUMENT_DEFINITION_KW
200                | INTERFACE_KW
201                | UNION_KW
202                | ENUM_KW
203                | ENUM_VALUE_KW
204                | INPUT_OBJECT_KW
205                | INPUT_FIELD_DEFINITION_KW
206        )
207    }
208    pub fn is_punct(self) -> bool {
209        matches!(
210            self,
211            BANG | L_PAREN
212                | R_PAREN
213                | L_CURLY
214                | R_CURLY
215                | L_BRACK
216                | R_BRACK
217                | COMMA
218                | AT
219                | DOLLAR
220                | AMP
221                | PIPE
222                | SPREAD
223                | EQ
224                | COLON
225        )
226    }
227    pub fn is_literal(self) -> bool {
228        matches!(self, INT | FLOAT | STRING)
229    }
230    pub fn from_keyword(ident: &str) -> Option<SyntaxKind> {
231        let kw = match ident {
232            "query" => query_KW,
233            "mutation" => mutation_KW,
234            "repeatable" => repeatable_KW,
235            "subscription" => subscription_KW,
236            "fragment" => fragment_KW,
237            "on" => on_KW,
238            "null" => null_KW,
239            "extend" => extend_KW,
240            "schema" => schema_KW,
241            "scalar" => scalar_KW,
242            "implements" => implements_KW,
243            "interface" => interface_KW,
244            "union" => union_KW,
245            "enum" => enum_KW,
246            "input" => input_KW,
247            "directive" => directive_KW,
248            "type" => type_KW,
249            "true" => true_KW,
250            "false" => false_KW,
251            "QUERY" => QUERY_KW,
252            "MUTATION" => MUTATION_KW,
253            "SUBSCRIPTION" => SUBSCRIPTION_KW,
254            "FIELD" => FIELD_KW,
255            "FRAGMENT_DEFINITION" => FRAGMENT_DEFINITION_KW,
256            "FRAGMENT_SPREAD" => FRAGMENT_SPREAD_KW,
257            "INLINE_FRAGMENT" => INLINE_FRAGMENT_KW,
258            "VARIABLE_DEFINITION" => VARIABLE_DEFINITION_KW,
259            "SCHEMA" => SCHEMA_KW,
260            "SCALAR" => SCALAR_KW,
261            "OBJECT" => OBJECT_KW,
262            "FIELD_DEFINITION" => FIELD_DEFINITION_KW,
263            "ARGUMENT_DEFINITION" => ARGUMENT_DEFINITION_KW,
264            "INTERFACE" => INTERFACE_KW,
265            "UNION" => UNION_KW,
266            "ENUM" => ENUM_KW,
267            "ENUM_VALUE" => ENUM_VALUE_KW,
268            "INPUT_OBJECT" => INPUT_OBJECT_KW,
269            "INPUT_FIELD_DEFINITION" => INPUT_FIELD_DEFINITION_KW,
270            _ => return None,
271        };
272        Some(kw)
273    }
274    pub fn from_char(c: char) -> Option<SyntaxKind> {
275        let tok = match c {
276            '!' => BANG,
277            '(' => L_PAREN,
278            ')' => R_PAREN,
279            '{' => L_CURLY,
280            '}' => R_CURLY,
281            '[' => L_BRACK,
282            ']' => R_BRACK,
283            ',' => COMMA,
284            '@' => AT,
285            '$' => DOLLAR,
286            '&' => AMP,
287            '|' => PIPE,
288            '=' => EQ,
289            ':' => COLON,
290            _ => return None,
291        };
292        Some(tok)
293    }
294}
295#[doc = r" Create a new `SyntaxKind`."]
296#[macro_export]
297macro_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 } ; }