\subsection{Class LineInformation}\label{LineInformation}
This class represents an entire line map for a module. This contains mappings from a line number within a source to the address ranges.

\begin{apient}
bool getAddressRanges(const char * lineSource,
                      unsigned int LineNo,
                      std::vector<AddressRange> & ranges)
\end{apient}
\apidesc{
This methos returns the address ranges in \code{ranges} corresponding to the line with line number \code{lineNo} in the source file \code{lineSource}. Searches within this line map.
Return \code{true} if at least one address range corresponding to the line number was found and returns \code{false} if none found.
}

\begin{apient}
bool getSourceLines(Offset addressInRange,
                    std::vector<Statement *> & lines)
bool getSourceLines(Offset addressInRange,
                    std::vector<LineNoTuple> & lines)

\end{apient}
\apidesc{
These methods returns the source file names and line numbers corresponding to the given address \code{addressInRange}. Searches within this line map. 
Return \code{true} if at least one tuple corresponding to the offset was found and returns \code{false} if none found. Note that the order of arguments is reversed from the corresponding interfaces in \code{Module} and \code{Symtab}.
}

\begin{apient}
bool addLine(const char * lineSource,
             unsigned int lineNo,
             unsigned int lineOffset,
             Offset lowInclusiveAddr,
             Offset highExclusiveAddr)
\end{apient}
\apidesc{
This method adds a new line to the line Map. \code{lineSource} represents the source file name. \code{lineNo} represents the line number.
}

\begin{apient}
bool addAddressRange(Offset lowInclusiveAddr,
                     Offset highExclusiveAddr,
                     const char* lineSource,
                     unsigned int lineNo,
                     unsigned int lineOffset = 0);
\end{apient}
\apidesc{
This method adds an address range \code{[lowInclusiveAddr, highExclusiveAddr)} for the line with line number \code{lineNo} in source file \code{lineSource}. 
}

\begin{apient}
LineInformation::const_iterator begin() const
\end{apient}
\apidesc{
This method returns an iterator pointing to the beginning of the line information for the module.
This is useful for iterating over the entire line information present in a module. An example described in Section \ref{subsec:LineNoIterating} gives more information on how to use \code{begin()} for iterating over the line information.
}

\begin{apient}
LineInformation::const_iterator end() const
\end{apient}
\apidesc{
This method returns an iterator pointing to the end of the line information for the module.
This is useful for iterating over the entire line information present in a module. An example described in Section \ref{subsec:LineNoIterating} gives more information on how to use \code{end()} for iterating over the line information.
}
