예제 #1
0
파일: AliasMethod.cs 프로젝트: tspring/ioke
        public new static object ActivateFixed(IokeObject self, IokeObject ctx, IokeObject message, object obj)
        {
            AliasMethod am       = (AliasMethod)self.data;
            IokeObject  realSelf = am.realSelf;

            switch (am.realMethod.type)
            {
            case IokeData.TYPE_DEFAULT_METHOD:
                return(DefaultMethod.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_DEFAULT_MACRO:
                return(DefaultMacro.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_DEFAULT_SYNTAX:
                return(DefaultSyntax.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_LEXICAL_MACRO:
                return(LexicalMacro.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_NATIVE_METHOD:
                return(NativeMethod.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_METHOD_PROTOTYPE:
                return(Method.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_LEXICAL_BLOCK:
                return(LexicalBlock.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_ALIAS_METHOD:
                return(AliasMethod.ActivateFixed(realSelf, ctx, message, obj));

            case IokeData.TYPE_NONE:
            default:
                return(IokeData.ActivateFixed(realSelf, ctx, message, obj));
            }
        }