//function initiates dependency analysis
        public static List <CsNode <string, string> > dependencyAnalysis(List <List <Elem> > tableList, List <string> files)
        {
            var graph = new List <Tuple <string, string> >();
            List <FindDependency> dataOfTypeUsing     = new List <FindDependency>();
            List <FindDependency> dataOfTypeNameSpace = new List <FindDependency>();

            foreach (List <Elem> table in tableList)
            {
                foreach (Elem e in table)
                {
                    if (e.type.Equals("namespace"))
                    {
                        FindDependency findDependency_obj = new FindDependency();
                        findDependency_obj.FileName   = e.FileName;
                        findDependency_obj.NameOfType = e.name;
                        dataOfTypeNameSpace.Add(findDependency_obj);
                    }
                    if (e.type.Equals("using") || e.type.Equals("alias"))
                    {
                        FindDependency findDependency_obj = new FindDependency();
                        findDependency_obj.FileName   = e.FileName;
                        findDependency_obj.NameOfType = e.name;
                        if (e.type.Equals("alias") && !e.aliasName.StartsWith("System"))
                        {
                            findDependency_obj.AliasName = e.aliasName;
                        }
                        dataOfTypeUsing.Add(findDependency_obj);
                    }
                }
            }
            FirstParse(dataOfTypeUsing, dataOfTypeNameSpace, tableList, files, graph);
            Console.WriteLine("\n");
            StronglyConnectedComponent      obj   = new StronglyConnectedComponent();
            List <CsNode <string, string> > nodes = obj.graphAccept(graph, files);

            return(nodes);
        }