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); } } }
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); } }