/// <summary> /// Check if given <paramref name="name"/> is a valid matrix name /// <para>Throws <see cref="CompilerMessage.MAT_NAME_EMPTY"/> if <paramref name="throwOnBadName"/> is "true"</para> /// </summary> /// <param name="name">Name for a matrix</param> /// <param name="throwOnBadName">Wheter to throw if name is invalid</param> /// <returns>True if given <paramref name="name"/> is valid, false otherwise</returns> public static bool ValidMatrixName(string name, bool throwOnBadName = false) { name = name.Trim(); Regex name_regex = new Regex(@"^\w*|[0-9]*$", RegexOptions.Compiled | RegexOptions.IgnoreCase); if (string.IsNullOrEmpty(name.Replace(" ", ""))) { return(throwOnBadName ? throw new System.Exception(CompilerMessage.MAT_NAME_EMPTY) : false); } return(name.Length > (int)MatrisLimits.forName ? throwOnBadName ? throw new System.Exception(CompilerMessage.MAT_NAME_CHAR_LIMIT(name.Length)) : false : !"0123456789".Contains(name[0]) && (name_regex.Match(name).Groups[0].Value == name) || (throwOnBadName ? throw new System.Exception(CompilerMessage.MAT_NAME_INVALID) : false)); }