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); }
private double Evaluate(ExponentBinaryOperatorAstNode node) => Math.Pow(Evaluate(node.Left as dynamic), Evaluate(node.Right as dynamic));