private bool TokenBytesToString(Stack operandsStack) { byte[] buffer1 = new byte[this.RpnBytes.Length]; Array.Copy(this.RpnBytes, 0, buffer1, 0, this.RpnBytes.Length); int num1 = 0; bool flag1 = false; bool flag2 = false; while (num1 < this.RpnBytes.Length) { FormulaToken token1 = FormulaTokensFactory.CreateFrom(buffer1, num1); if (token1.Type.IsControl) { flag2 = true; } else { flag1 = true; } CellFormula.ProcessToken(token1, operandsStack); num1 += token1.Size; } if (!flag1) { return(flag2); } return(false); }
private void TokensToString(Stack operandsStack, FormulaToken[] tokens) { for (int num1 = 0; num1 < tokens.Length; num1++) { FormulaToken token1 = tokens[num1]; CellFormula.ProcessToken(token1, operandsStack); } }
private static void ProcessToken(FormulaToken token, Stack operandsStack) { if (token.Type.IsUnary) { CellFormula.ProcessUnaryOperator(token, operandsStack); } else if (token.Type.IsBinary) { CellFormula.ProcessBinaryOperator(token, operandsStack); } else if (token.Type.IsOperand) { CellFormula.ProcessOperand(token, operandsStack); } else if (token.Type.IsFunction) { CellFormula.ProcessFunction(token, operandsStack); } else if (!token.Type.IsControl) { throw new ArgumentException("Invalid RPN token code."); } }