Exemplo n.º 1
0
        private string RenderNumber(Interpreter interpreter, INumberVariable number)
        {
            if (number.Min != number.Max)
            {
                var min = interpreter.Locale.FormatNumber(number.Min, Format);
                var max = interpreter.Locale.FormatNumber(number.Min, Format);

                var spaceBefore = number.Separator == '&';
                var spaceAfter  = number.Separator == ',' || number.Separator == '&';

                return($"{min}{(spaceBefore ? " " : "")}{number.Separator}{(spaceAfter ? " " : "")}{max}");
            }
            else
            {
                return(interpreter.Locale.FormatNumber(number.Min, Format));
            }
        }
Exemplo n.º 2
0
        public override void EvaluateOverride(Interpreter interpreter, Citation citation)
        {
            if (Variable == null)
            {
                throw new System.Exception();
            }

            var value = citation[Variable];

            var text = value switch
            {
                ITextVariable textVariable => textVariable.Value,
                INumberVariable numberVariable => RenderNumber(interpreter, numberVariable),
                _ => null
            };

            if (text != null)
            {
                interpreter.Push(text, this);
            }
        }