/// <summary>
 /// Change all line numbers for errors from selected start
 /// line number by selected offset. doesn't check nothing. assuming the user
 /// knows what he's doing
 /// </summary>
 /// <param name="iFromLine">Start line number</param>
 /// <param name="iOffset">Offset (in line numbers)</param>
 public void RemoveLines(int iFromLine, int iOffset)
 {
     for (int iCounter = 0; iCounter < _commentsList.Count; ++iCounter)
     {
         CompilerCommentEntry curLine = ((CompilerCommentEntry)_commentsList[iCounter]);
         if (curLine.Line > iFromLine - iOffset)
         {
             curLine.Line += iOffset;
         }
         else if (curLine.Line > iFromLine)
         {
             _commentsList.Remove(curLine);
         }
     }
 }
 /// <summary>
 /// Change all line numbers for errors from selected start
 /// line number by selected offset. doesn't check nothing. assuming the user
 /// knows what he's doing
 /// </summary>
 /// <param name="iFromLine">Start line number</param>
 /// <param name="iOffset">Offset (in line numbers)</param>
 public void updateErrorsLinesNumber(int iFromLine, int iOffset)
 {
     if (iOffset > 0)
     {
         for (int iCounter = 0; iCounter < _commentsList.Count; ++iCounter)
         {
             CompilerCommentEntry curLine = ((CompilerCommentEntry)_commentsList[iCounter]);
             if (curLine.Line >= iFromLine)
             {
                 curLine.Line += iOffset;
             }
         }
     }
     else if (iOffset < 0)
     {
         RemoveLines(iFromLine, iOffset);
     }
 }
        /// <summary>
        /// Add entry to the list
        /// </summary>
        /// <param name="iLine">Line Number</param>
        /// <param name="iAddress">Message related to that line</param>
        public void AddEntry(int iLine, CompilerMessage msg)
        {
            CompilerCommentEntry en = new CompilerCommentEntry(iLine, msg);

            _commentsList.Add(en);
        }