示例#1
0
 void analyArgLanmbda(AnalyExpContext context)
 {
     for (int i = 0; i < ExpProcDesc.ArgCount; i++)
     {
         TKTProcArg procArg = searchedProcDesc.GetArg(i);
         if (procArg.ArgType == TKTLambda.ActionType || procArg.ArgType == TKTLambda.CondtionType)
         {
             TKTProcArg   expArg       = ExpProcDesc.GetArg(i);
             Exp          exp          = expArg.Value as Exp;
             NewLambdaExp newLambdaExp = new NewLambdaExp(this, exp, procArg.ArgType);
             expArg.Value = newLambdaExp;
             newLambdaExp.Analy(context);
         }
     }
 }
示例#2
0
 protected void GenerateArgsExp(EmitExpContext context, TKTProcDesc expProcDesc, TKTProcDesc searchedProcDesc, int size)
 {
     for (int i = 0; i < size; i++)
     {
         var        arg     = expProcDesc.GetArg(i);
         var        exp     = (arg.Value as Exp);
         TKTProcArg procArg = searchedProcDesc.GetArg(i);
         exp.RequireType = procArg.ArgType;
         exp.Generate(context);
     }
 }