#![cfg_attr(coverage_nightly, coverage(off))]
use anyhow::Result;
use std::fs;
use std::path::{Path, PathBuf};
use super::config::TdgConfig;
use super::language_simple::Language;
use crate::tdg::{Comparison, MetricCategory, PenaltyTracker, ProjectScore, TdgScore};
/// Tdg analyzer.
pub struct TdgAnalyzer {
config: TdgConfig,
}
// Public API: new, with_config, analyze_file, analyze_source, analyze_project, compare
include!("analyzer_simple_core.rs");
// Metric analysis: structural complexity, semantic complexity, duplication, coupling, docs, consistency
include!("analyzer_simple_metrics.rs");
// Estimation helpers and file discovery
include!("analyzer_simple_helpers.rs");
// Unit tests and property tests
include!("analyzer_simple_tests.rs");