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