srcmetrics 0.1.0

Language-independent source code metrics (size, complexity, nesting, Halstead, duplication, dependencies, documentation) for C, C++, Go, Java, JavaScript, Python, Rust and TypeScript
Documentation
//! Java mapping (tree-sitter-java).

use super::Mapping;
use crate::ir::NodeKind::*;

pub static MAPPING: Mapping = Mapping {
    language: "java",
    extensions: &["java"],
    grammar: || tree_sitter_java::LANGUAGE.into(),
    grammar_crate: ("tree-sitter-java", "0.23.5"),
    kinds: &[
        ("block", Block),
        ("constructor_body", Block),
        ("expression_statement", Statement),
        ("local_variable_declaration", Declaration),
        ("if_statement", Branch),
        ("for_statement", Loop),
        ("enhanced_for_statement", Loop),
        ("while_statement", Loop),
        ("do_statement", Loop),
        ("switch_block_statement_group", Case),
        ("switch_rule", Case),
        ("catch_clause", Catch),
        ("return_statement", Return),
        ("break_statement", Jump),
        ("continue_statement", Jump),
        ("throw_statement", Jump),
        ("yield_statement", Jump),
        ("method_invocation", Call),
        ("object_creation_expression", Call),
        ("assignment_expression", Assignment),
        ("binary_expression", Binary),
        ("unary_expression", Unary),
        ("update_expression", Unary),
        ("ternary_expression", Conditional),
        ("field_access", Expression),
        ("array_access", Expression),
        ("parenthesized_expression", Expression),
        ("cast_expression", Expression),
        ("identifier", Identifier),
        ("decimal_integer_literal", Literal),
        ("hex_integer_literal", Literal),
        ("octal_integer_literal", Literal),
        ("binary_integer_literal", Literal),
        ("decimal_floating_point_literal", Literal),
        ("hex_floating_point_literal", Literal),
        ("character_literal", Literal),
        ("string_literal", Literal),
        ("true", Literal),
        ("false", Literal),
        ("null_literal", Literal),
        ("import_declaration", Import),
        ("method_declaration", Function),
        ("constructor_declaration", Function),
        ("compact_constructor_declaration", Function),
        ("lambda_expression", Function),
    ],
    callee_fields: &["name", "type"],
    logical_operators: &["&&", "||"],
    default_case_keyword: Some("default"),
    else_field: Some("alternative"),
    comments: &["line_comment", "block_comment"],
    literals: &[
        "decimal_integer_literal",
        "hex_integer_literal",
        "octal_integer_literal",
        "binary_integer_literal",
        "decimal_floating_point_literal",
        "hex_floating_point_literal",
        "character_literal",
        "string_literal",
        "true",
        "false",
        "null_literal",
    ],
    interpolations: &[],
    identifiers: &["identifier", "type_identifier"],
    name_fields: &["name"],
    decorators: &[],
    docstring: None,
    parameter_fields: &["parameters"],
    ignored_parameters: &[],
};