Esempio n. 1
0
        //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();
            }
        }
Esempio n. 2
0
        /// <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");
            }
        }
Esempio n. 3
0
            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();
                }
            }
Esempio n. 4
0
 /// <summary>
 /// Server sends the Repository containing the Round 2 Analysis
 /// </summary>
 /// <returns></returns>
 public Repository getRepo()
 {
     return(Repository.getInstance());
 }
Esempio n. 5
0
        /// <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;
        }