private static void InitCultureSpecificTokenMappings(CultureInfo culture)
{
_cultureSpecificTokenMappings = new Dictionary<string, Func<IFormulaToken>>();
// constants
AddTokenMapping(_cultureSpecificTokenMappings, FormulaTokenFactory.CreateDecimalSeparatorToken);
AddTokenMapping(_cultureSpecificTokenMappings, culture.NumberFormat.NegativeSign, FormulaTokenFactory.CreateMinusToken);
foreach (var digit in Enumerable.Range(0, 10))
{
// access to foreach variable in closure
var value = digit;
AddTokenMapping(_cultureSpecificTokenMappings, digit.ToString(culture), () => FormulaTokenFactory.CreateDigitToken(value));
}
// functions
var parameterSeparatorValue = culture.NumberFormat.NumberDecimalSeparator == "," ? ", " : ",";
AddTokenMapping(_cultureSpecificTokenMappings, parameterSeparatorValue, FormulaTokenFactory.CreateParameterSeparatorToken);
_cultureSpecificTokenMappingsCulture = culture;
}