The interval in bytes that the node occupy. It is a closed->open set.
All nodes that a visitor must be able to handle.
A block of code such such as a local scope enclosed by brackets, {}.
The code for one of the branches resulting from a condition.
Multiple branches are contained in the bundle that can be e.g. deleted.
A function call.
A condition wraps "something" which always evaluates to a boolean.
A constructor for a variable.
A function definition.
The operator itself in a binary operator expression.
A phantom node that carry semantic information about its children. It "poisons" all children.
Results in the bottom type or up.
It is optional to add the members visitPush/visitPop to push/pop the nodes that are visited. The parent will always have been the last pushed.
Breath first visit of nodes.