public void SetupPasses(Driver driver)
{
const RenameTargets renameTargets = RenameTargets.Function
| RenameTargets.Method
| RenameTargets.Field;
driver.AddTranslationUnitPass(new CaseRenamePass(renameTargets, RenameCasePattern.UpperCamelCase));
driver.AddTranslationUnitPass(new CheckMacroPass("FLD"));
driver.AddTranslationUnitPass(new CheckIgnoredDeclsPass());
driver.AddTranslationUnitPass(new FindEventsPass(driver.TypeDatabase));
driver.AddTranslationUnitPass(new GetterSetterToPropertyPass());
driver.AddTranslationUnitPass(new FieldToPropertyPass());
if (driver.Options.IsCLIGenerator)
driver.AddTranslationUnitPass(new ObjectOverridesPass());
driver.AddTranslationUnitPass(new FunctionToInstanceMethodPass());
driver.AddTranslationUnitPass(new FunctionToStaticMethodPass());
driver.AddGeneratorOutputPass(new FLDObjectOverridesPass());
}