コード例 #1
0
 public void CollectTypes()
 {
     desc.MeetDataType(program.Globals, factory.CreatePointer(
                           factory.CreateStructureType(),
                           program.Platform.PointerType.Size));
     foreach (Procedure p in program.Procedures.Values)
     {
         proc = p;
         CollectProcedureSignature(p);
         foreach (Statement stm in p.Statements)
         {
             stm.Instruction.Accept(this);
         }
     }
 }
コード例 #2
0
        public void CollectTypes()
        {
            desc.MeetDataType(program.Globals, factory.CreatePointer(
                                  factory.CreateStructureType(),
                                  program.Platform.PointerType.BitSize));
            CollectSegmentTypes();
            CollectUserGlobalVariableTypes();
            int cProc = program.Procedures.Count;
            int i     = 0;

            foreach (Procedure p in program.Procedures.Values)
            {
                eventListener.ShowProgress("Collecting data types.", i++, cProc);
                proc = p;
                CollectProcedureSignature(p);
                foreach (Statement stm in p.Statements)
                {
                    if (eventListener.IsCanceled())
                    {
                        return;
                    }
                    try
                    {
                        this.stmCur = stm;
                        stm.Instruction.Accept(this);
                    }
                    catch (Exception ex)
                    {
                        eventListener.Error(
                            eventListener.CreateStatementNavigator(program, stm),
                            ex,
                            "An error occurred while processing the statement {0}.",
                            stm);
                    }
                }
            }
        }
コード例 #3
0
 public void CollectTypes()
 {
     desc.MeetDataType(program.Globals, factory.CreatePointer(
                           factory.CreateStructureType(),
                           program.Platform.PointerType.Size));
     CollectSegmentTypes();
     foreach (Procedure p in program.Procedures.Values)
     {
         proc = p;
         CollectProcedureSignature(p);
         foreach (Statement stm in p.Statements)
         {
             if (eventListener.IsCanceled())
             {
                 return;
             }
             try
             {
                 stm.Instruction.Accept(this);
             }
             catch (Exception ex)
             {
                 eventListener.Error(
                     eventListener.CreateStatementNavigator(program, stm),
                     ex,
                     "An error occurred while processing the statement {0}.",
                     stm);
             }
         }
     }
 }
コード例 #4
0
 /// <summary>
 /// Collect the type of the structure containing the global variables.
 /// </summary>
 public void CollectGlobalType()
 {
     desc.MeetDataType(program.Globals, factory.CreatePointer(
                           factory.CreateStructureType(),
                           program.Platform.PointerType.BitSize));
 }