Skip to content
Snippets Groups Projects
lxm.mli 1.32 KiB
Newer Older
(* Time-stamp: <modified the 07/09/2017 (at 15:14) by Erwan Jahier> *)
Erwan Jahier's avatar
Erwan Jahier committed

(** Lexemes *)

(* Common to lus2lic and lic2loc  *)
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
Erwan Jahier's avatar
Erwan Jahier committed
val line   : t -> int 
val pragma : t -> pragma list
Erwan Jahier's avatar
Erwan Jahier committed

val override_name : string -> t -> t
                         
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