Refactor all error handling by using convenient error formating function specific to each class (this improve greatly readability of parser and lexer code).
Refactor: some heavy params were passed by copy instead of reference in parser code.