Esempio n. 1
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);
     }
 }