summaryrefslogtreecommitdiff
path: root/ocamldoc/odoc_text_lexer.mll
diff options
context:
space:
mode:
Diffstat (limited to 'ocamldoc/odoc_text_lexer.mll')
-rw-r--r--ocamldoc/odoc_text_lexer.mll49
1 files changed, 44 insertions, 5 deletions
diff --git a/ocamldoc/odoc_text_lexer.mll b/ocamldoc/odoc_text_lexer.mll
index f229f08a66..4c92834f41 100644
--- a/ocamldoc/odoc_text_lexer.mll
+++ b/ocamldoc/odoc_text_lexer.mll
@@ -22,10 +22,10 @@ let char_number = ref 0
let string_buffer = Buffer.create 32
-(** Fonction de remise à zéro de la chaine de caractères tampon *)
+(** Fonction de remise a zero de la chaine de caracteres tampon *)
let reset_string_buffer () = Buffer.reset string_buffer
-(** Fonction d'ajout d'un caractère dans la chaine de caractères tampon *)
+(** Fonction d'ajout d'un caractere dans la chaine de caracteres tampon *)
let ajout_char_string = Buffer.add_char string_buffer
(** Add a string to the buffer. *)
@@ -161,6 +161,8 @@ let begin_clt_ref = "{!classtype:"blank_nl | "{!classtype:"
let begin_att_ref = "{!attribute:"blank_nl | "{!attribute:"
let begin_met_ref = "{!method:"blank_nl | "{!method:"
let begin_sec_ref = "{!section:"blank_nl | "{!section:"
+let begin_recf_ref = "{!recfield:"blank_nl | "{!recfield:"
+let begin_const_ref = "{!const:"blank_nl | "{!const:"
let begin_mod_list_ref = "{!modules:"blank_nl | "{!modules:"
let index_list = "{!indexlist}"
let begin_custom = "{"['a'-'z''A'-'Z']['a'-'z''A'-'Z''0'-'9']*
@@ -664,7 +666,38 @@ rule main = parse
Char (Lexing.lexeme lexbuf)
)
}
-
+| begin_recf_ref
+ {
+ incr_cpts lexbuf ;
+ if !verb_mode or !target_mode or !code_pre_mode or !open_brackets >= 1 then
+ Char (Lexing.lexeme lexbuf)
+ else
+ if not !ele_ref_mode then
+ (
+ ele_ref_mode := true;
+ RECF_REF
+ )
+ else
+ (
+ Char (Lexing.lexeme lexbuf)
+ )
+ }
+| begin_const_ref
+ {
+ incr_cpts lexbuf ;
+ if !verb_mode or !target_mode or !code_pre_mode or !open_brackets >= 1 then
+ Char (Lexing.lexeme lexbuf)
+ else
+ if not !ele_ref_mode then
+ (
+ ele_ref_mode := true;
+ CONST_REF
+ )
+ else
+ (
+ Char (Lexing.lexeme lexbuf)
+ )
+ }
| begin_mod_list_ref
{
incr_cpts lexbuf ;
@@ -720,7 +753,10 @@ rule main = parse
| shortcut_list_item
{
incr_cpts lexbuf ;
- if !shortcut_list_mode then
+ if !target_mode || (!open_brackets >= 1) || !code_pre_mode
+ || !ele_ref_mode || !verb_mode then
+ Char (Lexing.lexeme lexbuf)
+ else if !shortcut_list_mode then
(
SHORTCUT_LIST_ITEM
)
@@ -734,7 +770,10 @@ rule main = parse
| shortcut_enum_item
{
incr_cpts lexbuf ;
- if !shortcut_list_mode then
+ if !target_mode || (!open_brackets >= 1) || !code_pre_mode
+ || !ele_ref_mode || !verb_mode then
+ Char (Lexing.lexeme lexbuf)
+ else if !shortcut_list_mode then
SHORTCUT_ENUM_ITEM
else
(