forked from coq/coq
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce doc_gram, a utilty for extracting Coq's grammar from .mlg f…
…iles and inserting it into the .rst files
- Loading branch information
Showing
17 changed files
with
9,543 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
(************************************************************************) | ||
(* * The Coq Proof Assistant / The Coq Development Team *) | ||
(* v * INRIA, CNRS and contributors - Copyright 1999-2019 *) | ||
(* <O___,, * (see CREDITS file for the list of authors) *) | ||
(* \VV/ **************************************************************) | ||
(* // * This file is distributed under the terms of the *) | ||
(* * GNU Lesser General Public License Version 2.1 *) | ||
(* * (see LICENSE file for the text of the license) *) | ||
(************************************************************************) | ||
|
||
open Lexing | ||
open Coqpp_ast | ||
|
||
let pr_loc loc = | ||
let file = loc.loc_start.pos_fname in | ||
let line = loc.loc_start.pos_lnum in | ||
let bpos = loc.loc_start.pos_cnum - loc.loc_start.pos_bol in | ||
let epos = loc.loc_end.pos_cnum - loc.loc_start.pos_bol in | ||
Printf.sprintf "File \"%s\", line %d, characters %d-%d:" file line bpos epos | ||
|
||
|
||
let fatal msg = | ||
let () = Format.eprintf "Error: %s@\n%!" msg in | ||
exit 1 | ||
|
||
let parse_file f = | ||
let chan = open_in f in | ||
let lexbuf = Lexing.from_channel chan in | ||
let () = lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = f } in | ||
let ans = | ||
try Coqpp_parse.file Coqpp_lex.token lexbuf | ||
with | ||
| Coqpp_lex.Lex_error (loc, msg) -> | ||
let () = close_in chan in | ||
let () = Printf.eprintf "%s\n%!" (pr_loc loc) in | ||
fatal msg | ||
| Parsing.Parse_error -> | ||
let () = close_in chan in | ||
let loc = Coqpp_lex.loc lexbuf in | ||
let () = Printf.eprintf "%s\n%!" (pr_loc loc) in | ||
fatal "syntax error" | ||
in | ||
let () = close_in chan in | ||
ans |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
(************************************************************************) | ||
(* * The Coq Proof Assistant / The Coq Development Team *) | ||
(* v * INRIA, CNRS and contributors - Copyright 1999-2019 *) | ||
(* <O___,, * (see CREDITS file for the list of authors) *) | ||
(* \VV/ **************************************************************) | ||
(* // * This file is distributed under the terms of the *) | ||
(* * GNU Lesser General Public License Version 2.1 *) | ||
(* * (see LICENSE file for the text of the license) *) | ||
(************************************************************************) | ||
|
||
val pr_loc : Coqpp_ast.loc -> string | ||
|
||
val fatal : string -> unit | ||
|
||
val parse_file : string -> Coqpp_ast.t |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.