public static WildcardExpression Parse(string value, bool add_asterisks, ref string error) { List <string> arg_13_0 = WildcardExpression.ParseTokens(value); WildcardExpression wildcardExpression = new WildcardExpression(); int num = 0; if (!WildcardExpression.ParseExpression(arg_13_0, wildcardExpression, ref num, add_asterisks, ref error)) { error = "error parsing string, defaulting to initial value"; wildcardExpression.m_Wildcard = new Wildcard(value); } return(wildcardExpression); }
private static List <string> ParseTokens(string value) { List <string> list = new List <string>(); int i = 0; string text = ""; while (i < value.Length) { char c = value[i++]; if (c == '"') { string item = WildcardExpression.ParseString(value, ref i); list.Add(item); } else if (c == ' ') { if (text != "") { list.Add(text); } text = ""; } else if (c == '(') { if (text != "") { list.Add(text); } text = ""; list.Add("("); } else if (c == ')') { if (text != "") { list.Add(text); } text = ""; list.Add(")"); } else { text += c.ToString(); } } if (text != "") { list.Add(text); } return(list); }
public static bool Match(string value, string expression, bool add_asterisks, ref string error) { return(WildcardExpression.Parse(expression, add_asterisks, ref error).IsMatch(value)); }
public static bool Match(string value, string expression, ref string error) { return(WildcardExpression.Match(value, expression, false, ref error)); }
private static bool ParseExpression(List <string> tokens, WildcardExpression expression, ref int index, bool add_asterisks, ref string error) { if (index == tokens.Count) { return(true); } int num = index; index = num + 1; string text = tokens[num]; string a = text.ToLower(); if (index == tokens.Count || tokens[index] == ")") { if (index != tokens.Count) { index++; } if (add_asterisks) { text = WildcardExpression.AddAsterisks(text); } expression.m_Wildcard = new Wildcard(text); return(true); } WildcardExpression wildcardExpression = new WildcardExpression(); if (text == "(") { if (!WildcardExpression.ParseExpression(tokens, wildcardExpression, ref index, add_asterisks, ref error)) { return(false); } } else { if (text == "&&" || text == "||" || a == "and" || a == "or") { error = "Unexpected conditional token"; return(false); } if (add_asterisks) { text = WildcardExpression.AddAsterisks(text); } wildcardExpression.m_Wildcard = new Wildcard(WildcardExpression.AddAsterisks(text)); } expression.m_Exp1 = wildcardExpression; if (index == tokens.Count) { return(true); } num = index; index = num + 1; text = tokens[num]; if (text == ")") { return(true); } string a2 = text.ToLower(); if (!(a2 == "&&") && !(a2 == "and")) { if (!(a2 == "||") && !(a2 == "or")) { error = "Unexpected token " + text; return(false); } expression.m_Operator = WildcardExpression.Operator.Or; } else { expression.m_Operator = WildcardExpression.Operator.And; } WildcardExpression wildcardExpression2 = new WildcardExpression(); if (!WildcardExpression.ParseExpression(tokens, wildcardExpression2, ref index, add_asterisks, ref error)) { return(false); } expression.m_Exp2 = wildcardExpression2; return(true); }
public static WildcardExpression Parse(string value, ref string error) { return(WildcardExpression.Parse(value, false, ref error)); }