1#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
4#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
5#[repr(u16)]
6pub enum SyntaxKind {
7 EOF,
8 RESERVED,
9 BLOCK_COMMENT,
10 EOL_COMMENT,
11 SHEBANG_COMMENT,
12 DOC_COMMENT,
13 WHITE_SPACE,
14 INTEGER_LITERAL,
15 FLOAT_LITERAL,
16 CHARACTER_LITERAL,
17 INTERPOLATION_PREFIX,
18 CLOSING_QUOTE,
19 OPEN_QUOTE,
20 REGULAR_STRING_PART,
21 ESCAPE_SEQUENCE,
22 SHORT_TEMPLATE_ENTRY_START,
23 LONG_TEMPLATE_ENTRY_START,
24 LONG_TEMPLATE_ENTRY_END,
25 DANGLING_NEWLINE,
26 PACKAGE_KEYWORD,
27 AS_KEYWORD,
28 TYPE_ALIAS_KEYWORD,
29 CLASS_KEYWORD,
30 THIS_KEYWORD,
31 SUPER_KEYWORD,
32 VAL_KEYWORD,
33 VAR_KEYWORD,
34 FUN_KEYWORD,
35 FOR_KEYWORD,
36 NULL_KEYWORD,
37 TRUE_KEYWORD,
38 FALSE_KEYWORD,
39 IS_KEYWORD,
40 IN_KEYWORD,
41 THROW_KEYWORD,
42 RETURN_KEYWORD,
43 BREAK_KEYWORD,
44 CONTINUE_KEYWORD,
45 OBJECT_KEYWORD,
46 IF_KEYWORD,
47 TRY_KEYWORD,
48 ELSE_KEYWORD,
49 WHILE_KEYWORD,
50 DO_KEYWORD,
51 WHEN_KEYWORD,
52 INTERFACE_KEYWORD,
53 TYPEOF_KEYWORD,
54 AS_SAFE,
55 IDENTIFIER,
56 FIELD_IDENTIFIER,
57 LBRACKET,
58 RBRACKET,
59 LBRACE,
60 RBRACE,
61 LPAR,
62 RPAR,
63 DOT,
64 PLUSPLUS,
65 MINUSMINUS,
66 MUL,
67 PLUS,
68 MINUS,
69 EXCL,
70 DIV,
71 PERC,
72 LT,
73 GT,
74 LTEQ,
75 GTEQ,
76 EQEQEQ,
77 ARROW,
78 DOUBLE_ARROW,
79 EXCLEQEQEQ,
80 EQEQ,
81 EXCLEQ,
82 EXCLEXCL,
83 ANDAND,
84 AND,
85 OROR,
86 SAFE_ACCESS,
87 ELVIS,
88 QUEST,
89 COLONCOLON,
90 COLON,
91 SEMICOLON,
92 DOUBLE_SEMICOLON,
93 RANGE,
94 RANGE_UNTIL,
95 EQ,
96 MULTEQ,
97 DIVEQ,
98 PERCEQ,
99 PLUSEQ,
100 MINUSEQ,
101 NOT_IN,
102 NOT_IS,
103 HASH,
104 AT,
105 COMMA,
106 EOL_OR_SEMICOLON,
107 ALL_KEYWORD,
108 FILE_KEYWORD,
109 FIELD_KEYWORD,
110 PROPERTY_KEYWORD,
111 RECEIVER_KEYWORD,
112 PARAM_KEYWORD,
113 SETPARAM_KEYWORD,
114 DELEGATE_KEYWORD,
115 IMPORT_KEYWORD,
116 WHERE_KEYWORD,
117 BY_KEYWORD,
118 GET_KEYWORD,
119 SET_KEYWORD,
120 CONSTRUCTOR_KEYWORD,
121 INIT_KEYWORD,
122 CONTEXT_KEYWORD,
123 ABSTRACT_KEYWORD,
124 ENUM_KEYWORD,
125 CONTRACT_KEYWORD,
126 OPEN_KEYWORD,
127 INNER_KEYWORD,
128 OVERRIDE_KEYWORD,
129 PRIVATE_KEYWORD,
130 PUBLIC_KEYWORD,
131 INTERNAL_KEYWORD,
132 PROTECTED_KEYWORD,
133 CATCH_KEYWORD,
134 OUT_KEYWORD,
135 VARARG_KEYWORD,
136 REIFIED_KEYWORD,
137 DYNAMIC_KEYWORD,
138 COMPANION_KEYWORD,
139 SEALED_KEYWORD,
140 FINALLY_KEYWORD,
141 FINAL_KEYWORD,
142 LATEINIT_KEYWORD,
143 DATA_KEYWORD,
144 VALUE_KEYWORD,
145 INLINE_KEYWORD,
146 NOINLINE_KEYWORD,
147 TAILREC_KEYWORD,
148 EXTERNAL_KEYWORD,
149 ANNOTATION_KEYWORD,
150 CROSSINLINE_KEYWORD,
151 OPERATOR_KEYWORD,
152 INFIX_KEYWORD,
153 CONST_KEYWORD,
154 SUSPEND_KEYWORD,
155 EXPECT_KEYWORD,
156 ACTUAL_KEYWORD,
157 FILE,
158 KT_FILE,
159 CLASS,
160 FUN,
161 PROPERTY,
162 DESTRUCTURING_DECLARATION,
163 DESTRUCTURING_DECLARATION_ENTRY,
164 OBJECT_DECLARATION,
165 TYPEALIAS,
166 COMPANION_BLOCK,
167 ENUM_ENTRY,
168 CLASS_INITIALIZER,
169 SCRIPT_INITIALIZER,
170 SECONDARY_CONSTRUCTOR,
171 PRIMARY_CONSTRUCTOR,
172 CONTEXT_RECEIVER,
173 CONTEXT_PARAMETER_LIST,
174 TYPE_PARAMETER_LIST,
175 TYPE_PARAMETER,
176 SUPER_TYPE_LIST,
177 DELEGATED_SUPER_TYPE_ENTRY,
178 SUPER_TYPE_CALL_ENTRY,
179 SUPER_TYPE_ENTRY,
180 PROPERTY_DELEGATE,
181 CONSTRUCTOR_CALLEE,
182 VALUE_PARAMETER_LIST,
183 VALUE_PARAMETER,
184 CLASS_BODY,
185 IMPORT_LIST,
186 FILE_ANNOTATION_LIST,
187 IMPORT_DIRECTIVE,
188 IMPORT_ALIAS,
189 MODIFIER_LIST,
190 ANNOTATION,
191 ANNOTATION_ENTRY,
192 ANNOTATION_TARGET,
193 TYPE_ARGUMENT_LIST,
194 VALUE_ARGUMENT_LIST,
195 VALUE_ARGUMENT,
196 CONTRACT_EFFECT_LIST,
197 CONTRACT_EFFECT,
198 LAMBDA_ARGUMENT,
199 VALUE_ARGUMENT_NAME,
200 TYPE_REFERENCE,
201 USER_TYPE,
202 DYNAMIC_TYPE,
203 FUNCTION_TYPE,
204 FUNCTION_TYPE_RECEIVER,
205 NULLABLE_TYPE,
206 INTERSECTION_TYPE,
207 TYPE_PROJECTION,
208 PROPERTY_ACCESSOR,
209 BACKING_FIELD,
210 INITIALIZER_LIST,
211 TYPE_CONSTRAINT_LIST,
212 TYPE_CONSTRAINT,
213 CONSTRUCTOR_DELEGATION_CALL,
214 CONSTRUCTOR_DELEGATION_REFERENCE,
215 NULL,
216 BOOLEAN_CONSTANT,
217 FLOAT_CONSTANT,
218 CHARACTER_CONSTANT,
219 INTEGER_CONSTANT,
220 STRING_TEMPLATE,
221 LONG_STRING_TEMPLATE_ENTRY,
222 SHORT_STRING_TEMPLATE_ENTRY,
223 LITERAL_STRING_TEMPLATE_ENTRY,
224 ESCAPE_STRING_TEMPLATE_ENTRY,
225 STRING_INTERPOLATION_PREFIX,
226 PARENTHESIZED,
227 RETURN,
228 THROW,
229 CONTINUE,
230 BREAK,
231 IF,
232 CONDITION,
233 THEN,
234 ELSE,
235 TRY,
236 CATCH,
237 FINALLY,
238 FOR,
239 WHILE,
240 DO_WHILE,
241 LOOP_RANGE,
242 BODY,
243 BLOCK,
244 LAMBDA_EXPRESSION,
245 FUNCTION_LITERAL,
246 ANNOTATED_EXPRESSION,
247 REFERENCE_EXPRESSION,
248 ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION,
249 OPERATION_REFERENCE,
250 LABEL,
251 LABEL_QUALIFIER,
252 THIS_EXPRESSION,
253 SUPER_EXPRESSION,
254 BINARY_EXPRESSION,
255 BINARY_WITH_TYPE,
256 IS_EXPRESSION,
257 PREFIX_EXPRESSION,
258 POSTFIX_EXPRESSION,
259 LABELED_EXPRESSION,
260 CALL_EXPRESSION,
261 ARRAY_ACCESS_EXPRESSION,
262 INDICES,
263 DOT_QUALIFIED_EXPRESSION,
264 CALLABLE_REFERENCE_EXPRESSION,
265 CLASS_LITERAL_EXPRESSION,
266 SAFE_ACCESS_EXPRESSION,
267 OBJECT_LITERAL,
268 WHEN,
269 WHEN_ENTRY,
270 WHEN_ENTRY_GUARD,
271 WHEN_CONDITION_IN_RANGE,
272 WHEN_CONDITION_IS_PATTERN,
273 WHEN_CONDITION_EXPRESSION,
274 COLLECTION_LITERAL_EXPRESSION,
275 PACKAGE_DIRECTIVE,
276 SCRIPT,
277 TYPE_CODE_FRAGMENT,
278 EXPRESSION_CODE_FRAGMENT,
279 BLOCK_CODE_FRAGMENT,
280 KDOC_START,
281 KDOC_END,
282 KDOC_LEADING_ASTERISK,
283 KDOC_TEXT,
284 KDOC_CODE_BLOCK_TEXT,
285 KDOC_CODE_SPAN_TEXT,
286 KDOC_TAG_NAME,
287 KDOC_MARKDOWN_LINK,
288 KDOC_LPAR,
289 KDOC_RPAR,
290 KDOC_MARKDOWN_ESCAPED_CHAR,
291 KDOC_MARKDOWN_INLINE_LINK,
292 KDOC_SECTION,
293 KDOC_TAG,
294 KDOC_NAME,
295 BAD_CHARACTER,
296 NEW_LINE_INDENT,
297 ERROR_ELEMENT,
298 CODE_FRAGMENT,
299 DUMMY_HOLDER,
300}
301
302use SyntaxKind::*;
303
304pub(crate) const ALL: [SyntaxKind; 293] = [
305 EOF,
306 RESERVED,
307 BLOCK_COMMENT,
308 EOL_COMMENT,
309 SHEBANG_COMMENT,
310 DOC_COMMENT,
311 WHITE_SPACE,
312 INTEGER_LITERAL,
313 FLOAT_LITERAL,
314 CHARACTER_LITERAL,
315 INTERPOLATION_PREFIX,
316 CLOSING_QUOTE,
317 OPEN_QUOTE,
318 REGULAR_STRING_PART,
319 ESCAPE_SEQUENCE,
320 SHORT_TEMPLATE_ENTRY_START,
321 LONG_TEMPLATE_ENTRY_START,
322 LONG_TEMPLATE_ENTRY_END,
323 DANGLING_NEWLINE,
324 PACKAGE_KEYWORD,
325 AS_KEYWORD,
326 TYPE_ALIAS_KEYWORD,
327 CLASS_KEYWORD,
328 THIS_KEYWORD,
329 SUPER_KEYWORD,
330 VAL_KEYWORD,
331 VAR_KEYWORD,
332 FUN_KEYWORD,
333 FOR_KEYWORD,
334 NULL_KEYWORD,
335 TRUE_KEYWORD,
336 FALSE_KEYWORD,
337 IS_KEYWORD,
338 IN_KEYWORD,
339 THROW_KEYWORD,
340 RETURN_KEYWORD,
341 BREAK_KEYWORD,
342 CONTINUE_KEYWORD,
343 OBJECT_KEYWORD,
344 IF_KEYWORD,
345 TRY_KEYWORD,
346 ELSE_KEYWORD,
347 WHILE_KEYWORD,
348 DO_KEYWORD,
349 WHEN_KEYWORD,
350 INTERFACE_KEYWORD,
351 TYPEOF_KEYWORD,
352 AS_SAFE,
353 IDENTIFIER,
354 FIELD_IDENTIFIER,
355 LBRACKET,
356 RBRACKET,
357 LBRACE,
358 RBRACE,
359 LPAR,
360 RPAR,
361 DOT,
362 PLUSPLUS,
363 MINUSMINUS,
364 MUL,
365 PLUS,
366 MINUS,
367 EXCL,
368 DIV,
369 PERC,
370 LT,
371 GT,
372 LTEQ,
373 GTEQ,
374 EQEQEQ,
375 ARROW,
376 DOUBLE_ARROW,
377 EXCLEQEQEQ,
378 EQEQ,
379 EXCLEQ,
380 EXCLEXCL,
381 ANDAND,
382 AND,
383 OROR,
384 SAFE_ACCESS,
385 ELVIS,
386 QUEST,
387 COLONCOLON,
388 COLON,
389 SEMICOLON,
390 DOUBLE_SEMICOLON,
391 RANGE,
392 RANGE_UNTIL,
393 EQ,
394 MULTEQ,
395 DIVEQ,
396 PERCEQ,
397 PLUSEQ,
398 MINUSEQ,
399 NOT_IN,
400 NOT_IS,
401 HASH,
402 AT,
403 COMMA,
404 EOL_OR_SEMICOLON,
405 ALL_KEYWORD,
406 FILE_KEYWORD,
407 FIELD_KEYWORD,
408 PROPERTY_KEYWORD,
409 RECEIVER_KEYWORD,
410 PARAM_KEYWORD,
411 SETPARAM_KEYWORD,
412 DELEGATE_KEYWORD,
413 IMPORT_KEYWORD,
414 WHERE_KEYWORD,
415 BY_KEYWORD,
416 GET_KEYWORD,
417 SET_KEYWORD,
418 CONSTRUCTOR_KEYWORD,
419 INIT_KEYWORD,
420 CONTEXT_KEYWORD,
421 ABSTRACT_KEYWORD,
422 ENUM_KEYWORD,
423 CONTRACT_KEYWORD,
424 OPEN_KEYWORD,
425 INNER_KEYWORD,
426 OVERRIDE_KEYWORD,
427 PRIVATE_KEYWORD,
428 PUBLIC_KEYWORD,
429 INTERNAL_KEYWORD,
430 PROTECTED_KEYWORD,
431 CATCH_KEYWORD,
432 OUT_KEYWORD,
433 VARARG_KEYWORD,
434 REIFIED_KEYWORD,
435 DYNAMIC_KEYWORD,
436 COMPANION_KEYWORD,
437 SEALED_KEYWORD,
438 FINALLY_KEYWORD,
439 FINAL_KEYWORD,
440 LATEINIT_KEYWORD,
441 DATA_KEYWORD,
442 VALUE_KEYWORD,
443 INLINE_KEYWORD,
444 NOINLINE_KEYWORD,
445 TAILREC_KEYWORD,
446 EXTERNAL_KEYWORD,
447 ANNOTATION_KEYWORD,
448 CROSSINLINE_KEYWORD,
449 OPERATOR_KEYWORD,
450 INFIX_KEYWORD,
451 CONST_KEYWORD,
452 SUSPEND_KEYWORD,
453 EXPECT_KEYWORD,
454 ACTUAL_KEYWORD,
455 FILE,
456 KT_FILE,
457 CLASS,
458 FUN,
459 PROPERTY,
460 DESTRUCTURING_DECLARATION,
461 DESTRUCTURING_DECLARATION_ENTRY,
462 OBJECT_DECLARATION,
463 TYPEALIAS,
464 COMPANION_BLOCK,
465 ENUM_ENTRY,
466 CLASS_INITIALIZER,
467 SCRIPT_INITIALIZER,
468 SECONDARY_CONSTRUCTOR,
469 PRIMARY_CONSTRUCTOR,
470 CONTEXT_RECEIVER,
471 CONTEXT_PARAMETER_LIST,
472 TYPE_PARAMETER_LIST,
473 TYPE_PARAMETER,
474 SUPER_TYPE_LIST,
475 DELEGATED_SUPER_TYPE_ENTRY,
476 SUPER_TYPE_CALL_ENTRY,
477 SUPER_TYPE_ENTRY,
478 PROPERTY_DELEGATE,
479 CONSTRUCTOR_CALLEE,
480 VALUE_PARAMETER_LIST,
481 VALUE_PARAMETER,
482 CLASS_BODY,
483 IMPORT_LIST,
484 FILE_ANNOTATION_LIST,
485 IMPORT_DIRECTIVE,
486 IMPORT_ALIAS,
487 MODIFIER_LIST,
488 ANNOTATION,
489 ANNOTATION_ENTRY,
490 ANNOTATION_TARGET,
491 TYPE_ARGUMENT_LIST,
492 VALUE_ARGUMENT_LIST,
493 VALUE_ARGUMENT,
494 CONTRACT_EFFECT_LIST,
495 CONTRACT_EFFECT,
496 LAMBDA_ARGUMENT,
497 VALUE_ARGUMENT_NAME,
498 TYPE_REFERENCE,
499 USER_TYPE,
500 DYNAMIC_TYPE,
501 FUNCTION_TYPE,
502 FUNCTION_TYPE_RECEIVER,
503 NULLABLE_TYPE,
504 INTERSECTION_TYPE,
505 TYPE_PROJECTION,
506 PROPERTY_ACCESSOR,
507 BACKING_FIELD,
508 INITIALIZER_LIST,
509 TYPE_CONSTRAINT_LIST,
510 TYPE_CONSTRAINT,
511 CONSTRUCTOR_DELEGATION_CALL,
512 CONSTRUCTOR_DELEGATION_REFERENCE,
513 NULL,
514 BOOLEAN_CONSTANT,
515 FLOAT_CONSTANT,
516 CHARACTER_CONSTANT,
517 INTEGER_CONSTANT,
518 STRING_TEMPLATE,
519 LONG_STRING_TEMPLATE_ENTRY,
520 SHORT_STRING_TEMPLATE_ENTRY,
521 LITERAL_STRING_TEMPLATE_ENTRY,
522 ESCAPE_STRING_TEMPLATE_ENTRY,
523 STRING_INTERPOLATION_PREFIX,
524 PARENTHESIZED,
525 RETURN,
526 THROW,
527 CONTINUE,
528 BREAK,
529 IF,
530 CONDITION,
531 THEN,
532 ELSE,
533 TRY,
534 CATCH,
535 FINALLY,
536 FOR,
537 WHILE,
538 DO_WHILE,
539 LOOP_RANGE,
540 BODY,
541 BLOCK,
542 LAMBDA_EXPRESSION,
543 FUNCTION_LITERAL,
544 ANNOTATED_EXPRESSION,
545 REFERENCE_EXPRESSION,
546 ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION,
547 OPERATION_REFERENCE,
548 LABEL,
549 LABEL_QUALIFIER,
550 THIS_EXPRESSION,
551 SUPER_EXPRESSION,
552 BINARY_EXPRESSION,
553 BINARY_WITH_TYPE,
554 IS_EXPRESSION,
555 PREFIX_EXPRESSION,
556 POSTFIX_EXPRESSION,
557 LABELED_EXPRESSION,
558 CALL_EXPRESSION,
559 ARRAY_ACCESS_EXPRESSION,
560 INDICES,
561 DOT_QUALIFIED_EXPRESSION,
562 CALLABLE_REFERENCE_EXPRESSION,
563 CLASS_LITERAL_EXPRESSION,
564 SAFE_ACCESS_EXPRESSION,
565 OBJECT_LITERAL,
566 WHEN,
567 WHEN_ENTRY,
568 WHEN_ENTRY_GUARD,
569 WHEN_CONDITION_IN_RANGE,
570 WHEN_CONDITION_IS_PATTERN,
571 WHEN_CONDITION_EXPRESSION,
572 COLLECTION_LITERAL_EXPRESSION,
573 PACKAGE_DIRECTIVE,
574 SCRIPT,
575 TYPE_CODE_FRAGMENT,
576 EXPRESSION_CODE_FRAGMENT,
577 BLOCK_CODE_FRAGMENT,
578 KDOC_START,
579 KDOC_END,
580 KDOC_LEADING_ASTERISK,
581 KDOC_TEXT,
582 KDOC_CODE_BLOCK_TEXT,
583 KDOC_CODE_SPAN_TEXT,
584 KDOC_TAG_NAME,
585 KDOC_MARKDOWN_LINK,
586 KDOC_LPAR,
587 KDOC_RPAR,
588 KDOC_MARKDOWN_ESCAPED_CHAR,
589 KDOC_MARKDOWN_INLINE_LINK,
590 KDOC_SECTION,
591 KDOC_TAG,
592 KDOC_NAME,
593 BAD_CHARACTER,
594 NEW_LINE_INDENT,
595 ERROR_ELEMENT,
596 CODE_FRAGMENT,
597 DUMMY_HOLDER,
598];
599
600impl SyntaxKind {
601 pub const fn debug_name(self) -> &'static str {
603 match self {
604 EOF => "EOF",
605 RESERVED => "RESERVED",
606 BLOCK_COMMENT => "BLOCK_COMMENT",
607 EOL_COMMENT => "EOL_COMMENT",
608 SHEBANG_COMMENT => "SHEBANG_COMMENT",
609 DOC_COMMENT => "KDoc",
610 WHITE_SPACE => "WHITE_SPACE",
611 INTEGER_LITERAL => "INTEGER_LITERAL",
612 FLOAT_LITERAL => "FLOAT_CONSTANT",
613 CHARACTER_LITERAL => "CHARACTER_LITERAL",
614 INTERPOLATION_PREFIX => "INTERPOLATION_PREFIX",
615 CLOSING_QUOTE => "CLOSING_QUOTE",
616 OPEN_QUOTE => "OPEN_QUOTE",
617 REGULAR_STRING_PART => "REGULAR_STRING_PART",
618 ESCAPE_SEQUENCE => "ESCAPE_SEQUENCE",
619 SHORT_TEMPLATE_ENTRY_START => "SHORT_TEMPLATE_ENTRY_START",
620 LONG_TEMPLATE_ENTRY_START => "LONG_TEMPLATE_ENTRY_START",
621 LONG_TEMPLATE_ENTRY_END => "LONG_TEMPLATE_ENTRY_END",
622 DANGLING_NEWLINE => "DANGLING_NEWLINE",
623 PACKAGE_KEYWORD => "package",
624 AS_KEYWORD => "as",
625 TYPE_ALIAS_KEYWORD => "typealias",
626 CLASS_KEYWORD => "class",
627 THIS_KEYWORD => "this",
628 SUPER_KEYWORD => "super",
629 VAL_KEYWORD => "val",
630 VAR_KEYWORD => "var",
631 FUN_KEYWORD => "fun",
632 FOR_KEYWORD => "for",
633 NULL_KEYWORD => "null",
634 TRUE_KEYWORD => "true",
635 FALSE_KEYWORD => "false",
636 IS_KEYWORD => "is",
637 IN_KEYWORD => "in",
638 THROW_KEYWORD => "throw",
639 RETURN_KEYWORD => "return",
640 BREAK_KEYWORD => "break",
641 CONTINUE_KEYWORD => "continue",
642 OBJECT_KEYWORD => "object",
643 IF_KEYWORD => "if",
644 TRY_KEYWORD => "try",
645 ELSE_KEYWORD => "else",
646 WHILE_KEYWORD => "while",
647 DO_KEYWORD => "do",
648 WHEN_KEYWORD => "when",
649 INTERFACE_KEYWORD => "interface",
650 TYPEOF_KEYWORD => "typeof",
651 AS_SAFE => "AS_SAFE",
652 IDENTIFIER => "IDENTIFIER",
653 FIELD_IDENTIFIER => "FIELD_IDENTIFIER",
654 LBRACKET => "LBRACKET",
655 RBRACKET => "RBRACKET",
656 LBRACE => "LBRACE",
657 RBRACE => "RBRACE",
658 LPAR => "LPAR",
659 RPAR => "RPAR",
660 DOT => "DOT",
661 PLUSPLUS => "PLUSPLUS",
662 MINUSMINUS => "MINUSMINUS",
663 MUL => "MUL",
664 PLUS => "PLUS",
665 MINUS => "MINUS",
666 EXCL => "EXCL",
667 DIV => "DIV",
668 PERC => "PERC",
669 LT => "LT",
670 GT => "GT",
671 LTEQ => "LTEQ",
672 GTEQ => "GTEQ",
673 EQEQEQ => "EQEQEQ",
674 ARROW => "ARROW",
675 DOUBLE_ARROW => "DOUBLE_ARROW",
676 EXCLEQEQEQ => "EXCLEQEQEQ",
677 EQEQ => "EQEQ",
678 EXCLEQ => "EXCLEQ",
679 EXCLEXCL => "EXCLEXCL",
680 ANDAND => "ANDAND",
681 AND => "AND",
682 OROR => "OROR",
683 SAFE_ACCESS => "SAFE_ACCESS",
684 ELVIS => "ELVIS",
685 QUEST => "QUEST",
686 COLONCOLON => "COLONCOLON",
687 COLON => "COLON",
688 SEMICOLON => "SEMICOLON",
689 DOUBLE_SEMICOLON => "DOUBLE_SEMICOLON",
690 RANGE => "RANGE",
691 RANGE_UNTIL => "RANGE_UNTIL",
692 EQ => "EQ",
693 MULTEQ => "MULTEQ",
694 DIVEQ => "DIVEQ",
695 PERCEQ => "PERCEQ",
696 PLUSEQ => "PLUSEQ",
697 MINUSEQ => "MINUSEQ",
698 NOT_IN => "NOT_IN",
699 NOT_IS => "NOT_IS",
700 HASH => "HASH",
701 AT => "AT",
702 COMMA => "COMMA",
703 EOL_OR_SEMICOLON => "EOL_OR_SEMICOLON",
704 ALL_KEYWORD => "all",
705 FILE_KEYWORD => "file",
706 FIELD_KEYWORD => "field",
707 PROPERTY_KEYWORD => "property",
708 RECEIVER_KEYWORD => "receiver",
709 PARAM_KEYWORD => "param",
710 SETPARAM_KEYWORD => "setparam",
711 DELEGATE_KEYWORD => "delegate",
712 IMPORT_KEYWORD => "import",
713 WHERE_KEYWORD => "where",
714 BY_KEYWORD => "by",
715 GET_KEYWORD => "get",
716 SET_KEYWORD => "set",
717 CONSTRUCTOR_KEYWORD => "constructor",
718 INIT_KEYWORD => "init",
719 CONTEXT_KEYWORD => "context",
720 ABSTRACT_KEYWORD => "abstract",
721 ENUM_KEYWORD => "enum",
722 CONTRACT_KEYWORD => "contract",
723 OPEN_KEYWORD => "open",
724 INNER_KEYWORD => "inner",
725 OVERRIDE_KEYWORD => "override",
726 PRIVATE_KEYWORD => "private",
727 PUBLIC_KEYWORD => "public",
728 INTERNAL_KEYWORD => "internal",
729 PROTECTED_KEYWORD => "protected",
730 CATCH_KEYWORD => "catch",
731 OUT_KEYWORD => "out",
732 VARARG_KEYWORD => "vararg",
733 REIFIED_KEYWORD => "reified",
734 DYNAMIC_KEYWORD => "dynamic",
735 COMPANION_KEYWORD => "companion",
736 SEALED_KEYWORD => "sealed",
737 FINALLY_KEYWORD => "finally",
738 FINAL_KEYWORD => "final",
739 LATEINIT_KEYWORD => "lateinit",
740 DATA_KEYWORD => "data",
741 VALUE_KEYWORD => "value",
742 INLINE_KEYWORD => "inline",
743 NOINLINE_KEYWORD => "noinline",
744 TAILREC_KEYWORD => "tailrec",
745 EXTERNAL_KEYWORD => "external",
746 ANNOTATION_KEYWORD => "annotation",
747 CROSSINLINE_KEYWORD => "crossinline",
748 OPERATOR_KEYWORD => "operator",
749 INFIX_KEYWORD => "infix",
750 CONST_KEYWORD => "const",
751 SUSPEND_KEYWORD => "suspend",
752 EXPECT_KEYWORD => "expect",
753 ACTUAL_KEYWORD => "actual",
754 FILE => "kotlin.FILE",
755 KT_FILE => "FILE",
756 CLASS => "CLASS",
757 FUN => "FUN",
758 PROPERTY => "PROPERTY",
759 DESTRUCTURING_DECLARATION => "DESTRUCTURING_DECLARATION",
760 DESTRUCTURING_DECLARATION_ENTRY => "DESTRUCTURING_DECLARATION_ENTRY",
761 OBJECT_DECLARATION => "OBJECT_DECLARATION",
762 TYPEALIAS => "TYPEALIAS",
763 COMPANION_BLOCK => "COMPANION_BLOCK",
764 ENUM_ENTRY => "ENUM_ENTRY",
765 CLASS_INITIALIZER => "CLASS_INITIALIZER",
766 SCRIPT_INITIALIZER => "SCRIPT_INITIALIZER",
767 SECONDARY_CONSTRUCTOR => "SECONDARY_CONSTRUCTOR",
768 PRIMARY_CONSTRUCTOR => "PRIMARY_CONSTRUCTOR",
769 CONTEXT_RECEIVER => "CONTEXT_RECEIVER",
770 CONTEXT_PARAMETER_LIST => "CONTEXT_PARAMETER_LIST",
771 TYPE_PARAMETER_LIST => "TYPE_PARAMETER_LIST",
772 TYPE_PARAMETER => "TYPE_PARAMETER",
773 SUPER_TYPE_LIST => "SUPER_TYPE_LIST",
774 DELEGATED_SUPER_TYPE_ENTRY => "DELEGATED_SUPER_TYPE_ENTRY",
775 SUPER_TYPE_CALL_ENTRY => "SUPER_TYPE_CALL_ENTRY",
776 SUPER_TYPE_ENTRY => "SUPER_TYPE_ENTRY",
777 PROPERTY_DELEGATE => "PROPERTY_DELEGATE",
778 CONSTRUCTOR_CALLEE => "CONSTRUCTOR_CALLEE",
779 VALUE_PARAMETER_LIST => "VALUE_PARAMETER_LIST",
780 VALUE_PARAMETER => "VALUE_PARAMETER",
781 CLASS_BODY => "CLASS_BODY",
782 IMPORT_LIST => "IMPORT_LIST",
783 FILE_ANNOTATION_LIST => "FILE_ANNOTATION_LIST",
784 IMPORT_DIRECTIVE => "IMPORT_DIRECTIVE",
785 IMPORT_ALIAS => "IMPORT_ALIAS",
786 MODIFIER_LIST => "MODIFIER_LIST",
787 ANNOTATION => "ANNOTATION",
788 ANNOTATION_ENTRY => "ANNOTATION_ENTRY",
789 ANNOTATION_TARGET => "ANNOTATION_TARGET",
790 TYPE_ARGUMENT_LIST => "TYPE_ARGUMENT_LIST",
791 VALUE_ARGUMENT_LIST => "VALUE_ARGUMENT_LIST",
792 VALUE_ARGUMENT => "VALUE_ARGUMENT",
793 CONTRACT_EFFECT_LIST => "CONTRACT_EFFECT_LIST",
794 CONTRACT_EFFECT => "CONTRACT_EFFECT",
795 LAMBDA_ARGUMENT => "LAMBDA_ARGUMENT",
796 VALUE_ARGUMENT_NAME => "VALUE_ARGUMENT_NAME",
797 TYPE_REFERENCE => "TYPE_REFERENCE",
798 USER_TYPE => "USER_TYPE",
799 DYNAMIC_TYPE => "DYNAMIC_TYPE",
800 FUNCTION_TYPE => "FUNCTION_TYPE",
801 FUNCTION_TYPE_RECEIVER => "FUNCTION_TYPE_RECEIVER",
802 NULLABLE_TYPE => "NULLABLE_TYPE",
803 INTERSECTION_TYPE => "INTERSECTION_TYPE",
804 TYPE_PROJECTION => "TYPE_PROJECTION",
805 PROPERTY_ACCESSOR => "PROPERTY_ACCESSOR",
806 BACKING_FIELD => "BACKING_FIELD",
807 INITIALIZER_LIST => "INITIALIZER_LIST",
808 TYPE_CONSTRAINT_LIST => "TYPE_CONSTRAINT_LIST",
809 TYPE_CONSTRAINT => "TYPE_CONSTRAINT",
810 CONSTRUCTOR_DELEGATION_CALL => "CONSTRUCTOR_DELEGATION_CALL",
811 CONSTRUCTOR_DELEGATION_REFERENCE => "CONSTRUCTOR_DELEGATION_REFERENCE",
812 NULL => "NULL",
813 BOOLEAN_CONSTANT => "BOOLEAN_CONSTANT",
814 FLOAT_CONSTANT => "FLOAT_CONSTANT",
815 CHARACTER_CONSTANT => "CHARACTER_CONSTANT",
816 INTEGER_CONSTANT => "INTEGER_CONSTANT",
817 STRING_TEMPLATE => "STRING_TEMPLATE",
818 LONG_STRING_TEMPLATE_ENTRY => "LONG_STRING_TEMPLATE_ENTRY",
819 SHORT_STRING_TEMPLATE_ENTRY => "SHORT_STRING_TEMPLATE_ENTRY",
820 LITERAL_STRING_TEMPLATE_ENTRY => "LITERAL_STRING_TEMPLATE_ENTRY",
821 ESCAPE_STRING_TEMPLATE_ENTRY => "ESCAPE_STRING_TEMPLATE_ENTRY",
822 STRING_INTERPOLATION_PREFIX => "STRING_INTERPOLATION_PREFIX",
823 PARENTHESIZED => "PARENTHESIZED",
824 RETURN => "RETURN",
825 THROW => "THROW",
826 CONTINUE => "CONTINUE",
827 BREAK => "BREAK",
828 IF => "IF",
829 CONDITION => "CONDITION",
830 THEN => "THEN",
831 ELSE => "ELSE",
832 TRY => "TRY",
833 CATCH => "CATCH",
834 FINALLY => "FINALLY",
835 FOR => "FOR",
836 WHILE => "WHILE",
837 DO_WHILE => "DO_WHILE",
838 LOOP_RANGE => "LOOP_RANGE",
839 BODY => "BODY",
840 BLOCK => "BLOCK",
841 LAMBDA_EXPRESSION => "LAMBDA_EXPRESSION",
842 FUNCTION_LITERAL => "FUNCTION_LITERAL",
843 ANNOTATED_EXPRESSION => "ANNOTATED_EXPRESSION",
844 REFERENCE_EXPRESSION => "REFERENCE_EXPRESSION",
845 ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION => "ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION",
846 OPERATION_REFERENCE => "OPERATION_REFERENCE",
847 LABEL => "LABEL",
848 LABEL_QUALIFIER => "LABEL_QUALIFIER",
849 THIS_EXPRESSION => "THIS_EXPRESSION",
850 SUPER_EXPRESSION => "SUPER_EXPRESSION",
851 BINARY_EXPRESSION => "BINARY_EXPRESSION",
852 BINARY_WITH_TYPE => "BINARY_WITH_TYPE",
853 IS_EXPRESSION => "IS_EXPRESSION",
854 PREFIX_EXPRESSION => "PREFIX_EXPRESSION",
855 POSTFIX_EXPRESSION => "POSTFIX_EXPRESSION",
856 LABELED_EXPRESSION => "LABELED_EXPRESSION",
857 CALL_EXPRESSION => "CALL_EXPRESSION",
858 ARRAY_ACCESS_EXPRESSION => "ARRAY_ACCESS_EXPRESSION",
859 INDICES => "INDICES",
860 DOT_QUALIFIED_EXPRESSION => "DOT_QUALIFIED_EXPRESSION",
861 CALLABLE_REFERENCE_EXPRESSION => "CALLABLE_REFERENCE_EXPRESSION",
862 CLASS_LITERAL_EXPRESSION => "CLASS_LITERAL_EXPRESSION",
863 SAFE_ACCESS_EXPRESSION => "SAFE_ACCESS_EXPRESSION",
864 OBJECT_LITERAL => "OBJECT_LITERAL",
865 WHEN => "WHEN",
866 WHEN_ENTRY => "WHEN_ENTRY",
867 WHEN_ENTRY_GUARD => "WHEN_ENTRY_GUARD",
868 WHEN_CONDITION_IN_RANGE => "WHEN_CONDITION_IN_RANGE",
869 WHEN_CONDITION_IS_PATTERN => "WHEN_CONDITION_IS_PATTERN",
870 WHEN_CONDITION_EXPRESSION => "WHEN_CONDITION_WITH_EXPRESSION",
871 COLLECTION_LITERAL_EXPRESSION => "COLLECTION_LITERAL_EXPRESSION",
872 PACKAGE_DIRECTIVE => "PACKAGE_DIRECTIVE",
873 SCRIPT => "SCRIPT",
874 TYPE_CODE_FRAGMENT => "kotlin.TYPE_CODE_FRAGMENT",
875 EXPRESSION_CODE_FRAGMENT => "kotlin.EXPRESSION_CODE_FRAGMENT",
876 BLOCK_CODE_FRAGMENT => "kotlin.BLOCK_CODE_FRAGMENT",
877 KDOC_START => "KDOC_START",
878 KDOC_END => "KDOC_END",
879 KDOC_LEADING_ASTERISK => "KDOC_LEADING_ASTERISK",
880 KDOC_TEXT => "KDOC_TEXT",
881 KDOC_CODE_BLOCK_TEXT => "KDOC_CODE_BLOCK_TEXT",
882 KDOC_CODE_SPAN_TEXT => "KDOC_CODE_SPAN_TEXT",
883 KDOC_TAG_NAME => "KDOC_TAG_NAME",
884 KDOC_MARKDOWN_LINK => "KDOC_MARKDOWN_LINK",
885 KDOC_LPAR => "KDOC_LPAR",
886 KDOC_RPAR => "KDOC_RPAR",
887 KDOC_MARKDOWN_ESCAPED_CHAR => "KDOC_MARKDOWN_ESCAPED_CHAR",
888 KDOC_MARKDOWN_INLINE_LINK => "KDOC_MARKDOWN_INLINE_LINK",
889 KDOC_SECTION => "KDOC_SECTION",
890 KDOC_TAG => "KDOC_TAG",
891 KDOC_NAME => "KDOC_NAME",
892 BAD_CHARACTER => "BAD_CHARACTER",
893 NEW_LINE_INDENT => "NEW_LINE_INDENT",
894 ERROR_ELEMENT => "ERROR_ELEMENT",
895 CODE_FRAGMENT => "CODE_FRAGMENT",
896 DUMMY_HOLDER => "DUMMY_HOLDER",
897 }
898 }
899
900 pub const fn is_token(self) -> bool {
901 matches!(
902 self,
903 EOF
904 | RESERVED
905 | BLOCK_COMMENT
906 | EOL_COMMENT
907 | SHEBANG_COMMENT
908 | WHITE_SPACE
909 | INTEGER_LITERAL
910 | FLOAT_LITERAL
911 | CHARACTER_LITERAL
912 | INTERPOLATION_PREFIX
913 | CLOSING_QUOTE
914 | OPEN_QUOTE
915 | REGULAR_STRING_PART
916 | ESCAPE_SEQUENCE
917 | SHORT_TEMPLATE_ENTRY_START
918 | LONG_TEMPLATE_ENTRY_START
919 | LONG_TEMPLATE_ENTRY_END
920 | DANGLING_NEWLINE
921 | PACKAGE_KEYWORD
922 | AS_KEYWORD
923 | TYPE_ALIAS_KEYWORD
924 | CLASS_KEYWORD
925 | THIS_KEYWORD
926 | SUPER_KEYWORD
927 | VAL_KEYWORD
928 | VAR_KEYWORD
929 | FUN_KEYWORD
930 | FOR_KEYWORD
931 | NULL_KEYWORD
932 | TRUE_KEYWORD
933 | FALSE_KEYWORD
934 | IS_KEYWORD
935 | IN_KEYWORD
936 | THROW_KEYWORD
937 | RETURN_KEYWORD
938 | BREAK_KEYWORD
939 | CONTINUE_KEYWORD
940 | OBJECT_KEYWORD
941 | IF_KEYWORD
942 | TRY_KEYWORD
943 | ELSE_KEYWORD
944 | WHILE_KEYWORD
945 | DO_KEYWORD
946 | WHEN_KEYWORD
947 | INTERFACE_KEYWORD
948 | TYPEOF_KEYWORD
949 | AS_SAFE
950 | IDENTIFIER
951 | FIELD_IDENTIFIER
952 | LBRACKET
953 | RBRACKET
954 | LBRACE
955 | RBRACE
956 | LPAR
957 | RPAR
958 | DOT
959 | PLUSPLUS
960 | MINUSMINUS
961 | MUL
962 | PLUS
963 | MINUS
964 | EXCL
965 | DIV
966 | PERC
967 | LT
968 | GT
969 | LTEQ
970 | GTEQ
971 | EQEQEQ
972 | ARROW
973 | DOUBLE_ARROW
974 | EXCLEQEQEQ
975 | EQEQ
976 | EXCLEQ
977 | EXCLEXCL
978 | ANDAND
979 | AND
980 | OROR
981 | SAFE_ACCESS
982 | ELVIS
983 | QUEST
984 | COLONCOLON
985 | COLON
986 | SEMICOLON
987 | DOUBLE_SEMICOLON
988 | RANGE
989 | RANGE_UNTIL
990 | EQ
991 | MULTEQ
992 | DIVEQ
993 | PERCEQ
994 | PLUSEQ
995 | MINUSEQ
996 | NOT_IN
997 | NOT_IS
998 | HASH
999 | AT
1000 | COMMA
1001 | EOL_OR_SEMICOLON
1002 | ALL_KEYWORD
1003 | FILE_KEYWORD
1004 | FIELD_KEYWORD
1005 | PROPERTY_KEYWORD
1006 | RECEIVER_KEYWORD
1007 | PARAM_KEYWORD
1008 | SETPARAM_KEYWORD
1009 | DELEGATE_KEYWORD
1010 | IMPORT_KEYWORD
1011 | WHERE_KEYWORD
1012 | BY_KEYWORD
1013 | GET_KEYWORD
1014 | SET_KEYWORD
1015 | CONSTRUCTOR_KEYWORD
1016 | INIT_KEYWORD
1017 | CONTEXT_KEYWORD
1018 | ABSTRACT_KEYWORD
1019 | ENUM_KEYWORD
1020 | CONTRACT_KEYWORD
1021 | OPEN_KEYWORD
1022 | INNER_KEYWORD
1023 | OVERRIDE_KEYWORD
1024 | PRIVATE_KEYWORD
1025 | PUBLIC_KEYWORD
1026 | INTERNAL_KEYWORD
1027 | PROTECTED_KEYWORD
1028 | CATCH_KEYWORD
1029 | OUT_KEYWORD
1030 | VARARG_KEYWORD
1031 | REIFIED_KEYWORD
1032 | DYNAMIC_KEYWORD
1033 | COMPANION_KEYWORD
1034 | SEALED_KEYWORD
1035 | FINALLY_KEYWORD
1036 | FINAL_KEYWORD
1037 | LATEINIT_KEYWORD
1038 | DATA_KEYWORD
1039 | VALUE_KEYWORD
1040 | INLINE_KEYWORD
1041 | NOINLINE_KEYWORD
1042 | TAILREC_KEYWORD
1043 | EXTERNAL_KEYWORD
1044 | ANNOTATION_KEYWORD
1045 | CROSSINLINE_KEYWORD
1046 | OPERATOR_KEYWORD
1047 | INFIX_KEYWORD
1048 | CONST_KEYWORD
1049 | SUSPEND_KEYWORD
1050 | EXPECT_KEYWORD
1051 | ACTUAL_KEYWORD
1052 | KDOC_START
1053 | KDOC_END
1054 | KDOC_LEADING_ASTERISK
1055 | KDOC_TEXT
1056 | KDOC_CODE_BLOCK_TEXT
1057 | KDOC_CODE_SPAN_TEXT
1058 | KDOC_TAG_NAME
1059 | KDOC_LPAR
1060 | KDOC_RPAR
1061 | KDOC_MARKDOWN_ESCAPED_CHAR
1062 | KDOC_MARKDOWN_INLINE_LINK
1063 | BAD_CHARACTER
1064 | NEW_LINE_INDENT
1065 )
1066 }
1067
1068 pub fn hard_keyword(text: &str) -> Option<SyntaxKind> {
1070 Some(match text.as_bytes() {
1071 [b'p', b'a', b'c', b'k', b'a', b'g', b'e'] => PACKAGE_KEYWORD, [b'a', b's'] => AS_KEYWORD, [b't', b'y', b'p', b'e', b'a', b'l', b'i', b'a', b's'] => TYPE_ALIAS_KEYWORD, [b'c', b'l', b'a', b's', b's'] => CLASS_KEYWORD, [b't', b'h', b'i', b's'] => THIS_KEYWORD, [b's', b'u', b'p', b'e', b'r'] => SUPER_KEYWORD, [b'v', b'a', b'l'] => VAL_KEYWORD, [b'v', b'a', b'r'] => VAR_KEYWORD, [b'f', b'u', b'n'] => FUN_KEYWORD, [b'f', b'o', b'r'] => FOR_KEYWORD, [b'n', b'u', b'l', b'l'] => NULL_KEYWORD, [b't', b'r', b'u', b'e'] => TRUE_KEYWORD, [b'f', b'a', b'l', b's', b'e'] => FALSE_KEYWORD, [b'i', b's'] => IS_KEYWORD, [b'i', b'n'] => IN_KEYWORD, [b't', b'h', b'r', b'o', b'w'] => THROW_KEYWORD, [b'r', b'e', b't', b'u', b'r', b'n'] => RETURN_KEYWORD, [b'b', b'r', b'e', b'a', b'k'] => BREAK_KEYWORD, [b'c', b'o', b'n', b't', b'i', b'n', b'u', b'e'] => CONTINUE_KEYWORD, [b'o', b'b', b'j', b'e', b'c', b't'] => OBJECT_KEYWORD, [b'i', b'f'] => IF_KEYWORD, [b't', b'r', b'y'] => TRY_KEYWORD, [b'e', b'l', b's', b'e'] => ELSE_KEYWORD, [b'w', b'h', b'i', b'l', b'e'] => WHILE_KEYWORD, [b'd', b'o'] => DO_KEYWORD, [b'w', b'h', b'e', b'n'] => WHEN_KEYWORD, [b'i', b'n', b't', b'e', b'r', b'f', b'a', b'c', b'e'] => INTERFACE_KEYWORD, [b't', b'y', b'p', b'e', b'o', b'f'] => TYPEOF_KEYWORD, [b'a', b's', b'?'] => AS_SAFE, [b'!', b'i', b'n'] => NOT_IN, [b'!', b'i', b's'] => NOT_IS, _ => return None,
1103 })
1104 }
1105
1106 pub fn soft_keyword(text: &str) -> Option<SyntaxKind> {
1108 Some(match text.as_bytes() {
1109 [b'a', b'l', b'l'] => ALL_KEYWORD, [b'f', b'i', b'l', b'e'] => FILE_KEYWORD, [b'f', b'i', b'e', b'l', b'd'] => FIELD_KEYWORD, [b'p', b'r', b'o', b'p', b'e', b'r', b't', b'y'] => PROPERTY_KEYWORD, [b'r', b'e', b'c', b'e', b'i', b'v', b'e', b'r'] => RECEIVER_KEYWORD, [b'p', b'a', b'r', b'a', b'm'] => PARAM_KEYWORD, [b's', b'e', b't', b'p', b'a', b'r', b'a', b'm'] => SETPARAM_KEYWORD, [b'd', b'e', b'l', b'e', b'g', b'a', b't', b'e'] => DELEGATE_KEYWORD, [b'i', b'm', b'p', b'o', b'r', b't'] => IMPORT_KEYWORD, [b'w', b'h', b'e', b'r', b'e'] => WHERE_KEYWORD, [b'b', b'y'] => BY_KEYWORD, [b'g', b'e', b't'] => GET_KEYWORD, [b's', b'e', b't'] => SET_KEYWORD, [b'c', b'o', b'n', b's', b't', b'r', b'u', b'c', b't', b'o', b'r'] => CONSTRUCTOR_KEYWORD, [b'i', b'n', b'i', b't'] => INIT_KEYWORD, [b'c', b'o', b'n', b't', b'e', b'x', b't'] => CONTEXT_KEYWORD, [b'a', b'b', b's', b't', b'r', b'a', b'c', b't'] => ABSTRACT_KEYWORD, [b'e', b'n', b'u', b'm'] => ENUM_KEYWORD, [b'c', b'o', b'n', b't', b'r', b'a', b'c', b't'] => CONTRACT_KEYWORD, [b'o', b'p', b'e', b'n'] => OPEN_KEYWORD, [b'i', b'n', b'n', b'e', b'r'] => INNER_KEYWORD, [b'o', b'v', b'e', b'r', b'r', b'i', b'd', b'e'] => OVERRIDE_KEYWORD, [b'p', b'r', b'i', b'v', b'a', b't', b'e'] => PRIVATE_KEYWORD, [b'p', b'u', b'b', b'l', b'i', b'c'] => PUBLIC_KEYWORD, [b'i', b'n', b't', b'e', b'r', b'n', b'a', b'l'] => INTERNAL_KEYWORD, [b'p', b'r', b'o', b't', b'e', b'c', b't', b'e', b'd'] => PROTECTED_KEYWORD, [b'c', b'a', b't', b'c', b'h'] => CATCH_KEYWORD, [b'o', b'u', b't'] => OUT_KEYWORD, [b'v', b'a', b'r', b'a', b'r', b'g'] => VARARG_KEYWORD, [b'r', b'e', b'i', b'f', b'i', b'e', b'd'] => REIFIED_KEYWORD, [b'd', b'y', b'n', b'a', b'm', b'i', b'c'] => DYNAMIC_KEYWORD, [b'c', b'o', b'm', b'p', b'a', b'n', b'i', b'o', b'n'] => COMPANION_KEYWORD, [b's', b'e', b'a', b'l', b'e', b'd'] => SEALED_KEYWORD, [b'f', b'i', b'n', b'a', b'l', b'l', b'y'] => FINALLY_KEYWORD, [b'f', b'i', b'n', b'a', b'l'] => FINAL_KEYWORD, [b'l', b'a', b't', b'e', b'i', b'n', b'i', b't'] => LATEINIT_KEYWORD, [b'd', b'a', b't', b'a'] => DATA_KEYWORD, [b'v', b'a', b'l', b'u', b'e'] => VALUE_KEYWORD, [b'i', b'n', b'l', b'i', b'n', b'e'] => INLINE_KEYWORD, [b'n', b'o', b'i', b'n', b'l', b'i', b'n', b'e'] => NOINLINE_KEYWORD, [b't', b'a', b'i', b'l', b'r', b'e', b'c'] => TAILREC_KEYWORD, [b'e', b'x', b't', b'e', b'r', b'n', b'a', b'l'] => EXTERNAL_KEYWORD, [b'a', b'n', b'n', b'o', b't', b'a', b't', b'i', b'o', b'n'] => ANNOTATION_KEYWORD, [b'c', b'r', b'o', b's', b's', b'i', b'n', b'l', b'i', b'n', b'e'] => CROSSINLINE_KEYWORD, [b'o', b'p', b'e', b'r', b'a', b't', b'o', b'r'] => OPERATOR_KEYWORD, [b'i', b'n', b'f', b'i', b'x'] => INFIX_KEYWORD, [b'c', b'o', b'n', b's', b't'] => CONST_KEYWORD, [b's', b'u', b's', b'p', b'e', b'n', b'd'] => SUSPEND_KEYWORD, [b'e', b'x', b'p', b'e', b'c', b't'] => EXPECT_KEYWORD, [b'a', b'c', b't', b'u', b'a', b'l'] => ACTUAL_KEYWORD, _ => return None,
1160 })
1161 }
1162
1163 pub fn keyword_text(self) -> Option<&'static str> {
1164 Some(match self {
1165 PACKAGE_KEYWORD => "package",
1166 AS_KEYWORD => "as",
1167 TYPE_ALIAS_KEYWORD => "typealias",
1168 CLASS_KEYWORD => "class",
1169 THIS_KEYWORD => "this",
1170 SUPER_KEYWORD => "super",
1171 VAL_KEYWORD => "val",
1172 VAR_KEYWORD => "var",
1173 FUN_KEYWORD => "fun",
1174 FOR_KEYWORD => "for",
1175 NULL_KEYWORD => "null",
1176 TRUE_KEYWORD => "true",
1177 FALSE_KEYWORD => "false",
1178 IS_KEYWORD => "is",
1179 IN_KEYWORD => "in",
1180 THROW_KEYWORD => "throw",
1181 RETURN_KEYWORD => "return",
1182 BREAK_KEYWORD => "break",
1183 CONTINUE_KEYWORD => "continue",
1184 OBJECT_KEYWORD => "object",
1185 IF_KEYWORD => "if",
1186 TRY_KEYWORD => "try",
1187 ELSE_KEYWORD => "else",
1188 WHILE_KEYWORD => "while",
1189 DO_KEYWORD => "do",
1190 WHEN_KEYWORD => "when",
1191 INTERFACE_KEYWORD => "interface",
1192 TYPEOF_KEYWORD => "typeof",
1193 AS_SAFE => "as?",
1194 NOT_IN => "!in",
1195 NOT_IS => "!is",
1196 ALL_KEYWORD => "all",
1197 FILE_KEYWORD => "file",
1198 FIELD_KEYWORD => "field",
1199 PROPERTY_KEYWORD => "property",
1200 RECEIVER_KEYWORD => "receiver",
1201 PARAM_KEYWORD => "param",
1202 SETPARAM_KEYWORD => "setparam",
1203 DELEGATE_KEYWORD => "delegate",
1204 IMPORT_KEYWORD => "import",
1205 WHERE_KEYWORD => "where",
1206 BY_KEYWORD => "by",
1207 GET_KEYWORD => "get",
1208 SET_KEYWORD => "set",
1209 CONSTRUCTOR_KEYWORD => "constructor",
1210 INIT_KEYWORD => "init",
1211 CONTEXT_KEYWORD => "context",
1212 ABSTRACT_KEYWORD => "abstract",
1213 ENUM_KEYWORD => "enum",
1214 CONTRACT_KEYWORD => "contract",
1215 OPEN_KEYWORD => "open",
1216 INNER_KEYWORD => "inner",
1217 OVERRIDE_KEYWORD => "override",
1218 PRIVATE_KEYWORD => "private",
1219 PUBLIC_KEYWORD => "public",
1220 INTERNAL_KEYWORD => "internal",
1221 PROTECTED_KEYWORD => "protected",
1222 CATCH_KEYWORD => "catch",
1223 OUT_KEYWORD => "out",
1224 VARARG_KEYWORD => "vararg",
1225 REIFIED_KEYWORD => "reified",
1226 DYNAMIC_KEYWORD => "dynamic",
1227 COMPANION_KEYWORD => "companion",
1228 SEALED_KEYWORD => "sealed",
1229 FINALLY_KEYWORD => "finally",
1230 FINAL_KEYWORD => "final",
1231 LATEINIT_KEYWORD => "lateinit",
1232 DATA_KEYWORD => "data",
1233 VALUE_KEYWORD => "value",
1234 INLINE_KEYWORD => "inline",
1235 NOINLINE_KEYWORD => "noinline",
1236 TAILREC_KEYWORD => "tailrec",
1237 EXTERNAL_KEYWORD => "external",
1238 ANNOTATION_KEYWORD => "annotation",
1239 CROSSINLINE_KEYWORD => "crossinline",
1240 OPERATOR_KEYWORD => "operator",
1241 INFIX_KEYWORD => "infix",
1242 CONST_KEYWORD => "const",
1243 SUSPEND_KEYWORD => "suspend",
1244 EXPECT_KEYWORD => "expect",
1245 ACTUAL_KEYWORD => "actual",
1246 _ => return None,
1247 })
1248 }
1249}