Changes in src/SymTab/Indexer.h [0ac366b:4670c79]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Indexer.h
r0ac366b r4670c79 19 19 #include <list> // for list 20 20 #include <string> // for string 21 #include <functional> // for function22 21 23 22 #include "SynTree/Visitor.h" // for Visitor … … 41 40 42 41 struct IdData { 43 DeclarationWithType * id = nullptr; 44 Expression * baseExpr = nullptr; // WithExpr 45 46 /// non-null if this declaration is deleted 47 BaseSyntaxNode * deleteStmt = nullptr; 42 DeclarationWithType * id; 43 Expression * baseExpr; // WithExpr 48 44 49 45 Expression * combine() const; … … 66 62 67 63 /// looks up a specific mangled ID at the given scope 68 IdData * lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ); 69 const IdData * lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const; 64 DeclarationWithType *lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const; 70 65 /// returns true if there exists a declaration with C linkage and the given name with a different mangled name 71 66 bool hasIncompatibleCDecl( const std::string &id, const std::string &mangleName, unsigned long scope ) const; … … 79 74 TraitDecl *lookupTraitAtScope( const std::string &id, unsigned long scope ) const; 80 75 81 typedef std::function<bool(IdData &, const std::string &)> ConflictFunction; 82 83 void addId( DeclarationWithType * decl, Expression * baseExpr = nullptr ); 84 void addDeletedId( DeclarationWithType * decl, BaseSyntaxNode * deleteStmt ); 85 76 void addId( DeclarationWithType *decl, Expression * baseExpr = nullptr ); 86 77 void addType( NamedTypeDecl *decl ); 87 78 void addStruct( const std::string &id ); … … 93 84 94 85 /// adds all of the IDs from WithStmt exprs 95 void addWith( std::list< Expression * > & withExprs , BaseSyntaxNode * withStmt);86 void addWith( std::list< Expression * > & withExprs ); 96 87 97 88 /// adds all of the members of the Aggregate (addWith helper) 98 void addMembers( AggregateDecl * aggr, Expression * expr , ConflictFunction);89 void addMembers( AggregateDecl * aggr, Expression * expr ); 99 90 100 91 /// convenience function for adding a list of Ids to the indexer … … 126 117 /// Ensures that tables variable is writable (i.e. allocated, uniquely owned by this Indexer, and at the current scope) 127 118 void makeWritable(); 128 129 /// common code for addId, addDeletedId, etc.130 void addId( DeclarationWithType * decl, ConflictFunction, Expression * baseExpr = nullptr, BaseSyntaxNode * deleteStmt = nullptr );131 119 }; 132 120 } // namespace SymTab
Note:
See TracChangeset
for help on using the changeset viewer.