예제 #1
0
 string ExpandType(Source source, string expansionResult, object context, Macros.MacroCall call)
 {
     if (context is DataType && call.Method == null)
     {
         return(GetConversion(source, (DataType)context).ForeignType);
     }
     else
     {
         return(expansionResult);
     }
 }
예제 #2
0
        string ExpandEntity(Source source, string expansionResult, object context, Macros.MacroCall call)
        {
            if (call.Method == null && context is DataType)
            {
                return(GetParamConversion(source, (DataType)context).ForeignType);
            }

            if (call.Method == "Call" && context is DelegateType)
            {
                return(GetDelegateCall(source, (DelegateType)context, call.Arguments));
            }

            return(expansionResult);
        }
예제 #3
0
 public string InterceptEntity(string macroText, string expansionResult, object context, Macros.MacroCall macroCall)
 {
     if (_interceptEntity != null)
     {
         return(_interceptEntity(macroText, expansionResult, context, macroCall));
     }
     else
     {
         return(expansionResult);
     }
 }
예제 #4
0
파일: Macros.cs 프로젝트: yongaru/uno
        //-----------------------------------------------------
        // Dispatch
        //
        // Take Call macro expansion and create java & uno code for call to native
        string InterceptEntity(string macroText, string expansionResult, object context, Macros.MacroCall call)
        {
            var callArgs = call.Arguments;

            if (context is Function)
            {
                return(InterceptCall(macroText, expansionResult, (Function)context, callArgs));
            }
            if (context is Field)
            {
                return(InterceptField(macroText, expansionResult, (Field)context, callArgs));
            }
            if (context is Property)
            {
                return(InterceptProperty(macroText, expansionResult, (Property)context, callArgs));
            }
            if (context is DataType && callArgs == null && call.Method == null)
            {
                return(InterceptType((DataType)context));
            }
            // we dont manipulate it
            return(expansionResult);
        }