In running through the examples their appears to be some mistakes, and im wondering about this one in particular in figure 8 of 3.4.2 it has

x = EXPRESSION() { cout << "Expression's value is " << x << "\n"; } *

this produces a parse error, and when i move the * quantifier directly after the EXPRESSION(), and feed it a file with foo_parser < f and f has

200 * 2 + 102
107 + 802 - 3

it treats it as one long expression, how to get that to recognize new line as the start of a new expression ?

Charles