devalang_core/core/debugger/
module.rs1use crate::core::{
2 debugger::Debugger,
3 store::{function::FunctionTable, variable::VariableTable},
4};
5use std::fs::create_dir_all;
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
15 .split('/')
16 .next_back()
17 .unwrap_or("index")
18 .replace(".deva", "");
19
20 let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
21 create_dir_all(&log_directory).expect("Failed to create log directory");
22
23 for (var_name, var_data) in &variable_table.variables {
24 content.push_str(&format!("{:?} = {:?}\n", var_name, var_data));
25 }
26
27 content.push('\n');
28
29 debugger.write_log_file(&log_directory, "variables.log", &content);
30}
31
32pub fn write_module_function_log_file(
33 output_dir: &str,
34 module_path: &str,
35 function_table: &FunctionTable,
36) {
37 let debugger = Debugger::new();
38 let mut content = String::new();
39 let module_name = module_path
40 .split('/')
41 .next_back()
42 .unwrap_or("index")
43 .replace(".deva", "");
44
45 let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
46 create_dir_all(&log_directory).expect("Failed to create log directory");
47
48 for (func_name, func_data) in &function_table.functions {
49 content.push_str(&format!("{:?} = {:?}\n", func_name, func_data));
50 }
51
52 content.push('\n');
53
54 debugger.write_log_file(&log_directory, "functions.log", &content);
55}