Browse Source

Remove pass-specific methods from PassBuilder and move them as extension methods to the rename passes.

pull/1/head
triton 13 years ago
parent
commit
aa552badc4
  1. 24
      src/Generator/PassBuilder.cs
  2. 26
      src/Generator/Passes/RenamePass.cs

24
src/Generator/PassBuilder.cs

@ -25,29 +25,5 @@ namespace Cxxi
pass.Library = Library; pass.Library = Library;
Passes.Add(pass); Passes.Add(pass);
} }
#region Operation Helpers
public void RenameWithPattern(string pattern, string replacement, RenameTargets targets)
{
AddPass(new RegexRenamePass(pattern, replacement, targets));
}
public void RemovePrefix(string prefix)
{
AddPass(new RegexRenamePass("^" + prefix, String.Empty));
}
public void RemovePrefixEnumItem(string prefix)
{
AddPass(new RegexRenamePass("^" + prefix, String.Empty, RenameTargets.EnumItem));
}
public void RenameDeclsCase(RenameTargets targets, RenameCasePattern pattern)
{
AddPass(new CaseRenamePass(targets, pattern));
}
#endregion
} }
} }

26
src/Generator/Passes/RenamePass.cs

@ -221,4 +221,30 @@ namespace Cxxi.Passes
return sb.ToString(); return sb.ToString();
} }
} }
public static class RenamePassExtensions
{
public static void RenameWithPattern(this PassBuilder builder,
string pattern, string replacement, RenameTargets targets)
{
builder.AddPass(new RegexRenamePass(pattern, replacement, targets));
}
public static void RemovePrefix(this PassBuilder builder, string prefix)
{
builder.AddPass(new RegexRenamePass("^" + prefix, String.Empty));
}
public static void RemovePrefixEnumItem(this PassBuilder builder, string prefix)
{
builder.AddPass(new RegexRenamePass("^" + prefix, String.Empty,
RenameTargets.EnumItem));
}
public static void RenameDeclsCase(this PassBuilder builder,
RenameTargets targets, RenameCasePattern pattern)
{
builder.AddPass(new CaseRenamePass(targets, pattern));
}
}
} }

Loading…
Cancel
Save