//read the list of files, one by one and calls BuildCodeAnalyzer and parser functions public void analyze(string serverName) { Console.Write("\n CODE ANALYZER"); Console.Write("\n ======================\n"); CSsemi.CSemiExp semi = new CSsemi.CSemiExp(); semi.displayNewLines = false; foreach (object file in files) { Console.Write("\n\n Processing file {0}\n", file as string); if (!semi.open(file as string)) { Console.Write("\n Can't open {0}\n\n", file); return; } Console.Write("\n Type and Function Analysis"); Console.Write("\n ----------------------------\n"); BuildCodeAnalyzer builder = new BuildCodeAnalyzer(semi); CodeAnalysis.Parser parser = builder.build(); Repository repo = Repository.getInstance(); Elem elem = getDefaultElemData(file.ToString(), serverName); repo.analyzedata.Add(elem); try { while (semi.getSemi()) { parser.parse(semi); } } catch (Exception ex) { Console.Write("\n\n {0}\n", ex.Message); } semi.close(); } }
/// <summary> /// Creates XML for Type Details /// </summary> private void generateXmlTypesDetails() { try { Repository rep = Repository.getInstance(); List <Elem> repoTable = rep.analyzedata; xmlDocument.Add(xmlDocumentComment); xmlDocument.Add(xmRootElement); if (repoTable.Count == 0) { return; } XElement firstLevelChild = new XElement("TypeDetailsFileWise"); XElement secondLevelChild = null; xmRootElement.Add(firstLevelChild); foreach (Elem elem in repoTable) { if (elem.begin == 0 && elem.end == 0 && elem.type != "") { secondLevelChild = new XElement("FilenameName", elem.packageName); xmRootElement.Add(secondLevelChild); } else if (elem.type.Equals("namespace") || elem.type.Equals("class") || elem.type.Equals("interface") || elem.type.Equals("function")) { if (secondLevelChild != null) { secondLevelChild.Add(new XElement("TypeDetails")); secondLevelChild.Add(new XElement("Type", elem.type)); secondLevelChild.Add(new XElement("Name", elem.name)); secondLevelChild.Add(new XElement("Begin", elem.begin)); secondLevelChild.Add(new XElement("End", elem.end)); } } } } catch (Exception) { Console.WriteLine("Error occurred while generating the xml file"); } }
public static void Main(String[] args) { XmlGenerator test = new XmlGenerator(); Repository rep = Repository.getInstance(); try { if (rep.analyzedata.Count == 0) { Console.WriteLine("The repository is empty. Nothing to display"); } test.generateXmlTypesDetails(); test.generateRelationshipsDetails(); } catch { Console.WriteLine("Looks like the data is empty."); Console.ReadKey(); } }
/// <summary> /// Server sends the Repository containing the Round 2 Analysis /// </summary> /// <returns></returns> public Repository getRepo() { return(Repository.getInstance()); }
/// <summary> /// used by client to send the merged type table. The server then updates its Repo /// </summary> /// <param name="typeTable">the merged type table</param> public void sendMergedTypeTable(List <Elem> typeTable) { Repository repo = Repository.getInstance(); repo.analyzedata = typeTable; }