packages feed

liquid-fixpoint-0.1.0.0: external/misc/errorline.ml

type info =
    { mutable  linenum: int;   (* current line number *)
      mutable  linepos: int;   (* char position of beginning of current line *)	
      fileName        : string (* current file name *)
    }
      
let current : info ref = 
  ref 
    { linenum  = 1 ;
      linepos  = 0 ;
      fileName = ""
    }	

let startFile fname =
  current := { linenum  = 1 ;
               linepos  = 0 ;
               fileName = fname}

let startNewline n =
  let i = !current in
  begin
    i.linenum <- i.linenum + 1 ;
    i.linepos <- n
  end

    
let error n msg = 
  let i = !current in
    Printf.eprintf "%s at %s: %d.%d\n" 
      msg i.fileName i.linenum (n - i.linepos)