Esempio n. 1
0
        private bool TryParseFactor(out AstNode node)
        {
            if (IsNext(TokenType.Minus))
            {
                var op = Accept();

                if (TryParseImplicitMultiplication(out node))
                {
                    node = new NegationUnaryOperatorAstNode(op, node);
                }
                else
                {
                    throw new Exception($"Exception parsing the factor rule at position {_lexer.Position}");
                }
            }
            else
            {
                TryParseImplicitMultiplication(out node);
            }

            return(node != null);
        }
Esempio n. 2
0
 private double Evaluate(NegationUnaryOperatorAstNode node) =>
 - 1 * Evaluate(node.Target as dynamic);