Supporting ifstream and ofstream class types if fstream is included
Removing const qualifier from examples
Fixing semantic error in examples/body.h
Non-standard init list is non-standard
More clear depth incrementation in tree preorder traversal
Creating new token for each identifier

Although this is explicitly not what Dr. J's example code does, it is
what needs to be done as Bison is expecting a new token, and that's the
only way to maintain syntactical information such as originating
filename and line number.
Better handling of NULL trees (for %empty rules)

- Changing E() to NULL rather than an empty tree
- In tree_initv() only adding non-NULL children
- No more need to handle NULL trees in main's print_tree()
Preferring $$ = $1 for single child trees

Per Dr. J