// Adds a codelet to check this input against us public void Generate(Coderack coderack, IParsedPhrase input, IContinuation succ, IFailure fail, double weight) { double salience = maxSalience * score * weight; PatternTemplateSource checker = new PatternTemplateSource(this, coderack, salience, succ); Matcher.MatchAgainst(salience, pattern, input, new List <IParsedPhrase>(), checker, fail); }
public PatternTemplateSource(PatternTemplateSource parent, Coderack coderack, double salience, IContinuation succ) { pattern = parent.pattern; template = parent.template; score = parent.score; source = parent.source; this.coderack = coderack; this.salience = salience; this.succ = succ; }
public override bool CallRescue(Coderack coderack, IParsedPhrase input, PatternTemplateSource patternTemplateSource, string reason, IContinuation skip, IContinuation succ, IFailure fail) { List<string> words = GroupPhrase.PhraseToTexts(input); bool changed = false; List<string> corrected = new List<string>(); foreach (string word in words) { string correct = comparer.GetCorrects(word)[0]; if (correct.ToLower() != word.ToLower()) changed = true; corrected.Add(correct); } if (changed) { IParsedPhrase correct = parser.Parse(StringUtilities.JoinWords(corrected)); IFailure fallfail = fallback.MakeFailure(input, patternTemplateSource, succ, fail, coderack); patternTemplateSource.Generate(coderack, correct, succ, fallfail, weight); return true; } else return fallback.CallRescue(coderack, input, patternTemplateSource, reason, skip, succ, fail); }
public IFailure MakeFailure(IParsedPhrase input, PatternTemplateSource patternTemplateSource, IContinuation succ, IFailure fail, Coderack coderack) { return new FailletWrapper(FailToTryToRescue, this, input, patternTemplateSource, succ, fail, coderack); }
// default is failure to rescue public virtual bool CallRescue(Coderack coderack, IParsedPhrase input, PatternTemplateSource patternTemplateSource, string reason, IContinuation skip, IContinuation succ, IFailure fail) { return fail.Fail(reason, skip); }
// Adds a codelet to check this input against us public void Generate(Coderack coderack, IParsedPhrase input, IContinuation succ, IFailure fail, double weight) { double salience = maxSalience * score * weight; PatternTemplateSource checker = new PatternTemplateSource(this, coderack, salience, succ); Matcher.MatchAgainst(salience, pattern, input, new List<IParsedPhrase>(), checker, fail); }