Esempio n. 1
0
 public MethodDecl(Cursor declaration, ISymbolTable table)
     : base(declaration, table)
 {
     Debug.Assert(CursorKinds.IsClassStructEtc(declaration.SemanticParentCurosr.Kind));
     _class = table.FindClassDeclaration(declaration.SemanticParentCurosr.Usr);
     Debug.Assert(_class != null);            
 }
Esempio n. 2
0
 public FieldDecl(Cursor c, ISymbolTable table)
     : base(c, table)
 {
     Debug.Assert(c.Kind == CursorKind.FieldDecl);
     _class = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
     Debug.Assert(_class != null);
 }
Esempio n. 3
0
        public ClassDecl(Cursor c, ISymbolTable table)
            : base(c, table)
        {
            Debug.Assert(CursorKinds.IsClassStructEtc(c.Kind));
    
            _templateKind = Symbols.TemplateKind.NonTemplate;
            if (c.Kind == CursorKind.ClassTemplate)
                _templateKind = Symbols.TemplateKind.Template;
            else if (c.Kind == CursorKind.ClassTemplatePartialSpecialization)
                _templateKind = Symbols.TemplateKind.TemplatePartialSpecialization;
            else if (c.TemplateSpecialisedCursorTemplate != null)
                _templateKind = Symbols.TemplateKind.TemplateSpecialization;

            if(c.SemanticParentCurosr.Kind == CursorKind.Namespace)
            {
                _parent = table.FindNamespaceDeclaration(c.SemanticParentCurosr.Usr);
                Debug.Assert(_parent != null);
            }
            else if (c.SemanticParentCurosr.Kind == CursorKind.TranslationUnit ||
                c.SemanticParentCurosr.Kind == CursorKind.UnexposedDecl)
            {
                _parent = null;
            }
            else if(CursorKinds.IsClassStructEtc(c.SemanticParentCurosr.Kind))
            {
                _parent = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
                Debug.Assert(_parent != null);
            }
            else
            {
                Debug.Assert(false);
            }
        }
Esempio n. 4
0
 public VariableDecl(Cursor c, ISymbolTable table)
     : base(c, table)
 {
    // Debug.Assert(c.Kind == CursorKind.VarDecl);
     if (c.SemanticParentCurosr.Kind == CursorKind.Namespace)
     {
         _parent = table.FindNamespaceDeclaration(c.SemanticParentCurosr.Usr);
         Debug.Assert(_parent != null);
     }
     else if (CursorKinds.IsClassStructEtc(c.SemanticParentCurosr.Kind))
     {
         _parent = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
         Debug.Assert(_parent != null);
     }
     else if(CursorKinds.IsFunctionEtc(c.SemanticParentCurosr.Kind))
     {
         _parent = table.FindFunctionDeclaration(c.SemanticParentCurosr.Usr);
     }
     else if (c.SemanticParentCurosr.Kind == CursorKind.TranslationUnit ||
         c.SemanticParentCurosr.Kind == CursorKind.UnexposedDecl)
     {
         _parent = null;
     }
     else
     {
         Debug.Assert(false);
     }
 }
Esempio n. 5
0
 public ConstructorDecl(Cursor c, ISymbolTable table)
     : base(c, table)
 {            
     Debug.Assert(c.Kind == CursorKind.Constructor);
     _class = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
     //could be classtemplate 
     //Debug.Assert(_class != null);
 }
Esempio n. 6
0
 public EnumDecl(Cursor c, ISymbolTable table)
     : base(c, table)
 {
     Debug.Assert(c.Kind == CursorKind.EnumDecl);
     if (c.SemanticParentCurosr.Kind == CursorKind.Namespace)
     {
         _parent = table.FindNamespaceDeclaration(c.SemanticParentCurosr.Usr);
         Debug.Assert(_parent != null);
     }
     else if (CursorKinds.IsClassStructEtc(c.SemanticParentCurosr.Kind))
     {
         _parent = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
         Debug.Assert(_parent != null);
     }
     else
     {
         CursorKind k = c.SemanticParentCurosr.Kind;
     }
 }
Esempio n. 7
0
 public DestructorDecl(Cursor c, ISymbolTable table)
     : base(c, table)
 {
     Debug.Assert(c.Kind == CursorKind.Destructor);
     _class = table.FindClassDeclaration(c.SemanticParentCurosr.Usr);
 }