use super::LanguageSemantics;
pub static KOTLIN_SEMANTICS: LanguageSemantics = LanguageSemantics {
language: "kotlin",
function_def_kinds: &[
"function_declaration",
"anonymous_function",
"lambda_literal",
],
if_kinds: &["if_expression"],
loop_kinds: &["for_statement", "while_statement", "do_while_statement"],
variable_declaration_kinds: &["property_declaration"],
assignment_kinds: &["assignment"],
augmented_assignment_kinds: &["assignment"],
return_kinds: &["jump_expression"],
call_kinds: &["call_expression"],
try_catch_kinds: &["try_expression"],
throw_kinds: &["jump_expression"],
string_literal_kinds: &["line_string_literal", "multi_line_string_literal"],
numeric_literal_kinds: &["integer_literal", "long_literal", "real_literal"],
boolean_literal_kinds: &["boolean_literal"],
null_literal_kinds: &["null_literal"],
parameter_kinds: &["parameter", "function_value_parameter"],
class_kinds: &[
"class_declaration",
"object_declaration",
"companion_object",
],
import_kinds: &["import_header"],
block_scope_kinds: &["statements"],
break_kinds: &["jump_expression"],
continue_kinds: &["jump_expression"],
switch_kinds: &["when_expression"],
case_kinds: &["when_entry"],
member_access_kinds: &["navigation_expression", "indexing_expression"],
binary_expression_kinds: &[
"comparison_expression",
"equality_expression",
"additive_expression",
"multiplicative_expression",
],
identifier_kinds: &["simple_identifier"],
unsafe_block_kinds: &[],
defer_kinds: &[],
spawn_kinds: &[],
condition_field: "condition",
consequence_field: "consequence",
alternative_field: "alternative",
body_field: "body",
initializer_field: "value",
left_field: "left",
right_field: "right",
name_field: "name",
arguments_field: "value_arguments",
value_field: "value",
operator_field: "operator",
object_field: "object",
property_field: "name",
function_field: "function",
parameters_field: "function_value_parameters",
return_type_field: "type",
type_field: "type",
handler_field: "catch_block",
finalizer_field: "finally_block",
};