public void TestGraph() { Console.Write("\n Testing CsGraph class"); Console.Write("\n ======================="); CsNode <string, string> node1 = new CsNode <string, string>("node1"); CsNode <string, string> node2 = new CsNode <string, string>("node2"); CsNode <string, string> node3 = new CsNode <string, string>("node3"); CsNode <string, string> node4 = new CsNode <string, string>("node4"); CsNode <string, string> node5 = new CsNode <string, string>("node5"); node1.addChild(node2, "edge12"); node1.addChild(node3, "edge13"); node2.addChild(node3, "edge23"); node2.addChild(node4, "edge24"); node3.addChild(node1, "edge31"); node5.addChild(node1, "edge51"); node5.addChild(node4, "edge54"); CsGraph <string, string> graph = new CsGraph <string, string>("Fred"); graph.addNode(node1); graph.addNode(node2); graph.addNode(node3); graph.addNode(node4); graph.addNode(node5); graph.startNode = node1; Console.Write("\n\n starting walk at {0}", graph.startNode.name); Console.Write("\n not showing backtracks"); graph.walk(); graph.startNode = node2; Console.Write("\n\n starting walk at {0}", graph.startNode.name); graph.showBackTrack = true; Console.Write("\n show backtracks"); //graph.setOperation(new demoOperation()); graph.walk(); Console.Write("\n\n"); }
//----------------<Analyze dependency>--------------------------------------- public void ConnectNode(TypeAnalysis typea, string fqf) { List <string> namestore = new List <string>(); string filename = fqf.Substring(fqf.LastIndexOf('\\') + 1); CsNode <string, string> node = csgraph.findNode(filename); Toker toker = new Toker(); toker.doReturnComments = false; if (!toker.open(fqf)) { Console.Write("\n can't open {0}\n", fqf); } //else //{ // Console.Write("\n processing file: {0}\n", fqf); //} while (!toker.isDone()) { Token tok = toker.getTok(); if (tok == null) { continue; } if (typea.typetable_.table.ContainsKey(tok))//the key exist in the type table. { if (typea.typetable_.table[tok][0].namesp == "") { namestore.Add(tok); } else { List <TypeItem> list_it = typea.typetable_.table[tok]; foreach (TypeItem it in list_it) { if (namestore.Contains(it.namesp)) { //connect the node node.addChild(csgraph.findNode(it.file), ""); } } } } } toker.close(); }