예제 #1
0
        public void TestCheckFlagEnumsPass()
        {
            var @enum = AstContext.Enum("FlagEnum");

            Assert.IsFalse(@enum.IsFlags);

            var @enum2 = AstContext.Enum("FlagEnum2");

            Assert.IsFalse(@enum2.IsFlags);

            passBuilder.AddPass(new CheckFlagEnumsPass());
            passBuilder.RunPasses(pass => pass.VisitLibrary(AstContext));

            Assert.IsTrue(@enum.IsFlags);
            Assert.IsFalse(@enum2.IsFlags);
        }
예제 #2
0
        public void TestExtractInterfacePass()
        {
            var c = AstContext.Class("TestExtractInterfacePass");

            Assert.IsNull(c.GetInterface());

            passBuilder.AddPass(new ExtractInterfacePass());
            passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext));

            Assert.IsNotNull(c.GetInterface());
            Assert.AreEqual("ITestExtractInterfacePass", c.GetInterface().Name);
        }
예제 #3
0
 public static void RenameDeclsLowerCase(this PassBuilder <TranslationUnitPass> builder,
                                         RenameTargets targets)
 {
     builder.AddPass(new CaseRenamePass(targets,
                                        RenameCasePattern.LowerCamelCase));
 }
예제 #4
0
 public static void RenameDeclsCase(this PassBuilder <TranslationUnitPass> builder,
                                    RenameTargets targets, RenameCasePattern pattern)
 {
     builder.AddPass(new CaseRenamePass(targets, pattern));
 }
예제 #5
0
 public static void RemovePrefix(this PassBuilder <TranslationUnitPass> builder, string prefix,
                                 RenameTargets targets = RenameTargets.Any)
 {
     builder.AddPass(new RegexRenamePass("^" + prefix, string.Empty,
                                         targets));
 }
예제 #6
0
 public static void RenameWithPattern(this PassBuilder <TranslationUnitPass> builder,
                                      string pattern, string replacement, RenameTargets targets)
 {
     builder.AddPass(new RegexRenamePass(pattern, replacement, targets));
 }
예제 #7
0
 public static void SetupPasses(PassBuilder <TranslationUnitPass> passes)
 {
     passes.AddPass(new RenameEnumItemsPass());
     passes.AddPass(new FixMethodParametersPass());
 }