public TemplateToCompiledLineLookup this[FunctionInfo function, int origLineNum, int originalColumnIndex]
        {
            get
            {
                if (ContainsKey(function, origLineNum))
                {
                    List <TemplateToCompiledLineLookup> lines = _Dictionary[origLineNum][function];
                    if (lines.Count == 0)
                    {
                        throw new Exception(string.Format(
                                                "The line {0} in function '{1}' does not have any generated code associated with it.",
                                                origLineNum, function));
                    }
                    TemplateToCompiledLineLookup returnValue = lines[0];

                    foreach (TemplateToCompiledLineLookup lookup in lines)
                    {
                        if (originalColumnIndex >= lookup.TemplateColumn)
                        {
                            return(lookup);
                        }
                    }

                    return(returnValue);
                }
                throw new Exception("Could not find key " + function.Name + ", " + origLineNum + " in Dictionary");
            }
        }
        public void AddLookup(FunctionInfo function, int origLineNum, TemplateToCompiledLineLookup value)
        {
            if (_Dictionary.ContainsKey(origLineNum) == false)
            {
                _Dictionary[origLineNum]           = new Dictionary <FunctionInfo, List <TemplateToCompiledLineLookup> >(_StartingCapacity);
                _Dictionary[origLineNum][function] = new List <TemplateToCompiledLineLookup>();
            }
            else if (_Dictionary[origLineNum].ContainsKey(function) == false)
            {
                _Dictionary[origLineNum][function] = new List <TemplateToCompiledLineLookup>();
            }

            _Dictionary[origLineNum][function].Add(value);
        }
        public void AddLookup(FunctionInfo function, int origLineNum, TemplateToCompiledLineLookup value)
        {
            if (_Dictionary.ContainsKey(origLineNum) == false)
            {
                _Dictionary[origLineNum] = new Dictionary<FunctionInfo, List<TemplateToCompiledLineLookup>>(_StartingCapacity);
                _Dictionary[origLineNum][function] = new List<TemplateToCompiledLineLookup>();
            }
            else if (_Dictionary[origLineNum].ContainsKey(function) == false)
            {
                _Dictionary[origLineNum][function] = new List<TemplateToCompiledLineLookup>();
            }

            _Dictionary[origLineNum][function].Add(value);
        }