Added semantics to most of the derivation rules in Library cup. 
Cleaned up some of the rules.
Added types to the non terminals, and some of the terminals (needed 
when passing variables to constructors).