/** * 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); }