private void RunWorker()
        {
            _changed        = false;
            m_errorsTb.Text = "Parsing ...";
            if (_initialMacroList == null)
            {
                _initialMacroList = _storage.GetAllMacros().ToList();
            }

            RequestData data = new RequestData();

            data.InitialMacroList = new ReadOnlyCollection <Macro>(_initialMacroList);
            data.Text             = _nativeCodeTextBox.Text;
            _backgroundWorker.RunWorkerAsync(data);
        }
Esempio n. 2
0
        /// <summary>
        /// Convert the block of native code into a CodeDom hierarchy
        /// </summary>
        /// <param name="code"></param>
        /// <param name="ep"></param>
        /// <returns></returns>
        /// <remarks></remarks>
        public CodeTypeDeclarationCollection ConvertNativeCodeToCodeDom(string code, ErrorProvider ep)
        {
            if (code == null)
            {
                throw new ArgumentNullException("code");
            }

            if (ep == null)
            {
                throw new ArgumentNullException("ep");
            }

            var analyzer = NativeCodeAnalyzerFactory.CreateForMiniParse(OsVersion.WindowsVista, _storage.GetAllMacros());

            // TODO: probably should delete this
            analyzer.IncludePathList.Add("c:\\program files (x86)\\windows kits\\8.1\\include\\shared");
            NativeSymbolBag bag = default(NativeSymbolBag);

            using (System.IO.StringReader reader = new StringReader(code))
            {
                NativeCodeAnalyzerResult result = analyzer.Analyze(reader);

                ep.Append(result.ErrorProvider);
                bag = NativeSymbolBag.CreateFrom(result, Storage);
            }

            return(ConvertBagToCodeDom(bag, ep));
        }