#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(u16)]
pub enum SyntaxKind {
EOF,
RESERVED,
BLOCK_COMMENT,
EOL_COMMENT,
SHEBANG_COMMENT,
DOC_COMMENT,
WHITE_SPACE,
INTEGER_LITERAL,
FLOAT_LITERAL,
CHARACTER_LITERAL,
INTERPOLATION_PREFIX,
CLOSING_QUOTE,
OPEN_QUOTE,
REGULAR_STRING_PART,
ESCAPE_SEQUENCE,
SHORT_TEMPLATE_ENTRY_START,
LONG_TEMPLATE_ENTRY_START,
LONG_TEMPLATE_ENTRY_END,
DANGLING_NEWLINE,
PACKAGE_KEYWORD,
AS_KEYWORD,
TYPE_ALIAS_KEYWORD,
CLASS_KEYWORD,
THIS_KEYWORD,
SUPER_KEYWORD,
VAL_KEYWORD,
VAR_KEYWORD,
FUN_KEYWORD,
FOR_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD,
FALSE_KEYWORD,
IS_KEYWORD,
IN_KEYWORD,
THROW_KEYWORD,
RETURN_KEYWORD,
BREAK_KEYWORD,
CONTINUE_KEYWORD,
OBJECT_KEYWORD,
IF_KEYWORD,
TRY_KEYWORD,
ELSE_KEYWORD,
WHILE_KEYWORD,
DO_KEYWORD,
WHEN_KEYWORD,
INTERFACE_KEYWORD,
TYPEOF_KEYWORD,
AS_SAFE,
IDENTIFIER,
FIELD_IDENTIFIER,
LBRACKET,
RBRACKET,
LBRACE,
RBRACE,
LPAR,
RPAR,
DOT,
PLUSPLUS,
MINUSMINUS,
MUL,
PLUS,
MINUS,
EXCL,
DIV,
PERC,
LT,
GT,
LTEQ,
GTEQ,
EQEQEQ,
ARROW,
DOUBLE_ARROW,
EXCLEQEQEQ,
EQEQ,
EXCLEQ,
EXCLEXCL,
ANDAND,
AND,
OROR,
SAFE_ACCESS,
ELVIS,
QUEST,
COLONCOLON,
COLON,
SEMICOLON,
DOUBLE_SEMICOLON,
RANGE,
RANGE_UNTIL,
EQ,
MULTEQ,
DIVEQ,
PERCEQ,
PLUSEQ,
MINUSEQ,
NOT_IN,
NOT_IS,
HASH,
AT,
COMMA,
EOL_OR_SEMICOLON,
ALL_KEYWORD,
FILE_KEYWORD,
FIELD_KEYWORD,
PROPERTY_KEYWORD,
RECEIVER_KEYWORD,
PARAM_KEYWORD,
SETPARAM_KEYWORD,
DELEGATE_KEYWORD,
IMPORT_KEYWORD,
WHERE_KEYWORD,
BY_KEYWORD,
GET_KEYWORD,
SET_KEYWORD,
CONSTRUCTOR_KEYWORD,
INIT_KEYWORD,
CONTEXT_KEYWORD,
ABSTRACT_KEYWORD,
ENUM_KEYWORD,
CONTRACT_KEYWORD,
OPEN_KEYWORD,
INNER_KEYWORD,
OVERRIDE_KEYWORD,
PRIVATE_KEYWORD,
PUBLIC_KEYWORD,
INTERNAL_KEYWORD,
PROTECTED_KEYWORD,
CATCH_KEYWORD,
OUT_KEYWORD,
VARARG_KEYWORD,
REIFIED_KEYWORD,
DYNAMIC_KEYWORD,
COMPANION_KEYWORD,
SEALED_KEYWORD,
FINALLY_KEYWORD,
FINAL_KEYWORD,
LATEINIT_KEYWORD,
DATA_KEYWORD,
VALUE_KEYWORD,
INLINE_KEYWORD,
NOINLINE_KEYWORD,
TAILREC_KEYWORD,
EXTERNAL_KEYWORD,
ANNOTATION_KEYWORD,
CROSSINLINE_KEYWORD,
OPERATOR_KEYWORD,
INFIX_KEYWORD,
CONST_KEYWORD,
SUSPEND_KEYWORD,
EXPECT_KEYWORD,
ACTUAL_KEYWORD,
FILE,
KT_FILE,
CLASS,
FUN,
PROPERTY,
DESTRUCTURING_DECLARATION,
DESTRUCTURING_DECLARATION_ENTRY,
OBJECT_DECLARATION,
TYPEALIAS,
COMPANION_BLOCK,
ENUM_ENTRY,
CLASS_INITIALIZER,
SCRIPT_INITIALIZER,
SECONDARY_CONSTRUCTOR,
PRIMARY_CONSTRUCTOR,
CONTEXT_RECEIVER,
CONTEXT_PARAMETER_LIST,
TYPE_PARAMETER_LIST,
TYPE_PARAMETER,
SUPER_TYPE_LIST,
DELEGATED_SUPER_TYPE_ENTRY,
SUPER_TYPE_CALL_ENTRY,
SUPER_TYPE_ENTRY,
PROPERTY_DELEGATE,
CONSTRUCTOR_CALLEE,
VALUE_PARAMETER_LIST,
VALUE_PARAMETER,
CLASS_BODY,
IMPORT_LIST,
FILE_ANNOTATION_LIST,
IMPORT_DIRECTIVE,
IMPORT_ALIAS,
MODIFIER_LIST,
ANNOTATION,
ANNOTATION_ENTRY,
ANNOTATION_TARGET,
TYPE_ARGUMENT_LIST,
VALUE_ARGUMENT_LIST,
VALUE_ARGUMENT,
CONTRACT_EFFECT_LIST,
CONTRACT_EFFECT,
LAMBDA_ARGUMENT,
VALUE_ARGUMENT_NAME,
TYPE_REFERENCE,
USER_TYPE,
DYNAMIC_TYPE,
FUNCTION_TYPE,
FUNCTION_TYPE_RECEIVER,
NULLABLE_TYPE,
INTERSECTION_TYPE,
TYPE_PROJECTION,
PROPERTY_ACCESSOR,
BACKING_FIELD,
INITIALIZER_LIST,
TYPE_CONSTRAINT_LIST,
TYPE_CONSTRAINT,
CONSTRUCTOR_DELEGATION_CALL,
CONSTRUCTOR_DELEGATION_REFERENCE,
NULL,
BOOLEAN_CONSTANT,
FLOAT_CONSTANT,
CHARACTER_CONSTANT,
INTEGER_CONSTANT,
STRING_TEMPLATE,
LONG_STRING_TEMPLATE_ENTRY,
SHORT_STRING_TEMPLATE_ENTRY,
LITERAL_STRING_TEMPLATE_ENTRY,
ESCAPE_STRING_TEMPLATE_ENTRY,
STRING_INTERPOLATION_PREFIX,
PARENTHESIZED,
RETURN,
THROW,
CONTINUE,
BREAK,
IF,
CONDITION,
THEN,
ELSE,
TRY,
CATCH,
FINALLY,
FOR,
WHILE,
DO_WHILE,
LOOP_RANGE,
BODY,
BLOCK,
LAMBDA_EXPRESSION,
FUNCTION_LITERAL,
ANNOTATED_EXPRESSION,
REFERENCE_EXPRESSION,
ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION,
OPERATION_REFERENCE,
LABEL,
LABEL_QUALIFIER,
THIS_EXPRESSION,
SUPER_EXPRESSION,
BINARY_EXPRESSION,
BINARY_WITH_TYPE,
IS_EXPRESSION,
PREFIX_EXPRESSION,
POSTFIX_EXPRESSION,
LABELED_EXPRESSION,
CALL_EXPRESSION,
ARRAY_ACCESS_EXPRESSION,
INDICES,
DOT_QUALIFIED_EXPRESSION,
CALLABLE_REFERENCE_EXPRESSION,
CLASS_LITERAL_EXPRESSION,
SAFE_ACCESS_EXPRESSION,
OBJECT_LITERAL,
WHEN,
WHEN_ENTRY,
WHEN_ENTRY_GUARD,
WHEN_CONDITION_IN_RANGE,
WHEN_CONDITION_IS_PATTERN,
WHEN_CONDITION_EXPRESSION,
COLLECTION_LITERAL_EXPRESSION,
PACKAGE_DIRECTIVE,
SCRIPT,
TYPE_CODE_FRAGMENT,
EXPRESSION_CODE_FRAGMENT,
BLOCK_CODE_FRAGMENT,
KDOC_START,
KDOC_END,
KDOC_LEADING_ASTERISK,
KDOC_TEXT,
KDOC_CODE_BLOCK_TEXT,
KDOC_CODE_SPAN_TEXT,
KDOC_TAG_NAME,
KDOC_MARKDOWN_LINK,
KDOC_LPAR,
KDOC_RPAR,
KDOC_MARKDOWN_ESCAPED_CHAR,
KDOC_MARKDOWN_INLINE_LINK,
KDOC_SECTION,
KDOC_TAG,
KDOC_NAME,
BAD_CHARACTER,
NEW_LINE_INDENT,
ERROR_ELEMENT,
CODE_FRAGMENT,
DUMMY_HOLDER,
}
use SyntaxKind::*;
pub(crate) const ALL: [SyntaxKind; 293] = [
EOF,
RESERVED,
BLOCK_COMMENT,
EOL_COMMENT,
SHEBANG_COMMENT,
DOC_COMMENT,
WHITE_SPACE,
INTEGER_LITERAL,
FLOAT_LITERAL,
CHARACTER_LITERAL,
INTERPOLATION_PREFIX,
CLOSING_QUOTE,
OPEN_QUOTE,
REGULAR_STRING_PART,
ESCAPE_SEQUENCE,
SHORT_TEMPLATE_ENTRY_START,
LONG_TEMPLATE_ENTRY_START,
LONG_TEMPLATE_ENTRY_END,
DANGLING_NEWLINE,
PACKAGE_KEYWORD,
AS_KEYWORD,
TYPE_ALIAS_KEYWORD,
CLASS_KEYWORD,
THIS_KEYWORD,
SUPER_KEYWORD,
VAL_KEYWORD,
VAR_KEYWORD,
FUN_KEYWORD,
FOR_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD,
FALSE_KEYWORD,
IS_KEYWORD,
IN_KEYWORD,
THROW_KEYWORD,
RETURN_KEYWORD,
BREAK_KEYWORD,
CONTINUE_KEYWORD,
OBJECT_KEYWORD,
IF_KEYWORD,
TRY_KEYWORD,
ELSE_KEYWORD,
WHILE_KEYWORD,
DO_KEYWORD,
WHEN_KEYWORD,
INTERFACE_KEYWORD,
TYPEOF_KEYWORD,
AS_SAFE,
IDENTIFIER,
FIELD_IDENTIFIER,
LBRACKET,
RBRACKET,
LBRACE,
RBRACE,
LPAR,
RPAR,
DOT,
PLUSPLUS,
MINUSMINUS,
MUL,
PLUS,
MINUS,
EXCL,
DIV,
PERC,
LT,
GT,
LTEQ,
GTEQ,
EQEQEQ,
ARROW,
DOUBLE_ARROW,
EXCLEQEQEQ,
EQEQ,
EXCLEQ,
EXCLEXCL,
ANDAND,
AND,
OROR,
SAFE_ACCESS,
ELVIS,
QUEST,
COLONCOLON,
COLON,
SEMICOLON,
DOUBLE_SEMICOLON,
RANGE,
RANGE_UNTIL,
EQ,
MULTEQ,
DIVEQ,
PERCEQ,
PLUSEQ,
MINUSEQ,
NOT_IN,
NOT_IS,
HASH,
AT,
COMMA,
EOL_OR_SEMICOLON,
ALL_KEYWORD,
FILE_KEYWORD,
FIELD_KEYWORD,
PROPERTY_KEYWORD,
RECEIVER_KEYWORD,
PARAM_KEYWORD,
SETPARAM_KEYWORD,
DELEGATE_KEYWORD,
IMPORT_KEYWORD,
WHERE_KEYWORD,
BY_KEYWORD,
GET_KEYWORD,
SET_KEYWORD,
CONSTRUCTOR_KEYWORD,
INIT_KEYWORD,
CONTEXT_KEYWORD,
ABSTRACT_KEYWORD,
ENUM_KEYWORD,
CONTRACT_KEYWORD,
OPEN_KEYWORD,
INNER_KEYWORD,
OVERRIDE_KEYWORD,
PRIVATE_KEYWORD,
PUBLIC_KEYWORD,
INTERNAL_KEYWORD,
PROTECTED_KEYWORD,
CATCH_KEYWORD,
OUT_KEYWORD,
VARARG_KEYWORD,
REIFIED_KEYWORD,
DYNAMIC_KEYWORD,
COMPANION_KEYWORD,
SEALED_KEYWORD,
FINALLY_KEYWORD,
FINAL_KEYWORD,
LATEINIT_KEYWORD,
DATA_KEYWORD,
VALUE_KEYWORD,
INLINE_KEYWORD,
NOINLINE_KEYWORD,
TAILREC_KEYWORD,
EXTERNAL_KEYWORD,
ANNOTATION_KEYWORD,
CROSSINLINE_KEYWORD,
OPERATOR_KEYWORD,
INFIX_KEYWORD,
CONST_KEYWORD,
SUSPEND_KEYWORD,
EXPECT_KEYWORD,
ACTUAL_KEYWORD,
FILE,
KT_FILE,
CLASS,
FUN,
PROPERTY,
DESTRUCTURING_DECLARATION,
DESTRUCTURING_DECLARATION_ENTRY,
OBJECT_DECLARATION,
TYPEALIAS,
COMPANION_BLOCK,
ENUM_ENTRY,
CLASS_INITIALIZER,
SCRIPT_INITIALIZER,
SECONDARY_CONSTRUCTOR,
PRIMARY_CONSTRUCTOR,
CONTEXT_RECEIVER,
CONTEXT_PARAMETER_LIST,
TYPE_PARAMETER_LIST,
TYPE_PARAMETER,
SUPER_TYPE_LIST,
DELEGATED_SUPER_TYPE_ENTRY,
SUPER_TYPE_CALL_ENTRY,
SUPER_TYPE_ENTRY,
PROPERTY_DELEGATE,
CONSTRUCTOR_CALLEE,
VALUE_PARAMETER_LIST,
VALUE_PARAMETER,
CLASS_BODY,
IMPORT_LIST,
FILE_ANNOTATION_LIST,
IMPORT_DIRECTIVE,
IMPORT_ALIAS,
MODIFIER_LIST,
ANNOTATION,
ANNOTATION_ENTRY,
ANNOTATION_TARGET,
TYPE_ARGUMENT_LIST,
VALUE_ARGUMENT_LIST,
VALUE_ARGUMENT,
CONTRACT_EFFECT_LIST,
CONTRACT_EFFECT,
LAMBDA_ARGUMENT,
VALUE_ARGUMENT_NAME,
TYPE_REFERENCE,
USER_TYPE,
DYNAMIC_TYPE,
FUNCTION_TYPE,
FUNCTION_TYPE_RECEIVER,
NULLABLE_TYPE,
INTERSECTION_TYPE,
TYPE_PROJECTION,
PROPERTY_ACCESSOR,
BACKING_FIELD,
INITIALIZER_LIST,
TYPE_CONSTRAINT_LIST,
TYPE_CONSTRAINT,
CONSTRUCTOR_DELEGATION_CALL,
CONSTRUCTOR_DELEGATION_REFERENCE,
NULL,
BOOLEAN_CONSTANT,
FLOAT_CONSTANT,
CHARACTER_CONSTANT,
INTEGER_CONSTANT,
STRING_TEMPLATE,
LONG_STRING_TEMPLATE_ENTRY,
SHORT_STRING_TEMPLATE_ENTRY,
LITERAL_STRING_TEMPLATE_ENTRY,
ESCAPE_STRING_TEMPLATE_ENTRY,
STRING_INTERPOLATION_PREFIX,
PARENTHESIZED,
RETURN,
THROW,
CONTINUE,
BREAK,
IF,
CONDITION,
THEN,
ELSE,
TRY,
CATCH,
FINALLY,
FOR,
WHILE,
DO_WHILE,
LOOP_RANGE,
BODY,
BLOCK,
LAMBDA_EXPRESSION,
FUNCTION_LITERAL,
ANNOTATED_EXPRESSION,
REFERENCE_EXPRESSION,
ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION,
OPERATION_REFERENCE,
LABEL,
LABEL_QUALIFIER,
THIS_EXPRESSION,
SUPER_EXPRESSION,
BINARY_EXPRESSION,
BINARY_WITH_TYPE,
IS_EXPRESSION,
PREFIX_EXPRESSION,
POSTFIX_EXPRESSION,
LABELED_EXPRESSION,
CALL_EXPRESSION,
ARRAY_ACCESS_EXPRESSION,
INDICES,
DOT_QUALIFIED_EXPRESSION,
CALLABLE_REFERENCE_EXPRESSION,
CLASS_LITERAL_EXPRESSION,
SAFE_ACCESS_EXPRESSION,
OBJECT_LITERAL,
WHEN,
WHEN_ENTRY,
WHEN_ENTRY_GUARD,
WHEN_CONDITION_IN_RANGE,
WHEN_CONDITION_IS_PATTERN,
WHEN_CONDITION_EXPRESSION,
COLLECTION_LITERAL_EXPRESSION,
PACKAGE_DIRECTIVE,
SCRIPT,
TYPE_CODE_FRAGMENT,
EXPRESSION_CODE_FRAGMENT,
BLOCK_CODE_FRAGMENT,
KDOC_START,
KDOC_END,
KDOC_LEADING_ASTERISK,
KDOC_TEXT,
KDOC_CODE_BLOCK_TEXT,
KDOC_CODE_SPAN_TEXT,
KDOC_TAG_NAME,
KDOC_MARKDOWN_LINK,
KDOC_LPAR,
KDOC_RPAR,
KDOC_MARKDOWN_ESCAPED_CHAR,
KDOC_MARKDOWN_INLINE_LINK,
KDOC_SECTION,
KDOC_TAG,
KDOC_NAME,
BAD_CHARACTER,
NEW_LINE_INDENT,
ERROR_ELEMENT,
CODE_FRAGMENT,
DUMMY_HOLDER,
];
impl SyntaxKind {
pub const fn debug_name(self) -> &'static str {
match self {
EOF => "EOF",
RESERVED => "RESERVED",
BLOCK_COMMENT => "BLOCK_COMMENT",
EOL_COMMENT => "EOL_COMMENT",
SHEBANG_COMMENT => "SHEBANG_COMMENT",
DOC_COMMENT => "KDoc",
WHITE_SPACE => "WHITE_SPACE",
INTEGER_LITERAL => "INTEGER_LITERAL",
FLOAT_LITERAL => "FLOAT_CONSTANT",
CHARACTER_LITERAL => "CHARACTER_LITERAL",
INTERPOLATION_PREFIX => "INTERPOLATION_PREFIX",
CLOSING_QUOTE => "CLOSING_QUOTE",
OPEN_QUOTE => "OPEN_QUOTE",
REGULAR_STRING_PART => "REGULAR_STRING_PART",
ESCAPE_SEQUENCE => "ESCAPE_SEQUENCE",
SHORT_TEMPLATE_ENTRY_START => "SHORT_TEMPLATE_ENTRY_START",
LONG_TEMPLATE_ENTRY_START => "LONG_TEMPLATE_ENTRY_START",
LONG_TEMPLATE_ENTRY_END => "LONG_TEMPLATE_ENTRY_END",
DANGLING_NEWLINE => "DANGLING_NEWLINE",
PACKAGE_KEYWORD => "package",
AS_KEYWORD => "as",
TYPE_ALIAS_KEYWORD => "typealias",
CLASS_KEYWORD => "class",
THIS_KEYWORD => "this",
SUPER_KEYWORD => "super",
VAL_KEYWORD => "val",
VAR_KEYWORD => "var",
FUN_KEYWORD => "fun",
FOR_KEYWORD => "for",
NULL_KEYWORD => "null",
TRUE_KEYWORD => "true",
FALSE_KEYWORD => "false",
IS_KEYWORD => "is",
IN_KEYWORD => "in",
THROW_KEYWORD => "throw",
RETURN_KEYWORD => "return",
BREAK_KEYWORD => "break",
CONTINUE_KEYWORD => "continue",
OBJECT_KEYWORD => "object",
IF_KEYWORD => "if",
TRY_KEYWORD => "try",
ELSE_KEYWORD => "else",
WHILE_KEYWORD => "while",
DO_KEYWORD => "do",
WHEN_KEYWORD => "when",
INTERFACE_KEYWORD => "interface",
TYPEOF_KEYWORD => "typeof",
AS_SAFE => "AS_SAFE",
IDENTIFIER => "IDENTIFIER",
FIELD_IDENTIFIER => "FIELD_IDENTIFIER",
LBRACKET => "LBRACKET",
RBRACKET => "RBRACKET",
LBRACE => "LBRACE",
RBRACE => "RBRACE",
LPAR => "LPAR",
RPAR => "RPAR",
DOT => "DOT",
PLUSPLUS => "PLUSPLUS",
MINUSMINUS => "MINUSMINUS",
MUL => "MUL",
PLUS => "PLUS",
MINUS => "MINUS",
EXCL => "EXCL",
DIV => "DIV",
PERC => "PERC",
LT => "LT",
GT => "GT",
LTEQ => "LTEQ",
GTEQ => "GTEQ",
EQEQEQ => "EQEQEQ",
ARROW => "ARROW",
DOUBLE_ARROW => "DOUBLE_ARROW",
EXCLEQEQEQ => "EXCLEQEQEQ",
EQEQ => "EQEQ",
EXCLEQ => "EXCLEQ",
EXCLEXCL => "EXCLEXCL",
ANDAND => "ANDAND",
AND => "AND",
OROR => "OROR",
SAFE_ACCESS => "SAFE_ACCESS",
ELVIS => "ELVIS",
QUEST => "QUEST",
COLONCOLON => "COLONCOLON",
COLON => "COLON",
SEMICOLON => "SEMICOLON",
DOUBLE_SEMICOLON => "DOUBLE_SEMICOLON",
RANGE => "RANGE",
RANGE_UNTIL => "RANGE_UNTIL",
EQ => "EQ",
MULTEQ => "MULTEQ",
DIVEQ => "DIVEQ",
PERCEQ => "PERCEQ",
PLUSEQ => "PLUSEQ",
MINUSEQ => "MINUSEQ",
NOT_IN => "NOT_IN",
NOT_IS => "NOT_IS",
HASH => "HASH",
AT => "AT",
COMMA => "COMMA",
EOL_OR_SEMICOLON => "EOL_OR_SEMICOLON",
ALL_KEYWORD => "all",
FILE_KEYWORD => "file",
FIELD_KEYWORD => "field",
PROPERTY_KEYWORD => "property",
RECEIVER_KEYWORD => "receiver",
PARAM_KEYWORD => "param",
SETPARAM_KEYWORD => "setparam",
DELEGATE_KEYWORD => "delegate",
IMPORT_KEYWORD => "import",
WHERE_KEYWORD => "where",
BY_KEYWORD => "by",
GET_KEYWORD => "get",
SET_KEYWORD => "set",
CONSTRUCTOR_KEYWORD => "constructor",
INIT_KEYWORD => "init",
CONTEXT_KEYWORD => "context",
ABSTRACT_KEYWORD => "abstract",
ENUM_KEYWORD => "enum",
CONTRACT_KEYWORD => "contract",
OPEN_KEYWORD => "open",
INNER_KEYWORD => "inner",
OVERRIDE_KEYWORD => "override",
PRIVATE_KEYWORD => "private",
PUBLIC_KEYWORD => "public",
INTERNAL_KEYWORD => "internal",
PROTECTED_KEYWORD => "protected",
CATCH_KEYWORD => "catch",
OUT_KEYWORD => "out",
VARARG_KEYWORD => "vararg",
REIFIED_KEYWORD => "reified",
DYNAMIC_KEYWORD => "dynamic",
COMPANION_KEYWORD => "companion",
SEALED_KEYWORD => "sealed",
FINALLY_KEYWORD => "finally",
FINAL_KEYWORD => "final",
LATEINIT_KEYWORD => "lateinit",
DATA_KEYWORD => "data",
VALUE_KEYWORD => "value",
INLINE_KEYWORD => "inline",
NOINLINE_KEYWORD => "noinline",
TAILREC_KEYWORD => "tailrec",
EXTERNAL_KEYWORD => "external",
ANNOTATION_KEYWORD => "annotation",
CROSSINLINE_KEYWORD => "crossinline",
OPERATOR_KEYWORD => "operator",
INFIX_KEYWORD => "infix",
CONST_KEYWORD => "const",
SUSPEND_KEYWORD => "suspend",
EXPECT_KEYWORD => "expect",
ACTUAL_KEYWORD => "actual",
FILE => "kotlin.FILE",
KT_FILE => "FILE",
CLASS => "CLASS",
FUN => "FUN",
PROPERTY => "PROPERTY",
DESTRUCTURING_DECLARATION => "DESTRUCTURING_DECLARATION",
DESTRUCTURING_DECLARATION_ENTRY => "DESTRUCTURING_DECLARATION_ENTRY",
OBJECT_DECLARATION => "OBJECT_DECLARATION",
TYPEALIAS => "TYPEALIAS",
COMPANION_BLOCK => "COMPANION_BLOCK",
ENUM_ENTRY => "ENUM_ENTRY",
CLASS_INITIALIZER => "CLASS_INITIALIZER",
SCRIPT_INITIALIZER => "SCRIPT_INITIALIZER",
SECONDARY_CONSTRUCTOR => "SECONDARY_CONSTRUCTOR",
PRIMARY_CONSTRUCTOR => "PRIMARY_CONSTRUCTOR",
CONTEXT_RECEIVER => "CONTEXT_RECEIVER",
CONTEXT_PARAMETER_LIST => "CONTEXT_PARAMETER_LIST",
TYPE_PARAMETER_LIST => "TYPE_PARAMETER_LIST",
TYPE_PARAMETER => "TYPE_PARAMETER",
SUPER_TYPE_LIST => "SUPER_TYPE_LIST",
DELEGATED_SUPER_TYPE_ENTRY => "DELEGATED_SUPER_TYPE_ENTRY",
SUPER_TYPE_CALL_ENTRY => "SUPER_TYPE_CALL_ENTRY",
SUPER_TYPE_ENTRY => "SUPER_TYPE_ENTRY",
PROPERTY_DELEGATE => "PROPERTY_DELEGATE",
CONSTRUCTOR_CALLEE => "CONSTRUCTOR_CALLEE",
VALUE_PARAMETER_LIST => "VALUE_PARAMETER_LIST",
VALUE_PARAMETER => "VALUE_PARAMETER",
CLASS_BODY => "CLASS_BODY",
IMPORT_LIST => "IMPORT_LIST",
FILE_ANNOTATION_LIST => "FILE_ANNOTATION_LIST",
IMPORT_DIRECTIVE => "IMPORT_DIRECTIVE",
IMPORT_ALIAS => "IMPORT_ALIAS",
MODIFIER_LIST => "MODIFIER_LIST",
ANNOTATION => "ANNOTATION",
ANNOTATION_ENTRY => "ANNOTATION_ENTRY",
ANNOTATION_TARGET => "ANNOTATION_TARGET",
TYPE_ARGUMENT_LIST => "TYPE_ARGUMENT_LIST",
VALUE_ARGUMENT_LIST => "VALUE_ARGUMENT_LIST",
VALUE_ARGUMENT => "VALUE_ARGUMENT",
CONTRACT_EFFECT_LIST => "CONTRACT_EFFECT_LIST",
CONTRACT_EFFECT => "CONTRACT_EFFECT",
LAMBDA_ARGUMENT => "LAMBDA_ARGUMENT",
VALUE_ARGUMENT_NAME => "VALUE_ARGUMENT_NAME",
TYPE_REFERENCE => "TYPE_REFERENCE",
USER_TYPE => "USER_TYPE",
DYNAMIC_TYPE => "DYNAMIC_TYPE",
FUNCTION_TYPE => "FUNCTION_TYPE",
FUNCTION_TYPE_RECEIVER => "FUNCTION_TYPE_RECEIVER",
NULLABLE_TYPE => "NULLABLE_TYPE",
INTERSECTION_TYPE => "INTERSECTION_TYPE",
TYPE_PROJECTION => "TYPE_PROJECTION",
PROPERTY_ACCESSOR => "PROPERTY_ACCESSOR",
BACKING_FIELD => "BACKING_FIELD",
INITIALIZER_LIST => "INITIALIZER_LIST",
TYPE_CONSTRAINT_LIST => "TYPE_CONSTRAINT_LIST",
TYPE_CONSTRAINT => "TYPE_CONSTRAINT",
CONSTRUCTOR_DELEGATION_CALL => "CONSTRUCTOR_DELEGATION_CALL",
CONSTRUCTOR_DELEGATION_REFERENCE => "CONSTRUCTOR_DELEGATION_REFERENCE",
NULL => "NULL",
BOOLEAN_CONSTANT => "BOOLEAN_CONSTANT",
FLOAT_CONSTANT => "FLOAT_CONSTANT",
CHARACTER_CONSTANT => "CHARACTER_CONSTANT",
INTEGER_CONSTANT => "INTEGER_CONSTANT",
STRING_TEMPLATE => "STRING_TEMPLATE",
LONG_STRING_TEMPLATE_ENTRY => "LONG_STRING_TEMPLATE_ENTRY",
SHORT_STRING_TEMPLATE_ENTRY => "SHORT_STRING_TEMPLATE_ENTRY",
LITERAL_STRING_TEMPLATE_ENTRY => "LITERAL_STRING_TEMPLATE_ENTRY",
ESCAPE_STRING_TEMPLATE_ENTRY => "ESCAPE_STRING_TEMPLATE_ENTRY",
STRING_INTERPOLATION_PREFIX => "STRING_INTERPOLATION_PREFIX",
PARENTHESIZED => "PARENTHESIZED",
RETURN => "RETURN",
THROW => "THROW",
CONTINUE => "CONTINUE",
BREAK => "BREAK",
IF => "IF",
CONDITION => "CONDITION",
THEN => "THEN",
ELSE => "ELSE",
TRY => "TRY",
CATCH => "CATCH",
FINALLY => "FINALLY",
FOR => "FOR",
WHILE => "WHILE",
DO_WHILE => "DO_WHILE",
LOOP_RANGE => "LOOP_RANGE",
BODY => "BODY",
BLOCK => "BLOCK",
LAMBDA_EXPRESSION => "LAMBDA_EXPRESSION",
FUNCTION_LITERAL => "FUNCTION_LITERAL",
ANNOTATED_EXPRESSION => "ANNOTATED_EXPRESSION",
REFERENCE_EXPRESSION => "REFERENCE_EXPRESSION",
ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION => "ENUM_ENTRY_SUPERCLASS_REFERENCE_EXPRESSION",
OPERATION_REFERENCE => "OPERATION_REFERENCE",
LABEL => "LABEL",
LABEL_QUALIFIER => "LABEL_QUALIFIER",
THIS_EXPRESSION => "THIS_EXPRESSION",
SUPER_EXPRESSION => "SUPER_EXPRESSION",
BINARY_EXPRESSION => "BINARY_EXPRESSION",
BINARY_WITH_TYPE => "BINARY_WITH_TYPE",
IS_EXPRESSION => "IS_EXPRESSION",
PREFIX_EXPRESSION => "PREFIX_EXPRESSION",
POSTFIX_EXPRESSION => "POSTFIX_EXPRESSION",
LABELED_EXPRESSION => "LABELED_EXPRESSION",
CALL_EXPRESSION => "CALL_EXPRESSION",
ARRAY_ACCESS_EXPRESSION => "ARRAY_ACCESS_EXPRESSION",
INDICES => "INDICES",
DOT_QUALIFIED_EXPRESSION => "DOT_QUALIFIED_EXPRESSION",
CALLABLE_REFERENCE_EXPRESSION => "CALLABLE_REFERENCE_EXPRESSION",
CLASS_LITERAL_EXPRESSION => "CLASS_LITERAL_EXPRESSION",
SAFE_ACCESS_EXPRESSION => "SAFE_ACCESS_EXPRESSION",
OBJECT_LITERAL => "OBJECT_LITERAL",
WHEN => "WHEN",
WHEN_ENTRY => "WHEN_ENTRY",
WHEN_ENTRY_GUARD => "WHEN_ENTRY_GUARD",
WHEN_CONDITION_IN_RANGE => "WHEN_CONDITION_IN_RANGE",
WHEN_CONDITION_IS_PATTERN => "WHEN_CONDITION_IS_PATTERN",
WHEN_CONDITION_EXPRESSION => "WHEN_CONDITION_WITH_EXPRESSION",
COLLECTION_LITERAL_EXPRESSION => "COLLECTION_LITERAL_EXPRESSION",
PACKAGE_DIRECTIVE => "PACKAGE_DIRECTIVE",
SCRIPT => "SCRIPT",
TYPE_CODE_FRAGMENT => "kotlin.TYPE_CODE_FRAGMENT",
EXPRESSION_CODE_FRAGMENT => "kotlin.EXPRESSION_CODE_FRAGMENT",
BLOCK_CODE_FRAGMENT => "kotlin.BLOCK_CODE_FRAGMENT",
KDOC_START => "KDOC_START",
KDOC_END => "KDOC_END",
KDOC_LEADING_ASTERISK => "KDOC_LEADING_ASTERISK",
KDOC_TEXT => "KDOC_TEXT",
KDOC_CODE_BLOCK_TEXT => "KDOC_CODE_BLOCK_TEXT",
KDOC_CODE_SPAN_TEXT => "KDOC_CODE_SPAN_TEXT",
KDOC_TAG_NAME => "KDOC_TAG_NAME",
KDOC_MARKDOWN_LINK => "KDOC_MARKDOWN_LINK",
KDOC_LPAR => "KDOC_LPAR",
KDOC_RPAR => "KDOC_RPAR",
KDOC_MARKDOWN_ESCAPED_CHAR => "KDOC_MARKDOWN_ESCAPED_CHAR",
KDOC_MARKDOWN_INLINE_LINK => "KDOC_MARKDOWN_INLINE_LINK",
KDOC_SECTION => "KDOC_SECTION",
KDOC_TAG => "KDOC_TAG",
KDOC_NAME => "KDOC_NAME",
BAD_CHARACTER => "BAD_CHARACTER",
NEW_LINE_INDENT => "NEW_LINE_INDENT",
ERROR_ELEMENT => "ERROR_ELEMENT",
CODE_FRAGMENT => "CODE_FRAGMENT",
DUMMY_HOLDER => "DUMMY_HOLDER",
}
}
pub const fn is_token(self) -> bool {
matches!(
self,
EOF
| RESERVED
| BLOCK_COMMENT
| EOL_COMMENT
| SHEBANG_COMMENT
| WHITE_SPACE
| INTEGER_LITERAL
| FLOAT_LITERAL
| CHARACTER_LITERAL
| INTERPOLATION_PREFIX
| CLOSING_QUOTE
| OPEN_QUOTE
| REGULAR_STRING_PART
| ESCAPE_SEQUENCE
| SHORT_TEMPLATE_ENTRY_START
| LONG_TEMPLATE_ENTRY_START
| LONG_TEMPLATE_ENTRY_END
| DANGLING_NEWLINE
| PACKAGE_KEYWORD
| AS_KEYWORD
| TYPE_ALIAS_KEYWORD
| CLASS_KEYWORD
| THIS_KEYWORD
| SUPER_KEYWORD
| VAL_KEYWORD
| VAR_KEYWORD
| FUN_KEYWORD
| FOR_KEYWORD
| NULL_KEYWORD
| TRUE_KEYWORD
| FALSE_KEYWORD
| IS_KEYWORD
| IN_KEYWORD
| THROW_KEYWORD
| RETURN_KEYWORD
| BREAK_KEYWORD
| CONTINUE_KEYWORD
| OBJECT_KEYWORD
| IF_KEYWORD
| TRY_KEYWORD
| ELSE_KEYWORD
| WHILE_KEYWORD
| DO_KEYWORD
| WHEN_KEYWORD
| INTERFACE_KEYWORD
| TYPEOF_KEYWORD
| AS_SAFE
| IDENTIFIER
| FIELD_IDENTIFIER
| LBRACKET
| RBRACKET
| LBRACE
| RBRACE
| LPAR
| RPAR
| DOT
| PLUSPLUS
| MINUSMINUS
| MUL
| PLUS
| MINUS
| EXCL
| DIV
| PERC
| LT
| GT
| LTEQ
| GTEQ
| EQEQEQ
| ARROW
| DOUBLE_ARROW
| EXCLEQEQEQ
| EQEQ
| EXCLEQ
| EXCLEXCL
| ANDAND
| AND
| OROR
| SAFE_ACCESS
| ELVIS
| QUEST
| COLONCOLON
| COLON
| SEMICOLON
| DOUBLE_SEMICOLON
| RANGE
| RANGE_UNTIL
| EQ
| MULTEQ
| DIVEQ
| PERCEQ
| PLUSEQ
| MINUSEQ
| NOT_IN
| NOT_IS
| HASH
| AT
| COMMA
| EOL_OR_SEMICOLON
| ALL_KEYWORD
| FILE_KEYWORD
| FIELD_KEYWORD
| PROPERTY_KEYWORD
| RECEIVER_KEYWORD
| PARAM_KEYWORD
| SETPARAM_KEYWORD
| DELEGATE_KEYWORD
| IMPORT_KEYWORD
| WHERE_KEYWORD
| BY_KEYWORD
| GET_KEYWORD
| SET_KEYWORD
| CONSTRUCTOR_KEYWORD
| INIT_KEYWORD
| CONTEXT_KEYWORD
| ABSTRACT_KEYWORD
| ENUM_KEYWORD
| CONTRACT_KEYWORD
| OPEN_KEYWORD
| INNER_KEYWORD
| OVERRIDE_KEYWORD
| PRIVATE_KEYWORD
| PUBLIC_KEYWORD
| INTERNAL_KEYWORD
| PROTECTED_KEYWORD
| CATCH_KEYWORD
| OUT_KEYWORD
| VARARG_KEYWORD
| REIFIED_KEYWORD
| DYNAMIC_KEYWORD
| COMPANION_KEYWORD
| SEALED_KEYWORD
| FINALLY_KEYWORD
| FINAL_KEYWORD
| LATEINIT_KEYWORD
| DATA_KEYWORD
| VALUE_KEYWORD
| INLINE_KEYWORD
| NOINLINE_KEYWORD
| TAILREC_KEYWORD
| EXTERNAL_KEYWORD
| ANNOTATION_KEYWORD
| CROSSINLINE_KEYWORD
| OPERATOR_KEYWORD
| INFIX_KEYWORD
| CONST_KEYWORD
| SUSPEND_KEYWORD
| EXPECT_KEYWORD
| ACTUAL_KEYWORD
| KDOC_START
| KDOC_END
| KDOC_LEADING_ASTERISK
| KDOC_TEXT
| KDOC_CODE_BLOCK_TEXT
| KDOC_CODE_SPAN_TEXT
| KDOC_TAG_NAME
| KDOC_LPAR
| KDOC_RPAR
| KDOC_MARKDOWN_ESCAPED_CHAR
| KDOC_MARKDOWN_INLINE_LINK
| BAD_CHARACTER
| NEW_LINE_INDENT
)
}
pub fn hard_keyword(text: &str) -> Option<SyntaxKind> {
Some(match text.as_bytes() {
[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,
})
}
pub fn soft_keyword(text: &str) -> Option<SyntaxKind> {
Some(match text.as_bytes() {
[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,
})
}
pub fn keyword_text(self) -> Option<&'static str> {
Some(match self {
PACKAGE_KEYWORD => "package",
AS_KEYWORD => "as",
TYPE_ALIAS_KEYWORD => "typealias",
CLASS_KEYWORD => "class",
THIS_KEYWORD => "this",
SUPER_KEYWORD => "super",
VAL_KEYWORD => "val",
VAR_KEYWORD => "var",
FUN_KEYWORD => "fun",
FOR_KEYWORD => "for",
NULL_KEYWORD => "null",
TRUE_KEYWORD => "true",
FALSE_KEYWORD => "false",
IS_KEYWORD => "is",
IN_KEYWORD => "in",
THROW_KEYWORD => "throw",
RETURN_KEYWORD => "return",
BREAK_KEYWORD => "break",
CONTINUE_KEYWORD => "continue",
OBJECT_KEYWORD => "object",
IF_KEYWORD => "if",
TRY_KEYWORD => "try",
ELSE_KEYWORD => "else",
WHILE_KEYWORD => "while",
DO_KEYWORD => "do",
WHEN_KEYWORD => "when",
INTERFACE_KEYWORD => "interface",
TYPEOF_KEYWORD => "typeof",
AS_SAFE => "as?",
NOT_IN => "!in",
NOT_IS => "!is",
ALL_KEYWORD => "all",
FILE_KEYWORD => "file",
FIELD_KEYWORD => "field",
PROPERTY_KEYWORD => "property",
RECEIVER_KEYWORD => "receiver",
PARAM_KEYWORD => "param",
SETPARAM_KEYWORD => "setparam",
DELEGATE_KEYWORD => "delegate",
IMPORT_KEYWORD => "import",
WHERE_KEYWORD => "where",
BY_KEYWORD => "by",
GET_KEYWORD => "get",
SET_KEYWORD => "set",
CONSTRUCTOR_KEYWORD => "constructor",
INIT_KEYWORD => "init",
CONTEXT_KEYWORD => "context",
ABSTRACT_KEYWORD => "abstract",
ENUM_KEYWORD => "enum",
CONTRACT_KEYWORD => "contract",
OPEN_KEYWORD => "open",
INNER_KEYWORD => "inner",
OVERRIDE_KEYWORD => "override",
PRIVATE_KEYWORD => "private",
PUBLIC_KEYWORD => "public",
INTERNAL_KEYWORD => "internal",
PROTECTED_KEYWORD => "protected",
CATCH_KEYWORD => "catch",
OUT_KEYWORD => "out",
VARARG_KEYWORD => "vararg",
REIFIED_KEYWORD => "reified",
DYNAMIC_KEYWORD => "dynamic",
COMPANION_KEYWORD => "companion",
SEALED_KEYWORD => "sealed",
FINALLY_KEYWORD => "finally",
FINAL_KEYWORD => "final",
LATEINIT_KEYWORD => "lateinit",
DATA_KEYWORD => "data",
VALUE_KEYWORD => "value",
INLINE_KEYWORD => "inline",
NOINLINE_KEYWORD => "noinline",
TAILREC_KEYWORD => "tailrec",
EXTERNAL_KEYWORD => "external",
ANNOTATION_KEYWORD => "annotation",
CROSSINLINE_KEYWORD => "crossinline",
OPERATOR_KEYWORD => "operator",
INFIX_KEYWORD => "infix",
CONST_KEYWORD => "const",
SUSPEND_KEYWORD => "suspend",
EXPECT_KEYWORD => "expect",
ACTUAL_KEYWORD => "actual",
_ => return None,
})
}
}