private TokenStream RewriteConstants(TokenStream tokens)
{
List<Token> result = new List<Token>();
foreach (Token token in tokens)
{
if (token.Type == TokenType.Word)
{
string name = (string)token.Value;
if (_constants.ContainsKey(name))
{
name = name.ToLowerInvariant();
double value = _constants[name];
result.Add(new Token(TokenType.Constant, new Tuple<string, double>(name, value)));
continue;
}
}
result.Add(token);
}
return new TokenStream(result, tokens.Notation);
}