Exemple #1
0
        void OnCompilationSuccess(VCFile file)
        {
            OnCompilationEnd("Asm compilation successful.");

            VCProject project = file.project;

            string dir         = project.ActiveConfiguration.Evaluate(OutputAsmDir);
            string filename    = Path.ChangeExtension(file.Name, "asm");
            string solutionDir = Path.GetDirectoryName(m_dte.Solution.FullName);

            string path = Path.Combine(solutionDir, dir, filename);
            string text = File.ReadAllText(path);

            CLx64AsmParser parser  = new CLx64AsmParser();
            AsmUnit        asmUnit = parser.Parse(text);

            foreach (KeyValuePair <string, AsmFile> filePair in asmUnit.Files)
            {
                string  fileName = filePair.Key;
                AsmFile asmFile  = filePair.Value;

                if (m_asm.ContainsKey(fileName))
                {
                    UpdateFile(m_asm[fileName], asmFile);
                }
                else
                {
                    m_asm[fileName] = asmFile;
                }
            }

            m_view.OnDocumentChanged();
        }
Exemple #2
0
        AsmUnit BuildUnit(Dictionary <string, AsmFile> files)
        {
            AsmUnit unit = new AsmUnit {
                Files = new Dictionary <string, AsmFile>()
            };

            foreach (KeyValuePair <string, AsmFile> file in files)
            {
                AsmFile builder = file.Value;
                builder.Functions.Sort();
                unit.Files[file.Key] = new AsmFile {
                    Path      = file.Key,
                    Functions = builder.Functions
                };
            }

            return(unit);
        }