--  Currently, CIF lexer only stores the positions of current and previous 
    tokens. However, sometimes when outputing error messages the position 
    of a token before the previous one is required. For example, when 
    processing duplicate tags a misleading message may be produced (test 053):

    _database_code_depnum_ccdc_archive 'CCDC XXXXXX'
                                       ^

    instead of 

    _database_code_depnum_ccdc_archive 'CCDC XXXXXX'
    ^

    Maybe Bison lookahead tokens can be used to solve this problem?

-- Replace dirrect "print_message" function calls with "yyerror", "yywarning" or
   "yynote" function calls.
-- Remove "yyincrease_error_counter()" function calls since error counter
   should only be incremented in the "yyerror" function call.
-- Have an option to either push error message to an array or print them to 
   screen.
-- Implement proper control of errcount, warncount and notecount variables
   (make sure they are incremented only in the corresponding message calls,
    and are reset when processing a new CIF)
