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;
        }
Example #3
0
 /// <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);
        }
Example #5
0
        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;
 }
Example #9
0
        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);
        }
Example #11
0
 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;
        }