Где производить вычисления 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;
    }
}

Какой из этих способов правильнее?


Ответы (0 шт):