use super::Mapping;
use crate::ir::NodeKind::*;
pub static MAPPING: Mapping = Mapping {
language: "c",
extensions: &["c", "h"],
grammar: || tree_sitter_c::LANGUAGE.into(),
grammar_crate: ("tree-sitter-c", "0.24.2"),
kinds: &[
("compound_statement", Block),
("expression_statement", Statement),
("declaration", Declaration),
("if_statement", Branch),
("else_clause", Else),
("for_statement", Loop),
("while_statement", Loop),
("do_statement", Loop),
("case_statement", Case),
("return_statement", Return),
("break_statement", Jump),
("continue_statement", Jump),
("goto_statement", Jump),
("call_expression", Call),
("assignment_expression", Assignment),
("binary_expression", Binary),
("unary_expression", Unary),
("update_expression", Unary),
("pointer_expression", Unary),
("conditional_expression", Conditional),
("subscript_expression", Expression),
("field_expression", Expression),
("cast_expression", Expression),
("parenthesized_expression", Expression),
("identifier", Identifier),
("number_literal", Literal),
("string_literal", Literal),
("char_literal", Literal),
("concatenated_string", Literal),
("system_lib_string", Literal),
("true", Literal),
("false", Literal),
("null", Literal),
("preproc_include", Import),
("function_definition", Function),
],
callee_fields: &["function"],
logical_operators: &["&&", "||"],
else_field: None,
default_case_keyword: Some("default"),
comments: &["comment"],
literals: &[
"number_literal",
"string_literal",
"char_literal",
"concatenated_string",
"system_lib_string",
"true",
"false",
"null",
],
interpolations: &[],
identifiers: &[
"identifier",
"field_identifier",
"type_identifier",
"statement_identifier",
],
name_fields: &["declarator"],
decorators: &[],
docstring: None,
parameter_fields: &["parameters"],
ignored_parameters: &["void"],
};