Skip to content
Snippets Groups Projects
lxm.mli 1.23 KiB
Newer Older
(** Time-stamp: <modified the 01/09/2008 (at 17:04) by jahier> *)
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** Common to lus2lic and lic2loc  *)
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** Lexeme  *)
Erwan Jahier's avatar
Erwan Jahier committed

type t
type pragma = Pragma of string * string
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed

val str    : t -> string
val id     : t -> Ident.t
val line   : t -> int 
val pragma : t -> pragma list
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** column numbers *)
Erwan Jahier's avatar
Erwan Jahier committed
val cstart : t -> int
Erwan Jahier's avatar
Erwan Jahier committed
val cend   : t -> int
Erwan Jahier's avatar
Erwan Jahier committed


Erwan Jahier's avatar
Erwan Jahier committed
(** lexer/parser interface
    
    In order to able to compute line and colums numbers, 
    the lexer is supposed to:
    - use Lxm.make to return a lexeme to the parser
    - use newline to add a new line 
*)
val make     : Lexing.lexbuf -> t
val new_line : Lexing.lexbuf -> unit
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(* remove the quotes from the string *)
val make_string: Lexing.lexbuf -> t
Erwan Jahier's avatar
Erwan Jahier committed

val add_pragma : t -> pragma list -> t
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** compiler interface *)
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** used to attach a source information to a lexeme *)
Erwan Jahier's avatar
Erwan Jahier committed
type 'a srcflagged = { src : t ; it  : 'a }
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
val flagit : 'a -> t -> 'a srcflagged
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
(** Returns the last created lexem. Useful to locate syntax errors. *)
Erwan Jahier's avatar
Erwan Jahier committed
val last_made : unit -> t

Erwan Jahier's avatar
Erwan Jahier committed
(** Erreur/Warning printing *)
Erwan Jahier's avatar
Erwan Jahier committed

val details : t -> string
Erwan Jahier's avatar
Erwan Jahier committed
(** prints something like: 'machin' (line:10, col:3 to 7) *)
Erwan Jahier's avatar
Erwan Jahier committed

val position : t -> string
Erwan Jahier's avatar
Erwan Jahier committed
(** prints something like: line:10, col:3 to 7 *)
Erwan Jahier's avatar
Erwan Jahier committed