public void InnerType()
        {
            memberExcludeTransformer = new MemberExcludeTransformer("$MyInnerType");
            string program = TestUtil.TypeMemberParse("public class MyInnerType{}");
            string expected = TestUtil.NamespaceMemberParse("public class Test{}");

            CompilationUnit cu = TestUtil.ParseProgram(program);
            memberExcludeTransformer.VisitCompilationUnit(cu, null);
            TestUtil.CodeEqual(expected, TestUtil.GenerateCode(cu));
        }
        public void CurrentTypeMethod()
        {
            memberExcludeTransformer = new MemberExcludeTransformer("RemoveMethod");
            string program = TestUtil.TypeMemberParse("public void Method() {int i; RemoveMethod(); i = 0;} private void RemoveMethod() {}");
            string expected = TestUtil.CSharpTypeMemberParse("public void Method() {int i; i = 0;}");

            CompilationUnit cu = TestUtil.ParseProgram(program);
            memberExcludeTransformer.VisitCompilationUnit(cu, null);
            TestUtil.CodeEqual(expected, TestUtil.GenerateCode(cu));
        }
예제 #3
0
        public void InnerType()
        {
            memberExcludeTransformer = new MemberExcludeTransformer("$MyInnerType");
            string program  = TestUtil.TypeMemberParse("public class MyInnerType{}");
            string expected = TestUtil.NamespaceMemberParse("public class Test{}");

            CompilationUnit cu = TestUtil.ParseProgram(program);

            memberExcludeTransformer.VisitCompilationUnit(cu, null);
            TestUtil.CodeEqual(expected, TestUtil.GenerateCode(cu));
        }
예제 #4
0
        public void CurrentTypeMethod()
        {
            memberExcludeTransformer = new MemberExcludeTransformer("RemoveMethod");
            string program  = TestUtil.TypeMemberParse("public void Method() {int i; RemoveMethod(); i = 0;} private void RemoveMethod() {}");
            string expected = TestUtil.CSharpTypeMemberParse("public void Method() {int i; i = 0;}");

            CompilationUnit cu = TestUtil.ParseProgram(program);

            memberExcludeTransformer.VisitCompilationUnit(cu, null);
            TestUtil.CodeEqual(expected, TestUtil.GenerateCode(cu));
        }
예제 #5
0
        private void ParseAndPreVisit()
        {
            foreach (Source entry in Sources.Values)
            {
                if (!entry.CodeFile)
                {
                    continue;
                }
                progress.Increment("Parsing");

                string       convetedCode = ConvertFile(entry.Code);
                StringReader reader       = new StringReader(convetedCode);

                IParser parser = ParserFactory.CreateParser(GetLanguage(), reader);
                parser.ParseMethodBodies = true;
                parser.Parse();
                CompilationUnit compilationUnit = parser.CompilationUnit;
                compilationUnit.Parent = new TypeReference(entry.File);

                parentVisitor.VisitCompilationUnit(compilationUnit, null);
                typesVisitor.VisitCompilationUnit(compilationUnit, null);
                projectTypeReferenceCorrector.VisitCompilationUnit(compilationUnit, null);
                if (Stubs.Contains(entry.File))
                {
                    StubTransformer st = new StubTransformer();

                    st.Members = (string)Stubs[entry.File];
                    st.VisitCompilationUnit(compilationUnit, null);
                }
                if (MembersExcludes.Contains(entry.File))
                {
                    string members = MembersExcludes[entry.File].ToString();
                    MemberExcludeTransformer met = new MemberExcludeTransformer(members);
                    met.VisitCompilationUnit(compilationUnit, null);
                    if (met.ExcludedType != null && met.ExcludedMembers != null)
                    {
                        baseTypeToExcludeMethod[met.ExcludedType] = met.ExcludedMembers;
                    }
                }
                entry.CompilationUnit = compilationUnit;
                entry.Parser          = parser;
            }
        }
예제 #6
0
        private void ParseAndPreVisit()
        {
            foreach (Source entry in Sources.Values)
            {
                if (!entry.CodeFile)
                    continue;
                progress.Increment("Parsing");

                string convetedCode = ConvertFile(entry.Code);
                StringReader reader = new StringReader(convetedCode);

                IParser parser = ParserFactory.CreateParser(GetLanguage(), reader);
                parser.ParseMethodBodies = true;
                parser.Parse();
                CompilationUnit compilationUnit = parser.CompilationUnit;
                compilationUnit.Parent = new TypeReference(entry.File);

                parentVisitor.VisitCompilationUnit(compilationUnit, null);
                typesVisitor.VisitCompilationUnit(compilationUnit, null);
                projectTypeReferenceCorrector.VisitCompilationUnit(compilationUnit, null);
                if (Stubs.Contains(entry.File))
                {
                    StubTransformer st = new StubTransformer();

                    st.Members = (string) Stubs[entry.File];
                    st.VisitCompilationUnit(compilationUnit, null);
                }
                if (MembersExcludes.Contains(entry.File))
                {
                    string members = MembersExcludes[entry.File].ToString();
                    MemberExcludeTransformer met = new MemberExcludeTransformer(members);
                    met.VisitCompilationUnit(compilationUnit, null);
                    if (met.ExcludedType != null && met.ExcludedMembers != null)
                        baseTypeToExcludeMethod[met.ExcludedType] = met.ExcludedMembers;
                }
                entry.CompilationUnit = compilationUnit;
                entry.Parser = parser;
            }
        }