Ejemplo n.º 1
0
        private TreeNode MakeUnaryDifferential(UnaryOperationTreeNode uTreeNode, int index)
        {
            TreeNode childDx      = MakeDifferential(uTreeNode.Child, index);
            TreeNode differential = UnaryDifferential[uTreeNode.Operation].Clone();

            ReplaceDifferentialArguments(differential, uTreeNode.Child, childDx);

            return(differential);
        }
Ejemplo n.º 2
0
        // stupid factorial. Why should it be after term, not before it?
        TreeNode ParseTermWithPossibleFactorial(ConstructionContext context)
        {
            TreeNode term = ParseTerm(context);

            while (context.TryPeekNextToken(out Token factorialToken) &&
                   factorialToken is SymbolToken factorialSymbolToken &&
                   factorialSymbolToken.Symbol == '!')
            {
                context.EatLastToken();                 // eat factorial token

                term = new UnaryOperationTreeNode(UnaryOperation.Factorial, term);
            }

            return(term);
        }