private Range Complete2(IList<IFormulaToken> tokens, int index)
{
tokens = SetOrigin(tokens).ToList();
var token = tokens[index];
if (token is FormulaNodeNumber || token is FormulaTokenDecimalSeparator) return GetOrigin(CompleteNumber(tokens, index));
if (token is FormulaTokenParenthesis) return GetOrigin(CompleteBracket(tokens, index));
if (token is IFormulaFunction) return GetOrigin(CompleteFunction(tokens, index) ?? token);
if (token is IFormulaOperator) return GetOrigin(CompleteOperator(tokens, index));
return GetOrigin(token);
}