void parseBracket() { i++; List <ZMethodArg> bracketargs = new List <ZMethodArg>(); //Dictionary<string, TKTProcArg> dict = new Dictionary<string, TKTProcArg>(); for (; i < Code.Length; i++) { ZMethodArg arg = parseArg(); if (arg != null) { bracketargs.Add(arg); } //dict.Add(arg.ArgName, arg); if (ch == '\0') { break; } if (ch == ')') { i++; break; } } //TKTProcBracket bracket = new TKTProcBracket(bracketargs,dict); desc.Add(bracketargs.ToArray()); }
protected void EmitArgs(ZCallDesc expProcDesc, ZMethodDesc searchedProcDesc) { var size = expProcDesc.Args.Count;; for (int i = 0; i < size; i++) { var arg = expProcDesc.Args[i]; var exp = (arg.Data as Exp); ZMethodArg procArg = searchedProcDesc.Args[i]; exp.RequireType = (procArg as ZMethodNormalArg).ArgZType;// ZRealType.CreateZType(procArg.ArgType); exp.Emit(); } }
protected void AnalyArgLambda(ZMethodDesc zdesc) { //ZMethodDesc zdesc = SearchedMethod.ZDesces[0]; for (int i = 0; i < ExpProcDesc.Args.Count; i++) { ZMethodArg procArg = zdesc.Args[i]; if (procArg is ZMethodNormalArg) { ZMethodNormalArg znarg = (procArg as ZMethodNormalArg); if (ZLambda.IsFn(znarg.ArgZType.SharpType)) { ZCallArg expArg = ExpProcDesc.Args[i]; Exp exp = expArg.Data as Exp; ExpNewLambda newLambdaExp = new ExpNewLambda(exp, znarg.ArgZType); newLambdaExp.SetContext(this.ExpContext); expArg.Data = newLambdaExp; newLambdaExp.Analy(); } } } }