Nicely wraps up both closures and callbacks.
Exemplo n.º 1
0
        public void Call( Callable func, int numArgs, int numResults )
        {
            if( numArgs < 0 )
                throw new ArgumentOutOfRangeException( "numArgs" );
            if( numResults != CallReturnAll && numResults < 0 )
                throw new ArgumentOutOfRangeException( "numResults" );

            if( numArgs != 0 )
                Insert( -numArgs, func );
            else
                Push( func );

            Call( numArgs, numResults );
        }
Exemplo n.º 2
0
 public void Set(Callable value)
 {
     RefVal = value.Val;
 }
Exemplo n.º 3
0
        internal bool Less( Value a, Value b, Callable less )
        {
            if( less.IsNotNil )
            {
                SetStack( less, a, b );
                Call( 2, 1 );
                return PopValue().ToBool();
            }

            if( a.RefVal == Value.NumTypeTag && b.RefVal == Value.NumTypeTag )
                return a.NumVal < b.NumVal;

            return Less( ref a, ref b );
        }
Exemplo n.º 4
0
 public Value(Callable value)
 {
     RefVal = value.Val;
     NumVal = 0;
 }