public void Add(AreaListNode node)
        {
            if (count >= data.Length)
            {
                Resize(data.Length * SymbolTableConstants.AreaList_ResizeParam);
            }
            if (count == 0)
            {
                count++;
                data[0] = node;
                return;
            }
            if (data[count - 1].Area < node.Area)
            {
                data[count] = node;
                count++;
                return;
            }
            int i = 0;

            while (data[i].Area < node.Area)
            {
                i++;
            }
            if (data[i].Area == node.Area)
            {
                data[i].InfoList.Add(node.InfoList[0]);
                //data[i].InfoList[0].Next = node.InfoList[0];
                return;
                //throw new Exception("Ошибка при добавлении области видимости к идентефикатору: такая область уже существует");
            }
            int k = i;

            for (i = count; i >= k + 1; i--)
            {
                data[i] = data[i - 1];
            }
            count++;
            data[i] = node;
        }
 private void Resize(int new_size)
 {
     AreaListNode[] d = new AreaListNode[new_size];
     data.CopyTo(d, 0);
     data = d;
 }