From d0de162526c3fe3085fbfd63aa468e2b75a900d5 Mon Sep 17 00:00:00 2001 From: sGulugulu <s1223742364@outlook.com> Date: Thu, 4 Apr 2024 21:20:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95debug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/passes/symtab_debug_pass.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/passes/symtab_debug_pass.rs b/src/passes/symtab_debug_pass.rs index 9d4a682..3374a11 100644 --- a/src/passes/symtab_debug_pass.rs +++ b/src/passes/symtab_debug_pass.rs @@ -4,7 +4,7 @@ use petgraph::adj::NodeIndex; use crate::{add_node, add_node_with_edge}; use crate::toolkit::dot::Config; -use crate::toolkit::symbol_table::SymtabGraph; +use crate::toolkit::symbol_table::{Symtab, SymtabGraph}; use crate::toolkit::{context::Context, etc::{generate_png_by_graph, read_file_content}, field::Field, gen_ast::parse_as_ast_tree, gen_cfg::parse_ast_to_cfg, gen_nhwc_cfg::parse_cfg_into_nhwc_cfg, pass_manager::Pass}; #[derive(Debug)] pub struct SymtabDebugPass{ @@ -27,10 +27,23 @@ impl Pass for SymtabDebugPass{ cfg_node.load_ast_node_text(&ctx.ast_tree) } let mut symtab_g = SymtabGraph::new(); + println!("ctxçš„symtab内容为{:#?}",ctx.symtab); add_node!({ctx.symtab.clone()} to symtab_g); let root = 0; add_node_with_edge!({ctx.symtab.clone()} from root in symtab_g); generate_png_by_graph(&symtab_g,"symtab".to_string(),&[Config::EdgeNoLabel,Config::Record,Config::Rounded,Config::Symtab]); + + let mut step_symtab_g = SymtabGraph::new(); + + // éåŽ†è¯»å–æ¯ä¸ªå«æœ‰symbol的节点? | 读å–ctx.symtab并按照#......$ @......$çš„é¡ºåºæ’入新的symtab? | é历symtab? + // let step_symtab = Symtab::new(); + // for cfg_node in ctx.cfg_graph.node_weights_mut(){ + + // add_node_with_edge!({step_symtab.clone()} from /*上次的节点 */ in step_symtab_g); + + + // } + // generate_png_by_graph(&symtab_g,"step_symtab".to_string(),&[Config::EdgeNoLabel,Config::Record,Config::Rounded,Config::Symtab]); } } // 返回passçš„æè¿°ï¼Œå…·ä½“作用 -- GitLab