protected bool needRemoval; // true to strip off first element of matcher #endregion Fields #region Constructors public StarEater(Coderack coderack, double salience, Matcher matcher, string name, bool needRemoval) : base(coderack, salience, 0, 10) { this.matcher = matcher; this.name = name; this.needRemoval = needRemoval; }
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; }
/// <summary> /// Create a codelet with needed information /// </summary> public Codelet(Coderack cr, double sl, int sp, int tm) { coderack = cr; if (sl == 0) salience = sl; else salience = sl + randgen.NextDouble(); space = sp + 8 * 4; time = tm; trace = new CodeletTrace(); watched = false; immune = false; }
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 void Initialize(string config) { plugenv = new PluginEnvironment(this); if (!File.Exists(config)) { Console.WriteLine("Cannot find configuration file at " + config); return; } plugenv.Initialize(config, new NameValueCollection()); tagger = new POSTagger(plugenv); parser = new GrammarParser(plugenv); coderack = new ZippyCoderack(this, 10000000); memory = new Memory(); basectx = new Context(coderack); GrammarVariables.LoadVariables(basectx, 100.0, memory, plugenv); OutputVariables.LoadVariables(basectx, 100.0, plugenv); ProgramVariables.LoadVariables(basectx, 100.0, plugenv); basectx.Map.Add("$Compare", new WordComparer()); initialized = true; }
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); }
public CodeletEvaluableWrapper(IEvaluable evaluable, Coderack coderack, double salience, int sp, int tm) : base(coderack, salience, sp, tm) { this.evaluable = evaluable; }
public readonly string Name; // Any name public DescriptorCodelet(Coderack c, string n) : base(c, 0, (int)(n.Length / 4 + 1), 0) { Name = n; }
// 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 override void Deserialize(SerializationReader reader) { coderack = (Coderack) reader.ReadPointer(); // coderack = CType(info.GetValue("coderack", GetType(Coderack)), Coderack) salience = reader.ReadDouble(); // salience = info.GetDouble("salience") space = reader.ReadInt32(); // space = info.GetInt32("space") time = reader.ReadInt32(); // time = info.GetInt32("time") reader.ReadDictionary(children); // children = CType(info.GetValue("children", GetType(Dictionary(Of String, Codelet))), Dictionary(Of String, Codelet)) watched = reader.ReadBoolean(); // watched = info.GetBoolean("watched") immune = reader.ReadBoolean(); // immune = info.GetBoolean("immune") }
public readonly string Name; // Any name #endregion Fields #region Constructors public DescriptorCodelet(Coderack c, string n) : base(c, 0, (int)(n.Length / 4 + 1), 0) { Name = n; }