/**
         * Method to change definition of built-in token - more precisely
         * using this method allows to modify token string recognized by the parser
         * (i.e. sin(x) -> sinus(x)).
         * Procedure affects only tokens classified to built-in functions, built-in
         * constants, built-in units, built-in random variables.
         * @param currentToken          Current token name
         * @param newToken              New token name
         * @param newTokenDescription   New token description (if null the previous one will be used)
         */
        public static void modifyBuiltinToken(String currentToken, String newToken, String newTokenDescription)
        {
            if (currentToken == null)
            {
                return;
            }
            if (currentToken.Length == 0)
            {
                return;
            }
            if (newToken == null)
            {
                return;
            }
            if (newToken.Length == 0)
            {
                return;
            }
            foreach (TokenModification tm in tokensToModify)
            {
                if (tm.currentToken.Equals(currentToken))
                {
                    return;
                }
            }
            TokenModification tma = new TokenModification();

            tma.currentToken        = currentToken;
            tma.newToken            = newToken;
            tma.newTokenDescription = newTokenDescription;
            tokensToModify.Add(tma);
        }
        /**
         * Return details on tokens marked to be modified.
         * @return String[i][0] - current token, String[i][1] - new token,
         *                        String[i][2] - new token description.
         */
        public static String[,] getBuiltinTokensToModify()
        {
            int tokensNum = tokensToModify.Count;

            String[,] tokensToModifyArray = new String[tokensNum, 3];
            for (int i = 0; i < tokensNum; i++)
            {
                TokenModification tm = tokensToModify[i];
                tokensToModifyArray[i, 0] = tm.currentToken;
                tokensToModifyArray[i, 1] = tm.newToken;
                tokensToModifyArray[i, 2] = tm.newTokenDescription;
            }
            return(tokensToModifyArray);
        }