//---------< get the depedency table for selected files >------------
        List <string> getDependency(List <string> files)
        {
            List <CsNode <string, string> > nodes      = new List <CsNode <string, string> >();
            List <List <Elem> >             dependency = new List <List <Elem> >();
            List <string> selectedfiles  = new List <string>();
            List <string> dependencyList = new List <string>();

            selectedfiles = getfilePath(files);
            TypeAnalysis typeAnalysisObj = new TypeAnalysis(selectedfiles);

            dependency     = typeAnalysisObj.generateTypeTable();
            nodes          = DependencyAnalysis.GetDependency(dependency, selectedfiles);
            dependencyList = Display.showDependencies(nodes);
            return(dependencyList);
        }
        //---------< get the scc for the selected files >----------------
        List <string> getscc(List <string> files)
        {
            List <CsNode <string, string> > nodes      = new List <CsNode <string, string> >();
            List <List <Elem> >             dependency = new List <List <Elem> >();
            List <string> selectedfiles  = new List <string>();
            List <string> dependencyList = new List <string>();

            selectedfiles = getfilePath(files);
            TypeAnalysis typeAnalysisObj = new TypeAnalysis(selectedfiles);

            dependency     = typeAnalysisObj.generateTypeTable();
            nodes          = DependencyAnalysis.GetDependency(dependency, selectedfiles);
            dependencyList = Display.showDependencies(nodes);
            GraphTest     gt        = new GraphTest();
            List <string> sccNodes1 = gt.Tarjan(nodes);
            List <string> sccNodes  = Display.showsccGraph(sccNodes1);

            return(sccNodes);
        }
        // public List<List<string>> static getTypeTable()

        static void Main(string[] args)
        {
            List <CsNode <string, string> > nodes        = new List <CsNode <string, string> >();
            List <List <Elem> >             listOfTables = new List <List <Elem> >();

            Console.WriteLine("<------------------------------ Demonstrating Project 3 : Type-Based Package Dependency Analysis ----------------------->");
            Console.WriteLine();
            ShowCommandLine(args);
            List <string> files           = ProcessCommandline(args);
            TypeAnalysis  typeAnalysisObj = new TypeAnalysis(files);

            listOfTables = typeAnalysisObj.generateTypeTable();
            nodes        = DependencyAnalysis.GetDependency(listOfTables, files);
            GraphTest     gt       = new GraphTest();
            List <string> sccNodes = gt.Tarjan(nodes);

            displayRequirement1(listOfTables);
            displayRequirement2(nodes);
            displayRequirement3(sccNodes);
            Console.ReadLine();
        }