Example #1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        protected MethodWriterBase(MethodMember ownerMethod, MethodWriterModes mode, bool attachToOwner)
        {
            m_OwnerMethod      = ownerMethod;
            m_Mode             = mode;
            m_ReturnValueLocal = null;
            m_InnerWriters     = null;

            if (ownerMethod != null)
            {
                m_OwnerClass = ownerMethod.OwnerClass;

                if (attachToOwner)
                {
                    ownerMethod.AddWriter(this);
                }
            }
        }
Example #2
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        internal FunctionMethodWriter(MethodMember ownerMethod, Action <FunctionMethodWriter <TReturn> > script, MethodWriterModes mode, bool attachToOwner)
            : base(ownerMethod, mode, attachToOwner)
        {
            m_Script = script;
        }
Example #3
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public TemplateMethodWriter(MethodMember ownerMethod, MethodWriterModes mode, Action <TemplateMethodWriter> script)
            : base(ownerMethod, mode, attachToOwner: true)
        {
            m_Script           = script;
            m_ReturnValueLocal = null;
        }
Example #4
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        internal void SetupDecoratorMode(MethodWriterBase[] innerWriters)
        {
            m_Mode        |= MethodWriterModes.Decorator;
            m_InnerWriters = innerWriters;
        }
Example #5
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        internal void SetupDecoratedMode(IMutableOperand returnValueLocal, LabelStatement leaveLabel)
        {
            m_Mode            |= MethodWriterModes.Decorated;
            m_ReturnValueLocal = returnValueLocal;
            m_LeaveLabel       = leaveLabel;
        }