October 2015
Beginner to intermediate
400 pages
14h 44m
English
In this section, we’ll build an evaluator for simple arithmetic
expressions.
We’ll use an interface, Expr, to represent any expression in
this language.
For now, this interface needs no methods, but we’ll add some later.
// An Expr is an arithmetic expression.
type Expr interface{}
Our expression language consists of floating-point literals;
the binary operators +, -, *, and /;
the unary operators -x and +x;
function calls pow(x,y), sin(x), and sqrt(x);
variables such as x and pi;
and of course parentheses and standard operator precedence.
All values are of type float64.
Here are some example expressions:
sqrt(A / pi) pow(x, 3) + pow(y, 3) (F - 32) * 5 / 9
The five concrete ...