added abstract classes BinaryNode and Endnode to distinguish between nodes with two children and end nodes in the Abstract Syntax Tree, particularly to simplify the size method later. Also adjusted the constructors to ensure that the superclass keeps track of the correct children as well.