コード例 #1
0
 private void DoCalculation()
 {
     try {
         var result = _parser.Parse(_tokenizer.Tokenize(Text));
         _context.SetVariableValue("ans", result);
         HistoryText += Text + Environment.NewLine + result.ToString();
     }
     catch (Exception ex) {
         HistoryText += Text + Environment.NewLine + ex.Message;
     }
     HistoryText += NewLine;
     _expressionHistory.Add(Text);
     _expressionHistoryIndex = _expressionHistory.Count;
     Text = string.Empty;
 }
コード例 #2
0
        public double Parse(IEnumerable <Token> tokens)
        {
            var first  = tokens.First();
            var second = tokens.ElementAtOrDefault(1);

            if (second != null)
            {
                if (first is VariableToken && second.Text == "=")
                {
                    var value = _calculator.CalculateFromInfix(tokens.Skip(2));
                    _context.SetVariableValue(first.Text, value);
                    return(value);
                }
            }
            return(_calculator.CalculateFromInfix(tokens));
        }