コード例 #1
0
        public void AccessSpecDeclTest(string accessSpecifier, CX_CXXAccessSpecifier expectedAccessSpecifier)
        {
            var inputContents = $@"struct MyStruct
{{
{accessSpecifier}:
}};
";

            using var translationUnit = CreateTranslationUnit(inputContents);

            var recordDecl     = translationUnit.TranslationUnitDecl.Decls.OfType <RecordDecl>().Where((recordDecl) => recordDecl.Name == "MyStruct").Single();
            var accessSpecDecl = recordDecl.Decls.OfType <AccessSpecDecl>().Single();

            Assert.Equal(expectedAccessSpecifier, accessSpecDecl.Access);
        }
コード例 #2
0
        private CXChildVisitResult VisitTypeModifier(CXCursor cursor, CXCursor parent, IntPtr data)
        {
            Type parentUnit = units[parent] as Type;

            CX_CXXAccessSpecifier accessSpecifier = clang.getCXXAccessSpecifier(cursor);

            switch (accessSpecifier)
            {
            case CX_CXXAccessSpecifier.CX_CXXPrivate: modifiers[parentUnit] = Modifiers.Private; break;

            case CX_CXXAccessSpecifier.CX_CXXProtected: modifiers[parentUnit] = Modifiers.Protected; break;

            case CX_CXXAccessSpecifier.CX_CXXPublic: modifiers[parentUnit] = Modifiers.Public; break;
            }

            return(CXChildVisitResult.CXChildVisit_Continue);
        }
コード例 #3
0
 public static Accessibility MapAccessibility(this CX_CXXAccessSpecifier access) => access switch
 {
コード例 #4
0
 public static AccessSpecifier ToAccessSpecifier(CX_CXXAccessSpecifier accessSpecifier)
 {
     return((AccessSpecifier)(accessSpecifier));
 }