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(); } }
public IProcedureList GetCallingT(Procedure procedure) { IProcedureList calling = GetCalling(procedure); for (int i = 0; i < calling.GetSize(); i++) { calling.Sum(GetCalling(calling[i])); } return(calling); }
public IProcedureList GetCalledByT(Procedure procedure) { IProcedureList called = GetCalledBy(procedure); for (int i = 0; i < called.GetSize(); i++) { called.Sum(GetCalledBy(called[i])); } return(called); }