How to make a new expression

Consider an expression like:

std::cout << "Hello, world." << std::endl

operator << is left-associative, so you want to end up with:

Expression

You create semels from top to bottom:

Semels