Print the parse tree node and all of its children on the standard output stream. Evaluate the expression represented by the parse tree node, and return the value. The number of children of this node. An array containing the children. For every parse tree node type except for Sequence, this array is created when the node is created and doesn't change size.
Sequence is special - see below.
A sequence node has an unbounded number of children. When a sequence is created you will create an array of a default size. Each time a new child is added to the Sequence node, if it will fit in the already allocated array then insert it. Otherwise you'll need to make a bigger array, copy the existing children, add the new child, and replace the reference to the old array with the new one. The value of a Sequence is the value of its last child.