private static HashSet <char> parseAlphabet(XElement xAlphabet) { xAlphabet = DFAUtilities.RemoveJustNamespaces(xAlphabet); HashSet <char> alphabet = new HashSet <char>(); foreach (var child in xAlphabet.Elements("symbol")) { char element = Convert.ToChar(child.Value.Trim()); alphabet.Add(element); } return(alphabet); }
public static XElement getFeedback(XElement regex, XElement alphabet, XElement attemptNfa, XElement maxGrade) { var cleanAttempt = DFAUtilities.RemoveJustNamespaces(attemptNfa).Element("block"); expressions = new HashSet <string>(); wrong = new HashSet <string>(); var feedString = "<ul>"; var tup = recursiveHelper(regex, alphabet, cleanAttempt); feedString += tup.Item3 + "</ul>"; var grade = 1.0 * int.Parse(maxGrade.Value) * tup.Item1 / expressions.Count; if (grade == int.Parse(maxGrade.Value)) { feedString = "Correct!"; } return(XElement.Parse(string.Format("<div><grade>{0}</grade><feedback>{1}</feedback></div>", (int)(Math.Floor(grade)), feedString))); }