localsMessageArgAt() public method

public localsMessageArgAt ( IoObject locals, int n ) : IoObject
locals IoObject
n int
return IoObject
Example #1
0
File: IoMessage.cs Project: ypyf/io
        public static IoObject slotAppendArg(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage self = target as IoMessage;
            IoMessage msg  = message as IoMessage;
            IoMessage m    = msg.localsMessageArgAt(locals, 0);

            self.args.Add(m);
            return(self);
        }
Example #2
0
        public static IoObject slotDoMessage(IoObject self, IoObject locals, IoObject m)
        {
            IoMessage msg      = m as IoMessage;
            IoMessage aMessage = msg.localsMessageArgAt(locals, 0) as IoMessage;
            IoObject  context  = self;

            if (msg.args.Count >= 2)
            {
                context = msg.localsValueArgAt(locals, 1);
            }
            return(aMessage.localsPerformOn(context, self));
        }
Example #3
0
File: IoMessage.cs Project: ypyf/io
        public static IoObject slotSetNext(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage self = target as IoMessage;
            IoMessage msg  = message as IoMessage;
            IoObject  m    = msg.localsMessageArgAt(locals, 0) as IoObject;
            IoMessage next = null;

            if (m == target.state.ioNil)
            {
                next = null;
            }
            else if (m is IoMessage)
            {
                next = m  as IoMessage;
            }
            self.next = next;
            return(self);
        }
Example #4
0
        public static IoObject slotSetNext(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage self = target as IoMessage;
            IoMessage msg  = message as IoMessage;
            IoObject  m    = msg.localsMessageArgAt(locals, 0) as IoObject;
            IoMessage mmm  = null;

            if (m == target.state.ioNil)
            {
                mmm = null;
            }
            else if (m.name.Equals("Message"))
            {
                mmm = m as IoMessage;
            }
            else
            {
                Console.WriteLine("argument must be Message or Nil");
            }
            self.next = mmm;
            return(self);
        }