コード例 #1
0
        private bool TryParseExponent(out AstNode node)
        {
            if (TryParseFactorialFactor(out node))
            {
                if (IsNext(TokenType.Exponent))
                {
                    var op = Accept();

                    if (TryParseExponent(out var rhs))
                    {
                        node = new ExponentBinaryOperatorAstNode(op, node, rhs);
                    }
                }
            }

            return(node != null);
        }
コード例 #2
0
 private double Evaluate(ExponentBinaryOperatorAstNode node) =>
 Math.Pow(Evaluate(node.Left as dynamic), Evaluate(node.Right as dynamic));