General improvements

Added symbol table
Added error table
Added abstract tree visitor for generic tree walking
Added basic type checking
Improved/refactored Grammer