Skip to main content

jrsonnet_rowan_parser/generated/
syntax_kinds.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::match_like_matches_macro
10)]
11#[doc = r" The kind of syntax node, e.g. `IDENT`, `USE_KW`, or `STRUCT`."]
12#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
13#[repr(u16)]
14pub enum SyntaxKind {
15	#[doc(hidden)]
16	TOMBSTONE,
17	#[doc(hidden)]
18	EOF,
19	OR,
20	NULL_COAELSE,
21	AND,
22	BIT_OR,
23	BIT_XOR,
24	BIT_AND,
25	EQ,
26	NE,
27	LT,
28	GT,
29	LE,
30	GE,
31	LHS,
32	RHS,
33	PLUS,
34	MINUS,
35	MUL,
36	DIV,
37	MODULO,
38	NOT,
39	BIT_NOT,
40	L_BRACK,
41	R_BRACK,
42	L_PAREN,
43	R_PAREN,
44	L_BRACE,
45	R_BRACE,
46	COLON,
47	SEMI,
48	DOT,
49	DOTDOTDOT,
50	COMMA,
51	DOLLAR,
52	ASSIGN,
53	QUESTION_MARK,
54	FLOAT,
55	ERROR_FLOAT_JUNK_AFTER_POINT,
56	ERROR_FLOAT_JUNK_AFTER_EXPONENT,
57	ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN,
58	STRING_DOUBLE,
59	ERROR_STRING_DOUBLE_UNTERMINATED,
60	STRING_SINGLE,
61	ERROR_STRING_SINGLE_UNTERMINATED,
62	STRING_DOUBLE_VERBATIM,
63	ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED,
64	STRING_SINGLE_VERBATIM,
65	ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED,
66	ERROR_STRING_VERBATIM_MISSING_QUOTES,
67	STRING_BLOCK,
68	ERROR_STRING_BLOCK_UNEXPECTED_END,
69	ERROR_STRING_BLOCK_MISSING_NEW_LINE,
70	ERROR_STRING_BLOCK_MISSING_TERMINATION,
71	ERROR_STRING_BLOCK_MISSING_INDENT,
72	IDENT,
73	WHITESPACE,
74	SINGLE_LINE_SLASH_COMMENT,
75	SINGLE_LINE_HASH_COMMENT,
76	MULTI_LINE_COMMENT,
77	ERROR_COMMENT_TOO_SHORT,
78	ERROR_COMMENT_UNTERMINATED,
79	ERROR_NO_OPERATOR,
80	ERROR_MISSING_TOKEN,
81	ERROR_UNEXPECTED_TOKEN,
82	ERROR_CUSTOM,
83	TAILSTRICT_KW,
84	LOCAL_KW,
85	IMPORTSTR_KW,
86	IMPORTBIN_KW,
87	IMPORT_KW,
88	IF_KW,
89	THEN_KW,
90	ELSE_KW,
91	FUNCTION_KW,
92	ERROR_KW,
93	IN_KW,
94	META_OBJECT_APPLY,
95	NULL_KW,
96	TRUE_KW,
97	FALSE_KW,
98	SELF_KW,
99	SUPER_KW,
100	FOR_KW,
101	ASSERT_KW,
102	LEXING_ERROR,
103	__LAST_TOKEN,
104	SOURCE_FILE,
105	EXPR,
106	SUFFIX_INDEX,
107	NAME,
108	SUFFIX_INDEX_EXPR,
109	SUFFIX_SLICE,
110	SLICE_DESC,
111	SUFFIX_APPLY,
112	ARGS_DESC,
113	STMT_LOCAL,
114	STMT_ASSERT,
115	ASSERTION,
116	EXPR_BINARY,
117	EXPR_UNARY,
118	EXPR_OBJ_EXTEND,
119	EXPR_PARENED,
120	EXPR_LITERAL,
121	EXPR_STRING,
122	EXPR_NUMBER,
123	EXPR_ARRAY,
124	EXPR_OBJECT,
125	EXPR_ARRAY_COMP,
126	EXPR_IMPORT,
127	EXPR_VAR,
128	EXPR_IF_THEN_ELSE,
129	TRUE_EXPR,
130	FALSE_EXPR,
131	EXPR_FUNCTION,
132	PARAMS_DESC,
133	EXPR_ERROR,
134	SLICE_DESC_END,
135	SLICE_DESC_STEP,
136	ARG,
137	OBJ_BODY_COMP,
138	OBJ_BODY_MEMBER_LIST,
139	MEMBER_BIND_STMT,
140	OBJ_LOCAL,
141	MEMBER_ASSERT_STMT,
142	MEMBER_FIELD_NORMAL,
143	VISIBILITY,
144	MEMBER_FIELD_METHOD,
145	FIELD_NAME_FIXED,
146	FIELD_NAME_DYNAMIC,
147	FOR_SPEC,
148	IF_SPEC,
149	BIND_DESTRUCT,
150	BIND_FUNCTION,
151	PARAM,
152	DESTRUCT_FULL,
153	DESTRUCT_SKIP,
154	DESTRUCT_ARRAY,
155	DESTRUCT_OBJECT,
156	DESTRUCT_OBJECT_FIELD,
157	DESTRUCT_REST,
158	DESTRUCT_ARRAY_ELEMENT,
159	SUFFIX,
160	BIND,
161	STMT,
162	OBJ_BODY,
163	COMP_SPEC,
164	EXPR_BASE,
165	MEMBER_COMP,
166	MEMBER,
167	FIELD_NAME,
168	DESTRUCT,
169	DESTRUCT_ARRAY_PART,
170	BINARY_OPERATOR,
171	UNARY_OPERATOR,
172	LITERAL,
173	TEXT,
174	NUMBER,
175	IMPORT_KIND,
176	TRIVIA,
177	CUSTOM_ERROR,
178	#[doc(hidden)]
179	__LAST,
180}
181use self::SyntaxKind::*;
182impl SyntaxKind {
183	pub fn is_keyword(self) -> bool {
184		match self {
185			OR | NULL_COAELSE | AND | BIT_OR | BIT_XOR | BIT_AND | EQ | NE | LT | GT | LE | GE
186			| LHS | RHS | PLUS | MINUS | MUL | DIV | MODULO | NOT | BIT_NOT | L_BRACK | R_BRACK
187			| L_PAREN | R_PAREN | L_BRACE | R_BRACE | COLON | SEMI | DOT | DOTDOTDOT | COMMA
188			| DOLLAR | ASSIGN | QUESTION_MARK | TAILSTRICT_KW | LOCAL_KW | IMPORTSTR_KW
189			| IMPORTBIN_KW | IMPORT_KW | IF_KW | THEN_KW | ELSE_KW | FUNCTION_KW | ERROR_KW
190			| IN_KW | NULL_KW | TRUE_KW | FALSE_KW | SELF_KW | SUPER_KW | FOR_KW | ASSERT_KW => true,
191			_ => false,
192		}
193	}
194	pub fn is_enum(self) -> bool {
195		match self {
196			SUFFIX | BIND | STMT | OBJ_BODY | COMP_SPEC | EXPR_BASE | MEMBER_COMP | MEMBER
197			| FIELD_NAME | DESTRUCT | DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR
198			| LITERAL | TEXT | NUMBER | IMPORT_KIND | TRIVIA | CUSTOM_ERROR => true,
199			_ => false,
200		}
201	}
202	pub fn error_description(self) -> Option<&'static str> {
203		match self {
204			ERROR_FLOAT_JUNK_AFTER_POINT => {
205				::core::option::Option::Some("junk after decimal point in number literal")
206			}
207			ERROR_FLOAT_JUNK_AFTER_EXPONENT => {
208				::core::option::Option::Some("junk after exponent in number literal")
209			}
210			ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN => {
211				::core::option::Option::Some("junk after exponent sign in number literal")
212			}
213			ERROR_STRING_DOUBLE_UNTERMINATED => {
214				::core::option::Option::Some("unterminated double-quoted string")
215			}
216			ERROR_STRING_SINGLE_UNTERMINATED => {
217				::core::option::Option::Some("unterminated single-quoted string")
218			}
219			ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED => {
220				::core::option::Option::Some("unterminated verbatim double-quoted string")
221			}
222			ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED => {
223				::core::option::Option::Some("unterminated verbatim single-quoted string")
224			}
225			ERROR_STRING_VERBATIM_MISSING_QUOTES => {
226				::core::option::Option::Some("verbatim string missing opening quotes")
227			}
228			ERROR_STRING_BLOCK_UNEXPECTED_END => {
229				::core::option::Option::Some("unexpected end of text block")
230			}
231			ERROR_STRING_BLOCK_MISSING_NEW_LINE => {
232				::core::option::Option::Some("text block requires new line after |||")
233			}
234			ERROR_STRING_BLOCK_MISSING_TERMINATION => {
235				::core::option::Option::Some("unterminated text block")
236			}
237			ERROR_STRING_BLOCK_MISSING_INDENT => {
238				::core::option::Option::Some("text block first line must be indented")
239			}
240			ERROR_COMMENT_TOO_SHORT => ::core::option::Option::Some("comment too short"),
241			ERROR_COMMENT_UNTERMINATED => {
242				::core::option::Option::Some("unterminated multi-line comment")
243			}
244			ERROR_NO_OPERATOR => ::core::option::Option::Some("expected operator"),
245			ERROR_MISSING_TOKEN => ::core::option::Option::Some("missing token"),
246			ERROR_UNEXPECTED_TOKEN => ::core::option::Option::Some("unexpected token"),
247			ERROR_CUSTOM => ::core::option::Option::Some("error"),
248			LEXING_ERROR => ::core::option::Option::Some("unexpected character"),
249			_ => None,
250		}
251	}
252	pub fn display_name(self) -> &'static str {
253		match self {
254			OR => "'||'",
255			NULL_COAELSE => "'??'",
256			AND => "'&&'",
257			BIT_OR => "'|'",
258			BIT_XOR => "'^'",
259			BIT_AND => "'&'",
260			EQ => "'=='",
261			NE => "'!='",
262			LT => "'<'",
263			GT => "'>'",
264			LE => "'<='",
265			GE => "'>='",
266			LHS => "'<<'",
267			RHS => "'>>'",
268			PLUS => "'+'",
269			MINUS => "'-'",
270			MUL => "'*'",
271			DIV => "'/'",
272			MODULO => "'%'",
273			NOT => "'!'",
274			BIT_NOT => "'~'",
275			L_BRACK => "'['",
276			R_BRACK => "']'",
277			L_PAREN => "'('",
278			R_PAREN => "')'",
279			L_BRACE => "'{'",
280			R_BRACE => "'}'",
281			COLON => "':'",
282			SEMI => "';'",
283			DOT => "'.'",
284			DOTDOTDOT => "'...'",
285			COMMA => "','",
286			DOLLAR => "'$'",
287			ASSIGN => "'='",
288			QUESTION_MARK => "'?'",
289			FLOAT => "number",
290			ERROR_FLOAT_JUNK_AFTER_POINT => "junk after decimal point in number literal",
291			ERROR_FLOAT_JUNK_AFTER_EXPONENT => "junk after exponent in number literal",
292			ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN => "junk after exponent sign in number literal",
293			STRING_DOUBLE => "\"string\"",
294			ERROR_STRING_DOUBLE_UNTERMINATED => "unterminated double-quoted string",
295			STRING_SINGLE => "'string'",
296			ERROR_STRING_SINGLE_UNTERMINATED => "unterminated single-quoted string",
297			STRING_DOUBLE_VERBATIM => "@\"string\"",
298			ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED => {
299				"unterminated verbatim double-quoted string"
300			}
301			STRING_SINGLE_VERBATIM => "@'string'",
302			ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED => {
303				"unterminated verbatim single-quoted string"
304			}
305			ERROR_STRING_VERBATIM_MISSING_QUOTES => "verbatim string missing opening quotes",
306			STRING_BLOCK => "|||string|||",
307			ERROR_STRING_BLOCK_UNEXPECTED_END => "unexpected end of text block",
308			ERROR_STRING_BLOCK_MISSING_NEW_LINE => "text block requires new line after |||",
309			ERROR_STRING_BLOCK_MISSING_TERMINATION => "unterminated text block",
310			ERROR_STRING_BLOCK_MISSING_INDENT => "text block first line must be indented",
311			IDENT => "identifier",
312			WHITESPACE => "whitespace",
313			SINGLE_LINE_SLASH_COMMENT => "//comment",
314			SINGLE_LINE_HASH_COMMENT => "#comment",
315			MULTI_LINE_COMMENT => "/*comment*/",
316			ERROR_COMMENT_TOO_SHORT => "comment too short",
317			ERROR_COMMENT_UNTERMINATED => "unterminated multi-line comment",
318			ERROR_NO_OPERATOR => "expected operator",
319			ERROR_MISSING_TOKEN => "missing token",
320			ERROR_UNEXPECTED_TOKEN => "unexpected token",
321			ERROR_CUSTOM => "error",
322			TAILSTRICT_KW => "'tailstrict'",
323			LOCAL_KW => "'local'",
324			IMPORTSTR_KW => "'importstr'",
325			IMPORTBIN_KW => "'importbin'",
326			IMPORT_KW => "'import'",
327			IF_KW => "'if'",
328			THEN_KW => "'then'",
329			ELSE_KW => "'else'",
330			FUNCTION_KW => "'function'",
331			ERROR_KW => "'error'",
332			IN_KW => "'in'",
333			META_OBJECT_APPLY => "meta_object_apply",
334			NULL_KW => "'null'",
335			TRUE_KW => "'true'",
336			FALSE_KW => "'false'",
337			SELF_KW => "'self'",
338			SUPER_KW => "'super'",
339			FOR_KW => "'for'",
340			ASSERT_KW => "'assert'",
341			LEXING_ERROR => "unexpected character",
342			_ => "unknown",
343		}
344	}
345	pub fn from_raw(r: u16) -> Self {
346		assert!(r < Self::__LAST as u16);
347		unsafe { std::mem::transmute(r) }
348	}
349	pub fn into_raw(self) -> u16 {
350		self as u16
351	}
352}
353#[macro_export]
354macro_rules ! T { [||] => { $ crate :: SyntaxKind :: OR } ; [??] => { $ crate :: SyntaxKind :: NULL_COAELSE } ; [&&] => { $ crate :: SyntaxKind :: AND } ; [|] => { $ crate :: SyntaxKind :: BIT_OR } ; [^] => { $ crate :: SyntaxKind :: BIT_XOR } ; [&] => { $ crate :: SyntaxKind :: BIT_AND } ; [==] => { $ crate :: SyntaxKind :: EQ } ; [!=] => { $ crate :: SyntaxKind :: NE } ; [<] => { $ crate :: SyntaxKind :: LT } ; [>] => { $ crate :: SyntaxKind :: GT } ; [<=] => { $ crate :: SyntaxKind :: LE } ; [>=] => { $ crate :: SyntaxKind :: GE } ; [<<] => { $ crate :: SyntaxKind :: LHS } ; [>>] => { $ crate :: SyntaxKind :: RHS } ; [+] => { $ crate :: SyntaxKind :: PLUS } ; [-] => { $ crate :: SyntaxKind :: MINUS } ; [*] => { $ crate :: SyntaxKind :: MUL } ; [/] => { $ crate :: SyntaxKind :: DIV } ; [%] => { $ crate :: SyntaxKind :: MODULO } ; [!] => { $ crate :: SyntaxKind :: NOT } ; [~] => { $ crate :: SyntaxKind :: BIT_NOT } ; ['['] => { $ crate :: SyntaxKind :: L_BRACK } ; [']'] => { $ crate :: SyntaxKind :: R_BRACK } ; ['('] => { $ crate :: SyntaxKind :: L_PAREN } ; [')'] => { $ crate :: SyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: SyntaxKind :: L_BRACE } ; ['}'] => { $ crate :: SyntaxKind :: R_BRACE } ; [:] => { $ crate :: SyntaxKind :: COLON } ; [;] => { $ crate :: SyntaxKind :: SEMI } ; [.] => { $ crate :: SyntaxKind :: DOT } ; [...] => { $ crate :: SyntaxKind :: DOTDOTDOT } ; [,] => { $ crate :: SyntaxKind :: COMMA } ; ['$'] => { $ crate :: SyntaxKind :: DOLLAR } ; [=] => { $ crate :: SyntaxKind :: ASSIGN } ; [?] => { $ crate :: SyntaxKind :: QUESTION_MARK } ; [tailstrict] => { $ crate :: SyntaxKind :: TAILSTRICT_KW } ; [local] => { $ crate :: SyntaxKind :: LOCAL_KW } ; [importstr] => { $ crate :: SyntaxKind :: IMPORTSTR_KW } ; [importbin] => { $ crate :: SyntaxKind :: IMPORTBIN_KW } ; [import] => { $ crate :: SyntaxKind :: IMPORT_KW } ; [if] => { $ crate :: SyntaxKind :: IF_KW } ; [then] => { $ crate :: SyntaxKind :: THEN_KW } ; [else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [function] => { $ crate :: SyntaxKind :: FUNCTION_KW } ; [error] => { $ crate :: SyntaxKind :: ERROR_KW } ; [in] => { $ crate :: SyntaxKind :: IN_KW } ; [null] => { $ crate :: SyntaxKind :: NULL_KW } ; [true] => { $ crate :: SyntaxKind :: TRUE_KW } ; [false] => { $ crate :: SyntaxKind :: FALSE_KW } ; [self] => { $ crate :: SyntaxKind :: SELF_KW } ; [super] => { $ crate :: SyntaxKind :: SUPER_KW } ; [for] => { $ crate :: SyntaxKind :: FOR_KW } ; [assert] => { $ crate :: SyntaxKind :: ASSERT_KW } }
355#[allow(unused_imports)]
356pub use T;