/// <summary>
        /// Obradjuje sve linije
        /// </summary>
        /// <returns></returns>
        public override IEnumerable <paramPair> processLines()
        {
            paramPairs output = new paramPairs();

            currentGroup = null;

            int i = 0;

            foreach (String ln in lines)
            {
                paramPair oln = processLine(ln, i);
                if (currentGroup == null)
                {
                    output.Add(oln);
                }
                else
                {
                    currentGroup.Add(oln);
                }
                if (oln != null)
                {
                    if (oln.isComment)
                    {
                        headerComments.Add(oln.value);
                    }
                }
                i++;
            }

            return(output);
        }
        /// <summary>
        /// Obradjuje jednu liniju
        /// </summary>
        /// <param name="_line"></param>
        /// <param name="i"> </param>
        /// <returns></returns>
        public override paramPair processLine(string _line, int i)
        {
            if (String.IsNullOrEmpty(_line))
            {
                return(null);
            }
            _line = _line.Trim();
            if (String.IsNullOrEmpty(_line))
            {
                return(null);
            }

            paramPair output = new paramPair();

            if (_line.StartsWith("#"))
            {
                output.isComment = true;
                output.name      = "#" + i.ToString("D3");
                output.value     = _line.Trim('#');
                return(output);
            }

            if (paramLine_set.IsMatch(_line))
            {
                Match mc = paramLine_set.Match(_line);
                output.name = mc.Groups[1].Value.Trim();
                if (output.name.StartsWith("set "))
                {
                    output.name = output.name.Substring(3).Trim();
                }
                output.value = mc.Groups[2].Value.Trim();
                return(output);
            }

            if (!(_line.Contains("=") || _line.Contains(";")))
            {
                _line = _line.Replace("{", "");
                _line = _line.Trim();

                if (String.IsNullOrEmpty(_line))
                {
                }
                else
                {
                    if (_line.Contains("}"))
                    {
                        currentGroup = null;
                    }
                    else
                    {
                        paramNestedPairs newGroup = new paramNestedPairs(_line);
                        currentGroup = newGroup;
                        groups.Add(newGroup);
                    }
                }
            }

            output = null;

            return(output);
        }