dwww Home | Manual pages | Find package

Parse(3o)                        OCaml library                       Parse(3o)

NAME
       Parse - Entry points in the parser

Module
       Module   Parse

Documentation
       Module Parse
        : sig end

       Entry points in the parser

       Warning: this module is unstable and part of Compiler_libs .

       val implementation : Lexing.lexbuf -> Parsetree.structure

       val interface : Lexing.lexbuf -> Parsetree.signature

       val toplevel_phrase : Lexing.lexbuf -> Parsetree.toplevel_phrase

       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

       The functions below can be used to parse Longident safely.

       val longident : Lexing.lexbuf -> Longident.t

       The  function longident is guaranteed to parse all subclasses of Longi-
       dent.t used in OCaml: values, constructors, simple or  extended  module
       paths, and types or module types.

       However,  this  function  accepts  inputs which are not accepted by the
       compiler, because they combine functor applications  and  infix  opera-
       tors.  In valid OCaml syntax, only value-level identifiers may end with
       infix operators Foo.( + ) .  Moreover, in value-level  identifiers  the
       module path Foo must be simple ( M.N rather than F(X) ): functor appli-
       cations may only appear in type-level identifiers.  As a consequence, a
       path  such as F(X).( + ) is not a valid OCaml identifier; but it is ac-
       cepted by this function.

       The next functions are specialized to a subclass of Longident.t

       val val_ident : Lexing.lexbuf -> Longident.t

       This function parses a syntactically valid path for a  value.  For  in-
       stance,  x  , M.x , and (+.)  are valid. Contrarily, M.A , F(X).x , and
       true are rejected.

       Longident for OCaml's value cannot contain  functor  application.   The
       last component of the Longident.t is not capitalized, but can be an op-
       erator A.Path.To.(.%.%.(;..)<-)

       val constr_ident : Lexing.lexbuf -> Longident.t

       This function parses a syntactically valid path for a variant construc-
       tor.   For  instance,  A  ,  M.A and M.(::) are valid, but both M.a and
       F(X).A are rejected.

       Longident for OCaml's variant constructors cannot contain  functor  ap-
       plication.  The last component of the Longident.t is capitalized, or it
       may be one the special constructors: true , false , () , []  ,  (::)  .
       Among those special constructors, only (::) can be prefixed by a module
       path ( A.B.C.(::) ).

       val simple_module_path : Lexing.lexbuf -> Longident.t

       This function parses a syntactically valid path for a module.  For  in-
       stance, A , and M.A are valid, but both M.a and F(X).A are rejected.

       Longident  for  OCaml's module cannot contain functor application.  The
       last component of the Longident.t is capitalized.

       val extended_module_path : Lexing.lexbuf -> Longident.t

       This function parse syntactically valid path for  an  extended  module.
       For  instance,  A.B  and F(A).B are valid. Contrarily, (.%()) or [] are
       both rejected.

       The last component of the Longident.t is capitalized.

       val type_ident : Lexing.lexbuf -> Longident.t

       This function parse syntactically valid path for a  type  or  a  module
       type.   For  instance,  A  ,  t , M.t and F(X).t are valid. Contrarily,
       (.%()) or [] are both rejected.

       In path for type and module types, only operators and special construc-
       tors are rejected.

OCamldoc                          2023-02-12                         Parse(3o)

Generated by dwww version 1.15 on Fri Jun 21 21:33:31 CEST 2024.