private void DBTEST(ValData answerVal) { Dictionary <string, ValData> Vars = this.scenario.Vars; ValData dbOutputVal = answerVal; List <string> stringList1 = new List <string>(); ValData valData1; Func <string, ValData> func1 = (Func <string, ValData>)(s => Vars.TryGetValue(s, out valData1) ? new ValData(valData1.o) : new ValData(dbOutputVal.Convert((object)s))); int num1 = 0; Func <string, ValData> func2 = func1; List <string> argsList1 = this.argsList; int index1 = num1; int num2 = index1 + 1; string str1 = argsList1[index1]; ValData valData2 = func2(str1); stringList1.Add(valData2.o.ToString()); while (num2 < this.argsList.Count) { List <string> argsList2 = this.argsList; int index2 = num2; int num3 = index2 + 1; Calc.Formula2 formula2 = (Calc.Formula2) int.Parse(argsList2[index2]); Func <string, ValData> func3 = func1; List <string> argsList3 = this.argsList; int index3 = num3; num2 = index3 + 1; string str2 = argsList3[index3]; ValData b = func3(str2); stringList1.Add(Calc.Cast(formula2)); stringList1.Add(b.o.ToString()); valData2 = Calc.Calculate(valData2, Calc.Formula2to1(formula2), b); } dbOutputVal = Calc.Calculate(dbOutputVal, (Calc.Formula1) int.Parse(this.arg1), valData2); Calc.Formula1 formula = (Calc.Formula1) int.Parse(this.arg1); int num4 = 0; if (formula != Calc.Formula1.Equal) { stringList1.Insert(num4++, answerVal.o.ToString()); } List <string> stringList2 = stringList1; int index4 = num4; int num5 = index4 + 1; string str3 = Calc.Cast(formula); stringList2.Insert(index4, str3); Debug.LogFormat("answer:{0}\n{1}", new object[2] { dbOutputVal.o, (object)string.Join(" ", stringList1.ToArray()) }); }
public static string Cast(Calc.Formula2 formula) { switch (formula) { case Calc.Formula2.Plus: return("+"); case Calc.Formula2.Minus: return("-"); case Calc.Formula2.Asta: return("*"); case Calc.Formula2.Slash: return("/"); default: return(string.Empty); } }
private static Calc.Formula1 Formula2to1(Calc.Formula2 f2) { switch (f2) { case Calc.Formula2.Plus: return(Calc.Formula1.PlusEqual); case Calc.Formula2.Minus: return(Calc.Formula1.MinusEqual); case Calc.Formula2.Asta: return(Calc.Formula1.AstaEqual); case Calc.Formula2.Slash: return(Calc.Formula1.SlashEqual); default: return(Calc.Formula1.Equal); } }