Nodes of the ASTs are defined in a class hierarchy
Nodes provide a constructor that defines all children and fields:
a child
a single node
a list of nodes
a terminal symbol
identifier
set of modifiers
constants
Annotations store semantic information.