Exemple #1
0
 public override Runlet Weave(Runlet continuation, GlobalDictionary g)
 {
     for (int i = Body.Length - 1; i >= 0; i -= 1)
     {
         Codelet codelet = Body[i];
         continuation = codelet.Weave(continuation, g);
     }
     return(continuation);
 }
Exemple #2
0
        public void Initialise(string key, Codelet value)
        {
            var    halt               = new HaltRunlet();
            var    unlock             = new UnlockRunlet(halt);
            var    pop                = new PopGlobalRunlet(this._dictionary.Get(key), unlock);
            var    init               = value.Weave(pop, this._dictionary);
            Runlet currentInstruction = new LockRunlet(init);

            while (true)
            {
                currentInstruction = currentInstruction.ExecuteRunlet(this);
            }
        }
Exemple #3
0
 public void Bind(string idName, Codelet codelet)
 {
     this._dictionary.Add(idName, codelet.Weave(null, this._dictionary));
 }