/// <summary>
        ///
        /// </summary>
        /// <param name="fn"></param>
        /// <returns></returns>
        private Merge buildMerge(Merge fn)
        {
            var gVal  = getValue(FunDefination.fun, _current.Value);
            var items = split(FunDefination.splitbyComma, gVal);

            foreach (string item in items)
            {
                if (_tokens.Where(x => x.Catagory == TokenCatagory.Declaration && x.Value == "d:" + item).ToList().Count > 0)
                {
                    fn.AddSource(item);
                }
                else
                {
                    AddError(Source.Severity.Error, "Invalid merge: " + item + " variable doesn't exist", _current.Span);
                }
            }
            return(fn);
        }