diff options
author | Maxence Guesdon <maxence.guesdon@inria.fr> | 2009-12-18 11:52:23 +0000 |
---|---|---|
committer | Maxence Guesdon <maxence.guesdon@inria.fr> | 2009-12-18 11:52:23 +0000 |
commit | e904577b6b0e68911c9169eb7c1629f6f3b9534c (patch) | |
tree | fb7538d389604e899974c0d4b2004d09a76fa7d5 /ocamldoc/odoc_text_parser.mly | |
parent | 758e4cd86078a89af5790872f9704c5ea019b4e7 (diff) |
PR#4914: ability to specify a text for links to elements
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9477 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'ocamldoc/odoc_text_parser.mly')
-rw-r--r-- | ocamldoc/odoc_text_parser.mly | 74 |
1 files changed, 22 insertions, 52 deletions
diff --git a/ocamldoc/odoc_text_parser.mly b/ocamldoc/odoc_text_parser.mly index 41bebea6f..fe2fa7c9e 100644 --- a/ocamldoc/odoc_text_parser.mly +++ b/ocamldoc/odoc_text_parser.mly @@ -27,7 +27,6 @@ let remove_trailing_blanks s = let print_DEBUG s = print_string s; print_newline () %} -%token ERROR %token END %token <int * string option> Title %token BOLD @@ -49,6 +48,7 @@ let print_DEBUG s = print_string s; print_newline () %token END_VERB %token LATEX %token END_LATEX +%token LBRACE %token ELE_REF %token VAL_REF @@ -97,6 +97,20 @@ text_element_list: | text_element text_element_list { $1 :: $2 } ; +ele_ref_kind: + ELE_REF { None } +| VAL_REF { Some RK_value } +| TYP_REF { Some RK_type } +| EXC_REF { Some RK_exception } +| MOD_REF { Some RK_module } +| MODT_REF { Some RK_module_type } +| CLA_REF { Some RK_class } +| CLT_REF { Some RK_class_type } +| ATT_REF { Some RK_attribute } +| MET_REF { Some RK_method } +| SEC_REF { Some (RK_section [])} +; + text_element: Title text END { let n, l_opt = $1 in Title (n, l_opt, $2) } | BOLD text END { Bold $2 } @@ -112,61 +126,17 @@ text_element: | ENUM list END { Enum $2 } | CODE string END_CODE { Code $2 } | CODE_PRE string END_CODE_PRE { CodePre $2 } -| ELE_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, None) - } -| VAL_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_value) - } -| TYP_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_type) - } -| EXC_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_exception) - } -| MOD_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_module) - } -| MODT_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_module_type) - } -| CLA_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_class) - } -| CLT_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_class_type) - } -| ATT_REF string END { - let s2 = remove_beginning_blanks $2 in - let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_attribute) - } -| MET_REF string END { +| ele_ref_kind string END { let s2 = remove_beginning_blanks $2 in let s3 = remove_trailing_blanks s2 in - Ref (s3, Some RK_method) + Ref (s3, $1, None) } -| SEC_REF string END { - let s2 = remove_beginning_blanks $2 in +| LBRACE ele_ref_kind string END text END { + let s2 = remove_beginning_blanks $3 in let s3 = remove_trailing_blanks s2 in - Ref (s3, Some (RK_section [])) - } + Ref (s3, $2, Some $5) + } + | MOD_LIST_REF string END { let s2 = remove_beginning_blanks $2 in let s3 = remove_trailing_blanks s2 in |