Catrobat.IDE.Core.Formulas.FormulaTokenizer.InitCultureSpecificTokenMappings C# (CSharp) Method

InitCultureSpecificTokenMappings() private static method

private static InitCultureSpecificTokenMappings ( CultureInfo culture ) : void
culture System.Globalization.CultureInfo
return void
        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;
        }