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