Exemplo n.º 1
0
        private Expression MagnitudeExpression(Lexemes lexemes, Expression lhs, ParseSettings parseSettings)
        {
            if (lexemes.AcceptToken(Constants.Power))
            {
                var constantExpression = this.ConstantExpression(lexemes, parseSettings);
                return(this.MagnitudeExpression(
                           lexemes,
                           new MagnitudeExpression(lhs, constantExpression),
                           parseSettings));
            }

            string exponent;

            if (lexemes.AcceptTokenType(TokenType.Exponent, out exponent))
            {
                var constantExpression =
                    new ConstantExpression(
                        double.Parse(CharacterConverter.FromExponentNotation(exponent), parseSettings.CultureInfo));
                return(this.MagnitudeExpression(
                           lexemes,
                           new MagnitudeExpression(lhs, constantExpression),
                           parseSettings));
            }

            return(lhs);
        }