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); }
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); }
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); } }
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); } }
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); }
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; } }
public DestructorDecl(Cursor c, ISymbolTable table) : base(c, table) { Debug.Assert(c.Kind == CursorKind.Destructor); _class = table.FindClassDeclaration(c.SemanticParentCurosr.Usr); }