aboutsummaryrefslogtreecommitdiffhomepage
path: root/parsing
diff options
context:
space:
mode:
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_vernac.ml414
-rw-r--r--parsing/ppvernac.ml4
2 files changed, 11 insertions, 7 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4
index f6943871c..0c7dbeeb0 100644
--- a/parsing/g_vernac.ml4
+++ b/parsing/g_vernac.ml4
@@ -215,7 +215,9 @@ GEXTEND Gram
| IDENT "Parameters" -> (Global, Definitional) ] ]
;
inline:
- [ ["Inline" -> true | -> false] ]
+ [ [ IDENT "Inline"; "("; i = INT; ")" -> Some (int_of_string i)
+ | IDENT "Inline" -> Some (Flags.get_inline_level())
+ | -> None] ]
;
finite_token:
[ [ "Inductive" -> (Inductive_kw,Finite)
@@ -443,12 +445,14 @@ GEXTEND Gram
| -> [] ] ]
;
module_expr_inl:
- [ [ "!"; me = module_expr -> (me,false)
- | me = module_expr -> (me,true) ] ]
+ [ [ "!"; me = module_expr -> (me,None)
+ | "<"; i = INT; ">"; me = module_expr -> (me,Some (int_of_string i))
+ | me = module_expr -> (me,Some (Flags.get_inline_level())) ] ]
;
module_type_inl:
- [ [ "!"; me = module_type -> (me,false)
- | me = module_type -> (me,true) ] ]
+ [ [ "!"; me = module_type -> (me,None)
+ | "<"; i = INT; ">"; me = module_type -> (me,Some (int_of_string i))
+ | me = module_type -> (me,Some (Flags.get_inline_level())) ] ]
;
(* Module binder *)
module_binder:
diff --git a/parsing/ppvernac.ml b/parsing/ppvernac.ml
index 21281f6e4..42007e4b0 100644
--- a/parsing/ppvernac.ml
+++ b/parsing/ppvernac.ml
@@ -227,8 +227,8 @@ let rec pr_module_ast pr_c = function
pr_module_ast pr_c me1 ++ spc() ++
hov 1 (str"(" ++ pr_module_ast pr_c me2 ++ str")")
-let pr_module_ast_inl pr_c (mast,b) =
- (if b then mt () else str "!") ++ pr_module_ast pr_c mast
+let pr_module_ast_inl pr_c (mast,o) =
+ (if o=None then str "!" else mt ()) ++ pr_module_ast pr_c mast
let pr_of_module_type prc = function
| Enforce mty -> str ":" ++ pr_module_ast_inl prc mty