Esempio n. 1
0
        public void ExtractData(AST root)
        {
            if (root is IProcedureList)
            {
                foreach (Procedure procedure in root as IProcedureList)
                {
                    Procedures.AddProcedure(procedure);
                }
                foreach (Procedure procedure in root as IProcedureList)
                {
                    ExtractProcedure(procedure);
                }

                foreach (Procedure procedure in Procedures)
                {
                    IProcedureList calledProcedures = CallsTable.GetCalledBy(procedure);
                    if (calledProcedures.GetSize() == 0)
                    {
                        ExtractProcedureCalls(procedure);
                    }
                }

                ExtractAffects();
            }
        }
Esempio n. 2
0
        public IProcedureList GetCallingT(Procedure procedure)
        {
            IProcedureList calling = GetCalling(procedure);

            for (int i = 0; i < calling.GetSize(); i++)
            {
                calling.Sum(GetCalling(calling[i]));
            }
            return(calling);
        }
Esempio n. 3
0
        public IProcedureList GetCalledByT(Procedure procedure)
        {
            IProcedureList called = GetCalledBy(procedure);

            for (int i = 0; i < called.GetSize(); i++)
            {
                called.Sum(GetCalledBy(called[i]));
            }
            return(called);
        }