let update_line_loc lexbuf line absolute chars =
    let pos = lexbuf.Lexing.lex_curr_p in
    lexbuf.Lexing.lex_curr_p <-
      { pos with
        Lexing.pos_lnum = if absolute then line else pos.Lexing.pos_lnum + line;
        Lexing.pos_bol = pos.Lexing.pos_cnum - chars;
      }