Evaluating Statements Using a Parse Tree
An expression is composed usually of an operator (or function) applied
to some arguments, or in the simplest case, just a constant (aka
literal) or a variable.

For evaluation:
The value of a constant is that constant, The value for
a variable is the current value stored in that variable, as each
variable corresponds to a memory location where values can be stored.
The value of an operator or function applied to arguments is obtained
by evaluating arguments (recursively) and then applying the operator or
function to the values thus obtained.

Actually, things can be more complex for a function (and some
operator), depending on parameter passing mechanisms or evaluation
modes (lazy or not), but that is to complex to explain at this level
of discourse.

In your example the operator is child 2, and the two other children
are arguments.

In general the algorithm does pretty much what you would do if you had
to interpret the program by hand. That should be a good guide.