Skip to content

Commit

Permalink
Expose Parse.module_type and Parse.module_expr
Browse files Browse the repository at this point in the history
  • Loading branch information
gpetiot committed Oct 12, 2021
1 parent 0b3f8dd commit 5f77554
Show file tree
Hide file tree
Showing 5 changed files with 3,593 additions and 3,487 deletions.
7,054 changes: 3,567 additions & 3,487 deletions boot/menhir/parser.ml

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions boot/menhir/parser.mli
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ val parse_pattern: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Parsetree.patte

val parse_mty_longident: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Longident.t)

val parse_module_type: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Parsetree.module_type)

val parse_module_expr: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Parsetree.module_expr)

val parse_mod_longident: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Longident.t)

val parse_mod_ext_longident: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Longident.t)
Expand Down Expand Up @@ -181,6 +185,10 @@ module Incremental : sig

val parse_mty_longident: Lexing.position -> (Longident.t) MenhirInterpreter.checkpoint

val parse_module_type: Lexing.position -> (Parsetree.module_type) MenhirInterpreter.checkpoint

val parse_module_expr: Lexing.position -> (Parsetree.module_expr) MenhirInterpreter.checkpoint

val parse_mod_longident: Lexing.position -> (Longident.t) MenhirInterpreter.checkpoint

val parse_mod_ext_longident: Lexing.position -> (Longident.t) MenhirInterpreter.checkpoint
Expand Down
2 changes: 2 additions & 0 deletions parsing/parse.ml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ and use_file = wrap Parser.use_file
and core_type = wrap Parser.parse_core_type
and expression = wrap Parser.parse_expression
and pattern = wrap Parser.parse_pattern
let module_type = wrap Parser.parse_module_type
let module_expr = wrap Parser.parse_module_expr

let longident = wrap Parser.parse_any_longident
let val_ident = wrap Parser.parse_val_longident
Expand Down
2 changes: 2 additions & 0 deletions parsing/parse.mli
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ val use_file : Lexing.lexbuf -> Parsetree.toplevel_phrase list
val core_type : Lexing.lexbuf -> Parsetree.core_type
val expression : Lexing.lexbuf -> Parsetree.expression
val pattern : Lexing.lexbuf -> Parsetree.pattern
val module_type : Lexing.lexbuf -> Parsetree.module_type
val module_expr : Lexing.lexbuf -> Parsetree.module_expr

(** The functions below can be used to parse Longident safely. *)

Expand Down
14 changes: 14 additions & 0 deletions parsing/parser.mly
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,10 @@ The precedences must be listed from low to high.
%start use_file /* for the #use directive */
%type <Parsetree.toplevel_phrase list> use_file
/* BEGIN AVOID */
%start parse_module_type
%type <Parsetree.module_type> parse_module_type
%start parse_module_expr
%type <Parsetree.module_expr> parse_module_expr
%start parse_core_type
%type <Parsetree.core_type> parse_core_type
%start parse_expression
Expand Down Expand Up @@ -1198,6 +1202,16 @@ use_file:
;

/* BEGIN AVOID */
parse_module_type:
module_type EOF
{ $1 }
;

parse_module_expr:
module_expr EOF
{ $1 }
;

parse_core_type:
core_type EOF
{ $1 }
Expand Down

0 comments on commit 5f77554

Please sign in to comment.