Где производить вычисления AST выражения?
Есть вариант создать отдельный класс, который будет вычислять AST
public class Interpretator
{
//Методы посещения различныx выражений
//...
//Запуск интепретатора
public void Run(Expression tree)
{
VisitNode(tree);
}
}
или же создать в каждом классе AST функцию eval для вычисления выражения
public class Integer:AST
{
private int Value;
public int eval()
{
return Value;
}
}
Какой из этих способов правильнее?