Supplemental reading:
Grammars and trees
Scheme syntax
Python syntax
Java syntax