diff options
Diffstat (limited to 'include/clang/Basic/SourceManagerInternals.h')
-rw-r--r-- | include/clang/Basic/SourceManagerInternals.h | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/include/clang/Basic/SourceManagerInternals.h b/include/clang/Basic/SourceManagerInternals.h index 1cb16b4..af95b78 100644 --- a/include/clang/Basic/SourceManagerInternals.h +++ b/include/clang/Basic/SourceManagerInternals.h @@ -6,15 +6,16 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// -// -// This file defines the implementation details of the SourceManager -// class. -// +/// +/// \file +/// \brief Defines implementation details of the clang::SourceManager class. +/// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_SOURCEMANAGER_INTERNALS_H #define LLVM_CLANG_SOURCEMANAGER_INTERNALS_H +#include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "llvm/ADT/StringMap.h" #include <map> @@ -26,22 +27,23 @@ namespace clang { //===----------------------------------------------------------------------===// struct LineEntry { - /// FileOffset - The offset in this file that the line entry occurs at. + /// \brief The offset in this file that the line entry occurs at. unsigned FileOffset; - /// LineNo - The presumed line number of this line entry: #line 4. + /// \brief The presumed line number of this line entry: \#line 4. unsigned LineNo; - /// FilenameID - The ID of the filename identified by this line entry: - /// #line 4 "foo.c". This is -1 if not specified. + /// \brief The ID of the filename identified by this line entry: + /// \#line 4 "foo.c". This is -1 if not specified. int FilenameID; - /// Flags - Set the 0 if no flags, 1 if a system header, + /// \brief Set the 0 if no flags, 1 if a system header, SrcMgr::CharacteristicKind FileKind; - /// IncludeOffset - This is the offset of the virtual include stack location, - /// which is manipulated by GNU linemarker directives. If this is 0 then - /// there is no virtual #includer. + /// \brief The offset of the virtual include stack location, + /// which is manipulated by GNU linemarker directives. + /// + /// If this is 0 then there is no virtual \#includer. unsigned IncludeOffset; static LineEntry get(unsigned Offs, unsigned Line, int Filename, @@ -71,20 +73,20 @@ inline bool operator<(unsigned Offset, const LineEntry &E) { return Offset < E.FileOffset; } -/// LineTableInfo - This class is used to hold and unique data used to -/// represent #line information. +/// \brief Used to hold and unique data used to represent \#line information. class LineTableInfo { - /// FilenameIDs - This map is used to assign unique IDs to filenames in - /// #line directives. This allows us to unique the filenames that + /// \brief Map used to assign unique IDs to filenames in \#line directives. + /// + /// This allows us to unique the filenames that /// frequently reoccur and reference them with indices. FilenameIDs holds /// the mapping from string -> ID, and FilenamesByID holds the mapping of ID /// to string. llvm::StringMap<unsigned, llvm::BumpPtrAllocator> FilenameIDs; std::vector<llvm::StringMapEntry<unsigned>*> FilenamesByID; - /// LineEntries - This is a map from FileIDs to a list of line entries (sorted - /// by the offset they occur in the file. - std::map<int, std::vector<LineEntry> > LineEntries; + /// \brief Map from FileIDs to a list of line entries (sorted by the offset + /// at which they occur in the file). + std::map<FileID, std::vector<LineEntry> > LineEntries; public: LineTableInfo() { } @@ -104,25 +106,26 @@ public: } unsigned getNumFilenames() const { return FilenamesByID.size(); } - void AddLineNote(int FID, unsigned Offset, + void AddLineNote(FileID FID, unsigned Offset, unsigned LineNo, int FilenameID); - void AddLineNote(int FID, unsigned Offset, + void AddLineNote(FileID FID, unsigned Offset, unsigned LineNo, int FilenameID, unsigned EntryExit, SrcMgr::CharacteristicKind FileKind); - /// FindNearestLineEntry - Find the line entry nearest to FID that is before - /// it. If there is no line entry before Offset in FID, return null. - const LineEntry *FindNearestLineEntry(int FID, unsigned Offset); + /// \brief Find the line entry nearest to FID that is before it. + /// + /// If there is no line entry before \p Offset in \p FID, returns null. + const LineEntry *FindNearestLineEntry(FileID FID, unsigned Offset); // Low-level access - typedef std::map<int, std::vector<LineEntry> >::iterator iterator; + typedef std::map<FileID, std::vector<LineEntry> >::iterator iterator; iterator begin() { return LineEntries.begin(); } iterator end() { return LineEntries.end(); } /// \brief Add a new line entry that has already been encoded into /// the internal representation of the line table. - void AddEntry(int FID, const std::vector<LineEntry> &Entries); + void AddEntry(FileID FID, const std::vector<LineEntry> &Entries); }; } // end namespace clang |