]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/content_pres/cicNotationLexer.ml
parameter sintax added to axiom statement
[helm.git] / helm / software / components / content_pres / cicNotationLexer.ml
index 71ea77731411c3fad02d186c5138ecf937439821..21031d002fc10fba43eb915623f054d45743ecd0 100644 (file)
@@ -149,6 +149,17 @@ let regexp uri =
   ('.' ident)+                        (* ext *)
   ("#xpointer(" number ('/' number)+ ")")?  (* xpointer *)
 
+let regexp nreference =
+  "cic:/"                             (* schema *)
+  uri_step ('/' uri_step)*            (* path *)
+  '.'
+  ( "dec"
+  | "def" "(" number ")"
+  | "fix" "(" number "," number "," number ")"
+  | "cfx" "(" number ")"
+  | "ind" "(" number "," number "," number ")"
+  | "con" "(" number "," number "," number ")") (* ext + reference *)
+
 let error lexbuf msg =
   let begin_cnum, end_cnum = Ulexing.loc lexbuf in
   raise (Error (begin_cnum, end_cnum, msg))
@@ -210,7 +221,9 @@ let expand_macro lexbuf =
   in
   try
     ("SYMBOL", Utf8Macro.expand macro)
-  with Utf8Macro.Macro_not_found _ -> "SYMBOL", Ulexing.utf8_lexeme lexbuf
+  with Utf8Macro.Macro_not_found _ -> 
+(* FG: unexpanded TeX macros are terminated by a space for rendering *)     
+     "SYMBOL", (Ulexing.utf8_lexeme lexbuf ^ " ")
 
 let remove_quotes s = String.sub s 1 (String.length s - 2)
 let remove_left_quote s = String.sub s 1 (String.length s - 1)
@@ -309,6 +322,7 @@ and level2_ast_token =
   | pident -> handle_keywords lexbuf (Hashtbl.mem !level2_ast_keywords) "PIDENT"
   | number -> return lexbuf ("NUMBER", Ulexing.utf8_lexeme lexbuf)
   | tex_token -> return lexbuf (expand_macro lexbuf)
+  | nreference -> return lexbuf ("NREF", Ulexing.utf8_lexeme lexbuf)
   | uri -> return lexbuf ("URI", Ulexing.utf8_lexeme lexbuf)
   | qstring ->
       return lexbuf ("QSTRING", remove_quotes (Ulexing.utf8_lexeme lexbuf))