diff options
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 |