use super::LanguageSemantics;
pub static OCAML_SEMANTICS: LanguageSemantics = LanguageSemantics {
language: "ocaml",
function_def_kinds: &["let_binding", "value_definition"],
if_kinds: &["if_expression"],
loop_kinds: &["for_expression", "while_expression"],
variable_declaration_kinds: &["let_binding"],
assignment_kinds: &["set_expression"],
augmented_assignment_kinds: &[],
return_kinds: &[],
call_kinds: &["application_expression"],
try_catch_kinds: &["try_expression"],
throw_kinds: &["raise_expression"],
string_literal_kinds: &["string", "character"],
numeric_literal_kinds: &["number"],
boolean_literal_kinds: &["boolean"],
null_literal_kinds: &[],
parameter_kinds: &["parameter"],
class_kinds: &["class_definition", "module_definition", "type_definition"],
import_kinds: &["open_module"],
block_scope_kinds: &["let_expression", "begin_expression"],
break_kinds: &[],
continue_kinds: &[],
switch_kinds: &["match_expression"],
case_kinds: &["match_case"],
member_access_kinds: &["field_get_expression", "record_access"],
binary_expression_kinds: &["infix_expression"],
identifier_kinds: &["value_name", "value_path"],
unsafe_block_kinds: &[],
defer_kinds: &[],
spawn_kinds: &[],
condition_field: "condition",
consequence_field: "consequence",
alternative_field: "alternative",
body_field: "body",
initializer_field: "body",
left_field: "left",
right_field: "right",
name_field: "name",
arguments_field: "argument",
value_field: "body",
operator_field: "operator",
object_field: "record",
property_field: "field",
function_field: "function",
parameters_field: "parameter",
return_type_field: "",
type_field: "type",
handler_field: "handler",
finalizer_field: "",
};