Example #1
0
        /// <summary>
        /// Parses the specified C++ header file and fills the <see cref="CppModule"/> with defined macros.
        /// </summary>
        /// <param name="file">The C++ header file to parse.</param>
        /// <param name="group">The CppModule object to fill with macro definitions.</param>
        public void Parse(string file, CppModule group)
        {
            _gccxml.Preprocess(file, ParseLine);

            foreach (var includeName in _mapIncludeToMacros.Keys)
            {
                var includeId = Path.GetFileNameWithoutExtension(includeName);
                var include   = group.FindInclude(includeId);
                if (include == null)
                {
                    include = new CppInclude {
                        Name = includeId
                    };
                    group.Add(include);
                }
                foreach (var macroDefinition in _mapIncludeToMacros[includeName])
                {
                    include.Add(new CppDefine(macroDefinition.Key, macroDefinition.Value));
                }
            }
        }