* commit current implementation of pluto, including
** calculator grammar for lexer/parser
** AST implementation, AST visitor
** Evaluation visitor
** symbol table
* remove comparision operations from grammar / AST / Evaluator
* add a simple Console class to execute read-eval-print-loop

* pass a ParseResult obj into yyparse, which adds additional param in
several other functions
* create a ParseException : Exception for specifying parsing error
* Add logging message at appropriate logging level

* beautify hint message when parse error occurs
* add a toString() function to DataValue
* implement ID and ASSIGN expression

* resolve operand (from symbol or others) when needed

* fix a minor bugs that Evaluator should live until user exit console.
* refactor source package into
- tool : classes for tool
- cli : classes for command line interface
- core - traverse : tree traversal
       - tree : tree data structure
       - symtab : symbol table
       - parser : parser
       - eval   : inteperter / evaluator
- error : error handling
* define a abstract Parser and concrete MathParser class to wrap around
parsing functions
* commit LineColumn and SourceCodePosition class for future use
* integrate google-test into compiler setting

* Create test unit for ast, data block, parser, run time stack, symbol
table, utilities.

* refactor DataValue class

* fix a bug on releasing TreeNode

* change unsigned int with size_t
* redefine the evaluation infrastructure. Analyzer as implementation of
TreeVisitor, and (Math)Evaluator as wrapper class. 

* add a few simple Analyzer unit test case
* add doxygen documentation