Adding assignment #3
Updating generated/temporary object cleanup
Moving tasks to TODO
Adding tasks
Adding std classes only if using namespace std
Updating tasks
Refactoring lexical analyzer to use macros
Renaming cgram.y to parser.y and clex.l to lexer.l
Updating files due to rename
Updating gitignore
Undefining macros at end-of-usefulness for cleanliness
Untabifying lexer and parser files

By the Linux kernel coding standards, I prefer tabs. However in the
parser and lexer, because of the DSL Flex and Bison use, spaces are the
only way to get a consistent indentation.
Removing unneeded punctuation from syntax tree
Implementing better error reporting for unsupported C++ functionality

Using lexer to recognize unsupported keywords and exiting with
required message and exit code.
Revert "Removing const qualifier from examples"

This reverts commit e9b4fadcf5242b1f3f5fe04892a23eeedf9d0a83.

Still removing "virtual" keyword.
Better insertion of std classes for ifstream and string includes
Braces shouldn't be on their own line in lexer

Because in the Flex DSL the braces are delimiting a semantic action,
most of which exist entirely on one line. I feel that multi-line ones
should match similarly.
Finishing some tasks