diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-06-22 16:09:35 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-06-29 23:02:38 +0200 |
commit | d313d978e0cef8b709a08eaec2b9470f7573023d (patch) | |
tree | a9425269a59a70714f9a6eaf755aa231d4aa7f28 /toplevel | |
parent | 4be2f8d5cd3fed94ebda3024d288fba2f9fc890f (diff) |
Port g_toplevel to the homebrew GEXTEND parser.
Diffstat (limited to 'toplevel')
-rw-r--r-- | toplevel/g_toplevel.mlg (renamed from toplevel/g_toplevel.ml4) | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/toplevel/g_toplevel.ml4 b/toplevel/g_toplevel.mlg index e3cefe236..53d3eef23 100644 --- a/toplevel/g_toplevel.ml4 +++ b/toplevel/g_toplevel.mlg @@ -8,6 +8,7 @@ (* * (see LICENSE file for the text of the license) *) (************************************************************************) +{ open Pcoq open Pcoq.Prim open Vernacexpr @@ -28,20 +29,26 @@ end open Toplevel_ -GEXTEND Gram +} + +GRAMMAR EXTEND Gram GLOBAL: vernac_toplevel; vernac_toplevel: FIRST - [ [ IDENT "Drop"; "." -> CAst.make VernacDrop - | IDENT "Quit"; "." -> CAst.make VernacQuit + [ [ IDENT "Drop"; "." -> { CAst.make VernacDrop } + | IDENT "Quit"; "." -> { CAst.make VernacQuit } | IDENT "Backtrack"; n = natural ; m = natural ; p = natural; "." -> - CAst.make (VernacBacktrack (n,m,p)) + { CAst.make (VernacBacktrack (n,m,p)) } | cmd = Pvernac.main_entry -> - match cmd with + { match cmd with | None -> raise Stm.End_of_input - | Some (loc,c) -> CAst.make ~loc (VernacControl c) + | Some (loc,c) -> CAst.make ~loc (VernacControl c) } ] ] ; END +{ + let parse_toplevel pa = Pcoq.Gram.entry_parse vernac_toplevel pa + +} |