예제 #1
0
 public ASTProcessor()
 {
     _units               = new List <IDefinition>();
     IgnoreUnitNames      = new HashSet <string>();
     TypeAliases          = new Dictionary <string, TypeOrAlias>();
     WellKnownMaros       = new Dictionary <string, TypeOrAlias>();
     FunctionProcessor    = new FunctionProcessor(this);
     StructureProcessor   = new StructureProcessor(this);
     EnumerationProcessor = new EnumerationProcessor(this);
     MacroProcessor       = new MacroProcessor(this);
     MacroPostProcessor   = new MacroPostProcessor(this);
 }
예제 #2
0
        public void Process(IEnumerable <TranslationUnit> units)
        {
            foreach (var translationUnit in units)
            {
                MacroProcessor.Process(translationUnit);
                EnumerationProcessor.Process(translationUnit);
                StructureProcessor.Process(translationUnit);
                FunctionProcessor.Process(translationUnit);
            }

            var macros = Units.OfType <MacroDefinition>().ToArray();

            MacroPostProcessor.Process(macros);
        }