devalang_core/core/debugger/
module.rs

1use std::{ fs::create_dir_all };
2use crate::core::{
3    debugger::Debugger,
4    store::{ function::FunctionTable, variable::VariableTable },
5};
6
7pub fn write_module_variable_log_file(
8    output_dir: &str,
9    module_path: &str,
10    variable_table: &VariableTable
11) {
12    let debugger = Debugger::new();
13    let mut content = String::new();
14    let module_name = module_path.split('/').last().unwrap_or("index").replace(".deva", "");
15
16    let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
17    create_dir_all(&log_directory).expect("Failed to create log directory");
18
19    for (var_name, var_data) in &variable_table.variables {
20        content.push_str(&format!("{:?} = {:?}\n", var_name, var_data));
21    }
22
23    content.push_str("\n");
24
25    debugger.write_log_file(&log_directory, "variables.log", &content);
26}
27
28pub fn write_module_function_log_file(
29    output_dir: &str,
30    module_path: &str,
31    function_table: &FunctionTable
32) {
33    let debugger = Debugger::new();
34    let mut content = String::new();
35    let module_name = module_path.split('/').last().unwrap_or("index").replace(".deva", "");
36
37    let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
38    create_dir_all(&log_directory).expect("Failed to create log directory");
39
40    for (func_name, func_data) in &function_table.functions {
41        content.push_str(&format!("{:?} = {:?}\n", func_name, func_data));
42    }
43
44    content.push_str("\n");
45
46    debugger.write_log_file(&log_directory, "functions.log", &content);
47}