]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_notation/cicNotationLexer.mli
ocaml 3.09 transition
[helm.git] / helm / ocaml / cic_notation / cicNotationLexer.mli
index 61632667e28e3d97b63952246d4b940e78609d31..cd5f0876dd2fe4d715a5791c27f7f6ffeb7fb5ff 100644 (file)
  * http://helm.cs.unibo.it/
  *)
 
+  (** begin of error offset (counted in unicode codepoint)
+   * end of error offset (counted as above)
+   * error message *)
 exception Error of int * int * string
 
-  (** lexer for concrete syntax patterns (notation level 1) *)
-val level1_lexer: (string * string) Token.glexer
+  (** XXX ZACK DEFCON 4 BEGIN: never use the tok_func field of the glexers below
+   * passing values of type char Stream.t, they should be in fact Ulexing.lexbuf
+   * casted with Obj.magic :-/ Read the comment in the .ml for the rationale *)
 
-  (** lexer for ast patterns (notation level 2) *)
-val level2_lexer: (string * string) Token.glexer
+val level1_pattern_lexer: (string * string) Token.glexer
+val level2_ast_lexer: (string * string) Token.glexer
+val level2_meta_lexer: (string * string) Token.glexer
+
+  (** XXX ZACK DEFCON 4 END *)
+
+val add_level2_ast_keyword: string -> unit    (** non idempotent *)
+val remove_level2_ast_keyword: string -> unit (** non idempotent *)
+
+(** {2 Ligatures} *)
+
+val is_ligature_char: char -> bool
+val lookup_ligatures: string -> string list