rust_code_analysis_code_split/lib.rs
1//! rust-code-analysis is a library to analyze and extract information
2//! from source codes written in many different programming languages.
3//!
4//! You can find the source code of this software on
5//! <a href="https://github.com/mozilla/rust-code-analysis/" target="_blank">GitHub</a>,
6//! while issues and feature requests can be posted on the respective
7//! <a href="https://github.com/mozilla/rust-code-analysis/issues/" target="_blank">GitHub Issue Tracker</a>.
8//!
9//! ## Supported Languages
10//!
11//! - C++
12//! - C#
13//! - CSS
14//! - Go
15//! - HTML
16//! - Java
17//! - JavaScript
18//! - The JavaScript used in Firefox internal
19//! - Python
20//! - Rust
21//! - Typescript
22//!
23//! ## Supported Metrics
24//!
25//! - CC: it calculates the code complexity examining the
26//! control flow of a program.
27//! - SLOC: it counts the number of lines in a source file.
28//! - PLOC: it counts the number of physical lines (instructions)
29//! contained in a source file.
30//! - LLOC: it counts the number of logical lines (statements)
31//! contained in a source file.
32//! - CLOC: it counts the number of comments in a source file.
33//! - BLANK: it counts the number of blank lines in a source file.
34//! - HALSTEAD: it is a suite that provides a series of information,
35//! such as the effort required to maintain the analyzed code,
36//! the size in bits to store the program, the difficulty to understand
37//! the code, an estimate of the number of bugs present in the codebase,
38//! and an estimate of the time needed to implement the software.
39//! - MI: it is a suite that allows to evaluate the maintainability
40//! of a software.
41//! - NOM: it counts the number of functions and closures
42//! in a file/trait/class.
43//! - NEXITS: it counts the number of possible exit points
44//! from a method/function.
45//! - NARGS: it counts the number of arguments of a function/method.
46
47#![allow(clippy::upper_case_acronyms)]
48
49mod c_langs_macros;
50mod c_macro;
51mod getter;
52mod macros;
53
54mod alterator;
55pub use alterator::*;
56
57mod node;
58pub use crate::node::*;
59
60mod metrics;
61pub use metrics::*;
62
63mod languages;
64pub(crate) use languages::*;
65
66mod checker;
67pub(crate) use checker::*;
68
69mod output;
70pub use output::*;
71
72mod spaces;
73pub use crate::spaces::*;
74
75mod ops;
76pub use crate::ops::*;
77
78mod find;
79pub use crate::find::*;
80
81mod function;
82pub use crate::function::*;
83
84mod ast;
85pub use crate::ast::*;
86
87mod count;
88pub use crate::count::*;
89
90mod preproc;
91pub use crate::preproc::*;
92
93mod langs;
94pub use crate::langs::*;
95
96mod tools;
97pub use crate::tools::*;
98
99mod concurrent_files;
100pub use crate::concurrent_files::*;
101
102mod traits;
103pub use crate::traits::*;
104
105mod parser;
106pub use crate::parser::*;
107
108mod comment_rm;
109pub use crate::comment_rm::*;