diff options
92 files changed, 10262 insertions, 8268 deletions
@@ -216,17 +216,19 @@ typing/typeclass.cmx: utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \ typing/typecore.cmo: utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \ typing/typedtree.cmi typing/subst.cmi typing/stypes.cmi \ typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \ - typing/path.cmi parsing/parsetree.cmi typing/parmatch.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi utils/clflags.cmi typing/btype.cmi \ - parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi + typing/path.cmi parsing/parsetree.cmi typing/parmatch.cmi \ + typing/oprint.cmi utils/misc.cmi parsing/longident.cmi \ + parsing/location.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \ + utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi typing/annot.cmi \ + typing/typecore.cmi typing/typecore.cmx: utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \ typing/typedtree.cmx typing/subst.cmx typing/stypes.cmx \ typing/printtyp.cmx typing/primitive.cmx typing/predef.cmx \ - typing/path.cmx parsing/parsetree.cmi typing/parmatch.cmx utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx utils/clflags.cmx typing/btype.cmx \ - parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi + typing/path.cmx parsing/parsetree.cmi typing/parmatch.cmx \ + typing/oprint.cmx utils/misc.cmx parsing/longident.cmx \ + parsing/location.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \ + utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi typing/annot.cmi \ + typing/typecore.cmi typing/typedecl.cmo: utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \ typing/typedtree.cmi typing/subst.cmi typing/printtyp.cmi \ typing/primitive.cmi typing/predef.cmi typing/path.cmi \ @@ -44,6 +44,12 @@ Language features: inside the signature, removing their respective fields. Among other uses, this allows to merge two signatures containing identically named fields. +* While fixing PR#4824, also corrected a gaping hole in the type checker, + which allowed instantiating separately object parameters and instance + variables in an interface. This hole was here since the beginning of + ocaml, and as a result many programs using object inheritance in a non + trivial way will need to be corrected. You can look at lablgtk2 for an + example. Compilers and toplevel: - Warnings are now numbered and can be switched on and off individually. @@ -105,8 +111,12 @@ All tools: Bug Fixes: - PR#4012: Map.map and Map.mapi do not conform to specification - PR#4478: better error messages for type definition mismatches +- PR#4683: labltk script uses fixed path on windows - PR#4742: finalisation function raising an exception blocks other finalisations - PR#4775: compiler crash on crazy types (temporary fix) +- PR#4824: narrowing the type of class parameters with a module specification +- PR#4862: relaxed value restriction and records +- PR#4884: optional arguments do not work when Some is redefined - PR#4964: parenthesized names for infix functions in annot files - PR#4970: better error message for instance variables - PR#4975: spelling mistakes @@ -117,6 +127,7 @@ Bug Fixes: - PR#5057: fatal typing error with local module + functor + polymorphic variant - Wrong type for Obj.add_offset. - Small problem with the representation of Int32, Int64, and Nativeint constants. +- Use RTLD_LOCAL for native dynlink in private mode. Objective Caml 3.11.2: ---------------------- @@ -222,11 +222,6 @@ An alternative, and faster approach to steps 2 to 5 is The result is equivalent to "make world opt opt.opt", but this may fail if anything goes wrong in native-code generation. -Another alternative, is to use the experimental build system that use -ocamlbuild instead of make (it replaces steps 2 to 5): - - ./build/fastworld.sh - 6- You can now install the Objective Caml system. This will create the following commands (in the binary directory selected during autoconfiguration): @@ -267,6 +267,10 @@ opt.opt: checkstack runtime core ocaml opt-core ocamlc.opt otherlibraries \ otherlibrariesopt \ ocamllex.opt ocamltoolsopt.opt ocamlbuild.native camlp4opt ocamldoc.opt +base.opt: checkstack runtime core ocaml opt-core ocamlc.opt otherlibraries \ + ocamlbuild.byte camlp4out $(DEBUGGER) ocamldoc ocamlopt.opt \ + otherlibrariesopt + # Installation install: if test -d $(BINDIR); then : ; else $(MKDIR) $(BINDIR); fi diff --git a/Makefile.nt b/Makefile.nt index c1be1220b3..a7e34f5993 100644 --- a/Makefile.nt +++ b/Makefile.nt @@ -606,23 +606,23 @@ alldepend:: # Camlp4 camlp4out: ocamlc otherlibraries ocamlbuild-mixed-boot ocamlbuild.byte - OCAMLBUILD_FIND=/usr/bin/find ./build/camlp4-byte-only.sh + ./build/camlp4-byte-only.sh camlp4opt: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot ocamlbuild.native - OCAMLBUILD_FIND=/usr/bin/find ./build/camlp4-native-only.sh + ./build/camlp4-native-only.sh # Ocamlbuild ocamlbuild.byte: ocamlc otherlibraries ocamlbuild-mixed-boot - OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuild-byte-only.sh + ./build/ocamlbuild-byte-only.sh ocamlbuild.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot - OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuild-native-only.sh + ./build/ocamlbuild-native-only.sh ocamlbuildlib.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot - OCAMLBUILD_FIND=/usr/bin/find ./build/ocamlbuildlib-native-only.sh + ./build/ocamlbuildlib-native-only.sh .PHONY: ocamlbuild-mixed-boot ocamlbuild-mixed-boot: - OCAMLBUILD_FIND=/usr/bin/find ./build/mixed-boot.sh + ./build/mixed-boot.sh partialclean:: rm -rf _build diff --git a/README.win32 b/README.win32 index 46fec15790..82b4cba5e9 100644 --- a/README.win32 +++ b/README.win32 @@ -44,27 +44,23 @@ The remainder of this document gives more information on each port. ------------------------------------------------------------------------------ - The native Win32 port built with Microsoft Visual C - --------------------------------------------------- + The native Win32 port built with Microsoft Windows SDK + ------------------------------------------------------ REQUIREMENTS: -This port runs under MS Windows Vista, XP, and 2000. +This port runs under MS Windows 7 (32 and 64 bits), Vista, XP, and 2000. The base bytecode system (ocamlc, ocaml, ocamllex, ocamlyacc, ...) runs without any additional tools. -Statically linking Caml bytecode with C code (ocamlc -custom) requires the -Microsoft Visual C++ compiler (items [1] and [2] in the section -"third-party software" below) and the flexdll tool (item [5]). - -The native-code compiler (ocamlopt) requires Visual C++ (items [1], [2]), -the Microsoft assembler MASM (item [3]) and the flexdll tool (item [5]). +The native-code compiler (ocamlopt) requires the Microsoft Windows SDK +(item [1]) and the flexdll tool (item [2]). -Instead of items [1], [2] and [3], it is possible to use item [6] which contains -everything needed. +Statically linking Caml bytecode with C code (ocamlc -custom) also requires +items [1] and [2]. -The LablTk GUI requires Tcl/Tk 8.5 (item [4]). +The LablTk GUI requires Tcl/Tk 8.5 (item [3]). INSTALLATION: @@ -79,53 +75,69 @@ installer) must be added to the PATH environment variable. To compile programs that use the LablTK GUI, the directory where the libraries tk85.lib and tcl85.lib were installed (by the Tcl/Tk installer) must be added to the library search path in the LIB -environment variable. E.g. if Tcl/Tk was installed in C:\tcl, add -"C:\tcl\lib" to the LIB environment variable. +environment variable. E.g. if Tcl/Tk was installed in C:\Tcl, add +"C:\Tcl\lib" to the LIB environment variable. THIRD-PARTY SOFTWARE: -[1] Visual C++ version 2008, 2005, 2003, or 6. - We use Visual C++ 2008 Express Edition, which can be downloaded for free - from http://www.microsoft.com. +[1] Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1. + Can be downloaded for free from + http://www.microsoft.com/downloads/en/default.aspx + under the name "Microsoft Windows 7 SDK". -[2] Windows header files and development libraries. They are included - in the Visual C++ 2008 Express Edition distribution. - Otherwise, you can find them in the Windows Platform SDK, - which can be downloaded for free from http://www.microsoft.com/. - -[3] MASM version 6.11 or later. The full distribution of Visual C++ 2005 - or 2008 contains MASM version 8. Users of the Express Edition of Visual C++ - 2005 can download MASM version 8 from -http://www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en - To obtain MASM version 6.11, see - http://users.easystreet.com/jkirwan/new/pctools.html. - -[4] TCL/TK version 8.5. Windows binaries are available as part of the - ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/ - -[5] flexdll. +[2] flexdll version 0.23 or later. Can be downloaded from http://alain.frisch.fr/flexdll.html -[6] Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1 +[3] TCL/TK version 8.5. Windows binaries are available as part of the + ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/ RECOMPILATION FROM THE SOURCES: The command-line tools can be recompiled from the Unix source -distribution (ocaml-X.YZ.tar.gz), which also contains the files modified +distribution (ocaml-X.YY.Z.tar.gz), which also contains the files modified for Windows. You will need the following software components to perform the recompilation: -- Windows NT, 2000, XP, or Vista. -- Items [1], [2], [3], [4] and [5] from the list of recommended software above. +- Windows NT, 2000, XP, Vista, or 7 (32 or 64 bits). +- Items [1], [2] and [3] from the list of recommended software above. + Make sure to install the 32-bit version of TCL/TK, even if you are + compiling on a 64-bit Windows. - The Cygwin port of GNU tools, available from http://www.cygwin.com/ Install at least the following packages: diffutils, make, ncurses. -Remember to add the directory where the libraries tk84.lib and -tcl84.lib were installed (by the Tcl/Tk installer) to the LIB variable -(library search path). - -To recompile, start a Cygwin shell and change to the top-level +First, you need to set up your cygwin environment for using the MS +tools. The following assumes that you have installed [1], [2], and [3] +in their default directories. If this is not the case, you will need +to adjust the paths accordingly. + + Open a Windows Command Prompt and enter the following command: + set PFPATH=C:\Program Files + If you are compiling on the 64-bit version of Windows 7, enter the + following instead: + set PFPATH=C:\Program Files (x86) + + Then enter the following commands: + cd "%PFPATH%\Microsoft Visual Studio 9.0\VC\bin" + vcvars32 + echo VCPATH="`cygpath -p '%Path%'`" >C:\cygwin\tmp\msenv + echo LIB="%LIB%;C:\Tcl\lib" >>C:\cygwin\tmp\msenv + echo LIBPATH="%LIBPATH%" >>C:\cygwin\tmp\msenv + echo INCLUDE="%INCLUDE%;C:\Tcl\include" >>C:\cygwin\tmp\msenv + echo FLPATH="`cygpath '%PFPATH%\flexdll'`" >>C:\cygwin\tmp\msenv + echo PATH="${VCPATH}:$PATH:${FLPATH}" >>C:\cygwin\tmp\msenv + echo export PATH LIB LIBPATH INCLUDE >>C:\cygwin\tmp\msenv + echo export OCAMLBUILD_FIND=/usr/bin/find >>C:\cygwin\tmp\msenv + + Open a Cygwin shell and enter the following commands: + tr -d '\r' </tmp/msenv >.msenv32 + echo '. $HOME/.msenv32' >>.bashrc + +Now, close the Command Prompt and the shell and you're set up for +using the MS tools under Cygwin. + + +To recompile OCaml, start a new Cygwin shell and change to the top-level directory of the OCaml distribution. Then, do cp config/m-nt.h config/m.h @@ -145,11 +157,6 @@ Finally, use "make -f Makefile.nt" to build the system, e.g. make -f Makefile.nt opt.opt make -f Makefile.nt install -Alternatively you can use the experimental build procedure using ocamlbuild: - - ./build/fastworld.sh - ./build/install.sh - NOTES: * The VC++ compiler does not implement "computed gotos", and therefore @@ -191,7 +198,7 @@ and the flexdll tool, available at http://alain.frisch.fr/flexdll.html You will need to install at least the following Cygwin packages (use the Setup tool from Cygwin): -binutils, gcc-core, gcc-mingw-core, mingw-runtime, w32-api. +binutils, gcc-core, gcc-mingw-core, mingw-runtime, w32api. Do *not* install the Mingw/MSYS development tools from www.mingw.org: these are not compatible with this Caml port (@responsefile not @@ -200,6 +207,8 @@ recognized on the command line). The LablTk GUI requires Tcl/Tk 8.5. Windows binaries are available as part of the ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/ +Note that you will need to install the 32-bit version of ActiveTCL, +even if you are on a 64-bit version of Windows. INSTALLATION: @@ -232,7 +241,7 @@ companion MSYS tools: these have problems with long command lines. Instead, use the version of MinGW provided by Cygwin. Start a Cygwin shell and unpack the source distribution -(ocaml-X.YZ.tar.gz) with "tar xzf". Change to the top-level +(ocaml-X.YY.Z.tar.gz) with "tar xzf". Change to the top-level directory of the OCaml distribution. Then, do cp config/m-nt.h config/m.h @@ -297,12 +306,13 @@ The replay debugger is supported. ------------------------------------------------------------------------------ - The native Win64 port built with the Microsoft Platform SDK compilers - --------------------------------------------------------------------- + The native Win64 port built with Microsoft Windows SDK + ------------------------------------------------------ REQUIREMENTS: -This port runs under MS Windows XP 64 and Server 64 on Intel64/AMD64 machines. +This port runs under MS Windows XP 64, Windows Server 64, and +Windows 7 64 on Intel64/AMD64 machines. The base bytecode system (ocamlc, ocaml, ocamllex, ocamlyacc, ...) runs without any additional tools. @@ -314,6 +324,7 @@ Microsoft Platform SDK compiler (item [1] in the section The native-code compiler (ocamlopt) requires the Microsoft compiler and the Microsoft assembler MASM64 (item [1]) and the flexdll tool (item [2]). +The LablTk GUI is not available in this version. INSTALLATION: @@ -323,20 +334,15 @@ described below. THIRD-PARTY SOFTWARE: -[1] Microsoft Windows Server 2003 R2 Platform SDK for AMD64 (PSDK-amd64.exe). - Can be downloaded for free from http://www.microsoft.com/. - Includes all we need, namely a C compiler, the masm64 assembler, - Windows libraries and include files. +[1] Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1. + Can be downloaded for free from + http://www.microsoft.com/downloads/en/default.aspx + under the name "Microsoft Windows 7 SDK". - Alternatively, the more recent SDK: - Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1 - can be used. - -[2] flexdll. +[2] flexdll version 0.23 or later. Can be downloaded from http://alain.frisch.fr/flexdll.html - RECOMPILATION FROM THE SOURCES: The command-line tools can be recompiled from the Unix source @@ -344,13 +350,38 @@ distribution (ocaml-X.YZ.tar.gz), which also contains the files modified for Windows. You will need the following software components to perform the recompilation: -- Windows XP 64 or Server 64. -- The Platform SDK (item [1] from the list of recommended software above). +- Windows XP 64, Windows Server 64, or Windows 7 64. +- Items [1] and [2] from the list of recommended software above. - The Cygwin port of GNU tools, available from http://www.cygwin.com/ Install at least the following packages: diffutils, make, ncurses. -- The flexdll tool (see above). -To recompile, start a Cygwin shell and change to the top-level +First, you need to set up your cygwin environment for using the MS +tools. The following assumes that you have installed [1] and [2] +in their default directories. If this is not the case, you will need +to adjust the paths accordingly. + + Open a Windows Command Prompt and enter the following commands: + set PFPATH=C:\Program Files (x86) + cd "%PFPATH%\Microsoft Visual Studio 9.0\VC\bin" + vcvars64 + echo VCPATH="`cygpath -p '%Path%'`" >C:\cygwin\tmp\msenv + echo LIB="%LIB%;C:\Tcl\lib" >>C:\cygwin\tmp\msenv + echo LIBPATH="%LIBPATH%" >>C:\cygwin\tmp\msenv + echo INCLUDE="%INCLUDE%;C:\Tcl\include" >>C:\cygwin\tmp\msenv + echo FLPATH="`cygpath '%PFPATH%\flexdll'`" >>C:\cygwin\tmp\msenv + echo PATH="${VCPATH}:$PATH:${FLPATH}" >>C:\cygwin\tmp\msenv + echo export PATH LIB LIBPATH INCLUDE >>C:\cygwin\tmp\msenv + echo export OCAMLBUILD_FIND=/usr/bin/find >>C:\cygwin\tmp\msenv + + Open a Cygwin shell and enter the following commands: + tr -d '\r' </tmp/msenv >.msenv64 + echo '. $HOME/.msenv64' >>.bashrc + +Now, close the Command Prompt and the shell and you're set up for +using the MS tools under Cygwin. + + +To recompile OCaml, start a new Cygwin shell and change to the top-level directory of the OCaml distribution. Then, do cp config/m-nt.h config/m.h @@ -361,12 +392,6 @@ Then, edit config/Makefile as needed, following the comments in this file. Normally, the only variable that need to be changed is PREFIX where to install everything -If, for whatever reason, you want to use the Microsoft Visual C++ 2005 -compiler for AMD64 instead of the Platform SDK compiler, replace the line - EXTRALIBS=bufferoverflowu.lib -by - EXTRALIBS= - Finally, use "make -f Makefile.nt" to build the system, e.g. make -f Makefile.nt world @@ -1,4 +1,4 @@ -3.13.0+dev0 (2010-06-07) +3.13.0+dev1 (2010-08-02) # The version string is the first line of this file. # It must be in the format described in stdlib/sys.mli @@ -35,7 +35,6 @@ true: use_stdlib "camlp4/Camlp4_import.ml": -warn_Z <camlp4/build/*> or <camlp4/boot/*> or "camlp4/Camlp4/Struct/Lexer.ml": -camlp4boot, -warn_Z, warn_a <camlp4/Camlp4Bin.{byte,native}> or <camlp4/{mkcamlp4,boot/camlp4boot}.byte>: use_dynlink -"camlp4/Camlp4/Printers/OCaml.ml" or "camlp4/Camlp4/Printers/OCamlr.ml": -warn_Z, warn_v <camlp4/Camlp4Printers/**.ml>: include_unix "camlp4/Camlp4/Struct/DynLoader.ml" or "camlp4/boot/Camlp4.ml": include_dynlink <camlp4/Camlp4Top/**>: include_toplevel diff --git a/asmrun/.depend b/asmrun/.depend index ab5bde8560..aa0e69e1a3 100644 --- a/asmrun/.depend +++ b/asmrun/.depend @@ -1,741 +1,741 @@ alloc.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h array.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h backtrace.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h callback.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/mlvalues.h compact.o: compact.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h compare.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h custom.o: custom.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h debugger.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h dynlink.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ - ../byterun/prims.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ + ../byterun/prims.h extern.o: extern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/reverse.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/reverse.h fail.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ - ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ + ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h finalise.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/signals.h floats.o: floats.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h freelist.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h gc_ctrl.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ - ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ + ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h stack.h globroots.o: globroots.c ../byterun/memory.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/globroots.h ../byterun/roots.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/globroots.h ../byterun/roots.h hash.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h intern.o: intern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h ints.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ - ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ + ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h io.o: io.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ - ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ + ../byterun/sys.h lexing.o: lexing.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h main.o: main.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/sys.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/sys.h major_gc.o: major_gc.c ../byterun/compact.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h md5.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ - ../byterun/reverse.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ + ../byterun/reverse.h memory.o: memory.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/signals.h meta.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ - ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ + ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h minor_gc.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ + ../byterun/weak.h misc.o: misc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h natdynlink.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ - natdynlink.h ../byterun/osdeps.h ../byterun/fail.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ + natdynlink.h ../byterun/osdeps.h ../byterun/fail.h obj.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h parsing.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/alloc.h + ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/alloc.h printexc.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/printexc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/printexc.h roots.o: roots.c ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ - ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h stack.h ../byterun/roots.h + ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ + ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ + ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h stack.h ../byterun/roots.h signals.o: signals.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ - ../byterun/sys.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ + ../byterun/sys.h signals_asm.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ - signals_osdep.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ + signals_osdep.h stack.h startup.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ - ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ + ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h str.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h sys.o: sys.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h terminfo.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ - ../byterun/io.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ + ../byterun/io.h ../byterun/mlvalues.h unix.o: unix.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/osdeps.h + ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/osdeps.h weak.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h alloc.d.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h array.d.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h backtrace.d.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h callback.d.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/mlvalues.h compact.d.o: compact.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h compare.d.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h custom.d.o: custom.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h debugger.d.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h dynlink.d.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ - ../byterun/prims.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ + ../byterun/prims.h extern.d.o: extern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/reverse.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/reverse.h fail.d.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ - ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ + ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h finalise.d.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/signals.h floats.d.o: floats.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h freelist.d.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h gc_ctrl.d.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ - ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ + ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h stack.h globroots.d.o: globroots.c ../byterun/memory.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/globroots.h ../byterun/roots.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/globroots.h ../byterun/roots.h hash.d.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h intern.d.o: intern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h ints.d.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ - ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ + ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h io.d.o: io.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ - ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ + ../byterun/sys.h lexing.d.o: lexing.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h main.d.o: main.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/sys.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/sys.h major_gc.d.o: major_gc.c ../byterun/compact.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h md5.d.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ - ../byterun/reverse.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ + ../byterun/reverse.h memory.d.o: memory.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/signals.h meta.d.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ - ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ + ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h minor_gc.d.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ + ../byterun/weak.h misc.d.o: misc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h natdynlink.d.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ - natdynlink.h ../byterun/osdeps.h ../byterun/fail.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ + natdynlink.h ../byterun/osdeps.h ../byterun/fail.h obj.d.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h parsing.d.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/alloc.h + ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/alloc.h printexc.d.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/printexc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/printexc.h roots.d.o: roots.c ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ - ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h stack.h ../byterun/roots.h + ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ + ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ + ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h stack.h ../byterun/roots.h signals.d.o: signals.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ - ../byterun/sys.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ + ../byterun/sys.h signals_asm.d.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ - signals_osdep.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ + signals_osdep.h stack.h startup.d.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ - ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ + ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h str.d.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h sys.d.o: sys.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h terminfo.d.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ - ../byterun/io.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ + ../byterun/io.h ../byterun/mlvalues.h unix.d.o: unix.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/osdeps.h + ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/osdeps.h weak.d.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h alloc.p.o: alloc.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h array.p.o: array.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h backtrace.p.o: backtrace.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/backtrace.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h stack.h callback.p.o: callback.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/mlvalues.h compact.p.o: compact.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/misc.h ../byterun/config.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h compare.p.o: compare.c ../byterun/custom.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h custom.p.o: custom.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h debugger.p.o: debugger.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/s.h ../byterun/debugger.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/misc.h dynlink.p.o: dynlink.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ - ../byterun/prims.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/dynlink.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/osdeps.h \ + ../byterun/prims.h extern.p.o: extern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/reverse.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/reverse.h fail.p.o: fail.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ - ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/gc.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/printexc.h \ + ../byterun/signals.h stack.h ../byterun/roots.h ../byterun/memory.h finalise.p.o: finalise.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/fail.h ../byterun/mlvalues.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/signals.h floats.p.o: floats.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/fail.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/reverse.h ../byterun/stacks.h ../byterun/memory.h freelist.p.o: freelist.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/freelist.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/major_gc.h ../byterun/misc.h ../byterun/mlvalues.h gc_ctrl.p.o: gc_ctrl.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ - ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/compact.h ../byterun/custom.h \ + ../byterun/finalise.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h stack.h globroots.p.o: globroots.c ../byterun/memory.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ - ../byterun/globroots.h ../byterun/roots.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/misc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/memory.h \ + ../byterun/globroots.h ../byterun/roots.h hash.p.o: hash.c ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h intern.p.o: intern.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ - ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/custom.h ../byterun/fail.h \ + ../byterun/gc.h ../byterun/intext.h ../byterun/io.h ../byterun/io.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/reverse.h ../byterun/md5.h ints.p.o: ints.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ - ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/custom.h ../byterun/fail.h ../byterun/intext.h \ + ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/int64_native.h io.p.o: io.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ - ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/io.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/signals.h \ + ../byterun/sys.h lexing.p.o: lexing.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/mlvalues.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h main.p.o: main.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/sys.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/sys.h major_gc.p.o: major_gc.c ../byterun/compact.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ - ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/weak.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/misc.h \ + ../byterun/custom.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/finalise.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/freelist.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/weak.h md5.p.o: md5.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ - ../byterun/reverse.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/md5.h ../byterun/io.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h ../byterun/io.h \ + ../byterun/reverse.h memory.p.o: memory.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/signals.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/signals.h meta.p.o: meta.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ - ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/config.h ../byterun/fail.h ../byterun/fix_code.h \ + ../byterun/interp.h ../byterun/intext.h ../byterun/io.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h ../byterun/stacks.h ../byterun/memory.h minor_gc.p.o: minor_gc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ - ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ - ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ - ../byterun/weak.h + ../byterun/../config/s.h ../byterun/fail.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/finalise.h \ + ../byterun/roots.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/gc.h ../byterun/gc_ctrl.h ../byterun/major_gc.h \ + ../byterun/memory.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h ../byterun/roots.h ../byterun/signals.h \ + ../byterun/weak.h misc.p.o: misc.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h + ../byterun/../config/s.h ../byterun/misc.h ../byterun/config.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h natdynlink.p.o: natdynlink.c ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ - natdynlink.h ../byterun/osdeps.h ../byterun/fail.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h stack.h ../byterun/callback.h ../byterun/alloc.h \ + natdynlink.h ../byterun/osdeps.h ../byterun/fail.h obj.p.o: obj.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ - ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ - ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/prims.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/gc.h ../byterun/interp.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/memory.h \ + ../byterun/gc.h ../byterun/major_gc.h ../byterun/minor_gc.h \ + ../byterun/minor_gc.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/prims.h parsing.p.o: parsing.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ - ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/alloc.h + ../byterun/../config/s.h ../byterun/mlvalues.h ../byterun/config.h \ + ../byterun/misc.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/alloc.h printexc.p.o: printexc.c ../byterun/backtrace.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ - ../byterun/printexc.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/callback.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/misc.h ../byterun/mlvalues.h \ + ../byterun/printexc.h roots.p.o: roots.c ../byterun/finalise.h ../byterun/roots.h \ - ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ - ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ - ../byterun/mlvalues.h stack.h ../byterun/roots.h + ../byterun/misc.h ../byterun/config.h ../byterun/../config/m.h \ + ../byterun/../config/s.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/mlvalues.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/minor_gc.h ../byterun/globroots.h ../byterun/memory.h \ + ../byterun/major_gc.h ../byterun/minor_gc.h ../byterun/misc.h \ + ../byterun/mlvalues.h stack.h ../byterun/roots.h signals.p.o: signals.c ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ - ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ - ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ - ../byterun/sys.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/callback.h ../byterun/config.h \ + ../byterun/fail.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/roots.h \ + ../byterun/memory.h ../byterun/signals.h ../byterun/signals_machdep.h \ + ../byterun/sys.h signals_asm.p.o: signals_asm.c ../byterun/fail.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ - signals_osdep.h stack.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/mlvalues.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/signals_machdep.h \ + signals_osdep.h stack.h startup.p.o: startup.c ../byterun/callback.h ../byterun/mlvalues.h \ - ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ - ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ - ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ - ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ - ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h + ../byterun/config.h ../byterun/../config/m.h ../byterun/../config/s.h \ + ../byterun/misc.h ../byterun/backtrace.h ../byterun/custom.h \ + ../byterun/fail.h ../byterun/freelist.h ../byterun/gc.h \ + ../byterun/gc_ctrl.h ../byterun/memory.h ../byterun/gc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/mlvalues.h ../byterun/osdeps.h \ + ../byterun/printexc.h stack.h ../byterun/sys.h natdynlink.h str.p.o: str.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/mlvalues.h ../byterun/misc.h sys.p.o: sys.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ - ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ - ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/debugger.h \ + ../byterun/fail.h ../byterun/instruct.h ../byterun/mlvalues.h \ + ../byterun/osdeps.h ../byterun/signals.h ../byterun/stacks.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/freelist.h ../byterun/minor_gc.h ../byterun/sys.h terminfo.p.o: terminfo.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ - ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ - ../byterun/io.h ../byterun/mlvalues.h + ../byterun/../config/s.h ../byterun/alloc.h ../byterun/misc.h \ + ../byterun/config.h ../byterun/mlvalues.h ../byterun/fail.h \ + ../byterun/io.h ../byterun/mlvalues.h unix.p.o: unix.c ../byterun/config.h ../byterun/../config/m.h \ - ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ - ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ - ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ - ../byterun/misc.h ../byterun/osdeps.h + ../byterun/../config/s.h ../byterun/memory.h ../byterun/config.h \ + ../byterun/gc.h ../byterun/mlvalues.h ../byterun/misc.h \ + ../byterun/major_gc.h ../byterun/freelist.h ../byterun/minor_gc.h \ + ../byterun/misc.h ../byterun/osdeps.h weak.p.o: weak.c ../byterun/alloc.h ../byterun/misc.h ../byterun/config.h \ - ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ - ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ - ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ - ../byterun/minor_gc.h ../byterun/mlvalues.h + ../byterun/../config/m.h ../byterun/../config/s.h ../byterun/mlvalues.h \ + ../byterun/fail.h ../byterun/major_gc.h ../byterun/freelist.h \ + ../byterun/memory.h ../byterun/gc.h ../byterun/major_gc.h \ + ../byterun/minor_gc.h ../byterun/mlvalues.h diff --git a/boot/ocamlc b/boot/ocamlc Binary files differindex e2a7ed90b8..edcc2bb8fc 100755 --- a/boot/ocamlc +++ b/boot/ocamlc diff --git a/boot/ocamldep b/boot/ocamldep Binary files differindex ec792d3946..f9b29d6068 100755 --- a/boot/ocamldep +++ b/boot/ocamldep diff --git a/boot/ocamllex b/boot/ocamllex Binary files differindex 7cc08b38f4..d94e54c099 100755 --- a/boot/ocamllex +++ b/boot/ocamllex diff --git a/build/camlp4-bootstrap-recipe.txt b/build/camlp4-bootstrap-recipe.txt index 5fa5092c63..9f1417a2fa 100644 --- a/build/camlp4-bootstrap-recipe.txt +++ b/build/camlp4-bootstrap-recipe.txt @@ -2,16 +2,11 @@ make clean ./build/distclean.sh ./configure -prefix `pwd`/_install - ./build/world.sh byte + ./build/fastworld.sh # Go to "Bootstrap camlp4" === Install the bootstrapping camlp4 processor === ./build/install.sh - # Either extend your PATH with _install - export PATH=`pwd`/_install:$PATH - # Or copy just the needed files (for better understanding) - cp _build/camlp4/camlp4boot.byte <somewhereinPATH>/bin/camlp4boot - cp _build/camlp4/camlp4o.byte <somewhereinPATH>/bin/camlp4o === Build camlp4 === # This step is not needed right after a "./build/world.sh byte" @@ -20,6 +15,8 @@ === Bootstrap camlp4 === # First "Build camlp4" # Then "Install the bootstrapping camlp4 processor" + # Indeed the following bootstrapping script + # does use the installed version! ./build/camlp4-bootstrap.sh # If the fixpoint not is reached yet # Go to "Bootstrap camlp4" @@ -27,6 +24,12 @@ # Have a look at the changes in # camlp4/boot it may be a good idea to commit them +=== Generate Camlp4Ast.ml === + # First "Install the bootstrapping camlp4 processor" + # Indeed the following bootstrapping script + # does use the installed version! + ./build/camlp4-mkCamlp4Ast.sh + === Case study "let open M in e" === Open the revised parser @@ -89,7 +92,7 @@ (* let open i in e *) | ExOpI of loc and ident and expr - Then build. Bootstrap once and build again. + Then "Generate Camlp4Ast.ml" and build. We get a single warning in Camlp4/Struct/Camlp4Ast2OCamlAst.ml but don't fix it now. @@ -135,7 +138,7 @@ Add new parsing rules for := but keep the old actions for now. (* module i := i *) | WcMoS of loc and ident and ident -3/ Build and bootstrap once. +3/ "Generate Camlp4Ast.ml" and build. 4/ Change the generated camlp4/boot/camlp4boot.ml: Look for ":=" and change occurences of diff --git a/build/camlp4-bootstrap.sh b/build/camlp4-bootstrap.sh index c594c80e26..ef9a93c01b 100755 --- a/build/camlp4-bootstrap.sh +++ b/build/camlp4-bootstrap.sh @@ -5,6 +5,9 @@ set -e cd `dirname $0`/.. +. config/config.sh +export PATH=$BINDIR:$PATH + TMPTARGETS="\ camlp4/boot/Lexer.ml" diff --git a/build/camlp4-mkCamlp4Ast.sh b/build/camlp4-mkCamlp4Ast.sh new file mode 100755 index 0000000000..2a30b9ab22 --- /dev/null +++ b/build/camlp4-mkCamlp4Ast.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# $Id$ +set -e +cd `dirname $0`/.. + +. config/config.sh +export PATH=$BINDIR:$PATH + +CAMLP4AST=camlp4/Camlp4/Struct/Camlp4Ast.ml +BOOTP4AST=camlp4/boot/Camlp4Ast.ml + +[ -f "$BOOTP4AST" ] && mv "$BOOTP4AST" "$BOOTP4AST.old" +rm -f "_build/$BOOTP4AST" +rm -f "_build/$CAMLP4AST" + +if [ -x ./boot/myocamlbuild.native ]; then + OCAMLBUILD=./boot/myocamlbuild.native +else + OCAMLBUILD="./boot/ocamlrun boot/myocamlbuild" +fi +$OCAMLBUILD $CAMLP4AST + +echo promote $CAMLP4AST +cp _build/$CAMLP4AST camlp4/boot/`basename $CAMLP4AST` diff --git a/byterun/.depend b/byterun/.depend index 2044d56cec..b92cc6de2a 100644 --- a/byterun/.depend +++ b/byterun/.depend @@ -1,407 +1,410 @@ alloc.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h stacks.h + ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h stacks.h array.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h backtrace.o: backtrace.c config.h ../config/m.h ../config/s.h \ - compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ - fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ - startup.h stacks.h sys.h backtrace.h + compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ + fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + startup.h stacks.h sys.h backtrace.h callback.o: callback.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h compact.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \ - finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \ - minor_gc.h gc_ctrl.h weak.h + finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h gc_ctrl.h weak.h compare.o: compare.c custom.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h custom.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h debugger.o: debugger.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ - instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h sys.h + compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ + instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h sys.h dynlink.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h osdeps.h prims.h + alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h osdeps.h prims.h extern.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h fail.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \ - minor_gc.h printexc.h signals.h stacks.h + ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \ + freelist.h minor_gc.h printexc.h signals.h stacks.h finalise.o: finalise.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h signals.h + ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h signals.h fix_code.o: fix_code.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \ - io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h + compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \ + md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h floats.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h reverse.h stacks.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h reverse.h stacks.h freelist.o: freelist.c config.h ../config/m.h ../config/s.h \ - compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ - major_gc.h minor_gc.h + compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ + major_gc.h minor_gc.h gc_ctrl.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ - roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ - stacks.h + ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ + roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ + stacks.h globroots.o: globroots.c memory.h compatibility.h config.h ../config/m.h \ - ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - roots.h globroots.h + ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + roots.h globroots.h hash.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h instrtrace.o: instrtrace.c intern.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h interp.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ - fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ - memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h + ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ + fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ + memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h ints.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h + ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h io.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h signals.h sys.h + misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h signals.h sys.h lexing.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h main.o: main.c misc.h compatibility.h config.h ../config/m.h \ - ../config/s.h mlvalues.h sys.h + ../config/s.h mlvalues.h sys.h major_gc.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \ - compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h + compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h md5.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h reverse.h memory.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ - minor_gc.h signals.h + ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ + minor_gc.h signals.h meta.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ - major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h + ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ + major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h minor_gc.o: minor_gc.c config.h ../config/m.h ../config/s.h \ - compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ - gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h + compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ + gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h misc.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \ - misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h + misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h obj.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ - memory.h minor_gc.h prims.h + ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ + memory.h minor_gc.h prims.h parsing.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \ - mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h + mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + alloc.h prims.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h prims.h + ../config/s.h misc.h prims.h printexc.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \ - ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ - printexc.h + ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ + printexc.h roots.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \ - ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ - freelist.h minor_gc.h globroots.h stacks.h + ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h globroots.h stacks.h signals.o: signals.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ - sys.h + ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ + sys.h signals_byt.o: signals_byt.c config.h ../config/m.h ../config/s.h \ - compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ - minor_gc.h osdeps.h signals.h signals_machdep.h + compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ + minor_gc.h osdeps.h signals.h signals_machdep.h stacks.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \ - fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h startup.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ - dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ - interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ - prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ - version.h + alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ + dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ + interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ + prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ + version.h str.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h + ../config/s.h mlvalues.h fail.h sys.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ - stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h + misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ + stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h terminfo.o: terminfo.c config.h ../config/m.h ../config/s.h \ - compatibility.h alloc.h misc.h mlvalues.h fail.h io.h + compatibility.h alloc.h misc.h mlvalues.h fail.h io.h unix.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \ - memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - osdeps.h + memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + osdeps.h weak.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h alloc.d.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h stacks.h + ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h stacks.h array.d.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h backtrace.d.o: backtrace.c config.h ../config/m.h ../config/s.h \ - compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ - fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ - startup.h stacks.h sys.h backtrace.h + compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ + fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + startup.h stacks.h sys.h backtrace.h callback.d.o: callback.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h compact.d.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \ - finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \ - minor_gc.h gc_ctrl.h weak.h + finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h gc_ctrl.h weak.h compare.d.o: compare.c custom.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h custom.d.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h debugger.d.o: debugger.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ - instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h sys.h + compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ + instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h sys.h dynlink.d.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h osdeps.h prims.h + alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h osdeps.h prims.h extern.d.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h fail.d.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \ - minor_gc.h printexc.h signals.h stacks.h + ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \ + freelist.h minor_gc.h printexc.h signals.h stacks.h finalise.d.o: finalise.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h signals.h + ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h signals.h fix_code.d.o: fix_code.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \ - io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h + compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \ + md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h floats.d.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h reverse.h stacks.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h reverse.h stacks.h freelist.d.o: freelist.c config.h ../config/m.h ../config/s.h \ - compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ - major_gc.h minor_gc.h + compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ + major_gc.h minor_gc.h gc_ctrl.d.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ - roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ - stacks.h + ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ + roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ + stacks.h globroots.d.o: globroots.c memory.h compatibility.h config.h ../config/m.h \ - ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - roots.h globroots.h + ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + roots.h globroots.h hash.d.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h instrtrace.d.o: instrtrace.c instruct.h misc.h compatibility.h config.h \ - ../config/m.h ../config/s.h mlvalues.h opnames.h prims.h stacks.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h + ../config/m.h ../config/s.h mlvalues.h opnames.h prims.h stacks.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h intern.d.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h interp.d.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ - fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ - memory.h gc.h minor_gc.h prims.h signals.h stacks.h + ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ + fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ + memory.h gc.h minor_gc.h prims.h signals.h stacks.h ints.d.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h + ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h io.d.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h signals.h sys.h + misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h signals.h sys.h lexing.d.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h main.d.o: main.c misc.h compatibility.h config.h ../config/m.h \ - ../config/s.h mlvalues.h sys.h + ../config/s.h mlvalues.h sys.h major_gc.d.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \ - compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h + compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h md5.d.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h reverse.h memory.d.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ - minor_gc.h signals.h + ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ + minor_gc.h signals.h meta.d.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ - major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h + ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ + major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h minor_gc.d.o: minor_gc.c config.h ../config/m.h ../config/s.h \ - compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ - gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h + compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ + gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h misc.d.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \ - misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h + misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h obj.d.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ - memory.h minor_gc.h prims.h + ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ + memory.h minor_gc.h prims.h parsing.d.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \ - mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h + mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + alloc.h prims.d.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h prims.h + ../config/s.h misc.h prims.h printexc.d.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \ - ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ - printexc.h + ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ + printexc.h roots.d.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \ - ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ - freelist.h minor_gc.h globroots.h stacks.h + ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h globroots.h stacks.h signals.d.o: signals.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ - sys.h + ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ + sys.h signals_byt.d.o: signals_byt.c config.h ../config/m.h ../config/s.h \ - compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ - minor_gc.h osdeps.h signals.h signals_machdep.h + compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ + minor_gc.h osdeps.h signals.h signals_machdep.h stacks.d.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \ - fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h startup.d.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ - dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ - interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ - prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ - version.h + alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ + dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ + interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ + prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ + version.h str.d.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h + ../config/s.h mlvalues.h fail.h sys.d.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ - stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h + misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ + stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h terminfo.d.o: terminfo.c config.h ../config/m.h ../config/s.h \ - compatibility.h alloc.h misc.h mlvalues.h fail.h io.h + compatibility.h alloc.h misc.h mlvalues.h fail.h io.h unix.d.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \ - memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - osdeps.h + memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + osdeps.h weak.d.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h alloc.pic.o: alloc.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h stacks.h + ../config/s.h mlvalues.h custom.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h stacks.h array.pic.o: array.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h backtrace.pic.o: backtrace.c config.h ../config/m.h ../config/s.h \ - compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ - fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ - startup.h stacks.h sys.h backtrace.h + compatibility.h mlvalues.h misc.h alloc.h io.h instruct.h intext.h \ + fix_code.h exec.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + startup.h stacks.h sys.h backtrace.h callback.pic.o: callback.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h interp.h instruct.h fix_code.h stacks.h compact.pic.o: compact.c config.h ../config/m.h ../config/s.h compatibility.h \ - finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h \ - minor_gc.h gc_ctrl.h weak.h + finalise.h roots.h misc.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h gc_ctrl.h weak.h compare.pic.o: compare.c custom.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/m.h ../config/s.h misc.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h custom.pic.o: custom.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h + ../config/s.h mlvalues.h custom.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h debugger.pic.o: debugger.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ - instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h sys.h + compatibility.h debugger.h misc.h mlvalues.h fail.h fix_code.h \ + instruct.h intext.h io.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h sys.h dynlink.pic.o: dynlink.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h osdeps.h prims.h + alloc.h misc.h mlvalues.h dynlink.h fail.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h osdeps.h prims.h extern.pic.o: extern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h fail.pic.o: fail.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h freelist.h \ - minor_gc.h printexc.h signals.h stacks.h + ../config/s.h mlvalues.h fail.h io.h gc.h memory.h major_gc.h \ + freelist.h minor_gc.h printexc.h signals.h stacks.h finalise.pic.o: finalise.c callback.h compatibility.h mlvalues.h config.h \ - ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h signals.h + ../config/m.h ../config/s.h misc.h fail.h roots.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h signals.h fix_code.pic.o: fix_code.c config.h ../config/m.h ../config/s.h \ - compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h md5.h \ - io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h + compatibility.h debugger.h misc.h mlvalues.h fix_code.h instruct.h \ + md5.h io.h memory.h gc.h major_gc.h freelist.h minor_gc.h reverse.h floats.pic.o: floats.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h reverse.h stacks.h + ../config/s.h mlvalues.h fail.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h reverse.h stacks.h freelist.pic.o: freelist.c config.h ../config/m.h ../config/s.h \ - compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ - major_gc.h minor_gc.h + compatibility.h freelist.h misc.h mlvalues.h gc.h gc_ctrl.h memory.h \ + major_gc.h minor_gc.h gc_ctrl.pic.o: gc_ctrl.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ - roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ - stacks.h + ../config/m.h ../config/s.h mlvalues.h compact.h custom.h finalise.h \ + roots.h memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h \ + stacks.h globroots.pic.o: globroots.c memory.h compatibility.h config.h ../config/m.h \ - ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - roots.h globroots.h + ../config/s.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + roots.h globroots.h hash.pic.o: hash.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h misc.h custom.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h instrtrace.pic.o: instrtrace.c intern.pic.o: intern.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ - memory.h major_gc.h freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h custom.h fail.h gc.h intext.h io.h fix_code.h \ + memory.h major_gc.h freelist.h minor_gc.h reverse.h interp.pic.o: interp.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ - fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ - memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h + ../config/s.h mlvalues.h backtrace.h callback.h debugger.h fail.h \ + fix_code.h instrtrace.h instruct.h interp.h major_gc.h freelist.h \ + memory.h gc.h minor_gc.h prims.h signals.h stacks.h jumptbl.h ints.pic.o: ints.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h + ../config/s.h mlvalues.h custom.h fail.h intext.h io.h fix_code.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h int64_native.h io.pic.o: io.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h signals.h sys.h + misc.h mlvalues.h custom.h fail.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h signals.h sys.h lexing.pic.o: lexing.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + ../config/s.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h main.pic.o: main.c misc.h compatibility.h config.h ../config/m.h \ - ../config/s.h mlvalues.h sys.h + ../config/s.h mlvalues.h sys.h major_gc.pic.o: major_gc.c compact.h config.h ../config/m.h ../config/s.h \ - compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ - memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h + compatibility.h misc.h custom.h mlvalues.h fail.h finalise.h roots.h \ + memory.h gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h weak.h md5.pic.o: md5.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ - freelist.h minor_gc.h reverse.h + ../config/s.h mlvalues.h fail.h md5.h io.h memory.h gc.h major_gc.h \ + freelist.h minor_gc.h reverse.h memory.pic.o: memory.c fail.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ - minor_gc.h signals.h + ../config/s.h mlvalues.h freelist.h gc.h gc_ctrl.h major_gc.h memory.h \ + minor_gc.h signals.h meta.pic.o: meta.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ - major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h + ../config/s.h mlvalues.h fail.h fix_code.h interp.h intext.h io.h \ + major_gc.h freelist.h memory.h gc.h minor_gc.h prims.h stacks.h minor_gc.pic.o: minor_gc.c config.h ../config/m.h ../config/s.h \ - compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ - gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h + compatibility.h fail.h misc.h mlvalues.h finalise.h roots.h memory.h \ + gc.h major_gc.h freelist.h minor_gc.h gc_ctrl.h signals.h weak.h misc.pic.o: misc.c config.h ../config/m.h ../config/s.h compatibility.h \ - misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h + misc.h memory.h gc.h mlvalues.h major_gc.h freelist.h minor_gc.h obj.pic.o: obj.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ - memory.h minor_gc.h prims.h + ../config/s.h mlvalues.h fail.h gc.h interp.h major_gc.h freelist.h \ + memory.h minor_gc.h prims.h parsing.pic.o: parsing.c config.h ../config/m.h ../config/s.h compatibility.h \ - mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h alloc.h + mlvalues.h misc.h memory.h gc.h major_gc.h freelist.h minor_gc.h \ + alloc.h prims.pic.o: prims.c mlvalues.h compatibility.h config.h ../config/m.h \ - ../config/s.h misc.h prims.h + ../config/s.h misc.h prims.h printexc.pic.o: printexc.c backtrace.h mlvalues.h compatibility.h config.h \ - ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ - printexc.h + ../config/m.h ../config/s.h misc.h callback.h debugger.h fail.h \ + printexc.h roots.pic.o: roots.c finalise.h roots.h misc.h compatibility.h config.h \ - ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ - freelist.h minor_gc.h globroots.h stacks.h + ../config/m.h ../config/s.h memory.h gc.h mlvalues.h major_gc.h \ + freelist.h minor_gc.h globroots.h stacks.h signals.pic.o: signals.c alloc.h compatibility.h misc.h config.h \ - ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ - major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ - sys.h + ../config/m.h ../config/s.h mlvalues.h callback.h fail.h memory.h gc.h \ + major_gc.h freelist.h minor_gc.h roots.h signals.h signals_machdep.h \ + sys.h signals_byt.pic.o: signals_byt.c config.h ../config/m.h ../config/s.h \ - compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ - minor_gc.h osdeps.h signals.h signals_machdep.h + compatibility.h memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h \ + minor_gc.h osdeps.h signals.h signals_machdep.h stacks.pic.o: stacks.c config.h ../config/m.h ../config/s.h compatibility.h \ - fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ - minor_gc.h + fail.h misc.h mlvalues.h stacks.h memory.h gc.h major_gc.h freelist.h \ + minor_gc.h startup.pic.o: startup.c config.h ../config/m.h ../config/s.h compatibility.h \ - alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ - dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ - interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ - prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ - version.h + alloc.h misc.h mlvalues.h backtrace.h callback.h custom.h debugger.h \ + dynlink.h exec.h fail.h fix_code.h freelist.h gc_ctrl.h instrtrace.h \ + interp.h intext.h io.h memory.h gc.h major_gc.h minor_gc.h osdeps.h \ + prims.h printexc.h reverse.h signals.h stacks.h sys.h startup.h \ + version.h str.pic.o: str.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h + ../config/s.h mlvalues.h fail.h sys.pic.o: sys.c config.h ../config/m.h ../config/s.h compatibility.h alloc.h \ - misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ - stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h + misc.h mlvalues.h debugger.h fail.h instruct.h osdeps.h signals.h \ + stacks.h memory.h gc.h major_gc.h freelist.h minor_gc.h sys.h terminfo.pic.o: terminfo.c config.h ../config/m.h ../config/s.h \ - compatibility.h alloc.h misc.h mlvalues.h fail.h io.h + compatibility.h alloc.h misc.h mlvalues.h fail.h io.h unix.pic.o: unix.c config.h ../config/m.h ../config/s.h compatibility.h \ - memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ - osdeps.h + memory.h gc.h mlvalues.h misc.h major_gc.h freelist.h minor_gc.h \ + osdeps.h weak.pic.o: weak.c alloc.h compatibility.h misc.h config.h ../config/m.h \ - ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ - minor_gc.h + ../config/s.h mlvalues.h fail.h major_gc.h freelist.h memory.h gc.h \ + minor_gc.h diff --git a/byterun/Makefile b/byterun/Makefile index 1515294519..8ee62aee92 100644 --- a/byterun/Makefile +++ b/byterun/Makefile @@ -16,7 +16,7 @@ include Makefile.common CFLAGS=-DCAML_NAME_SPACE -O $(BYTECCCOMPOPTS) $(IFLEXDIR) -DFLAGS=-DCAML_NAME_SPACE -g -DDEBUG $(BYTECCCOMPOPTS) +DFLAGS=-DCAML_NAME_SPACE -g -DDEBUG $(BYTECCCOMPOPTS) $(IFLEXDIR) OBJS=$(COMMONOBJS) unix.o main.o DOBJS=$(OBJS:.o=.d.o) instrtrace.d.o diff --git a/byterun/unix.c b/byterun/unix.c index 89e0706e24..cdc1f2a018 100644 --- a/byterun/unix.c +++ b/byterun/unix.c @@ -204,13 +204,16 @@ char * caml_dlerror(void) #ifndef RTLD_GLOBAL #define RTLD_GLOBAL 0 #endif +#ifndef RTLD_LOCAL +#define RTLD_LOCAL 0 +#endif #ifndef RTLD_NODELETE #define RTLD_NODELETE 0 #endif void * caml_dlopen(char * libname, int for_execution, int global) { - return dlopen(libname, RTLD_NOW | (global ? RTLD_GLOBAL : 0) | RTLD_NODELETE); + return dlopen(libname, RTLD_NOW | (global ? RTLD_GLOBAL : RTLD_LOCAL) | RTLD_NODELETE); /* Could use RTLD_LAZY if for_execution == 0, but needs testing */ } diff --git a/camlp4/Camlp4/Camlp4Ast.partial.ml b/camlp4/Camlp4/Camlp4Ast.partial.ml index c13f687e74..b6725989de 100644 --- a/camlp4/Camlp4/Camlp4Ast.partial.ml +++ b/camlp4/Camlp4/Camlp4Ast.partial.ml @@ -3,6 +3,34 @@ [ BTrue | BFalse | BAnt of string ] + and rec_flag = + [ ReRecursive + | ReNil + | ReAnt of string ] + and direction_flag = + [ DiTo + | DiDownto + | DiAnt of string ] + and mutable_flag = + [ MuMutable + | MuNil + | MuAnt of string ] + and private_flag = + [ PrPrivate + | PrNil + | PrAnt of string ] + and virtual_flag = + [ ViVirtual + | ViNil + | ViAnt of string ] + and override_flag = + [ OvOverride + | OvNil + | OvAnt of string ] + and row_var_flag = + [ RvRowVar + | RvNil + | RvAnt of string ] and meta_option 'a = [ ONone | OSome of 'a @@ -30,7 +58,7 @@ (* type t 'a 'b 'c = t constraint t = t constraint t = t *) | TyDcl of loc and string and list ctyp and ctyp and list (ctyp * ctyp) (* < (t)? (..)? > *) (* < move : int -> 'a .. > as 'a *) - | TyObj of loc and ctyp and meta_bool + | TyObj of loc and ctyp and row_var_flag | TyOlb of loc and string and ctyp (* ?s:t *) | TyPol of loc and ctyp and ctyp (* ! t . t *) (* ! 'a . list 'a -> 'a *) | TyQuo of loc and string (* 's *) @@ -105,7 +133,7 @@ | ExCoe of loc and expr and ctyp and ctyp (* (e : t) or (e : t :> t) *) | ExFlo of loc and string (* 3.14 *) (* for s = e to/downto e do { e } *) - | ExFor of loc and string and expr and expr and meta_bool and expr + | ExFor of loc and string and expr and expr and direction_flag and expr | ExFun of loc and match_case (* fun [ mc ] *) | ExIfe of loc and expr and expr and expr (* if e then e else e *) | ExInt of loc and string (* 42 *) @@ -115,7 +143,7 @@ | ExLab of loc and string and expr (* ~s or ~s:e *) | ExLaz of loc and expr (* lazy e *) (* let b in e or let rec b in e *) - | ExLet of loc and meta_bool and binding and expr + | ExLet of loc and rec_flag and binding and expr (* let module s = me in e *) | ExLmd of loc and string and module_expr and expr (* match e with [ mc ] *) @@ -287,12 +315,12 @@ (* type t *) | StTyp of loc and ctyp (* value (rec)? bi *) - | StVal of loc and meta_bool and binding + | StVal of loc and rec_flag and binding | StAnt of loc and string (* $s$ *) ] and class_type = [ CtNil of loc (* (virtual)? i ([ t ])? *) - | CtCon of loc and meta_bool and ident and ctyp + | CtCon of loc and virtual_flag and ident and ctyp (* [t] -> ct *) | CtFun of loc and ctyp and class_type (* object ((t))? (csg)? end *) @@ -314,22 +342,22 @@ (* inherit ct *) | CgInh of loc and class_type (* method s : t or method private s : t *) - | CgMth of loc and string and meta_bool and ctyp + | CgMth of loc and string and private_flag and ctyp (* value (virtual)? (mutable)? s : t *) - | CgVal of loc and string and meta_bool and meta_bool and ctyp - (* method virtual (mutable)? s : t *) - | CgVir of loc and string and meta_bool and ctyp + | CgVal of loc and string and mutable_flag and virtual_flag and ctyp + (* method virtual (private)? s : t *) + | CgVir of loc and string and private_flag and ctyp | CgAnt of loc and string (* $s$ *) ] and class_expr = [ CeNil of loc (* ce e *) | CeApp of loc and class_expr and expr (* (virtual)? i ([ t ])? *) - | CeCon of loc and meta_bool and ident and ctyp + | CeCon of loc and virtual_flag and ident and ctyp (* fun p -> ce *) | CeFun of loc and patt and class_expr (* let (rec)? bi in ce *) - | CeLet of loc and meta_bool and binding and class_expr + | CeLet of loc and rec_flag and binding and class_expr (* object ((p))? (cst)? end *) | CeStr of loc and patt and class_str_item (* ce : ct *) @@ -346,16 +374,16 @@ | CrSem of loc and class_str_item and class_str_item (* type t = t *) | CrCtr of loc and ctyp and ctyp - (* inherit ce or inherit ce as s *) - | CrInh of loc and class_expr and string + (* inherit(!)? ce (as s)? *) + | CrInh of loc and override_flag and class_expr and string (* initializer e *) | CrIni of loc and expr - (* method (private)? s : t = e or method (private)? s = e *) - | CrMth of loc and string and meta_bool and expr and ctyp - (* value (mutable)? s = e *) - | CrVal of loc and string and meta_bool and expr + (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *) + | CrMth of loc and string and override_flag and private_flag and expr and ctyp + (* value(!)? (mutable)? s = e *) + | CrVal of loc and string and override_flag and mutable_flag and expr (* method virtual (private)? s : t *) - | CrVir of loc and string and meta_bool and ctyp - (* value virtual (private)? s : t *) - | CrVvr of loc and string and meta_bool and ctyp + | CrVir of loc and string and private_flag and ctyp + (* value virtual (mutable)? s : t *) + | CrVvr of loc and string and mutable_flag and ctyp | CrAnt of loc and string (* $s$ *) ]; diff --git a/camlp4/Camlp4/OCamlInitSyntax.ml b/camlp4/Camlp4/OCamlInitSyntax.ml index 9d715ea08d..85f8915f29 100644 --- a/camlp4/Camlp4/OCamlInitSyntax.ml +++ b/camlp4/Camlp4/OCamlInitSyntax.ml @@ -87,6 +87,7 @@ module Make (Ast : Sig.Camlp4Ast) value ctyp = Gram.Entry.mk "ctyp"; value cvalue_binding = Gram.Entry.mk "cvalue_binding"; value direction_flag = Gram.Entry.mk "direction_flag"; + value direction_flag_quot = Gram.Entry.mk "direction_flag_quot"; value dummy = Gram.Entry.mk "dummy"; value entry_eoi = Gram.Entry.mk "entry_eoi"; value eq_expr = Gram.Entry.mk "eq_expr"; @@ -133,16 +134,23 @@ module Make (Ast : Sig.Camlp4Ast) value opt_class_structure = Gram.Entry.mk "opt_class_structure"; value opt_comma_ctyp = Gram.Entry.mk "opt_comma_ctyp"; value opt_dot_dot = Gram.Entry.mk "opt_dot_dot"; + value row_var_flag_quot = Gram.Entry.mk "row_var_flag_quot"; value opt_eq_ctyp = Gram.Entry.mk "opt_eq_ctyp"; value opt_expr = Gram.Entry.mk "opt_expr"; value opt_meth_list = Gram.Entry.mk "opt_meth_list"; value opt_mutable = Gram.Entry.mk "opt_mutable"; + value mutable_flag_quot = Gram.Entry.mk "mutable_flag_quot"; value opt_polyt = Gram.Entry.mk "opt_polyt"; value opt_private = Gram.Entry.mk "opt_private"; + value private_flag_quot = Gram.Entry.mk "private_flag_quot"; value opt_rec = Gram.Entry.mk "opt_rec"; + value rec_flag_quot = Gram.Entry.mk "rec_flag_quot"; value opt_sig_items = Gram.Entry.mk "opt_sig_items"; value opt_str_items = Gram.Entry.mk "opt_str_items"; value opt_virtual = Gram.Entry.mk "opt_virtual"; + value virtual_flag_quot = Gram.Entry.mk "virtual_flag_quot"; + value opt_override = Gram.Entry.mk "opt_override"; + value override_flag_quot = Gram.Entry.mk "override_flag_quot"; value opt_when_expr = Gram.Entry.mk "opt_when_expr"; value patt = Gram.Entry.mk "patt"; value patt_as_patt_opt = Gram.Entry.mk "patt_as_patt_opt"; diff --git a/camlp4/Camlp4/Printers/OCaml.ml b/camlp4/Camlp4/Printers/OCaml.ml index ce4ee772d9..dc48882e49 100644 --- a/camlp4/Camlp4/Printers/OCaml.ml +++ b/camlp4/Camlp4/Printers/OCaml.ml @@ -56,7 +56,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct fun [ Ast.LNil -> [] | Ast.LCons x xs -> [x :: list_of_meta_list xs] - | Ast.LAnt x -> assert False ]; + | Ast.LAnt _ -> assert False ]; value meta_list elt sep f mxs = let xs = list_of_meta_list mxs in @@ -135,7 +135,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct let (pl, e) = expr_fun_args e in ([`patt p :: pl], e) else ([], ge) - | Ast.ExFUN _ i e -> + | <:expr< fun (type $i$) -> $e$ >> -> let (pl, e) = expr_fun_args e in ([`newtype i :: pl], e) | ge -> ([], ge) ]; @@ -169,13 +169,14 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct method reset = {< pipe = False; semi = False >}; value semisep : sep = ";;"; - value andsep : sep = "@]@ @[<2>and@ "; - value value_val = "val"; - value value_let = "let"; value mode = if comments then `comments else `no_comments; value curry_constr = init_curry_constr; value var_conversion = False; + method andsep : sep = "@]@ @[<2>and@ "; + method value_val = "val"; + method value_let = "let"; + method semisep = semisep; method set_semisep s = {< semisep = s >}; method set_comments b = {< mode = if b then `comments else `no_comments >}; @@ -232,15 +233,31 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<1>%a,@ %a@]" o#class_params t1 o#class_params t2 | x -> o#ctyp f x ]; - method mutable_flag f b = o#flag f b "mutable"; - method rec_flag f b = o#flag f b "rec"; - method virtual_flag f b = o#flag f b "virtual"; - method private_flag f b = o#flag f b "private"; - method flag f b n = - match b with - [ Ast.BTrue -> do { pp_print_string f n; pp f "@ " } - | Ast.BFalse -> () - | Ast.BAnt s -> o#anti f s ]; + method override_flag f = + fun + [ Ast.OvOverride -> pp f "!" + | Ast.OvNil -> () + | Ast.OvAnt s -> o#anti f s ]; + + method mutable_flag f = fun + [ Ast.MuMutable -> pp f "mutable@ " + | Ast.MuNil -> () + | Ast.MuAnt s -> o#anti f s ]; + + method rec_flag f = fun + [ Ast.ReRecursive -> pp f "rec@ " + | Ast.ReNil -> () + | Ast.ReAnt s -> o#anti f s ]; + + method virtual_flag f = fun + [ Ast.ViVirtual -> pp f "virtual@ " + | Ast.ViNil -> () + | Ast.ViAnt s -> o#anti f s ]; + + method private_flag f = fun + [ Ast.PrPrivate -> pp f "private@ " + | Ast.PrNil -> () + | Ast.PrAnt s -> o#anti f s ]; method anti f s = pp f "$%s$" s; @@ -283,7 +300,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct match bi with [ <:binding<>> -> () | <:binding< $b1$ and $b2$ >> -> - do { o#binding f b1; pp f andsep; o#binding f b2 } + do { o#binding f b1; pp f o#andsep; o#binding f b2 } | <:binding< $p$ = $e$ >> -> let (pl, e) = match p with @@ -383,7 +400,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<2>%a :@ %a@]" o#var s o#module_type mt | <:module_binding< $mb1$ and $mb2$ >> -> do { o#module_rec_binding f mb1; - pp f andsep; + pp f o#andsep; o#module_rec_binding f mb2 } | <:module_binding< $anti:s$ >> -> o#anti f s ]; @@ -441,7 +458,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | [_] -> pp f "@[<2>%a@ %a@]" o#apply_expr x o#apply_expr y | al -> pp f "@[<2>%a@ (%a)@]" o#apply_expr a - (list o#under_pipe#expr ",@ ") al ] + (* The #apply_expr below may put too much parens. + However using #expr would be wrong: PR#5056. *) + (list o#under_pipe#apply_expr ",@ ") al ] else pp f "@[<2>%a@]" (list o#apply_expr "@ ") [a::al] | <:expr< $e1$.val := $e2$ >> -> pp f "@[<2>%a :=@ %a@]" o#dot_expr e1 o#expr e2 @@ -451,7 +470,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<2>fun@ _@ ->@ %a@]" o#raise_match_failure loc | <:expr< fun $p$ -> $e$ >> when is_irrefut_patt p -> pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`patt p, e) - | Ast.ExFUN _ i e -> + | <:expr< fun (type $i$) -> $e$ >> -> pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`newtype i, e) | <:expr< fun [ $a$ ] >> -> pp f "@[<hv0>function%a@]" o#match_case a @@ -563,7 +582,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | <:expr< $_$ $_$ >> | <:expr< $_$ . $_$ >> | <:expr< $_$ . ( $_$ ) >> | <:expr< $_$ . [ $_$ ] >> | <:expr< $_$ := $_$ >> | <:expr< $_$ # $_$ >> | - <:expr< fun [ $_$ ] >> | Ast.ExFUN _ _ _ | <:expr< match $_$ with [ $_$ ] >> | + <:expr< fun [ $_$ ] >> | <:expr< fun (type $_$) -> $_$ >> | <:expr< match $_$ with [ $_$ ] >> | <:expr< try $_$ with [ $_$ ] >> | <:expr< if $_$ then $_$ else $_$ >> | <:expr< let $rec:_$ $_$ in $_$ >> | @@ -576,9 +595,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct method direction_flag f b = match b with - [ Ast.BTrue -> pp_print_string f "to" - | Ast.BFalse -> pp_print_string f "downto" - | Ast.BAnt s -> o#anti f s ]; + [ Ast.DiTo -> pp_print_string f "to" + | Ast.DiDownto -> pp_print_string f "downto" + | Ast.DiAnt s -> o#anti f s ]; method patt f p = let () = o#node f p Ast.loc_of_patt in match p with @@ -694,8 +713,6 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct (list o#simple_ctyp "@ ") [a::al] | <:ctyp< [ > $t$ ] >> -> pp f "@[<2>[>@ %a@]@,]" o#sum_type t | <:ctyp< # $i$ >> -> pp f "@[<2>#%a@]" o#ident i - | <:ctyp< $t1$ == $t2$ >> -> - pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#simple_ctyp t2 | <:ctyp< `$s$ >> -> pp f "`%a" o#var s | <:ctyp< $t1$ * $t2$ >> -> pp f "%a *@ %a" o#simple_ctyp t1 o#simple_ctyp t2 | <:ctyp<>> -> assert False @@ -721,6 +738,8 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | <:ctyp< $t1$ and $t2$ >> -> pp f "%a@ and %a" o#ctyp t1 o#ctyp t2 | <:ctyp< mutable $t$ >> -> pp f "@[<2>mutable@ %a@]" o#ctyp t | <:ctyp< $t1$ & $t2$ >> -> pp f "%a@ &@ %a" o#ctyp t1 o#ctyp t2 + | <:ctyp< $t1$ == $t2$ >> -> + pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#ctyp t2 | Ast.TyDcl _ tn tp te cl -> do { pp f "@[<2>%a%a@]" o#type_params tp o#var tn; match te with @@ -787,7 +806,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep | <:sig_item< value $s$ : $t$ >> -> pp f "@[<2>%s %a :@ %a%(%)@]" - value_val o#var s o#ctyp t semisep + o#value_val o#var s o#ctyp t semisep | <:sig_item< include $mt$ >> -> pp f "@[<2>include@ %a%(%)@]" o#module_type mt semisep | <:sig_item< class type $ct$ >> -> @@ -839,7 +858,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | <:str_item< type $t$ >> -> pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep | <:str_item< value $rec:r$ $bi$ >> -> - pp f "@[<2>%s %a%a%(%)@]" value_let o#rec_flag r o#binding bi semisep + pp f "@[<2>%s %a%a%(%)@]" o#value_let o#rec_flag r o#binding bi semisep | <:str_item< $exp:e$ >> -> pp f "@[<2>let _ =@ %a%(%)@]" o#expr e semisep | <:str_item< include $me$ >> -> @@ -882,7 +901,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | <:with_constr< module $i1$ := $i2$ >> -> pp f "@[<2>module@ %a :=@ %a@]" o#ident i1 o#ident i2 | <:with_constr< $wc1$ and $wc2$ >> -> - do { o#with_constraint f wc1; pp f andsep; o#with_constraint f wc2 } + do { o#with_constraint f wc1; pp f o#andsep; o#with_constraint f wc2 } | <:with_constr< $anti:s$ >> -> o#anti f s ]; method module_expr f me = @@ -909,9 +928,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | <:module_expr< ( $me$ : $mt$ ) >> -> pp f "@[<1>(%a :@ %a)@]" o#module_expr me o#module_type mt | <:module_expr< (value $e$ : $mt$ ) >> -> - pp f "@[<1>(%s %a :@ %a)@]" value_val o#expr e o#module_type mt + pp f "@[<1>(%s %a :@ %a)@]" o#value_val o#expr e o#module_type mt | <:module_expr< (value $e$ ) >> -> - pp f "@[<1>(%s %a)@]" value_val o#expr e + pp f "@[<1>(%s %a)@]" o#value_val o#expr e ]; method class_expr f ce = @@ -941,7 +960,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<1>(%a :@ %a)@]" o#class_expr ce o#class_type ct | <:class_expr< $anti:s$ >> -> o#anti f s | <:class_expr< $ce1$ and $ce2$ >> -> - do { o#class_expr f ce1; pp f andsep; o#class_expr f ce2 } + do { o#class_expr f ce1; pp f o#andsep; o#class_expr f ce2 } | <:class_expr< $ce1$ = fun $p$ -> $ce2$ >> when is_irrefut_patt p -> pp f "@[<2>%a@ %a" o#class_expr ce1 o#patt_class_expr_fun_args (p, ce2) @@ -969,7 +988,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct o#ctyp t o#class_sig_item csg | <:class_type< $anti:s$ >> -> o#anti f s | <:class_type< $ct1$ and $ct2$ >> -> - do { o#class_type f ct1; pp f andsep; o#class_type f ct2 } + do { o#class_type f ct1; pp f o#andsep; o#class_type f ct2 } | <:class_type< $ct1$ : $ct2$ >> -> pp f "%a :@ %a" o#class_type ct1 o#class_type ct2 | <:class_type< $ct1$ = $ct2$ >> -> @@ -997,7 +1016,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct o#private_flag pr o#var s o#ctyp t semisep | <:class_sig_item< value $mutable:mu$ $virtual:vi$ $s$ : $t$ >> -> pp f "@[<2>%s %a%a%a :@ %a%(%)@]" - value_val o#mutable_flag mu o#virtual_flag vi o#var s o#ctyp t + o#value_val o#mutable_flag mu o#virtual_flag vi o#var s o#ctyp t semisep | <:class_sig_item< $anti:s$ >> -> pp f "%a%(%)" o#anti s semisep ]; @@ -1013,27 +1032,27 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct do { o#class_str_item f cst1; cut f; o#class_str_item f cst2 } | <:class_str_item< constraint $t1$ = $t2$ >> -> pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1 o#ctyp t2 semisep - | <:class_str_item< inherit $ce$ >> -> - pp f "@[<2>inherit@ %a%(%)@]" o#class_expr ce semisep - | <:class_str_item< inherit $ce$ as $lid:s$ >> -> - pp f "@[<2>inherit@ %a as@ %a%(%)@]" o#class_expr ce o#var s semisep + | <:class_str_item< inherit $override:ov$ $ce$ >> -> + pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov o#class_expr ce semisep + | <:class_str_item< inherit $override:ov$ $ce$ as $lid:s$ >> -> + pp f "@[<2>inherit%a@ %a as@ %a%(%)@]" o#override_flag ov o#class_expr ce o#var s semisep | <:class_str_item< initializer $e$ >> -> pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep - | <:class_str_item< method $private:pr$ $s$ = $e$ >> -> - pp f "@[<2>method %a%a =@ %a%(%)@]" - o#private_flag pr o#var s o#expr e semisep - | <:class_str_item< method $private:pr$ $s$ : $t$ = $e$ >> -> - pp f "@[<2>method %a%a :@ %a =@ %a%(%)@]" - o#private_flag pr o#var s o#ctyp t o#expr e semisep + | <:class_str_item< method $override:ov$ $private:pr$ $s$ = $e$ >> -> + pp f "@[<2>method%a %a%a =@ %a%(%)@]" + o#override_flag ov o#private_flag pr o#var s o#expr e semisep + | <:class_str_item< method $override:ov$ $private:pr$ $s$ : $t$ = $e$ >> -> + pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]" + o#override_flag ov o#private_flag pr o#var s o#ctyp t o#expr e semisep | <:class_str_item< method virtual $private:pr$ $s$ : $t$ >> -> pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]" o#private_flag pr o#var s o#ctyp t semisep | <:class_str_item< value virtual $mutable:mu$ $s$ : $t$ >> -> pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" - value_val o#mutable_flag mu o#var s o#ctyp t semisep - | <:class_str_item< value $mutable:mu$ $s$ = $e$ >> -> - pp f "@[<2>%s %a%a =@ %a%(%)@]" - value_val o#mutable_flag mu o#var s o#expr e semisep + o#value_val o#mutable_flag mu o#var s o#ctyp t semisep + | <:class_str_item< value $override:ov$ $mutable:mu$ $s$ = $e$ >> -> + pp f "@[<2>%s%a %a%a =@ %a%(%)@]" + o#value_val o#override_flag ov o#mutable_flag mu o#var s o#expr e semisep | <:class_str_item< $anti:s$ >> -> pp f "%a%(%)" o#anti s semisep ]; diff --git a/camlp4/Camlp4/Printers/OCaml.mli b/camlp4/Camlp4/Printers/OCaml.mli index 07cb27d995..c09261b96f 100644 --- a/camlp4/Camlp4/Printers/OCaml.mli +++ b/camlp4/Camlp4/Printers/OCaml.mli @@ -68,8 +68,9 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig value pipe : bool; value semi : bool; value semisep : sep; - value value_val : string; - value value_let : string; + method value_val : string; + method value_let : string; + method andsep : sep; method anti : formatter -> string -> unit; method class_declaration : formatter -> Ast.class_expr -> unit; @@ -113,10 +114,10 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig option Ast.module_type); method module_rec_binding : formatter -> Ast.module_binding -> unit; method module_type : formatter -> Ast.module_type -> unit; - method mutable_flag : formatter -> Ast.meta_bool -> unit; - method direction_flag : formatter -> Ast.meta_bool -> unit; - method rec_flag : formatter -> Ast.meta_bool -> unit; - method flag : formatter -> Ast.meta_bool -> string -> unit; + method override_flag : formatter -> Ast.override_flag -> unit; + method mutable_flag : formatter -> Ast.mutable_flag -> unit; + method direction_flag : formatter -> Ast.direction_flag -> unit; + method rec_flag : formatter -> Ast.rec_flag -> unit; method node : formatter -> 'b -> ('b -> Loc.t) -> unit; method patt : formatter -> Ast.patt -> unit; method patt1 : formatter -> Ast.patt -> unit; @@ -130,8 +131,8 @@ module Make (Syntax : Sig.Camlp4Syntax) : sig method patt_class_expr_fun_args : formatter -> (Ast.patt * Ast.class_expr) -> unit; method print_comments_before : Loc.t -> formatter -> unit; - method private_flag : formatter -> Ast.meta_bool -> unit; - method virtual_flag : formatter -> Ast.meta_bool -> unit; + method private_flag : formatter -> Ast.private_flag -> unit; + method virtual_flag : formatter -> Ast.virtual_flag -> unit; method quoted_string : formatter -> string -> unit; method raise_match_failure : formatter -> Loc.t -> unit; method reset : 'a; diff --git a/camlp4/Camlp4/Printers/OCamlr.ml b/camlp4/Camlp4/Printers/OCamlr.ml index 307f77c41a..52590ae7b7 100644 --- a/camlp4/Camlp4/Printers/OCamlr.ml +++ b/camlp4/Camlp4/Printers/OCamlr.ml @@ -43,14 +43,14 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct object (o) inherit PP_o.printer ~curry_constr:init_curry_constr ~comments () as super; - value semisep : sep = ";"; - value andsep : sep = "@]@ @[<2>and@ "; - value value_val = "value"; - value value_let = "value"; + value! semisep : sep = ";"; value mode = if comments then `comments else `no_comments; value curry_constr = init_curry_constr; value first_match_case = True; + method andsep : sep = "@]@ @[<2>and@ "; + method value_val = "value"; + method value_let = "value"; method under_pipe = o; method under_semi = o; method reset_semi = o; @@ -164,7 +164,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct pp f "@[<2>%a@ :=@ %a@]" o#dot_expr e1 o#expr e2 | <:expr< fun $p$ -> $e$ >> when Ast.is_irrefut_patt p -> pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`patt p, e) - | Ast.ExFUN _ i e -> + | <:expr< fun (type $i$) -> $e$ >> -> pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (`newtype i, e) | <:expr< fun [ $a$ ] >> -> pp f "@[<hv0>fun%a@]" o#match_case a @@ -272,9 +272,16 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct end; value with_outfile = with_outfile; - value print = print; - value print_interf = print_interf; - value print_implem = print_implem; + + value print output_file fct = + let o = new printer () in + with_outfile output_file (fct o); + + value print_interf ?input_file:(_) ?output_file sg = + print output_file (fun o -> o#interf) sg; + + value print_implem ?input_file:(_) ?output_file st = + print output_file (fun o -> o#implem) st; end; diff --git a/camlp4/Camlp4/Sig.ml b/camlp4/Camlp4/Sig.ml index 503f05fb33..1664be75b0 100644 --- a/camlp4/Camlp4/Sig.ml +++ b/camlp4/Camlp4/Sig.ml @@ -222,6 +222,13 @@ module type Ast = sig type binding; type rec_binding; type module_binding; + type rec_flag; + type direction_flag; + type mutable_flag; + type private_flag; + type virtual_flag; + type row_var_flag; + type override_flag; (** {6 Location accessors} *) @@ -286,6 +293,13 @@ module type Ast = sig method module_binding : module_binding -> module_binding; method match_case : match_case -> match_case; method ident : ident -> ident; + method override_flag : override_flag -> override_flag; + method mutable_flag : mutable_flag -> mutable_flag; + method private_flag : private_flag -> private_flag; + method virtual_flag : virtual_flag -> virtual_flag; + method direction_flag : direction_flag -> direction_flag; + method rec_flag : rec_flag -> rec_flag; + method row_var_flag : row_var_flag -> row_var_flag; method unknown : ! 'a. 'a -> 'a; end; @@ -315,6 +329,13 @@ module type Ast = sig method module_binding : module_binding -> 'self_type; method match_case : match_case -> 'self_type; method ident : ident -> 'self_type; + method rec_flag : rec_flag -> 'self_type; + method direction_flag : direction_flag -> 'self_type; + method mutable_flag : mutable_flag -> 'self_type; + method private_flag : private_flag -> 'self_type; + method virtual_flag : virtual_flag -> 'self_type; + method row_var_flag : row_var_flag -> 'self_type; + method override_flag : override_flag -> 'self_type; method unknown : ! 'a. 'a -> 'self_type; end; @@ -425,6 +446,13 @@ module type Camlp4Ast = sig value meta_sig_item : loc -> sig_item -> expr; value meta_str_item : loc -> str_item -> expr; value meta_with_constr : loc -> with_constr -> expr; + value meta_rec_flag : loc -> rec_flag -> expr; + value meta_mutable_flag : loc -> mutable_flag -> expr; + value meta_virtual_flag : loc -> virtual_flag -> expr; + value meta_private_flag : loc -> private_flag -> expr; + value meta_row_var_flag : loc -> row_var_flag -> expr; + value meta_override_flag : loc -> override_flag -> expr; + value meta_direction_flag : loc -> direction_flag -> expr; end; module Patt : sig value meta_string : loc -> string -> patt; @@ -450,6 +478,13 @@ module type Camlp4Ast = sig value meta_sig_item : loc -> sig_item -> patt; value meta_str_item : loc -> str_item -> patt; value meta_with_constr : loc -> with_constr -> patt; + value meta_rec_flag : loc -> rec_flag -> patt; + value meta_mutable_flag : loc -> mutable_flag -> patt; + value meta_virtual_flag : loc -> virtual_flag -> patt; + value meta_private_flag : loc -> private_flag -> patt; + value meta_row_var_flag : loc -> row_var_flag -> patt; + value meta_override_flag : loc -> override_flag -> patt; + value meta_direction_flag : loc -> direction_flag -> patt; end; end; end; @@ -480,6 +515,13 @@ module type Camlp4Ast = sig method module_binding : module_binding -> module_binding; method match_case : match_case -> match_case; method ident : ident -> ident; + method mutable_flag : mutable_flag -> mutable_flag; + method private_flag : private_flag -> private_flag; + method virtual_flag : virtual_flag -> virtual_flag; + method direction_flag : direction_flag -> direction_flag; + method rec_flag : rec_flag -> rec_flag; + method row_var_flag : row_var_flag -> row_var_flag; + method override_flag : override_flag -> override_flag; method unknown : ! 'a. 'a -> 'a; end; @@ -509,6 +551,13 @@ module type Camlp4Ast = sig method module_binding : module_binding -> 'self_type; method match_case : match_case -> 'self_type; method ident : ident -> 'self_type; + method rec_flag : rec_flag -> 'self_type; + method direction_flag : direction_flag -> 'self_type; + method mutable_flag : mutable_flag -> 'self_type; + method private_flag : private_flag -> 'self_type; + method virtual_flag : virtual_flag -> 'self_type; + method row_var_flag : row_var_flag -> 'self_type; + method override_flag : override_flag -> 'self_type; method unknown : ! 'a. 'a -> 'self_type; end; @@ -612,6 +661,13 @@ module Camlp4AstToAst (M : Camlp4Ast) : Ast and type module_binding = M.module_binding and type match_case = M.match_case and type ident = M.ident + and type rec_flag = M.rec_flag + and type direction_flag = M.direction_flag + and type mutable_flag = M.mutable_flag + and type private_flag = M.private_flag + and type virtual_flag = M.virtual_flag + and type row_var_flag = M.row_var_flag + and type override_flag = M.override_flag = M; (** Concrete definition of Camlp4 ASTs abstracted from locations. @@ -909,6 +965,10 @@ module Grammar = struct type tree; type token_pattern = ((Token.t -> bool) * string); + type token_info; + type token_stream = Stream.t (Token.t * token_info); + + value token_location : token_info -> Loc.t; type symbol = [ Smeta of string and list symbol and Action.t @@ -919,6 +979,7 @@ module Grammar = struct | Slist1 of symbol | Slist1sep of symbol and symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -961,11 +1022,11 @@ module Grammar = struct (** Make a new entry from a name and an hand made token parser. *) value of_parser : - gram -> string -> (Stream.t (Token.t * Loc.t) -> 'a) -> t 'a; + gram -> string -> (token_stream -> 'a) -> t 'a; (** Clear the entry and setup this parser instead. *) value setup_parser : - t 'a -> (Stream.t (Token.t * Loc.t) -> 'a) -> unit; + t 'a -> (token_stream -> 'a) -> unit; (** Get the entry name. *) value name : t 'a -> string; @@ -1000,16 +1061,13 @@ module Grammar = struct (* value sfold1sep : ('a -> 'b -> 'b) -> 'b -> foldsep _ 'a 'b; *) (** Use the lexer to produce a non filtered token stream from a char stream. *) - value lex : gram -> Loc.t -> Stream.t char - -> not_filtered (Stream.t (Token.t * Loc.t)); + value lex : gram -> Loc.t -> Stream.t char -> not_filtered (Stream.t (Token.t * Loc.t)); (** Token stream from string. *) - value lex_string : gram -> Loc.t -> string - -> not_filtered (Stream.t (Token.t * Loc.t)); + value lex_string : gram -> Loc.t -> string -> not_filtered (Stream.t (Token.t * Loc.t)); (** Filter a token stream using the {!Token.Filter} module *) - value filter : gram -> not_filtered (Stream.t (Token.t * Loc.t)) - -> Stream.t (Token.t * Loc.t); + value filter : gram -> not_filtered (Stream.t (Token.t * Loc.t)) -> token_stream; (** Lex, filter and parse a stream of character. *) value parse : Entry.t 'a -> Loc.t -> Stream.t char -> 'a; @@ -1023,7 +1081,7 @@ module Grammar = struct (** Parse a token stream that is already filtered. *) value parse_tokens_after_filter : - Entry.t 'a -> Stream.t (Token.t * Loc.t) -> 'a; + Entry.t 'a -> token_stream -> 'a; end; @@ -1043,11 +1101,11 @@ module Grammar = struct (** Make a new entry from a name and an hand made token parser. *) value of_parser : - string -> (Stream.t (Token.t * Loc.t) -> 'a) -> t 'a; + string -> (token_stream -> 'a) -> t 'a; (** Clear the entry and setup this parser instead. *) value setup_parser : - t 'a -> (Stream.t (Token.t * Loc.t) -> 'a) -> unit; + t 'a -> (token_stream -> 'a) -> unit; (** Get the entry name. *) value name : t 'a -> string; @@ -1081,15 +1139,13 @@ module Grammar = struct (* value sfold1sep : ('a -> 'b -> 'b) -> 'b -> foldsep _ 'a 'b; *) (** Use the lexer to produce a non filtered token stream from a char stream. *) - value lex : Loc.t -> Stream.t char - -> not_filtered (Stream.t (Token.t * Loc.t)); + value lex : Loc.t -> Stream.t char -> not_filtered (Stream.t (Token.t * Loc.t)); + (** Token stream from string. *) - value lex_string : Loc.t -> string - -> not_filtered (Stream.t (Token.t * Loc.t)); + value lex_string : Loc.t -> string -> not_filtered (Stream.t (Token.t * Loc.t)); (** Filter a token stream using the {!Token.Filter} module *) - value filter : not_filtered (Stream.t (Token.t * Loc.t)) - -> Stream.t (Token.t * Loc.t); + value filter : not_filtered (Stream.t (Token.t * Loc.t)) -> token_stream; (** Lex, filter and parse a stream of character. *) value parse : Entry.t 'a -> Loc.t -> Stream.t char -> 'a; @@ -1103,7 +1159,7 @@ module Grammar = struct (** Parse a token stream that is already filtered. *) value parse_tokens_after_filter : - Entry.t 'a -> Stream.t (Token.t * Loc.t) -> 'a; + Entry.t 'a -> token_stream -> 'a; end; @@ -1261,7 +1317,8 @@ module type Camlp4Syntax = sig value ctyp : Gram.Entry.t Ast.ctyp; value ctyp_quot : Gram.Entry.t Ast.ctyp; value cvalue_binding : Gram.Entry.t Ast.expr; - value direction_flag : Gram.Entry.t Ast.meta_bool; + value direction_flag : Gram.Entry.t Ast.direction_flag; + value direction_flag_quot : Gram.Entry.t Ast.direction_flag; value dummy : Gram.Entry.t unit; value eq_expr : Gram.Entry.t (string -> Ast.patt -> Ast.patt); value expr : Gram.Entry.t Ast.expr; @@ -1287,7 +1344,7 @@ module type Camlp4Syntax = sig value label_patt_list : Gram.Entry.t Ast.patt; value labeled_ipatt : Gram.Entry.t Ast.patt; value let_binding : Gram.Entry.t Ast.binding; - value meth_list : Gram.Entry.t (Ast.ctyp * Ast.meta_bool); + value meth_list : Gram.Entry.t (Ast.ctyp * Ast.row_var_flag); value meth_decl : Gram.Entry.t Ast.ctyp; value module_binding : Gram.Entry.t Ast.module_binding; value module_binding0 : Gram.Entry.t Ast.module_expr; @@ -1307,15 +1364,22 @@ module type Camlp4Syntax = sig value opt_class_self_patt : Gram.Entry.t Ast.patt; value opt_class_self_type : Gram.Entry.t Ast.ctyp; value opt_comma_ctyp : Gram.Entry.t Ast.ctyp; - value opt_dot_dot : Gram.Entry.t Ast.meta_bool; + value opt_dot_dot : Gram.Entry.t Ast.row_var_flag; + value row_var_flag_quot : Gram.Entry.t Ast.row_var_flag; value opt_eq_ctyp : Gram.Entry.t Ast.ctyp; value opt_expr : Gram.Entry.t Ast.expr; value opt_meth_list : Gram.Entry.t Ast.ctyp; - value opt_mutable : Gram.Entry.t Ast.meta_bool; + value opt_mutable : Gram.Entry.t Ast.mutable_flag; + value mutable_flag_quot : Gram.Entry.t Ast.mutable_flag; + value opt_override : Gram.Entry.t Ast.override_flag; + value override_flag_quot : Gram.Entry.t Ast.override_flag; value opt_polyt : Gram.Entry.t Ast.ctyp; - value opt_private : Gram.Entry.t Ast.meta_bool; - value opt_rec : Gram.Entry.t Ast.meta_bool; - value opt_virtual : Gram.Entry.t Ast.meta_bool; + value opt_private : Gram.Entry.t Ast.private_flag; + value private_flag_quot : Gram.Entry.t Ast.private_flag; + value opt_rec : Gram.Entry.t Ast.rec_flag; + value rec_flag_quot : Gram.Entry.t Ast.rec_flag; + value opt_virtual : Gram.Entry.t Ast.virtual_flag; + value virtual_flag_quot : Gram.Entry.t Ast.virtual_flag; value opt_when_expr : Gram.Entry.t Ast.expr; value patt : Gram.Entry.t Ast.patt; value patt_as_patt_opt : Gram.Entry.t Ast.patt; diff --git a/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml b/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml index 11ff3963aa..020a7e0c2e 100644 --- a/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml +++ b/camlp4/Camlp4/Struct/Camlp4Ast2OCamlAst.ml @@ -74,13 +74,15 @@ module Make (Ast : Sig.Camlp4Ast) = struct | _ -> { (t) with ptyp_desc = Ptyp_poly [] t } ] ; - value mb2b = - fun - [ Ast.BTrue -> True - | Ast.BFalse -> False - | Ast.BAnt _ -> assert False ]; + value mkvirtual = fun + [ <:virtual_flag< virtual >> -> Virtual + | <:virtual_flag<>> -> Concrete + | _ -> assert False ]; - value mkvirtual m = if mb2b m then Virtual else Concrete; + value mkdirection = fun + [ <:direction_flag< to >> -> Upto + | <:direction_flag< downto >> -> Downto + | _ -> assert False ]; value lident s = Lident s; value ldot l s = Ldot l s; @@ -110,9 +112,9 @@ module Make (Ast : Sig.Camlp4Ast) = struct value mkrf = fun - [ Ast.BTrue -> Recursive - | Ast.BFalse -> Nonrecursive - | Ast.BAnt _ -> assert False ]; + [ <:rec_flag< rec >> -> Recursive + | <:rec_flag<>> -> Nonrecursive + | _ -> assert False ]; value mkli s = loop lident where rec loop f = @@ -259,7 +261,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct | TyAnt loc _ -> error loc "antiquotation not allowed here" | TyOfAmp _ _ _ |TyAmp _ _ _ |TySta _ _ _ | TyCom _ _ _ |TyVrn _ _ |TyQuM _ _ |TyQuP _ _ |TyDcl _ _ _ _ _ | - TyObj _ _ (BAnt _) | TyNil _ | TyTup _ _ -> + TyObj _ _ (RvAnt _) | TyNil _ | TyTup _ _ -> assert False ] and row_field = fun [ <:ctyp<>> -> [] @@ -304,7 +306,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct ptype_variance = variance} ; value mkprivate' m = if m then Private else Public; - value mkprivate m = mkprivate' (mb2b m); + value mkprivate = fun + [ <:private_flag< private >> -> Private + | <:private_flag<>> -> Public + | _ -> assert False ]; value mktrecord = fun [ <:ctyp@loc< $lid:s$ : mutable $t$ >> -> @@ -351,7 +356,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct | Ast.LCons x xs -> [x :: list_of_meta_list xs] | Ast.LAnt _ -> assert False ]; - value mkmutable m = if mb2b m then Mutable else Immutable; + value mkmutable = fun + [ <:mutable_flag< mutable >> -> Mutable + | <:mutable_flag<>> -> Immutable + | _ -> assert False ]; value paolab lab p = match (lab, p) with @@ -570,6 +578,12 @@ module Make (Ast : Sig.Camlp4Ast) = struct | e -> [(loc_of_expr e, [], e) :: l] ] ; + value override_flag loc = + fun [ <:override_flag< ! >> -> Override + | <:override_flag<>> -> Fresh + | _ -> error loc "antiquotation not allowed here" + ]; + value list_of_opt_ctyp ot acc = match ot with [ <:ctyp<>> -> acc @@ -668,8 +682,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct | ExFlo loc s -> mkexp loc (Pexp_constant (Const_float (remove_underscores s))) | ExFor loc i e1 e2 df el -> let e3 = ExSeq loc el in - let df = if mb2b df then Upto else Downto in - mkexp loc (Pexp_for i (expr e1) (expr e2) df (expr e3)) + mkexp loc (Pexp_for i (expr e1) (expr e2) (mkdirection df) (expr e3)) | <:expr@loc< fun [ $PaLab _ lab po$ when $w$ -> $e$ ] >> -> mkexp loc (Pexp_function lab None @@ -943,7 +956,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct | <:str_item@loc< $anti:_$ >> -> error loc "antiquotation in str_item" ] and class_type = fun - [ CtCon loc Ast.BFalse id tl -> + [ CtCon loc ViNil id tl -> mkcty loc (Pcty_constr (long_class_ident id) (List.map ctyp (list_of_opt_ctyp tl []))) | CtFun loc (TyLab _ lab t) ct -> @@ -973,7 +986,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct [ <:ctyp<>> -> (loc, ([], [])) | t -> (loc_of_ctyp t, List.split (class_parameters t [])) ] in - {pci_virt = if mb2b vir then Virtual else Concrete; + {pci_virt = mkvirtual vir; pci_params = (params, mkloc loc_params); pci_name = name; pci_expr = class_expr ce; @@ -989,7 +1002,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct [ <:ctyp<>> -> (loc, ([], [])) | t -> (loc_of_ctyp t, List.split (class_parameters t [])) ] in - {pci_virt = if mb2b vir then Virtual else Concrete; + {pci_virt = mkvirtual vir; pci_params = (params, mkloc loc_params); pci_name = name; pci_expr = class_type ct; @@ -1017,7 +1030,7 @@ module Make (Ast : Sig.Camlp4Ast) = struct let (ce, el) = class_expr_fa [] c in let el = List.map label_expr el in mkpcl loc (Pcl_apply (class_expr ce) el) - | CeCon loc Ast.BFalse id tl -> + | CeCon loc ViNil id tl -> mkpcl loc (Pcl_constr (long_class_ident id) (List.map ctyp (list_of_opt_ctyp tl []))) | CeFun loc (PaLab _ lab po) ce -> @@ -1052,22 +1065,23 @@ module Make (Ast : Sig.Camlp4Ast) = struct | CrCtr loc t1 t2 -> [Pcf_cstr (ctyp t1, ctyp t2, mkloc loc) :: l] | <:class_str_item< $cst1$; $cst2$ >> -> class_str_item cst1 (class_str_item cst2 l) - | CrInh _ ce "" -> [Pcf_inher Fresh (class_expr ce) None :: l] - | CrInh _ ce pb -> [Pcf_inher Fresh (class_expr ce) (Some pb) :: l] + | CrInh loc ov ce pb -> + let opb = if pb = "" then None else Some pb in + [Pcf_inher (override_flag loc ov) (class_expr ce) opb :: l] | CrIni _ e -> [Pcf_init (expr e) :: l] - | CrMth loc s b e t -> + | CrMth loc s ov pf e t -> let t = match t with [ <:ctyp<>> -> None | t -> Some (mkpolytype (ctyp t)) ] in let e = mkexp loc (Pexp_poly (expr e) t) in - [Pcf_meth (s, mkprivate b, Fresh, e, mkloc loc) :: l] - | CrVal loc s b e -> - [Pcf_val (s, mkmutable b, Fresh, expr e, mkloc loc) :: l] - | CrVir loc s b t -> - [Pcf_virt (s, mkprivate b, mkpolytype (ctyp t), mkloc loc) :: l] - | CrVvr loc s b t -> - [Pcf_valvirt (s, mkmutable b, ctyp t, mkloc loc) :: l] + [Pcf_meth (s, mkprivate pf, override_flag loc ov, e, mkloc loc) :: l] + | CrVal loc s ov mf e -> + [Pcf_val (s, mkmutable mf, override_flag loc ov, expr e, mkloc loc) :: l] + | CrVir loc s pf t -> + [Pcf_virt (s, mkprivate pf, mkpolytype (ctyp t), mkloc loc) :: l] + | CrVvr loc s mf t -> + [Pcf_valvirt (s, mkmutable mf, ctyp t, mkloc loc) :: l] | CrAnt _ _ -> assert False ]; value sig_item ast = sig_item ast []; diff --git a/camlp4/Camlp4/Struct/FreeVars.ml b/camlp4/Camlp4/Struct/FreeVars.ml index 7ce12e24d9..69e9030367 100644 --- a/camlp4/Camlp4/Struct/FreeVars.ml +++ b/camlp4/Camlp4/Struct/FreeVars.ml @@ -106,10 +106,10 @@ module Make (Ast : Sig.Camlp4Ast) = struct method class_str_item = fun - [ <:class_str_item< inherit $_$ >> as cst -> super#class_str_item cst - | <:class_str_item< inherit $ce$ as $s$ >> -> + [ <:class_str_item< inherit $override:_$ $_$ >> as cst -> super#class_str_item cst + | <:class_str_item< inherit $override:_$ $ce$ as $s$ >> -> (o#class_expr ce)#add_atom s - | <:class_str_item< value $mutable:_$ $s$ = $e$ >> -> + | <:class_str_item< value $override:_$ $mutable:_$ $s$ = $e$ >> -> (o#expr e)#add_atom s | <:class_str_item< value virtual $mutable:_$ $s$ : $t$ >> -> (o#ctyp t)#add_atom s diff --git a/camlp4/Camlp4/Struct/Grammar.mlpack b/camlp4/Camlp4/Struct/Grammar.mlpack index 23c342940c..46fb34f74b 100644 --- a/camlp4/Camlp4/Struct/Grammar.mlpack +++ b/camlp4/Camlp4/Struct/Grammar.mlpack @@ -1,4 +1,3 @@ -Context Delete Dynamic Entry diff --git a/camlp4/Camlp4/Struct/Grammar/Context.ml b/camlp4/Camlp4/Struct/Grammar/Context.ml deleted file mode 100644 index b92c2915bc..0000000000 --- a/camlp4/Camlp4/Struct/Grammar/Context.ml +++ /dev/null @@ -1,90 +0,0 @@ -(****************************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* INRIA Rocquencourt *) -(* *) -(* Copyright 2006 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License, with the special *) -(* exception on linking described in LICENSE at the top of the Objective *) -(* Caml source tree. *) -(* *) -(****************************************************************************) - -(* Authors: - * - Daniel de Rauglaudre: initial version - * - Nicolas Pouillard: refactoring - *) - -module type S = sig - module Token : Sig.Token; - open Token; - type t; - value call_with_ctx : Stream.t (Token.t * Loc.t) -> (t -> 'a) -> 'a; - value loc_bp : t -> Loc.t; - value loc_ep : t -> Loc.t; - value stream : t -> Stream.t (Token.t * Loc.t); - value peek_nth : t -> int -> option (Token.t * Loc.t); - value njunk : t -> int -> unit; - value junk : Stream.t (Token.t * Loc.t) -> unit; - value bp : Stream.t (Token.t * Loc.t) -> Loc.t; -end; - -module Make (Token : Sig.Token) : S with module Token = Token = struct - module Token = Token; - open Token; - - type t = { strm : mutable Stream.t (Token.t * Loc.t); - loc : mutable Loc.t }; - - value loc_bp c = - match Stream.peek c.strm with - [ None -> Loc.ghost - | Some (_, loc) -> loc ]; - - value loc_ep c = c.loc; - - value set_loc c = - match Stream.peek c.strm with - [ Some (_, loc) -> c.loc := loc - | None -> () ]; - - value mk strm = - match Stream.peek strm with - [ Some (_, loc) -> { strm = strm; loc = loc } - | None -> { strm = strm ; loc = Loc.ghost } ]; - - value stream c = c.strm; - - value peek_nth c n = - let list = Stream.npeek n c.strm in - let rec loop list n = - match (list, n) with - [ ([((_, loc) as x) :: _], 1) -> do { c.loc := loc; Some x } - | ([_ :: l], n) -> loop l (n - 1) - | ([], _) -> None ] - in - loop list n; - - value njunk c n = - (for i = 1 to n do Stream.junk c.strm done; - set_loc c); - - value streams = ref []; - value mk strm = - let c = mk strm in - let () = streams.val := [(strm, c) :: streams.val] in c; - value junk strm = - do { set_loc (List.assq strm streams.val); Stream.junk strm }; - value bp strm = loc_bp (List.assq strm streams.val); - - value call_with_ctx strm f = - let streams_v = streams.val in - let r = - try f (mk strm) with exc -> do { streams.val := streams_v; raise exc } - in - do { streams.val := streams_v; r } - ; - -end; diff --git a/camlp4/Camlp4/Struct/Grammar/Delete.ml b/camlp4/Camlp4/Struct/Grammar/Delete.ml index 49a45002ec..929ac2b4ea 100644 --- a/camlp4/Camlp4/Struct/Grammar/Delete.ml +++ b/camlp4/Camlp4/Struct/Grammar/Delete.ml @@ -68,11 +68,9 @@ value rec decr_keyw_use gram = fun [ Skeyword kwd -> removing gram kwd | Smeta _ sl _ -> List.iter (decr_keyw_use gram) sl - | Slist0 s -> decr_keyw_use gram s - | Slist1 s -> decr_keyw_use gram s + | Slist0 s | Slist1 s | Sopt s | Stry s -> decr_keyw_use gram s | Slist0sep s1 s2 -> do { decr_keyw_use gram s1; decr_keyw_use gram s2 } | Slist1sep s1 s2 -> do { decr_keyw_use gram s1; decr_keyw_use gram s2 } - | Sopt s -> decr_keyw_use gram s | Stree t -> decr_keyw_use_in_tree gram t | Sself | Snext | Snterm _ | Snterml _ _ | Stoken _ -> () ] and decr_keyw_use_in_tree gram = @@ -149,13 +147,13 @@ value delete_rule entry sl = do { entry.edesc := Dlevels levs; entry.estart := - fun lev c strm -> + fun lev strm -> let f = Parser.start_parser_of_entry entry in - do { entry.estart := f; f lev c strm }; + do { entry.estart := f; f lev strm }; entry.econtinue := - fun lev bp a c strm -> + fun lev bp a strm -> let f = Parser.continue_parser_of_entry entry in - do { entry.econtinue := f; f lev bp a c strm } + do { entry.econtinue := f; f lev bp a strm } } | Dparser _ -> () ] ; diff --git a/camlp4/Camlp4/Struct/Grammar/Dynamic.ml b/camlp4/Camlp4/Struct/Grammar/Dynamic.ml index 09b439706f..7889cf0712 100644 --- a/camlp4/Camlp4/Struct/Grammar/Dynamic.ml +++ b/camlp4/Camlp4/Struct/Grammar/Dynamic.ml @@ -24,7 +24,8 @@ module Make (Lexer : Sig.Lexer) module Delete = Delete.Make Structure; module Insert = Insert.Make Structure; module Entry = Entry.Make Structure; - module Fold = Fold.Make Structure; + module Fold = Fold.Make Structure; + module Tools = Tools.Make Structure; include Structure; value mk () = @@ -43,7 +44,7 @@ module Make (Lexer : Sig.Lexer) value lex_string g loc str = lex g loc (Stream.of_string str); - value filter g ts = Token.Filter.filter g.gfilter ts; + value filter g ts = Tools.keep_prev_loc (Token.Filter.filter g.gfilter ts); value parse_tokens_after_filter entry ts = Entry.parse_tokens_after_filter entry ts; diff --git a/camlp4/Camlp4/Struct/Grammar/Entry.ml b/camlp4/Camlp4/Struct/Grammar/Entry.ml index 8402672b8e..0b39b7ca6c 100644 --- a/camlp4/Camlp4/Struct/Grammar/Entry.ml +++ b/camlp4/Camlp4/Struct/Grammar/Entry.ml @@ -23,6 +23,7 @@ module Make (Structure : Structure.S) = struct module Tools = Tools.Make Structure; open Format; open Structure; + open Tools; type t 'a = internal_entry; @@ -36,25 +37,24 @@ module Make (Structure : Structure.S) = struct value mk g n = { egram = g; ename = n; - estart = Tools.empty_entry n; - econtinue _ _ _ _ = parser []; + estart = empty_entry n; + econtinue _ _ _ = parser []; edesc = Dlevels [] }; value action_parse entry ts : Action.t = - Context.call_with_ctx ts - (fun c -> - try entry.estart 0 c (Context.stream c) with - [ Stream.Failure -> - Loc.raise (Context.loc_ep c) - (Stream.Error ("illegal begin of " ^ entry.ename)) - | Loc.Exc_located _ _ as exc -> raise exc - | exc -> Loc.raise (Context.loc_ep c) exc ]); + try entry.estart 0 ts with + [ Stream.Failure -> + Loc.raise (get_prev_loc ts) + (Stream.Error ("illegal begin of " ^ entry.ename)) + | Loc.Exc_located _ _ as exc -> raise exc + | exc -> Loc.raise (get_prev_loc ts) exc ]; value lex entry loc cs = entry.egram.glexer loc cs; value lex_string entry loc str = lex entry loc (Stream.of_string str); - value filter entry ts = Token.Filter.filter (get_filter entry.egram) ts; + value filter entry ts = + keep_prev_loc (Token.Filter.filter (get_filter entry.egram) ts); value parse_tokens_after_filter entry ts = Action.get (action_parse entry ts); @@ -65,24 +65,25 @@ module Make (Structure : Structure.S) = struct value parse_string entry loc str = parse_tokens_before_filter entry (lex_string entry loc str); - value of_parser g n (p : Stream.t (Token.t * Loc.t) -> 'a) : t 'a = + value of_parser g n (p : Stream.t (Token.t * token_info) -> 'a) : t 'a = + let f ts = Action.mk (p ts) in { egram = g; ename = n; - estart _ _ ts = Action.mk (p ts); - econtinue _ _ _ _ = parser []; - edesc = Dparser (fun ts -> Action.mk (p ts)) }; + estart _ = f; + econtinue _ _ _ = parser []; + edesc = Dparser f }; - value setup_parser e (p : Stream.t (Token.t * Loc.t) -> 'a) = + value setup_parser e (p : Stream.t (Token.t * token_info) -> 'a) = let f ts = Action.mk (p ts) in do { - e.estart := fun _ _ -> f; - e.econtinue := fun _ _ _ _ -> parser []; + e.estart := fun _ -> f; + e.econtinue := fun _ _ _ -> parser []; e.edesc := Dparser f }; value clear e = do { - e.estart := fun _ _ -> parser []; - e.econtinue := fun _ _ _ _ -> parser []; + e.estart := fun _ -> parser []; + e.econtinue := fun _ _ _ -> parser []; e.edesc := Dlevels [] }; diff --git a/camlp4/Camlp4/Struct/Grammar/Failed.ml b/camlp4/Camlp4/Struct/Grammar/Failed.ml index ee3eff5af3..b22998bd48 100644 --- a/camlp4/Camlp4/Struct/Grammar/Failed.ml +++ b/camlp4/Camlp4/Struct/Grammar/Failed.ml @@ -37,11 +37,9 @@ value rec name_of_symbol entry = value rec name_of_symbol_failed entry = fun - [ Slist0 s -> name_of_symbol_failed entry s - | Slist0sep s _ -> name_of_symbol_failed entry s - | Slist1 s -> name_of_symbol_failed entry s - | Slist1sep s _ -> name_of_symbol_failed entry s - | Sopt s -> name_of_symbol_failed entry s + [ Slist0 s | Slist0sep s _ | + Slist1 s | Slist1sep s _ | + Sopt s | Stry s -> name_of_symbol_failed entry s | Stree t -> name_of_tree_failed entry t | s -> name_of_symbol entry s ] and name_of_tree_failed entry = @@ -104,7 +102,7 @@ value tree_failed entry prev_symb_result prev_symb tree = | _ -> let txt1 = name_of_symbol_failed entry sep in txt1 ^ " or " ^ txt ^ " expected" ] - | Sopt _ | Stree _ -> txt ^ " expected" + | Stry _(*NP: not sure about this*) | Sopt _ | Stree _ -> txt ^ " expected" | _ -> txt ^ " expected after " ^ name_of_symbol entry prev_symb ] in do { diff --git a/camlp4/Camlp4/Struct/Grammar/Fold.ml b/camlp4/Camlp4/Struct/Grammar/Fold.ml index 6da366f705..caf8a7a0a3 100644 --- a/camlp4/Camlp4/Struct/Grammar/Fold.ml +++ b/camlp4/Camlp4/Struct/Grammar/Fold.ml @@ -26,10 +26,11 @@ module Make (Structure : Structure.S) = struct module Fail = Failed.Make Structure; open Sig.Grammar; + (* Prevent from implict usage. *) module Stream = struct - include Stream; - value junk strm = Context.junk strm; - value count strm = Context.bp strm; + type t 'a = Stream.t 'a; + exception Failure = Stream.Failure; + exception Error = Stream.Error; end; value sfold0 f e _entry _symbl psymb = diff --git a/camlp4/Camlp4/Struct/Grammar/Insert.ml b/camlp4/Camlp4/Struct/Grammar/Insert.ml index be57d0e906..a6cbf0eeed 100644 --- a/camlp4/Camlp4/Struct/Grammar/Insert.ml +++ b/camlp4/Camlp4/Struct/Grammar/Insert.ml @@ -33,12 +33,15 @@ module Make (Structure : Structure.S) = struct ; value rec derive_eps = fun - [ Slist0 _ -> True - | Slist0sep _ _ -> True - | Sopt _ -> True + [ Slist0 _ | Slist0sep _ _ | Sopt _ -> True + | Stry s -> derive_eps s | Stree t -> tree_derive_eps t - | Smeta _ _ _ | Slist1 _ | Slist1sep _ _ | Snterm _ | Snterml _ _ | Snext | - Sself | Stoken _ | Skeyword _ -> False ] + | Slist1 _ | Slist1sep _ _ | Stoken _ | Skeyword _ -> + (* For sure we cannot derive epsilon from these *) + False + | Smeta _ _ _ | Snterm _ | Snterml _ _ | Snext | Sself -> + (* Approximation *) + False ] and tree_derive_eps = fun [ LocAct _ _ -> True @@ -172,9 +175,7 @@ module Make (Structure : Structure.S) = struct | Smeta _ sl _ -> List.iter (check_gram entry) sl | Slist0sep s t -> do { check_gram entry t; check_gram entry s } | Slist1sep s t -> do { check_gram entry t; check_gram entry s } - | Slist0 s -> check_gram entry s - | Slist1 s -> check_gram entry s - | Sopt s -> check_gram entry s + | Slist0 s | Slist1 s | Sopt s | Stry s -> check_gram entry s | Stree t -> tree_check_gram entry t | Snext | Sself | Stoken _ | Skeyword _ -> () ] and tree_check_gram entry = @@ -198,11 +199,9 @@ module Make (Structure : Structure.S) = struct let rec insert = fun [ Smeta _ sl _ -> List.iter insert sl - | Slist0 s -> insert s - | Slist1 s -> insert s + | Slist0 s | Slist1 s | Sopt s | Stry s -> insert s | Slist0sep s t -> do { insert s; insert t } | Slist1sep s t -> do { insert s; insert t } - | Sopt s -> insert s | Stree t -> tinsert t | Skeyword kwd -> using gram kwd | Snterm _ | Snterml _ _ | Snext | Sself | Stoken _ -> () ] @@ -316,13 +315,13 @@ module Make (Structure : Structure.S) = struct do { entry.edesc := Dlevels elev; entry.estart := - fun lev c strm -> + fun lev strm -> let f = Parser.start_parser_of_entry entry in - do { entry.estart := f; f lev c strm }; + do { entry.estart := f; f lev strm }; entry.econtinue := - fun lev bp a c strm -> + fun lev bp a strm -> let f = Parser.continue_parser_of_entry entry in - do { entry.econtinue := f; f lev bp a c strm } + do { entry.econtinue := f; f lev bp a strm } }; end; diff --git a/camlp4/Camlp4/Struct/Grammar/Parser.ml b/camlp4/Camlp4/Struct/Grammar/Parser.ml index 715c48f74e..89bbe884df 100644 --- a/camlp4/Camlp4/Struct/Grammar/Parser.ml +++ b/camlp4/Camlp4/Struct/Grammar/Parser.ml @@ -24,18 +24,61 @@ module Make (Structure : Structure.S) = struct open Structure; open Sig.Grammar; - module Stream = struct - include Stream; - value junk strm = Context.junk strm; - value count strm = Context.bp strm; - end; + module StreamOrig = Stream; + + value njunk strm n = + for i = 1 to n do Stream.junk strm done; - value add_loc c bp parse_fun strm = - let x = parse_fun c strm in - let ep = Context.loc_ep c in + value loc_bp = Tools.get_cur_loc; + value loc_ep = Tools.get_prev_loc; + value drop_prev_loc = Tools.drop_prev_loc; + + value add_loc bp parse_fun strm = + let x = parse_fun strm in + let ep = loc_ep strm in let loc = Loc.merge bp ep in (x, loc); + value stream_peek_nth strm n = + let rec loop i = fun + [ [x :: xs] -> if i = 1 then Some x else loop (i - 1) xs + | [] -> None ] + in + loop n (Stream.npeek n strm); + + (* We don't want Stream's functions to be used implictly. *) + module Stream = struct + type t 'a = StreamOrig.t 'a; + exception Failure = StreamOrig.Failure; + exception Error = StreamOrig.Error; + value peek = StreamOrig.peek; + value junk = StreamOrig.junk; + + value dup strm = + (* This version of peek_nth is off-by-one from Stream.peek_nth *) + let peek_nth n = + loop n (Stream.npeek (n + 1) strm) where rec loop n = + fun + [ [] -> None + | [x] -> if n = 0 then Some x else None + | [_ :: l] -> loop (n - 1) l ] + in + Stream.from peek_nth; + end; + + value try_parser ps strm = + let strm' = Stream.dup strm in + let r = + try ps strm' + with + [ Stream.Error _ | Loc.Exc_located _ (Stream.Error _) -> + raise Stream.Failure + | exc -> raise exc ] + in do { + njunk strm (StreamOrig.count strm'); + r; + }; + value level_number entry lab = let rec lookup levn = fun @@ -73,60 +116,57 @@ module Make (Structure : Structure.S) = struct | _ -> raise Stream.Failure ] ; - value continue entry loc a s c son p1 = + value continue entry loc a s son p1 = parser - [: a = (entry_of_symb entry s).econtinue 0 loc a c; + [: a = (entry_of_symb entry s).econtinue 0 loc a; act = p1 ?? Failed.tree_failed entry a s son :] -> Action.mk (fun _ -> Action.getf act a) ; (* PR#4603, PR#4330, PR#4551: - Here Context.loc_bp replaced Context.loc_ep to fix all these bugs. + Here loc_bp replaced get_loc_ep to fix all these bugs. If you do change it again look at these bugs. *) - value skip_if_empty c bp _ = - if Context.loc_bp c = bp then Action.mk (fun _ -> raise Stream.Failure) + value skip_if_empty bp strm = + if loc_bp strm = bp then Action.mk (fun _ -> raise Stream.Failure) else raise Stream.Failure ; - value do_recover parser_of_tree entry nlevn alevn loc a s c son = + value do_recover parser_of_tree entry nlevn alevn loc a s son = parser - [ [: a = parser_of_tree entry nlevn alevn (top_tree entry son) c :] -> a - | [: a = skip_if_empty c loc :] -> a + [ [: a = parser_of_tree entry nlevn alevn (top_tree entry son) :] -> a + | [: a = skip_if_empty loc :] -> a | [: a = - continue entry loc a s c son - (parser_of_tree entry nlevn alevn son c) :] -> + continue entry loc a s son + (parser_of_tree entry nlevn alevn son) :] -> a ] ; - value recover parser_of_tree entry nlevn alevn loc a s c son strm = + value recover parser_of_tree entry nlevn alevn loc a s son strm = if strict_parsing.val then raise (Stream.Error (Failed.tree_failed entry a s son)) else let _ = - if strict_parsing_warning.val then - do { + if strict_parsing_warning.val then begin let msg = Failed.tree_failed entry a s son; Format.eprintf "Warning: trying to recover from syntax error"; if entry.ename <> "" then Format.eprintf " in [%s]" entry.ename else (); Format.eprintf "\n%s%a@." msg Loc.print loc; - } else () in - do_recover parser_of_tree entry nlevn alevn loc a s c son strm + end else () in + do_recover parser_of_tree entry nlevn alevn loc a s son strm ; value rec parser_of_tree entry nlevn alevn = fun - [ DeadEnd -> fun _ -> parser [] - | LocAct act _ -> fun _ -> parser [: :] -> act + [ DeadEnd -> parser [] + | LocAct act _ -> parser [: :] -> act | Node {node = Sself; son = LocAct act _; brother = DeadEnd} -> - fun c -> - parser [: a = entry.estart alevn c :] -> Action.getf act a + parser [: a = entry.estart alevn :] -> Action.getf act a | Node {node = Sself; son = LocAct act _; brother = bro} -> let p2 = parser_of_tree entry nlevn alevn bro in - fun c -> - parser - [ [: a = entry.estart alevn c :] -> Action.getf act a - | [: a = p2 c :] -> a ] + parser + [ [: a = entry.estart alevn :] -> Action.getf act a + | [: a = p2 :] -> a ] | Node {node = s; son = son; brother = DeadEnd} -> let tokl = match s with @@ -138,8 +178,10 @@ module Make (Structure : Structure.S) = struct let ps = parser_of_symbol entry nlevn s in let p1 = parser_of_tree entry nlevn alevn son in let p1 = parser_cont p1 entry nlevn alevn s son in - fun c -> - parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a + fun strm -> + let bp = loc_bp strm in + match strm with parser + [: a = ps; act = p1 bp a :] -> Action.getf act a | Some (tokl, last_tok, son) -> let p1 = parser_of_tree entry nlevn alevn son in let p1 = parser_cont p1 entry nlevn alevn last_tok son in @@ -156,23 +198,23 @@ module Make (Structure : Structure.S) = struct let p1 = parser_of_tree entry nlevn alevn son in let p1 = parser_cont p1 entry nlevn alevn s son in let p2 = parser_of_tree entry nlevn alevn bro in - fun c -> - parser bp - [ [: a = ps c; act = p1 c bp a :] -> Action.getf act a - | [: a = p2 c :] -> a ] + fun strm -> + let bp = loc_bp strm in + match strm with parser + [ [: a = ps; act = p1 bp a :] -> Action.getf act a + | [: a = p2 :] -> a ] | Some (tokl, last_tok, son) -> let p1 = parser_of_tree entry nlevn alevn son in let p1 = parser_cont p1 entry nlevn alevn last_tok son in let p1 = parser_of_token_list p1 tokl in let p2 = parser_of_tree entry nlevn alevn bro in - fun c -> - parser - [ [: a = p1 c :] -> a - | [: a = p2 c :] -> a ] ] ] - and parser_cont p1 entry nlevn alevn s son c loc a = + parser + [ [: a = p1 :] -> a + | [: a = p2 :] -> a ] ] ] + and parser_cont p1 entry nlevn alevn s son loc a = parser - [ [: a = p1 c :] -> a - | [: a = recover parser_of_tree entry nlevn alevn loc a s c son :] -> a + [ [: a = p1 :] -> a + | [: a = recover parser_of_tree entry nlevn alevn loc a s son :] -> a | [: :] -> raise (Stream.Error (Failed.tree_failed entry a s son)) ] and parser_of_token_list p1 tokl = loop 1 tokl where rec loop n = @@ -180,133 +222,132 @@ module Make (Structure : Structure.S) = struct [ [Stoken (tematch, _) :: tokl] -> match tokl with [ [] -> - let ps c _ = - match Context.peek_nth c n with - [ Some (tok, _) when tematch tok -> do { Context.njunk c n; Action.mk tok } + let ps strm = + match stream_peek_nth strm n with + [ Some (tok, _) when tematch tok -> (njunk strm n; Action.mk tok) | _ -> raise Stream.Failure ] in - fun c -> - parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a + fun strm -> + let bp = loc_bp strm in + match strm with parser + [: a = ps; act = p1 bp a :] -> Action.getf act a | _ -> - let ps c _ = - match Context.peek_nth c n with + let ps strm = + match stream_peek_nth strm n with [ Some (tok, _) when tematch tok -> tok | _ -> raise Stream.Failure ] in let p1 = loop (n + 1) tokl in - fun c -> - parser [: tok = ps c; s :] -> - let act = p1 c s in Action.getf act tok ] + parser [: tok = ps; s :] -> + let act = p1 s in Action.getf act tok ] | [Skeyword kwd :: tokl] -> match tokl with [ [] -> - let ps c _ = - match Context.peek_nth c n with + let ps strm = + match stream_peek_nth strm n with [ Some (tok, _) when Token.match_keyword kwd tok -> - do { Context.njunk c n; Action.mk tok } + (njunk strm n; Action.mk tok) | _ -> raise Stream.Failure ] in - fun c -> - parser bp [: a = ps c; act = p1 c bp a :] -> Action.getf act a + fun strm -> + let bp = loc_bp strm in + match strm with parser + [: a = ps; act = p1 bp a :] -> Action.getf act a | _ -> - let ps c _ = - match Context.peek_nth c n with + let ps strm = + match stream_peek_nth strm n with [ Some (tok, _) when Token.match_keyword kwd tok -> tok | _ -> raise Stream.Failure ] in let p1 = loop (n + 1) tokl in - fun c -> - parser [: tok = ps c; s :] -> - let act = p1 c s in Action.getf act tok ] + parser [: tok = ps; s :] -> + let act = p1 s in Action.getf act tok ] | _ -> invalid_arg "parser_of_token_list" ] and parser_of_symbol entry nlevn = fun [ Smeta _ symbl act -> let act = Obj.magic act entry symbl in let pl = List.map (parser_of_symbol entry nlevn) symbl in - fun c -> - Obj.magic (List.fold_left (fun act p -> Obj.magic act (p c)) act pl) + Obj.magic (List.fold_left (fun act p -> Obj.magic act p) act pl) | Slist0 s -> let ps = parser_of_symbol entry nlevn s in - let rec loop c al = + let rec loop al = parser - [ [: a = ps c; s :] -> loop c [a :: al] s + [ [: a = ps; s :] -> loop [a :: al] s | [: :] -> al ] in - fun c -> parser [: a = loop c [] :] -> Action.mk (List.rev a) + parser [: a = loop [] :] -> Action.mk (List.rev a) | Slist0sep symb sep -> let ps = parser_of_symbol entry nlevn symb in let pt = parser_of_symbol entry nlevn sep in - let rec kont c al = + let rec kont al = parser - [ [: v = pt c; a = ps c ?? Failed.symb_failed entry v sep symb; + [ [: v = pt; a = ps ?? Failed.symb_failed entry v sep symb; s :] -> - kont c [a :: al] s + kont [a :: al] s | [: :] -> al ] in - fun c -> - parser - [ [: a = ps c; s :] -> Action.mk (List.rev (kont c [a] s)) - | [: :] -> Action.mk [] ] + parser + [ [: a = ps; s :] -> Action.mk (List.rev (kont [a] s)) + | [: :] -> Action.mk [] ] | Slist1 s -> let ps = parser_of_symbol entry nlevn s in - let rec loop c al = + let rec loop al = parser - [ [: a = ps c; s :] -> loop c [a :: al] s + [ [: a = ps; s :] -> loop [a :: al] s | [: :] -> al ] in - fun c -> - parser [: a = ps c; s :] -> Action.mk (List.rev (loop c [a] s)) + parser [: a = ps; s :] -> Action.mk (List.rev (loop [a] s)) | Slist1sep symb sep -> let ps = parser_of_symbol entry nlevn symb in let pt = parser_of_symbol entry nlevn sep in - let rec kont c al = + let rec kont al = parser - [ [: v = pt c; + [ [: v = pt; a = parser - [ [: a = ps c :] -> a - | [: a = parse_top_symb' entry symb c :] -> a + [ [: a = ps :] -> a + | [: a = parse_top_symb entry symb :] -> a | [: :] -> raise (Stream.Error (Failed.symb_failed entry v sep symb)) ]; s :] -> - kont c [a :: al] s + kont [a :: al] s | [: :] -> al ] in - fun c -> - parser [: a = ps c; s :] -> Action.mk (List.rev (kont c [a] s)) + parser [: a = ps; s :] -> Action.mk (List.rev (kont [a] s)) | Sopt s -> let ps = parser_of_symbol entry nlevn s in - fun c -> - parser - [ [: a = ps c :] -> Action.mk (Some a) - | [: :] -> Action.mk None ] + parser + [ [: a = ps :] -> Action.mk (Some a) + | [: :] -> Action.mk None ] + | Stry s -> + let ps = parser_of_symbol entry nlevn s in + try_parser ps | Stree t -> let pt = parser_of_tree entry 1 0 t in - fun c -> - parser bp [: (act, loc) = add_loc c bp pt :] -> + fun strm -> + let bp = loc_bp strm in + match strm with parser + [: (act, loc) = add_loc bp pt :] -> Action.getf act loc - | Snterm e -> fun c -> parser [: a = e.estart 0 c :] -> a + | Snterm e -> parser [: a = e.estart 0 :] -> a | Snterml e l -> - fun c -> parser [: a = e.estart (level_number e l) c :] -> a - | Sself -> fun c -> parser [: a = entry.estart 0 c :] -> a - | Snext -> fun c -> parser [: a = entry.estart nlevn c :] -> a + parser [: a = e.estart (level_number e l) :] -> a + | Sself -> parser [: a = entry.estart 0 :] -> a + | Snext -> parser [: a = entry.estart nlevn :] -> a | Skeyword kwd -> - fun _ -> - parser - [: `(tok, _) when Token.match_keyword kwd tok :] -> Action.mk tok + parser + [: `(tok, _) when Token.match_keyword kwd tok :] -> + Action.mk tok | Stoken (f, _) -> - fun _ -> parser [: `(tok, _) when f tok :] -> Action.mk tok ] - and parse_top_symb' entry symb c = - parser_of_symbol entry 0 (top_symb entry symb) c - and parse_top_symb entry symb = - fun strm -> - Context.call_with_ctx strm - (fun c -> parse_top_symb' entry symb c (Context.stream c)); + parser + [: `(tok,_) when f tok :] -> Action.mk tok ] + and parse_top_symb entry symb strm = + parser_of_symbol entry 0 (top_symb entry symb) strm; value rec start_parser_of_levels entry clevn = fun - [ [] -> fun _ _ -> parser [] + [ [] -> fun _ -> parser [] | [lev :: levs] -> let p1 = start_parser_of_levels entry (succ clevn) levs in match lev.lprefix with @@ -320,20 +361,22 @@ module Make (Structure : Structure.S) = struct let p2 = parser_of_tree entry (succ clevn) alevn tree in match levs with [ [] -> - fun levn c -> - parser bp - [: (act, loc) = add_loc c bp p2; strm :] -> + fun levn strm -> + let bp = loc_bp strm in + match strm with parser + [: (act, loc) = add_loc bp p2; strm :] -> let a = Action.getf act loc in - entry.econtinue levn loc a c strm + entry.econtinue levn loc a strm | _ -> - fun levn c strm -> - if levn > clevn then p1 levn c strm + fun levn strm -> + if levn > clevn then p1 levn strm else - match strm with parser bp - [ [: (act, loc) = add_loc c bp p2 :] -> + let bp = loc_bp strm in + match strm with parser + [ [: (act, loc) = add_loc bp p2 :] -> let a = Action.getf act loc in - entry.econtinue levn loc a c strm - | [: act = p1 levn c :] -> act ] ] ] ] + entry.econtinue levn loc a strm + | [: act = p1 levn :] -> act ] ] ] ] ; value start_parser_of_entry entry = @@ -341,11 +384,11 @@ module Make (Structure : Structure.S) = struct match entry.edesc with [ Dlevels [] -> Tools.empty_entry entry.ename | Dlevels elev -> start_parser_of_levels entry 0 elev - | Dparser p -> fun _ _ strm -> p strm ] + | Dparser p -> fun _ -> p ] ; value rec continue_parser_of_levels entry clevn = fun - [ [] -> fun _ _ _ _ -> parser [] + [ [] -> fun _ _ _ -> parser [] | [lev :: levs] -> let p1 = continue_parser_of_levels entry (succ clevn) levs in match lev.lsuffix with @@ -357,14 +400,14 @@ module Make (Structure : Structure.S) = struct | RightA -> clevn ] in let p2 = parser_of_tree entry (succ clevn) alevn tree in - fun c levn bp a strm -> - if levn > clevn then p1 c levn bp a strm + fun levn bp a strm -> + if levn > clevn then p1 levn bp a strm else match strm with parser - [ [: act = p1 c levn bp a :] -> act - | [: (act, loc) = add_loc c bp p2 :] -> + [ [: act = p1 levn bp a :] -> act + | [: (act, loc) = add_loc bp p2 :] -> let a = Action.getf2 act a loc in - entry.econtinue levn loc a c strm ] ] ] + entry.econtinue levn loc a strm ] ] ] ; value continue_parser_of_entry entry = @@ -372,11 +415,11 @@ module Make (Structure : Structure.S) = struct match entry.edesc with [ Dlevels elev -> let p = continue_parser_of_levels entry 0 elev in - fun levn bp a c -> + fun levn bp a -> parser - [ [: a = p c levn bp a :] -> a + [ [: a = p levn bp a :] -> a | [: :] -> a ] - | Dparser _ -> fun _ _ _ _ -> parser [] ] + | Dparser _ -> fun _ _ _ -> parser [] ] ; end; diff --git a/camlp4/Camlp4/Struct/Grammar/Parser.mli b/camlp4/Camlp4/Struct/Grammar/Parser.mli index e5a3faaafc..7b7cbe5a2b 100644 --- a/camlp4/Camlp4/Struct/Grammar/Parser.mli +++ b/camlp4/Camlp4/Struct/Grammar/Parser.mli @@ -22,9 +22,8 @@ module Make (Structure : Structure.S) : sig open Structure; - open Context; value add_loc : - Context.t -> Loc.t -> (Context.t -> 'a -> 'b) -> 'a -> ('b * Loc.t); + Loc.t -> (token_stream -> 'b) -> token_stream -> ('b * Loc.t); value level_number : internal_entry -> string -> int; value strict_parsing : ref bool; value strict_parsing_warning : ref bool; @@ -35,33 +34,29 @@ module Make (Structure : Structure.S) : sig value entry_of_symb : internal_entry -> symbol -> internal_entry; value continue : - internal_entry -> Loc.t -> Action.t -> symbol -> Context.t -> tree -> - (Stream.t (Token.t * Loc.t) -> Action.t) -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> Loc.t -> Action.t -> symbol -> tree -> efun -> efun; value do_recover : - (internal_entry -> 'a -> 'b -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry -> - 'a -> 'b -> Loc.t -> Action.t -> symbol -> Context.t -> tree -> Stream.t (Token.t * Loc.t) -> Action.t; + (internal_entry -> 'a -> 'b -> tree -> efun) -> internal_entry -> + 'a -> 'b -> Loc.t -> Action.t -> symbol -> tree -> efun; value recover : - (internal_entry -> 'a -> 'b -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry -> - 'a -> 'b -> Loc.t -> Action.t -> symbol -> Context.t -> tree -> Stream.t (Token.t * Loc.t) -> Action.t; + (internal_entry -> 'a -> 'b -> tree -> efun) -> internal_entry -> + 'a -> 'b -> Loc.t -> Action.t -> symbol -> tree -> efun; value parser_of_tree : - internal_entry -> int -> int -> tree -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> int -> tree -> efun; value parser_cont : - (Context.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> internal_entry -> int -> int -> symbol -> tree -> - Context.t -> Loc.t -> Action.t -> Stream.t (Token.t * Loc.t) -> Action.t; + efun -> internal_entry -> int -> int -> symbol -> tree -> Loc.t -> Action.t -> efun; value parser_of_token_list : - (Context.t -> Loc.t -> Action.t -> Stream.t (Token.t * Loc.t) -> Action.t) -> list symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + (Loc.t -> Action.t -> efun) -> list symbol -> efun; value parser_of_symbol : - internal_entry -> int -> symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; - value parse_top_symb' : - internal_entry -> symbol -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> symbol -> efun; value parse_top_symb : - internal_entry -> symbol -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> symbol -> efun; value start_parser_of_levels : - internal_entry -> int -> list level -> int -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> list level -> int -> efun; value start_parser_of_entry : - internal_entry -> int -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> efun; value continue_parser_of_levels : - internal_entry -> int -> list level -> Context.t -> int -> Loc.t -> 'a -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> list level -> int -> Loc.t -> 'a -> efun; value continue_parser_of_entry : - internal_entry -> int -> Loc.t -> Action.t -> Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + internal_entry -> int -> Loc.t -> Action.t -> efun; end; diff --git a/camlp4/Camlp4/Struct/Grammar/Print.ml b/camlp4/Camlp4/Struct/Grammar/Print.ml index f5a9723029..77000c88aa 100644 --- a/camlp4/Camlp4/Struct/Grammar/Print.ml +++ b/camlp4/Camlp4/Struct/Grammar/Print.ml @@ -39,6 +39,7 @@ module Make (Structure : Structure.S) = struct | Slist1sep s t -> fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s + | Stry s -> fprintf ppf "TRY %a" print_symbol1 s | Snterml e l -> fprintf ppf "%s@ LEVEL@ %S" e.ename l | Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ as s -> print_symbol1 ppf s ] @@ -64,7 +65,7 @@ module Make (Structure : Structure.S) = struct | Skeyword s -> fprintf ppf "%S" s | Stree t -> print_level ppf pp_print_space (flatten_tree t) | Smeta _ _ _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ | - Slist1sep _ _ | Sopt _ as s -> + Slist1sep _ _ | Sopt _ | Stry _ as s -> fprintf ppf "(%a)" print_symbol s ] and print_rule ppf symbols = do { @@ -174,6 +175,7 @@ module MakeDump (Structure : Structure.S) = struct | Slist1sep s t -> fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s + | Stry s -> fprintf ppf "TRY %a" print_symbol1 s | Snterml e l -> fprintf ppf "%s@ LEVEL@ %S" e.ename l | Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ as s -> print_symbol1 ppf s ] @@ -199,7 +201,7 @@ module MakeDump (Structure : Structure.S) = struct | Skeyword s -> fprintf ppf "%S" s | Stree t -> print_tree ppf t | Smeta _ _ _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ | - Slist1sep _ _ | Sopt _ as s -> + Slist1sep _ _ | Sopt _ | Stry _ as s -> fprintf ppf "(%a)" print_symbol s ] and print_rule ppf symbols = do { diff --git a/camlp4/Camlp4/Struct/Grammar/Search.ml b/camlp4/Camlp4/Struct/Grammar/Search.ml index 870a6f7fb8..bc4ed301ad 100644 --- a/camlp4/Camlp4/Struct/Grammar/Search.ml +++ b/camlp4/Camlp4/Struct/Grammar/Search.ml @@ -49,7 +49,7 @@ value tree_in_entry prev_symb tree = and search_symbol symb = match symb with [ Snterm _ | Snterml _ _ | Slist0 _ | Slist0sep _ _ | Slist1 _ | - Slist1sep _ _ | Sopt _ | Stoken _ | Stree _ | Skeyword _ + Slist1sep _ _ | Sopt _ | Stry _ | Stoken _ | Stree _ | Skeyword _ when symb == prev_symb -> Some symb | Slist0 symb -> @@ -78,6 +78,10 @@ value tree_in_entry prev_symb tree = match search_symbol symb with [ Some symb -> Some (Sopt symb) | None -> None ] + | Stry symb -> + match search_symbol symb with + [ Some symb -> Some (Stry symb) + | None -> None ] | Stree t -> match search_tree t with [ Some t -> Some (Stree t) diff --git a/camlp4/Camlp4/Struct/Grammar/Static.ml b/camlp4/Camlp4/Struct/Grammar/Static.ml index 7d7b51effc..a94c9fa1c5 100644 --- a/camlp4/Camlp4/Struct/Grammar/Static.ml +++ b/camlp4/Camlp4/Struct/Grammar/Static.ml @@ -28,6 +28,7 @@ module Make (Lexer : Sig.Lexer) module Delete = Delete.Make Structure; module Insert = Insert.Make Structure; module Fold = Fold.Make Structure; + module Tools = Tools.Make Structure; include Structure; value gram = @@ -59,7 +60,7 @@ module Make (Lexer : Sig.Lexer) value lex_string loc str = lex loc (Stream.of_string str); - value filter ts = Token.Filter.filter gram.gfilter ts; + value filter ts = Tools.keep_prev_loc (Token.Filter.filter gram.gfilter ts); value parse_tokens_after_filter entry ts = Entry.E.parse_tokens_after_filter entry ts; diff --git a/camlp4/Camlp4/Struct/Grammar/Structure.ml b/camlp4/Camlp4/Struct/Grammar/Structure.ml index 12023b7d15..c2afdd6395 100644 --- a/camlp4/Camlp4/Struct/Grammar/Structure.ml +++ b/camlp4/Camlp4/Struct/Grammar/Structure.ml @@ -25,7 +25,6 @@ module type S = sig module Lexer : Sig.Lexer with module Loc = Loc and module Token = Token; - module Context : Context.S with module Token = Token; module Action : Sig.Grammar.Action; type gram = @@ -35,7 +34,13 @@ module type S = sig warning_verbose : ref bool; error_verbose : ref bool }; - type efun = Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + type token_info = { prev_loc : Loc.t + ; cur_loc : Loc.t + }; + + type token_stream = Stream.t (Token.t * token_info); + + type efun = token_stream -> Action.t; type token_pattern = ((Token.t -> bool) * string); @@ -47,7 +52,7 @@ module type S = sig edesc : mutable desc } and desc = [ Dlevels of list level - | Dparser of Stream.t (Token.t * Loc.t) -> Action.t ] + | Dparser of token_stream -> Action.t ] and level = { assoc : assoc ; lname : option string ; @@ -62,6 +67,7 @@ module type S = sig | Slist1 of symbol | Slist1sep of symbol and symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -118,9 +124,13 @@ module Make (Lexer : Sig.Lexer) = struct warning_verbose : ref bool; error_verbose : ref bool }; - module Context = Context.Make Token; + type token_info = { prev_loc : Loc.t + ; cur_loc : Loc.t + }; + + type token_stream = Stream.t (Token.t * token_info); - type efun = Context.t -> Stream.t (Token.t * Loc.t) -> Action.t; + type efun = token_stream -> Action.t; type token_pattern = ((Token.t -> bool) * string); @@ -132,7 +142,7 @@ module Make (Lexer : Sig.Lexer) = struct edesc : mutable desc } and desc = [ Dlevels of list level - | Dparser of Stream.t (Token.t * Loc.t) -> Action.t ] + | Dparser of token_stream -> Action.t ] and level = { assoc : assoc ; lname : option string ; @@ -147,6 +157,7 @@ module Make (Lexer : Sig.Lexer) = struct | Slist1 of symbol | Slist1sep of symbol and symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -177,6 +188,7 @@ module Make (Lexer : Sig.Lexer) = struct (Stream.t 'a -> 'b) -> (Stream.t 'a -> unit) -> Stream.t 'a -> 'c; value get_filter g = g.gfilter; + value token_location r = r.cur_loc; type not_filtered 'a = 'a; value using { gkeywords = table; gfilter = filter } kwd = @@ -217,7 +229,7 @@ value iter_entry f e = fun [ Smeta _ sl _ -> List.iter do_symbol sl | Snterm e | Snterml e _ -> do_entry e - | Slist0 s | Slist1 s | Sopt s -> do_symbol s + | Slist0 s | Slist1 s | Sopt s | Stry s -> do_symbol s | Slist0sep s1 s2 | Slist1sep s1 s2 -> do { do_symbol s1; do_symbol s2 } | Stree t -> do_tree t | Sself | Snext | Stoken _ | Stoken_fun _ -> () ] @@ -251,7 +263,7 @@ value fold_entry f e init = fun [ Smeta _ sl _ -> List.fold_left do_symbol accu sl | Snterm e | Snterml e _ -> do_entry accu e - | Slist0 s | Slist1 s | Sopt s -> do_symbol accu s + | Slist0 s | Slist1 s | Sopt s | Stry s -> do_symbol accu s | Slist0sep s1 s2 | Slist1sep s1 s2 -> let accu = do_symbol accu s1 in do_symbol accu s2 diff --git a/camlp4/Camlp4/Struct/Grammar/Tools.ml b/camlp4/Camlp4/Struct/Grammar/Tools.ml index bcb933b8cb..4dae7e713f 100644 --- a/camlp4/Camlp4/Struct/Grammar/Tools.ml +++ b/camlp4/Camlp4/Struct/Grammar/Tools.ml @@ -16,12 +16,109 @@ * - Daniel de Rauglaudre: initial version * - Nicolas Pouillard: refactoring *) + +(* BEGIN ugly hack. See 15 lines down. FIXME *) + +type prev_locs = { + pl_strm : mutable Obj.t; + pl_locs : mutable list (int * Obj.t) +}; + +value prev_locs = ref ([] : list prev_locs); + +(* END ugly hack FIXME *) + module Make (Structure : Structure.S) = struct open Structure; - value empty_entry ename _ _ _ = + value empty_entry ename _ = raise (Stream.Error ("entry [" ^ ename ^ "] is empty")); + value rec stream_map f = parser + [ [: ` x; strm :] -> [: ` (f x); stream_map f strm :] + | [: :] -> [: :] ]; + +(* ******************************************************************* *) +(* Ugly hack to prevent PR#5090. See how to do this properly after + the 3.12.0 release. FIXME. +*) + +value keep_prev_loc strm = + match Stream.peek strm with + [ None -> [: :] + | Some (_, init_loc) -> + let myrecord = { pl_strm = Obj.repr [: :]; + pl_locs = [(0, Obj.repr init_loc)] } + in + let rec go prev_loc = parser + [ [: `(tok, cur_loc); strm :] -> do { + myrecord.pl_locs := myrecord.pl_locs + @ [ (Stream.count strm, Obj.repr cur_loc) ]; + [: `(tok, {prev_loc; cur_loc}); go cur_loc strm :] } + | [: :] -> do { + prev_locs.val := List.filter ((!=) myrecord) prev_locs.val; + [: :] } ] + in + let result = go init_loc strm in + do { + prev_locs.val := [myrecord :: prev_locs.val]; + myrecord.pl_strm := Obj.repr result; + result } ]; + +value drop_prev_loc strm = stream_map (fun (tok,r) -> (tok,r)) strm; + +value get_cur_loc strm = + match Stream.peek strm with + [ Some (_,r) -> r.cur_loc + | None -> Loc.ghost ]; + +value get_prev_loc strm = + let c = Stream.count strm in + let rec drop l = + match l with + [ [] -> [] + | [(i, _) :: ll] -> if i < c then drop ll else l ] + in + let rec find l = + match l with + [ [] -> None + | [h::t] -> if h.pl_strm == Obj.repr strm then Some h else find t ] + in + match find prev_locs.val with + [ None -> Loc.ghost + | Some r -> do { + r.pl_locs := drop r.pl_locs; + match r.pl_locs with + [ [] -> Loc.ghost + | [(i, loc) :: _] -> + if i = c then (Obj.obj loc : Loc.t) else Loc.ghost ] } ]; + +(* ******************************************************************* *) +(* END of ugly hack. This is the previous code. + + value keep_prev_loc strm = + match Stream.peek strm with + [ None -> [: :] + | Some (_,init_loc) -> + let rec go prev_loc = parser + [ [: `(tok,cur_loc); strm :] -> [: `(tok,{prev_loc;cur_loc}); go cur_loc strm :] + | [: :] -> [: :] ] + in go init_loc strm ]; + + value drop_prev_loc strm = stream_map (fun (tok,r) -> (tok,r.cur_loc)) strm; + + value get_cur_loc strm = + match Stream.peek strm with + [ Some (_,r) -> r.cur_loc + | None -> Loc.ghost ]; + + value get_prev_loc strm = + match Stream.peek strm with + [ Some (_,r) -> r.prev_loc + | None -> Loc.ghost ]; +*) + + value is_level_labelled n lev = match lev.lname with [ Some n1 -> n = n1 @@ -51,13 +148,13 @@ module Make (Structure : Structure.S) = struct | (Snterm e1, Sself) -> e1.ename = entry.ename | (Sself, Snterm e2) -> entry.ename = e2.ename | (Snterml e1 l1, Snterml e2 l2) -> e1.ename = e2.ename && l1 = l2 - | (Slist0 s1, Slist0 s2) -> eq_symbols s1 s2 - | (Slist0sep s1 sep1, Slist0sep s2 sep2) -> + | (Slist0 s1, Slist0 s2) | + (Slist1 s1, Slist1 s2) | + (Sopt s1, Sopt s2) | + (Stry s1, Stry s2) -> eq_symbols s1 s2 + | (Slist0sep s1 sep1, Slist0sep s2 sep2) | + (Slist1sep s1 sep1, Slist1sep s2 sep2) -> eq_symbols s1 s2 && eq_symbols sep1 sep2 - | (Slist1 s1, Slist1 s2) -> eq_symbols s1 s2 - | (Slist1sep s1 sep1, Slist1sep s2 sep2) -> - eq_symbols s1 s2 && eq_symbols sep1 sep2 - | (Sopt s1, Sopt s2) -> eq_symbols s1 s2 | (Stree t1, Stree t2) -> eq_trees t1 t2 | (Stoken (_, s1), Stoken (_, s2)) -> eq_Stoken_ids s1 s2 | _ -> s1 = s2 ] @@ -75,13 +172,13 @@ module Make (Structure : Structure.S) = struct match (s1, s2) with [ (Snterm e1, Snterm e2) -> e1 == e2 | (Snterml e1 l1, Snterml e2 l2) -> e1 == e2 && l1 = l2 - | (Slist0 s1, Slist0 s2) -> eq_symbol s1 s2 - | (Slist0sep s1 sep1, Slist0sep s2 sep2) -> - eq_symbol s1 s2 && eq_symbol sep1 sep2 - | (Slist1 s1, Slist1 s2) -> eq_symbol s1 s2 - | (Slist1sep s1 sep1, Slist1sep s2 sep2) -> + | (Slist0 s1, Slist0 s2) | + (Slist1 s1, Slist1 s2) | + (Sopt s1, Sopt s2) | + (Stry s1, Stry s2) -> eq_symbol s1 s2 + | (Slist0sep s1 sep1, Slist0sep s2 sep2) | + (Slist1sep s1 sep1, Slist1sep s2 sep2) -> eq_symbol s1 s2 && eq_symbol sep1 sep2 - | (Sopt s1, Sopt s2) -> eq_symbol s1 s2 | (Stree _, Stree _) -> False | (Stoken (_, s1), Stoken (_, s2)) -> eq_Stoken_ids s1 s2 | _ -> s1 = s2 ] diff --git a/camlp4/Camlp4/Struct/Lexer.mll b/camlp4/Camlp4/Struct/Lexer.mll index 40a0822337..b8e97efefb 100644 --- a/camlp4/Camlp4/Struct/Lexer.mll +++ b/camlp4/Camlp4/Struct/Lexer.mll @@ -420,7 +420,7 @@ module Make (Token : Sig.Camlp4Token) and dollar c = parse | '$' { set_start_p c; ANTIQUOT("", "") } - | ('`'? (identchar*|'.'+) as name) ':' + | ('`'? (identchar*|['.' '!']+) as name) ':' { with_curr_loc (antiquot name) (shift (1 + String.length name) c) } | _ { store_parse (antiquot "") c } diff --git a/camlp4/Camlp4Filters/Camlp4FoldGenerator.ml b/camlp4/Camlp4Filters/Camlp4FoldGenerator.ml index c0af8e53a7..66c48d7e54 100644 --- a/camlp4/Camlp4Filters/Camlp4FoldGenerator.ml +++ b/camlp4/Camlp4Filters/Camlp4FoldGenerator.ml @@ -427,7 +427,7 @@ module Make (AstFilters : Camlp4.Sig.AstFilters) = struct let params' = List.map string_of_type_param params in let funs = lambda (fun_of_ctyp id1 ctyp) params' in let ty = method_type_of_type_decl type_decl in - let priv = if priv then Ast.BTrue else Ast.BFalse in + let priv = if priv then <:private_flag< private >> else <:private_flag<>> in <:class_str_item< method $private:priv$ $lid:id1$ : $ty$ = $funs$; $acc$ >> and ctyp_name_of_name_params name params = diff --git a/camlp4/Camlp4Filters/Camlp4MetaGenerator.ml b/camlp4/Camlp4Filters/Camlp4MetaGenerator.ml index 6eb849995b..a49cbf32ff 100644 --- a/camlp4/Camlp4Filters/Camlp4MetaGenerator.ml +++ b/camlp4/Camlp4Filters/Camlp4MetaGenerator.ml @@ -91,7 +91,8 @@ value mk_meta m = let init = m_id m (meta_ident m m_name_cons) in let p = patt_of_data_ctor_decl m_name_cons tyargs in let e = - if cons = "BAnt" || cons = "OAnt" || cons = "LAnt" then + if List.mem cons ["BAnt"; "OAnt"; "LAnt"; "ReAnt"; "DiAnt"; + "MuAnt"; "PrAnt"; "ViAnt"; "OvAnt"; "RvAnt"] then <:expr< $id:m.ant$ _loc x0 >> else if is_antiquot_data_ctor cons then expr_of_data_ctor_decl m.ant tyargs diff --git a/camlp4/Camlp4Parsers/Camlp4GrammarParser.ml b/camlp4/Camlp4Parsers/Camlp4GrammarParser.ml index 2aa4334537..3d64b1ae38 100644 --- a/camlp4/Camlp4Parsers/Camlp4GrammarParser.ml +++ b/camlp4/Camlp4Parsers/Camlp4GrammarParser.ml @@ -61,6 +61,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | TXnext of loc | TXnterm of loc and name 'e and option string | TXopt of loc and text 'e 'p + | TXtry of loc and text 'e 'p | TXrules of loc and list (list (text 'e 'p) * 'e) | TXself of loc | TXkwd of loc and string @@ -349,6 +350,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct $uid:gm$.Snterm ($uid:gm$.Entry.obj ($n.expr$ : $uid:gm$.Entry.t '$n.tvar$)) >> ] | TXopt _loc t -> <:expr< $uid:gm$.Sopt $make_expr entry "" t$ >> + | TXtry _loc t -> <:expr< $uid:gm$.Stry $make_expr entry "" t$ >> | TXrules _loc rl -> <:expr< $uid:gm$.srules $entry.expr$ $make_expr_rules _loc entry rl ""$ >> | TXself _loc -> <:expr< $uid:gm$.Sself >> @@ -769,7 +771,10 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct let () = check_not_tok s in let styp = STapp _loc (STlid _loc "option") s.styp in let text = TXopt _loc s.text in - {used = s.used; text = text; styp = styp; pattern = None} ] + {used = s.used; text = text; styp = styp; pattern = None} + | UIDENT "TRY"; s = SELF -> + let text = TXtry _loc s.text in + {used = s.used; text = text; styp = s.styp; pattern = None} ] | [ UIDENT "SELF" -> {used = []; text = TXself _loc; styp = STself _loc "SELF"; pattern = None} | UIDENT "NEXT" -> diff --git a/camlp4/Camlp4Parsers/Camlp4ListComprehension.ml b/camlp4/Camlp4Parsers/Camlp4ListComprehension.ml index 23db86855c..874426b10d 100644 --- a/camlp4/Camlp4Parsers/Camlp4ListComprehension.ml +++ b/camlp4/Camlp4Parsers/Camlp4ListComprehension.ml @@ -123,8 +123,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct ; item: - [ [ test_patt_lessminus; - p = patt; "<-" ; e = expr LEVEL "top" -> `gen (p, e) + (* NP: These rules rely on being on this particular order. Which should + be improved. *) + [ [ p = TRY [p = patt; "<-" -> p] ; e = expr LEVEL "top" -> `gen (p, e) | e = expr LEVEL "top" -> `cond e ] ] ; diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml index 1892ab0ca2..c7a510a52a 100644 --- a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml +++ b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml @@ -59,20 +59,6 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct (Ast.loc_of_expr e2) in <:expr< do { $e1$; $e2$ } >> ]; - value test_constr_decl = - Gram.Entry.of_parser "test_constr_decl" - (fun strm -> - match Stream.npeek 1 strm with - [ [(UIDENT _, _)] -> - match Stream.npeek 2 strm with - [ [_; (KEYWORD ".", _)] -> raise Stream.Failure - | [_; (KEYWORD "(", _)] -> raise Stream.Failure - | [_ :: _] -> () - | _ -> raise Stream.Failure ] - | [(KEYWORD "|", _)] -> () - | _ -> raise Stream.Failure ]) - ; - value stream_peek_nth n strm = loop n (Stream.npeek n strm) where rec loop n = fun @@ -81,75 +67,11 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | [_ :: l] -> loop (n - 1) l ] ; - (* horrible hacks to be able to parse class_types *) - - value test_ctyp_minusgreater = - Gram.Entry.of_parser "test_ctyp_minusgreater" - (fun strm -> - let rec skip_simple_ctyp n = - match stream_peek_nth n strm with - [ Some (KEYWORD "->") -> n - | Some (KEYWORD ("[" | "[<")) -> - skip_simple_ctyp (ignore_upto "]" (n + 1) + 1) - | Some (KEYWORD "(") -> skip_simple_ctyp (ignore_upto ")" (n + 1) + 1) - | Some - (KEYWORD - ("as" | "'" | ":" | "*" | "." | "#" | "<" | ">" | ".." | ";" | - "_" | "?")) -> - skip_simple_ctyp (n + 1) - | Some (LIDENT _ | UIDENT _) -> - skip_simple_ctyp (n + 1) - | Some _ | None -> raise Stream.Failure ] - and ignore_upto end_kwd n = - match stream_peek_nth n strm with - [ Some (KEYWORD prm) when prm = end_kwd -> n - | Some (KEYWORD ("[" | "[<")) -> - ignore_upto end_kwd (ignore_upto "]" (n + 1) + 1) - | Some (KEYWORD "(") -> ignore_upto end_kwd (ignore_upto ")" (n + 1) + 1) - | Some _ -> ignore_upto end_kwd (n + 1) - | None -> raise Stream.Failure ] - in - match Stream.peek strm with - [ Some ((KEYWORD "[" | LIDENT _ | UIDENT _), _) -> skip_simple_ctyp 1 - | Some (KEYWORD "object", _) -> raise Stream.Failure - | _ -> 1 ]) - ; - - value test_label_expr_list = - Gram.Entry.of_parser "test_label_expr_list" - (test 1 where rec test lev strm = - match stream_peek_nth lev strm with - [ Some (UIDENT _ | LIDENT _ | KEYWORD ".") -> - test (lev + 1) strm - | Some (KEYWORD ("="|";"|"}")) -> - (* ";" and "}" occur due to record punning *) - () - | _ -> raise Stream.Failure ]) - ; - - value test_typevar_list_dot = - Gram.Entry.of_parser "test_typevar_list_dot" - (let rec test lev strm = - match stream_peek_nth lev strm with - [ Some (KEYWORD "'") -> test2 (lev + 1) strm - | Some (KEYWORD ".") -> () - | _ -> raise Stream.Failure ] - and test2 lev strm = - match stream_peek_nth lev strm with - [ Some (UIDENT _ | LIDENT _) -> test (lev + 1) strm - | _ -> raise Stream.Failure ] - in - test 1) - ; - - value lident_colon = - Gram.Entry.of_parser "lident_colon" - (fun strm -> - match Stream.npeek 2 strm with - [ [(LIDENT i, _); (KEYWORD ":", _)] -> - do { Stream.junk strm; Stream.junk strm; i } - | _ -> raise Stream.Failure ]) - ; + value test_not_dot_nor_lparen = + Gram.Entry.of_parser "test_not_dot_nor_lparen" (fun strm -> + match Stream.peek strm with + [ Some (KEYWORD ("."|"("),_) -> raise Stream.Failure + | _ -> () ]); value rec is_ident_constr_call = fun @@ -343,9 +265,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct expr: LEVEL "simple" (* LEFTA *) [ [ "false" -> <:expr< False >> | "true" -> <:expr< True >> - | "{"; test_label_expr_list; lel = label_expr_list; "}" -> + | "{"; lel = TRY [lel = label_expr_list; "}" -> lel] -> <:expr< { $lel$ } >> - | "{"; e = expr LEVEL "."; "with"; lel = label_expr_list; "}" -> + | "{"; e = TRY [e = expr LEVEL "."; "with" -> e]; lel = label_expr_list; "}" -> <:expr< { ($e$) with $lel$ } >> | "new"; i = class_longident -> <:expr< new $i$ >> ] ] @@ -477,15 +399,15 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct | t = ctyp -> t ] ] ; class_type_plus: - [ [ i = lident_colon; t = ctyp LEVEL "star"; "->"; ct = SELF -> + [ [ i = TRY [i = a_LIDENT; ":" -> i]; t = ctyp LEVEL "star"; "->"; ct = SELF -> <:class_type< [ ~ $i$ : $t$ ] -> $ct$ >> | "?"; i = a_LIDENT; ":"; t = ctyp LEVEL "star"; "->"; ct = SELF -> <:class_type< [ ? $i$ : $t$ ] -> $ct$ >> | i = OPTLABEL (* FIXME inline a_OPTLABEL *); t = ctyp LEVEL "star"; "->"; ct = SELF -> <:class_type< [ ? $i$ : $t$ ] -> $ct$ >> - | test_ctyp_minusgreater; t = ctyp LEVEL "star"; "->"; ct = SELF -> + | t = TRY [t = ctyp LEVEL "star"; "->" -> t]; ct = SELF -> <:class_type< [ $t$ ] -> $ct$ >> - | ct = class_type -> ct ] ] + | ct = TRY class_type -> ct ] ] ; class_type_longident_and_param: [ [ "["; t = comma_ctyp; "]"; i = class_type_longident -> @@ -507,7 +429,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct [ [ t1 = SELF; "as"; "'"; i = a_ident -> <:ctyp< $t1$ as '$i$ >> ] | "arrow" RIGHTA [ t1 = SELF; "->"; t2 = SELF -> <:ctyp< $t1$ -> $t2$ >> - | i = lident_colon; t1 = ctyp LEVEL "star"; "->"; t2 = SELF -> + | i = TRY [i = a_LIDENT; ":" -> i]; t1 = ctyp LEVEL "star"; "->"; t2 = SELF -> <:ctyp< ( ~ $i$ : $t1$ ) -> $t2$ >> | i = a_OPTLABEL; t1 = ctyp LEVEL "star"; "->"; t2 = SELF -> <:ctyp< ( ? $i$ : $t1$ ) -> $t2$ >> @@ -557,7 +479,7 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct ] ] ; meth_list: - [ [ m = meth_decl -> (m, Ast.BFalse) ] ]; + [ [ m = meth_decl -> (m, <:row_var_flag<>>) ] ]; comma_ctyp_app: [ [ t1 = ctyp; ","; t2 = SELF -> fun acc -> t2 <:ctyp< $acc$ $t1$ >> | t = ctyp -> fun acc -> <:ctyp< $acc$ $t$ >> @@ -602,14 +524,15 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct ; type_kind: [ [ "private"; tk = type_kind -> <:ctyp< private $tk$ >> - | test_constr_decl; OPT "|"; - t = constructor_declarations -> <:ctyp< [ $t$ ] >> - | t = ctyp -> <:ctyp< $t$ >> - | t = ctyp; "="; "private"; tk = type_kind -> + | t = TRY [OPT "|"; t = constructor_declarations; + test_not_dot_nor_lparen -> t] -> + <:ctyp< [ $t$ ] >> + | t = TRY ctyp -> <:ctyp< $t$ >> + | t = TRY ctyp; "="; "private"; tk = type_kind -> <:ctyp< $t$ == private $tk$ >> - | t1 = ctyp; "="; "{"; t2 = label_declaration_list; "}" -> + | t1 = TRY ctyp; "="; "{"; t2 = label_declaration_list; "}" -> <:ctyp< $t1$ == { $t2$ } >> - | t1 = ctyp; "="; OPT "|"; t2 = constructor_declarations -> + | t1 = TRY ctyp; "="; OPT "|"; t2 = constructor_declarations -> <:ctyp< $t1$ == [ $t2$ ] >> | "{"; t = label_declaration_list; "}" -> <:ctyp< { $t$ } >> ] ] @@ -647,9 +570,9 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct ] ] ; poly_type: - [ [ test_typevar_list_dot; t1 = typevars; "."; t2 = ctyp -> + [ [ t1 = TRY [t = typevars; "." -> t]; t2 = ctyp -> <:ctyp< ! $t1$ . $t2$ >> - | t = ctyp -> t ] ] + | t = TRY ctyp -> t ] ] ; labeled_ipatt: [ [ i = a_LABEL; p = patt LEVEL "simple" -> diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml index 25f7bbb9db..11fd025041 100644 --- a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml +++ b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml @@ -300,20 +300,6 @@ Very old (no more supported) syntax:\n\ Some <:expr< Bigarray.Genarray.set $arr$ [| $coords$ |] $newval$ >> | _ -> None ]; - value test_not_left_brace_nor_do = - Gram.Entry.of_parser "test_not_left_brace_nor_do" - (fun strm -> - match Stream.peek strm with - [ Some(KEYWORD "{" | KEYWORD "do", _) -> raise Stream.Failure - | _ -> () ]); - - value test_lparen_type = - Gram.Entry.of_parser "test_lparen_type" - (fun strm -> - match Stream.npeek 2 strm with - [ [(KEYWORD "(", _); (KEYWORD "type", _)] -> () - | _ -> raise Stream.Failure ]); - value stopped_at _loc = Some (Loc.move_line 1 _loc) (* FIXME be more precise *); @@ -330,69 +316,46 @@ Very old (no more supported) syntax:\n\ loop ; + value setup_op_parser entry p = + Gram.Entry.setup_parser entry + (parser + [: `(KEYWORD x | SYMBOL x, ti) when p x :] -> + let _loc = Gram.token_location ti in + <:expr< $lid:x$ >>); + let list = ['!'; '?'; '~'] in let excl = ["!="; "??"] in - Gram.Entry.setup_parser prefixop - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - not (List.mem x excl) && String.length x >= 2 && - List.mem x.[0] list && symbolchar x 1 :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser prefixop + (fun x -> not (List.mem x excl) && String.length x >= 2 && + List.mem x.[0] list && symbolchar x 1); let list_ok = ["<"; ">"; "<="; ">="; "="; "<>"; "=="; "!="; "$"] in let list_first_char_ok = ['='; '<'; '>'; '|'; '&'; '$'; '!'] in let excl = ["<-"; "||"; "&&"] in - Gram.Entry.setup_parser infixop0 - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - (List.mem x list_ok) || - (not (List.mem x excl) && String.length x >= 2 && - List.mem x.[0] list_first_char_ok && symbolchar x 1) :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser infixop0 + (fun x -> (List.mem x list_ok) || + (not (List.mem x excl) && String.length x >= 2 && + List.mem x.[0] list_first_char_ok && symbolchar x 1)); let list = ['@'; '^'] in - Gram.Entry.setup_parser infixop1 - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - String.length x >= 1 && List.mem x.[0] list && - symbolchar x 1 :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser infixop1 + (fun x -> String.length x >= 1 && List.mem x.[0] list && + symbolchar x 1); let list = ['+'; '-'] in - Gram.Entry.setup_parser infixop2 - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - x <> "->" && String.length x >= 1 && List.mem x.[0] list && - symbolchar x 1 :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser infixop2 + (fun x -> x <> "->" && String.length x >= 1 && List.mem x.[0] list && + symbolchar x 1); let list = ['*'; '/'; '%'; '\\'] in - Gram.Entry.setup_parser infixop3 - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - String.length x >= 1 && List.mem x.[0] list && - (x.[0] <> '*' || String.length x < 2 || x.[1] <> '*') && - symbolchar x 1 :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser infixop3 + (fun x -> String.length x >= 1 && List.mem x.[0] list && + (x.[0] <> '*' || String.length x < 2 || x.[1] <> '*') && + symbolchar x 1); - Gram.Entry.setup_parser infixop4 - (parser - [: `(KEYWORD x | SYMBOL x, _loc) - when - String.length x >= 2 && x.[0] == '*' && x.[1] == '*' && - symbolchar x 2 :] -> - <:expr< $lid:x$ >>) - ; + setup_op_parser infixop4 + (fun x -> String.length x >= 2 && x.[0] == '*' && x.[1] == '*' && + symbolchar x 2); value rec infix_kwds_filter = parser @@ -408,17 +371,21 @@ Very old (no more supported) syntax:\n\ Token.Filter.define_filter (Gram.get_filter ()) (fun f strm -> infix_kwds_filter (f strm)); - (* transmit the context *) Gram.Entry.setup_parser sem_expr begin let symb1 = Gram.parse_tokens_after_filter expr in let symb = parser - [ [: `(ANTIQUOT ("list" as n) s, _loc) :] -> <:expr< $anti:mk_anti ~c:"expr;" n s$ >> + [ [: `(ANTIQUOT ("list" as n) s, ti) :] -> + let _loc = Gram.token_location ti in + <:expr< $anti:mk_anti ~c:"expr;" n s$ >> | [: a = symb1 :] -> a ] in let rec kont al = parser - [ [: `(KEYWORD ";", _loc); a = symb; s :] -> kont <:expr< $al$; $a$ >> s + [ [: `(KEYWORD ";", _); a = symb; s :] -> + let _loc = Loc.merge (Ast.loc_of_expr al) + (Ast.loc_of_expr a) in + kont <:expr< $al$; $a$ >> s | [: :] -> al ] in parser [: a = symb; s :] -> kont a s @@ -457,7 +424,9 @@ Very old (no more supported) syntax:\n\ type_ident_and_parameters type_kind type_longident type_longident_and_parameters type_parameter type_parameters typevars use_file val_longident value_let value_val with_constr with_constr_quot - infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence package_type; + infixop0 infixop1 infixop2 infixop3 infixop4 do_sequence package_type + rec_flag_quot direction_flag_quot mutable_flag_quot private_flag_quot + virtual_flag_quot row_var_flag_quot override_flag_quot; module_expr: [ "top" [ "functor"; "("; i = a_UIDENT; ":"; t = module_type; ")"; "->"; @@ -715,7 +684,9 @@ Very old (no more supported) syntax:\n\ | s = a_FLOAT -> <:expr< $flo:s$ >> | s = a_STRING -> <:expr< $str:s$ >> | s = a_CHAR -> <:expr< $chr:s$ >> - | i = val_longident -> <:expr< $id:i$ >> + | i = TRY module_longident_dot_lparen; e = sequence; ")" -> + <:expr< let open $i$ in $e$ >> + | i = TRY val_longident -> <:expr< $id:i$ >> | "`"; s = a_ident -> <:expr< ` $s$ >> | "["; "]" -> <:expr< [] >> | "["; mk_list = sem_expr_for_list; "::"; last = expr; "]" -> @@ -747,8 +718,10 @@ Very old (no more supported) syntax:\n\ ] ] ; do_sequence: - [ [ "{"; seq = sequence; "}" -> seq - | test_not_left_brace_nor_do; seq = sequence; "done" -> seq + [ [ seq = TRY ["{"; seq = sequence; "}" -> seq] -> seq + | TRY ["{"; "}"] -> <:expr< () >> + | seq = TRY [seq = sequence; "done" -> seq] -> seq + | "done" -> <:expr< () >> ] ] ; infixop5: @@ -759,6 +732,7 @@ Very old (no more supported) syntax:\n\ ; sem_expr_for_list: [ [ e = expr; ";"; el = SELF -> fun acc -> <:expr< [ $e$ :: $el acc$ ] >> + | e = expr; ";" -> fun acc -> <:expr< [ $e$ :: $acc$ ] >> | e = expr -> fun acc -> <:expr< [ $e$ :: $acc$ ] >> ] ] ; @@ -805,9 +779,9 @@ Very old (no more supported) syntax:\n\ ; fun_binding: [ RIGHTA - [ test_lparen_type; "("; "type"; i = a_LIDENT; ")"; e = SELF -> - Ast.ExFUN _loc i e - | p = labeled_ipatt; e = SELF -> + [ TRY ["("; "type"]; i = a_LIDENT; ")"; e = SELF -> + <:expr< fun (type $i$) -> $e$ >> + | p = TRY labeled_ipatt; e = SELF -> <:expr< fun $p$ -> $e$ >> | bi = cvalue_binding -> bi ] ] @@ -857,27 +831,27 @@ Very old (no more supported) syntax:\n\ <:rec_binding< $i$ = $lid:lid_of_ident i$ >> ] ] ; fun_def: - [ [ test_lparen_type; "("; "type"; i = a_LIDENT; ")"; + [ [ TRY ["("; "type"]; i = a_LIDENT; ")"; e = fun_def_cont_no_when -> - Ast.ExFUN _loc i e - | p = labeled_ipatt; (w, e) = fun_def_cont -> + <:expr< fun (type $i$) -> $e$ >> + | p = TRY labeled_ipatt; (w, e) = fun_def_cont -> <:expr< fun [ $p$ when $w$ -> $e$ ] >> ] ] ; fun_def_cont: [ RIGHTA - [ test_lparen_type; "("; "type"; i = a_LIDENT; ")"; + [ TRY ["("; "type"]; i = a_LIDENT; ")"; e = fun_def_cont_no_when -> - (<:expr<>>, Ast.ExFUN _loc i e) - | p = labeled_ipatt; (w,e) = SELF -> + (<:expr<>>, <:expr< fun (type $i$) -> $e$ >>) + | p = TRY labeled_ipatt; (w,e) = SELF -> (<:expr<>>, <:expr< fun [ $p$ when $w$ -> $e$ ] >>) | "when"; w = expr; "->"; e = expr -> (w, e) | "->"; e = expr -> (<:expr<>>, e) ] ] ; fun_def_cont_no_when: [ RIGHTA - [ test_lparen_type; "("; "type"; i = a_LIDENT; ")"; - e = fun_def_cont_no_when -> Ast.ExFUN _loc i e - | p = labeled_ipatt; (w,e) = fun_def_cont -> + [ TRY ["("; "type"]; i = a_LIDENT; ")"; + e = fun_def_cont_no_when -> <:expr< fun (type $i$) -> $e$ >> + | p = TRY labeled_ipatt; (w,e) = fun_def_cont -> <:expr< fun [ $p$ when $w$ -> $e$ ] >> | "->"; e = expr -> e ] ] ; @@ -948,12 +922,14 @@ Very old (no more supported) syntax:\n\ ; sem_patt: [ LEFTA - [ p1 = SELF; ";"; p2 = SELF -> <:patt< $p1$; $p2$ >> + [ p1 = patt; ";"; p2 = SELF -> <:patt< $p1$; $p2$ >> | `ANTIQUOT ("list" as n) s -> <:patt< $anti:mk_anti ~c:"patt;" n s$ >> + | p = patt; ";" -> p | p = patt -> p ] ] ; sem_patt_for_list: [ [ p = patt; ";"; pl = SELF -> fun acc -> <:patt< [ $p$ :: $pl acc$ ] >> + | p = patt; ";" -> fun acc -> <:patt< [ $p$ :: $acc$ ] >> | p = patt -> fun acc -> <:patt< [ $p$ :: $acc$ ] >> ] ] ; @@ -1202,6 +1178,12 @@ Very old (no more supported) syntax:\n\ | i = a_UIDENT -> <:ident< $uid:i$ >> | "("; i = SELF; ")" -> i ] ] ; + module_longident_dot_lparen: + [ [ `ANTIQUOT (""|"id"|"anti"|"list" as n) s; "."; "(" -> + <:ident< $anti:mk_anti ~c:"ident" n s$ >> + | m = a_UIDENT; "."; l = SELF -> <:ident< $uid:m$.$l$ >> + | i = a_UIDENT; "."; "(" -> <:ident< $uid:i$ >> ] ] + ; type_longident: [ "apply" [ i = SELF; j = SELF -> <:ident< $i$ $j$ >> ] @@ -1328,25 +1310,48 @@ Very old (no more supported) syntax:\n\ [ `ANTIQUOT (""|"cst"|"anti"|"list" as n) s -> <:class_str_item< $anti:mk_anti ~c:"class_str_item" n s$ >> | `QUOTATION x -> Quotation.expand _loc x Quotation.DynAst.class_str_item_tag - | "inherit"; ce = class_expr; pb = opt_as_lident -> - <:class_str_item< inherit $ce$ as $pb$ >> - | value_val; mf = opt_mutable; lab = label; e = cvalue_binding -> - <:class_str_item< value $mutable:mf$ $lab$ = $e$ >> - | value_val; mf = opt_mutable; "virtual"; l = label; ":"; t = poly_type -> - <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >> - | value_val; "virtual"; mf = opt_mutable; l = label; ":"; t = poly_type -> - <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >> - | "method"; "virtual"; pf = opt_private; l = label; ":"; t = poly_type -> - <:class_str_item< method virtual $private:pf$ $l$ : $t$ >> - | "method"; pf = opt_private; "virtual"; l = label; ":"; t = poly_type -> - <:class_str_item< method virtual $private:pf$ $l$ : $t$ >> - | "method"; pf = opt_private; l = label; topt = opt_polyt; - e = fun_binding -> - <:class_str_item< method $private:pf$ $l$ : $topt$ = $e$ >> + | "inherit"; o = opt_override; ce = class_expr; pb = opt_as_lident -> + <:class_str_item< inherit $override:o$ $ce$ as $pb$ >> + | o = value_val_opt_override; mf = opt_mutable; lab = label; e = cvalue_binding -> + <:class_str_item< value $override:o$ $mutable:mf$ $lab$ = $e$ >> + | o = value_val_opt_override; mf = opt_mutable; "virtual"; l = label; ":"; t = poly_type -> + if o <> <:override_flag<>> then + raise (Stream.Error "override (!) is incompatible with virtual") + else + <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >> + | o = value_val_opt_override; "virtual"; mf = opt_mutable; l = label; ":"; t = poly_type -> + if o <> <:override_flag<>> then + raise (Stream.Error "override (!) is incompatible with virtual") + else + <:class_str_item< value virtual $mutable:mf$ $l$ : $t$ >> + | o = method_opt_override; "virtual"; pf = opt_private; l = label; ":"; t = poly_type -> + if o <> <:override_flag<>> then + raise (Stream.Error "override (!) is incompatible with virtual") + else + <:class_str_item< method virtual $private:pf$ $l$ : $t$ >> + | o = method_opt_override; pf = opt_private; l = label; topt = opt_polyt; e = fun_binding -> + <:class_str_item< method $override:o$ $private:pf$ $l$ : $topt$ = $e$ >> + | o = method_opt_override; pf = opt_private; "virtual"; l = label; ":"; t = poly_type -> + if o <> <:override_flag<>> then + raise (Stream.Error "override (!) is incompatible with virtual") + else + <:class_str_item< method virtual $private:pf$ $l$ : $t$ >> | type_constraint; t1 = ctyp; "="; t2 = ctyp -> <:class_str_item< type $t1$ = $t2$ >> | "initializer"; se = expr -> <:class_str_item< initializer $se$ >> ] ] ; + method_opt_override: + [ [ "method"; "!" -> <:override_flag< ! >> + | "method"; `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s) + | "method" -> <:override_flag<>> + ] ] + ; + value_val_opt_override: + [ [ value_val; "!" -> <:override_flag< ! >> + | value_val; `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s) + | value_val -> <:override_flag<>> + ] ] + ; opt_as_lident: [ [ "as"; i = a_LIDENT -> i | -> "" @@ -1535,38 +1540,44 @@ Very old (no more supported) syntax:\n\ | p = ipatt -> p ] ] ; direction_flag: - [ [ "to" -> Ast.BTrue - | "downto" -> Ast.BFalse - | `ANTIQUOT ("to" as n) s -> Ast.BAnt (mk_anti n s) ] ] + [ [ "to" -> <:direction_flag< to >> + | "downto" -> <:direction_flag< downto >> + | `ANTIQUOT ("to"|"anti" as n) s -> Ast.DiAnt (mk_anti n s) ] ] ; opt_private: - [ [ "private" -> Ast.BTrue - | `ANTIQUOT ("private" as n) s -> Ast.BAnt (mk_anti n s) - | -> Ast.BFalse + [ [ "private" -> <:private_flag< private >> + | `ANTIQUOT ("private"|"anti" as n) s -> Ast.PrAnt (mk_anti n s) + | -> <:private_flag<>> ] ] ; opt_mutable: - [ [ "mutable" -> Ast.BTrue - | `ANTIQUOT ("mutable" as n) s -> Ast.BAnt (mk_anti n s) - | -> Ast.BFalse + [ [ "mutable" -> <:mutable_flag< mutable >> + | `ANTIQUOT ("mutable"|"anti" as n) s -> Ast.MuAnt (mk_anti n s) + | -> <:mutable_flag<>> ] ] ; opt_virtual: - [ [ "virtual" -> Ast.BTrue - | `ANTIQUOT ("virtual" as n) s -> Ast.BAnt (mk_anti n s) - | -> Ast.BFalse + [ [ "virtual" -> <:virtual_flag< virtual >> + | `ANTIQUOT ("virtual"|"anti" as n) s -> Ast.ViAnt (mk_anti n s) + | -> <:virtual_flag<>> ] ] ; opt_dot_dot: - [ [ ".." -> Ast.BTrue - | `ANTIQUOT (".." as n) s -> Ast.BAnt (mk_anti n s) - | -> Ast.BFalse + [ [ ".." -> <:row_var_flag< .. >> + | `ANTIQUOT (".."|"anti" as n) s -> Ast.RvAnt (mk_anti n s) + | -> <:row_var_flag<>> ] ] ; opt_rec: - [ [ "rec" -> Ast.BTrue - | `ANTIQUOT ("rec" as n) s -> Ast.BAnt (mk_anti n s) - | -> Ast.BFalse + [ [ "rec" -> <:rec_flag< rec >> + | `ANTIQUOT ("rec"|"anti" as n) s -> Ast.ReAnt (mk_anti n s) + | -> <:rec_flag<>> + ] ] + ; + opt_override: + [ [ "!" -> <:override_flag< ! >> + | `ANTIQUOT (("!"|"override"|"anti") as n) s -> Ast.OvAnt (mk_anti n s) + | -> <:override_flag<>> ] ] ; opt_expr: @@ -1799,7 +1810,7 @@ Very old (no more supported) syntax:\n\ | "virtual"; (i, ot) = class_name_and_param -> <:class_expr< virtual $lid:i$ [ $ot$ ] >> | `ANTIQUOT ("virtual" as n) s; i = ident; ot = opt_comma_ctyp -> - let anti = Ast.BAnt (mk_anti ~c:"class_expr" n s) in + let anti = Ast.ViAnt (mk_anti ~c:"class_expr" n s) in <:class_expr< $virtual:anti$ $id:i$ [ $ot$ ] >> | x = class_expr -> x | -> <:class_expr<>> @@ -1812,7 +1823,7 @@ Very old (no more supported) syntax:\n\ | "virtual"; (i, ot) = class_name_and_param -> <:class_type< virtual $lid:i$ [ $ot$ ] >> | `ANTIQUOT ("virtual" as n) s; i = ident; ot = opt_comma_ctyp -> - let anti = Ast.BAnt (mk_anti ~c:"class_type" n s) in + let anti = Ast.ViAnt (mk_anti ~c:"class_type" n s) in <:class_type< $virtual:anti$ $id:i$ [ $ot$ ] >> | x = class_type_plus -> x | -> <:class_type<>> @@ -1833,6 +1844,13 @@ Very old (no more supported) syntax:\n\ [ [ x = with_constr -> x | -> <:with_constr<>> ] ] ; + rec_flag_quot: [ [ x = opt_rec -> x ] ]; + direction_flag_quot: [ [ x = direction_flag -> x ] ]; + mutable_flag_quot: [ [ x = opt_mutable -> x ] ]; + private_flag_quot: [ [ x = opt_private -> x ] ]; + virtual_flag_quot: [ [ x = opt_virtual -> x ] ]; + row_var_flag_quot: [ [ x = opt_dot_dot -> x ] ]; + override_flag_quot: [ [ x = opt_override -> x ] ]; patt_eoi: [ [ x = patt; `EOI -> x ] ] ; diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser.ml index 4e4d35d856..97747d448e 100644 --- a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser.ml +++ b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser.ml @@ -320,10 +320,10 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct parser_case parser_case_list; expr: LEVEL "top" [ [ "parser"; po = OPT parser_ipatt; pcl = parser_case_list -> - <:expr< $cparser _loc po pcl$ >> + cparser _loc po pcl | "match"; e = sequence; "with"; "parser"; po = OPT parser_ipatt; pcl = parser_case_list -> - <:expr< $cparser_match _loc e po pcl$ >> + cparser_match _loc e po pcl ] ] ; parser_case_list: diff --git a/camlp4/Camlp4Parsers/Camlp4QuotationCommon.ml b/camlp4/Camlp4Parsers/Camlp4QuotationCommon.ml index 50e57fa1f9..c8025d75de 100644 --- a/camlp4/Camlp4Parsers/Camlp4QuotationCommon.ml +++ b/camlp4/Camlp4Parsers/Camlp4QuotationCommon.ml @@ -201,5 +201,12 @@ module Make (Syntax : Sig.Camlp4Syntax) add_quotation "module_binding" module_binding_quot ME.meta_module_binding MP.meta_module_binding; add_quotation "ident" ident_quot ME.meta_ident MP.meta_ident; + add_quotation "rec_flag" rec_flag_quot ME.meta_rec_flag MP.meta_rec_flag; + add_quotation "private_flag" private_flag_quot ME.meta_private_flag MP.meta_private_flag; + add_quotation "row_var_flag" row_var_flag_quot ME.meta_row_var_flag MP.meta_row_var_flag; + add_quotation "mutable_flag" mutable_flag_quot ME.meta_mutable_flag MP.meta_mutable_flag; + add_quotation "virtual_flag" virtual_flag_quot ME.meta_virtual_flag MP.meta_virtual_flag; + add_quotation "override_flag" override_flag_quot ME.meta_override_flag MP.meta_override_flag; + add_quotation "direction_flag" direction_flag_quot ME.meta_direction_flag MP.meta_direction_flag; end; diff --git a/camlp4/boot/Camlp4.ml b/camlp4/boot/Camlp4.ml index bca9708f0d..92daa282d8 100644 --- a/camlp4/boot/Camlp4.ml +++ b/camlp4/boot/Camlp4.ml @@ -602,6 +602,20 @@ module Sig = type module_binding + type rec_flag + + type direction_flag + + type mutable_flag + + type private_flag + + type virtual_flag + + type row_var_flag + + type override_flag + (** {6 Location accessors} *) val loc_of_ctyp : ctyp -> loc @@ -706,6 +720,20 @@ module Sig = method ident : ident -> ident + method override_flag : override_flag -> override_flag + + method mutable_flag : mutable_flag -> mutable_flag + + method private_flag : private_flag -> private_flag + + method virtual_flag : virtual_flag -> virtual_flag + + method direction_flag : direction_flag -> direction_flag + + method rec_flag : rec_flag -> rec_flag + + method row_var_flag : row_var_flag -> row_var_flag + method unknown : 'a. 'a -> 'a end @@ -766,6 +794,20 @@ module Sig = method ident : ident -> 'self_type + method rec_flag : rec_flag -> 'self_type + + method direction_flag : direction_flag -> 'self_type + + method mutable_flag : mutable_flag -> 'self_type + + method private_flag : private_flag -> 'self_type + + method virtual_flag : virtual_flag -> 'self_type + + method row_var_flag : row_var_flag -> 'self_type + + method override_flag : override_flag -> 'self_type + method unknown : 'a. 'a -> 'self_type end @@ -813,6 +855,20 @@ module Sig = t and meta_bool = | BTrue | BFalse | BAnt of string + and rec_flag = + | ReRecursive | ReNil | ReAnt of string + and direction_flag = + | DiTo | DiDownto | DiAnt of string + and mutable_flag = + | MuMutable | MuNil | MuAnt of string + and private_flag = + | PrPrivate | PrNil | PrAnt of string + and virtual_flag = + | ViVirtual | ViNil | ViAnt of string + and override_flag = + | OvOverride | OvNil | OvAnt of string + and row_var_flag = + | RvRowVar | RvNil | RvAnt of string and 'a meta_option = | ONone | OSome of 'a | OAnt of string and 'a meta_list = @@ -856,7 +912,7 @@ module Sig = TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list | (* < (t)? (..)? > *) (* < move : int -> 'a .. > as 'a *) - TyObj of loc * ctyp * meta_bool + TyObj of loc * ctyp * row_var_flag | TyOlb of loc * string * ctyp | (* ?s:t *) TyPol of loc * ctyp * ctyp @@ -997,7 +1053,7 @@ module Sig = ExFlo of loc * string | (* 3.14 *) (* for s = e to/downto e do { e } *) - ExFor of loc * string * expr * expr * meta_bool * expr + ExFor of loc * string * expr * expr * direction_flag * expr | ExFun of loc * match_case | (* fun [ mc ] *) ExIfe of loc * expr * expr * expr @@ -1012,7 +1068,7 @@ module Sig = ExLaz of loc * expr | (* lazy e *) (* let b in e or let rec b in e *) - ExLet of loc * meta_bool * binding * expr + ExLet of loc * rec_flag * binding * expr | (* let module s = me in e *) ExLmd of loc * string * module_expr * expr | (* match e with [ mc ] *) @@ -1197,13 +1253,13 @@ module Sig = | (* type t *) StTyp of loc * ctyp | (* value (rec)? bi *) - StVal of loc * meta_bool * binding + StVal of loc * rec_flag * binding | StAnt of loc * string and (* $s$ *) class_type = | CtNil of loc | (* (virtual)? i ([ t ])? *) - CtCon of loc * meta_bool * ident * ctyp + CtCon of loc * virtual_flag * ident * ctyp | (* [t] -> ct *) CtFun of loc * ctyp * class_type | (* object ((t))? (csg)? end *) @@ -1225,11 +1281,11 @@ module Sig = | (* inherit ct *) CgInh of loc * class_type | (* method s : t or method private s : t *) - CgMth of loc * string * meta_bool * ctyp + CgMth of loc * string * private_flag * ctyp | (* value (virtual)? (mutable)? s : t *) - CgVal of loc * string * meta_bool * meta_bool * ctyp - | (* method virtual (mutable)? s : t *) - CgVir of loc * string * meta_bool * ctyp + CgVal of loc * string * mutable_flag * virtual_flag * ctyp + | (* method virtual (private)? s : t *) + CgVir of loc * string * private_flag * ctyp | CgAnt of loc * string and (* $s$ *) class_expr = @@ -1237,11 +1293,11 @@ module Sig = | (* ce e *) CeApp of loc * class_expr * expr | (* (virtual)? i ([ t ])? *) - CeCon of loc * meta_bool * ident * ctyp + CeCon of loc * virtual_flag * ident * ctyp | (* fun p -> ce *) CeFun of loc * patt * class_expr | (* let (rec)? bi in ce *) - CeLet of loc * meta_bool * binding * class_expr + CeLet of loc * rec_flag * binding * class_expr | (* object ((p))? (cst)? end *) CeStr of loc * patt * class_str_item | (* ce : ct *) @@ -1258,18 +1314,18 @@ module Sig = CrSem of loc * class_str_item * class_str_item | (* type t = t *) CrCtr of loc * ctyp * ctyp - | (* inherit ce or inherit ce as s *) - CrInh of loc * class_expr * string + | (* inherit(!)? ce (as s)? *) + CrInh of loc * override_flag * class_expr * string | (* initializer e *) CrIni of loc * expr - | (* method (private)? s : t = e or method (private)? s = e *) - CrMth of loc * string * meta_bool * expr * ctyp - | (* value (mutable)? s = e *) - CrVal of loc * string * meta_bool * expr + | (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *) + CrMth of loc * string * override_flag * private_flag * expr * ctyp + | (* value(!)? (mutable)? s = e *) + CrVal of loc * string * override_flag * mutable_flag * expr | (* method virtual (private)? s : t *) - CrVir of loc * string * meta_bool * ctyp - | (* value virtual (private)? s : t *) - CrVvr of loc * string * meta_bool * ctyp + CrVir of loc * string * private_flag * ctyp + | (* value virtual (mutable)? s : t *) + CrVvr of loc * string * mutable_flag * ctyp | CrAnt of loc * string val loc_of_ctyp : ctyp -> loc @@ -1391,6 +1447,20 @@ module Sig = val meta_with_constr : loc -> with_constr -> expr + val meta_rec_flag : loc -> rec_flag -> expr + + val meta_mutable_flag : loc -> mutable_flag -> expr + + val meta_virtual_flag : loc -> virtual_flag -> expr + + val meta_private_flag : loc -> private_flag -> expr + + val meta_row_var_flag : loc -> row_var_flag -> expr + + val meta_override_flag : loc -> override_flag -> expr + + val meta_direction_flag : loc -> direction_flag -> expr + end module Patt : @@ -1442,6 +1512,20 @@ module Sig = val meta_with_constr : loc -> with_constr -> patt + val meta_rec_flag : loc -> rec_flag -> patt + + val meta_mutable_flag : loc -> mutable_flag -> patt + + val meta_virtual_flag : loc -> virtual_flag -> patt + + val meta_private_flag : loc -> private_flag -> patt + + val meta_row_var_flag : loc -> row_var_flag -> patt + + val meta_override_flag : loc -> override_flag -> patt + + val meta_direction_flag : loc -> direction_flag -> patt + end end @@ -1500,6 +1584,20 @@ module Sig = method ident : ident -> ident + method mutable_flag : mutable_flag -> mutable_flag + + method private_flag : private_flag -> private_flag + + method virtual_flag : virtual_flag -> virtual_flag + + method direction_flag : direction_flag -> direction_flag + + method rec_flag : rec_flag -> rec_flag + + method row_var_flag : row_var_flag -> row_var_flag + + method override_flag : override_flag -> override_flag + method unknown : 'a. 'a -> 'a end @@ -1559,6 +1657,20 @@ module Sig = method ident : ident -> 'self_type + method rec_flag : rec_flag -> 'self_type + + method direction_flag : direction_flag -> 'self_type + + method mutable_flag : mutable_flag -> 'self_type + + method private_flag : private_flag -> 'self_type + + method virtual_flag : virtual_flag -> 'self_type + + method row_var_flag : row_var_flag -> 'self_type + + method override_flag : override_flag -> 'self_type + method unknown : 'a. 'a -> 'self_type end @@ -1710,7 +1822,14 @@ module Sig = and type class_str_item = M.class_str_item and type binding = M.binding and type rec_binding = M.rec_binding and type module_binding = M.module_binding - and type match_case = M.match_case and type ident = M.ident = M + and type match_case = M.match_case and type ident = M.ident + and type rec_flag = M.rec_flag + and type direction_flag = M.direction_flag + and type mutable_flag = M.mutable_flag + and type private_flag = M.private_flag + and type virtual_flag = M.virtual_flag + and type row_var_flag = M.row_var_flag + and type override_flag = M.override_flag = M module MakeCamlp4Ast (Loc : Type) = struct @@ -1719,6 +1838,20 @@ module Sig = t and meta_bool = | BTrue | BFalse | BAnt of string + and rec_flag = + | ReRecursive | ReNil | ReAnt of string + and direction_flag = + | DiTo | DiDownto | DiAnt of string + and mutable_flag = + | MuMutable | MuNil | MuAnt of string + and private_flag = + | PrPrivate | PrNil | PrAnt of string + and virtual_flag = + | ViVirtual | ViNil | ViAnt of string + and override_flag = + | OvOverride | OvNil | OvAnt of string + and row_var_flag = + | RvRowVar | RvNil | RvAnt of string and 'a meta_option = | ONone | OSome of 'a | OAnt of string and 'a meta_list = @@ -1740,7 +1873,7 @@ module Sig = | TyId of loc * ident | TyMan of loc * ctyp * ctyp | TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list - | TyObj of loc * ctyp * meta_bool + | TyObj of loc * ctyp * row_var_flag | TyOlb of loc * string * ctyp | TyPol of loc * ctyp * ctyp | TyQuo of loc * string @@ -1811,7 +1944,7 @@ module Sig = | ExChr of loc * string | ExCoe of loc * expr * ctyp * ctyp | ExFlo of loc * string - | ExFor of loc * string * expr * expr * meta_bool * expr + | ExFor of loc * string * expr * expr * direction_flag * expr | ExFun of loc * match_case | ExIfe of loc * expr * expr * expr | ExInt of loc * string @@ -1820,7 +1953,7 @@ module Sig = | ExNativeInt of loc * string | ExLab of loc * string * expr | ExLaz of loc * expr - | ExLet of loc * meta_bool * binding * expr + | ExLet of loc * rec_flag * binding * expr | ExLmd of loc * string * module_expr * expr | ExMat of loc * expr * match_case | ExNew of loc * ident @@ -1918,11 +2051,11 @@ module Sig = | StMty of loc * string * module_type | StOpn of loc * ident | StTyp of loc * ctyp - | StVal of loc * meta_bool * binding + | StVal of loc * rec_flag * binding | StAnt of loc * string and class_type = | CtNil of loc - | CtCon of loc * meta_bool * ident * ctyp + | CtCon of loc * virtual_flag * ident * ctyp | CtFun of loc * ctyp * class_type | CtSig of loc * ctyp * class_sig_item | CtAnd of loc * class_type * class_type @@ -1934,16 +2067,16 @@ module Sig = | CgCtr of loc * ctyp * ctyp | CgSem of loc * class_sig_item * class_sig_item | CgInh of loc * class_type - | CgMth of loc * string * meta_bool * ctyp - | CgVal of loc * string * meta_bool * meta_bool * ctyp - | CgVir of loc * string * meta_bool * ctyp + | CgMth of loc * string * private_flag * ctyp + | CgVal of loc * string * mutable_flag * virtual_flag * ctyp + | CgVir of loc * string * private_flag * ctyp | CgAnt of loc * string and class_expr = | CeNil of loc | CeApp of loc * class_expr * expr - | CeCon of loc * meta_bool * ident * ctyp + | CeCon of loc * virtual_flag * ident * ctyp | CeFun of loc * patt * class_expr - | CeLet of loc * meta_bool * binding * class_expr + | CeLet of loc * rec_flag * binding * class_expr | CeStr of loc * patt * class_str_item | CeTyc of loc * class_expr * class_type | CeAnd of loc * class_expr * class_expr @@ -1953,12 +2086,13 @@ module Sig = | CrNil of loc | CrSem of loc * class_str_item * class_str_item | CrCtr of loc * ctyp * ctyp - | CrInh of loc * class_expr * string + | CrInh of loc * override_flag * class_expr * string | CrIni of loc * expr - | CrMth of loc * string * meta_bool * expr * ctyp - | CrVal of loc * string * meta_bool * expr - | CrVir of loc * string * meta_bool * ctyp - | CrVvr of loc * string * meta_bool * ctyp + | CrMth of loc * string * override_flag * private_flag * expr + * ctyp + | CrVal of loc * string * override_flag * mutable_flag * expr + | CrVir of loc * string * private_flag * ctyp + | CrVvr of loc * string * mutable_flag * ctyp | CrAnt of loc * string end @@ -2201,6 +2335,12 @@ module Sig = type token_pattern = ((Token.t -> bool) * string) + type token_info + + type token_stream = (Token.t * token_info) Stream.t + + val token_location : token_info -> Loc.t + type symbol = | Smeta of string * symbol list * Action.t | Snterm of internal_entry @@ -2210,6 +2350,7 @@ module Sig = | Slist1 of symbol | Slist1sep of symbol * symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -2251,11 +2392,9 @@ module Sig = val mk : gram -> string -> 'a t val of_parser : - gram -> - string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t + gram -> string -> (token_stream -> 'a) -> 'a t - val setup_parser : - 'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit + val setup_parser : 'a t -> (token_stream -> 'a) -> unit val name : 'a t -> string @@ -2297,8 +2436,7 @@ module Sig = val filter : gram -> - ((Token.t * Loc.t) Stream.t) not_filtered -> - (Token.t * Loc.t) Stream.t + ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a @@ -2307,8 +2445,7 @@ module Sig = val parse_tokens_before_filter : 'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a - val parse_tokens_after_filter : - 'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a + val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a end @@ -2322,11 +2459,9 @@ module Sig = val mk : string -> 'a t - val of_parser : - string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t + val of_parser : string -> (token_stream -> 'a) -> 'a t - val setup_parser : - 'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit + val setup_parser : 'a t -> (token_stream -> 'a) -> unit val name : 'a t -> string @@ -2365,8 +2500,7 @@ module Sig = Loc.t -> string -> ((Token.t * Loc.t) Stream.t) not_filtered val filter : - ((Token.t * Loc.t) Stream.t) not_filtered -> - (Token.t * Loc.t) Stream.t + ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a @@ -2375,8 +2509,7 @@ module Sig = val parse_tokens_before_filter : 'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a - val parse_tokens_after_filter : - 'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a + val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a end @@ -2596,7 +2729,9 @@ module Sig = val cvalue_binding : Ast.expr Gram.Entry.t - val direction_flag : Ast.meta_bool Gram.Entry.t + val direction_flag : Ast.direction_flag Gram.Entry.t + + val direction_flag_quot : Ast.direction_flag Gram.Entry.t val dummy : unit Gram.Entry.t @@ -2648,7 +2783,7 @@ module Sig = val let_binding : Ast.binding Gram.Entry.t - val meth_list : (Ast.ctyp * Ast.meta_bool) Gram.Entry.t + val meth_list : (Ast.ctyp * Ast.row_var_flag) Gram.Entry.t val meth_decl : Ast.ctyp Gram.Entry.t @@ -2688,7 +2823,9 @@ module Sig = val opt_comma_ctyp : Ast.ctyp Gram.Entry.t - val opt_dot_dot : Ast.meta_bool Gram.Entry.t + val opt_dot_dot : Ast.row_var_flag Gram.Entry.t + + val row_var_flag_quot : Ast.row_var_flag Gram.Entry.t val opt_eq_ctyp : Ast.ctyp Gram.Entry.t @@ -2696,15 +2833,27 @@ module Sig = val opt_meth_list : Ast.ctyp Gram.Entry.t - val opt_mutable : Ast.meta_bool Gram.Entry.t + val opt_mutable : Ast.mutable_flag Gram.Entry.t + + val mutable_flag_quot : Ast.mutable_flag Gram.Entry.t + + val opt_override : Ast.override_flag Gram.Entry.t + + val override_flag_quot : Ast.override_flag Gram.Entry.t val opt_polyt : Ast.ctyp Gram.Entry.t - val opt_private : Ast.meta_bool Gram.Entry.t + val opt_private : Ast.private_flag Gram.Entry.t + + val private_flag_quot : Ast.private_flag Gram.Entry.t + + val opt_rec : Ast.rec_flag Gram.Entry.t + + val rec_flag_quot : Ast.rec_flag Gram.Entry.t - val opt_rec : Ast.meta_bool Gram.Entry.t + val opt_virtual : Ast.virtual_flag Gram.Entry.t - val opt_virtual : Ast.meta_bool Gram.Entry.t + val virtual_flag_quot : Ast.virtual_flag Gram.Entry.t val opt_when_expr : Ast.expr Gram.Entry.t @@ -3372,7 +3521,7 @@ module Struct = } let err error loc = - raise (Loc.Exc_located (loc, Error.E error)) + raise (Loc.Exc_located (loc, (Error.E error))) let keyword_conversion tok is_kwd = match tok with @@ -3728,7 +3877,8 @@ module Struct = pos_bol = pos.pos_cnum - chars; } - let err error loc = raise (Loc.Exc_located (loc, Error.E error)) + let err error loc = + raise (Loc.Exc_located (loc, (Error.E error))) let warn error loc = Format.eprintf "Warning: %a: %a@." Loc.print loc Error.print @@ -3762,9 +3912,9 @@ module Struct = \240\018\051\019\018\020\048\020\255\255\015\021\238\021\015\022\ \079\022\255\255\031\023\254\255\164\001\251\255\010\000\252\255\ \253\255\128\000\079\001\255\255\095\023\030\024\238\024\190\025\ - \254\255\154\026\253\255\254\255\201\000\116\027\077\028\255\255\ - \028\001\029\029\206\001\251\255\080\001\013\000\253\255\254\255\ - \255\255\252\255\093\029\028\030\236\030\188\031"; + \254\255\190\026\253\255\254\255\153\001\143\027\110\028\255\255\ + \167\001\062\029\206\001\251\255\080\001\013\000\253\255\254\255\ + \255\255\252\255\126\029\061\030\013\031\221\031"; Lexing.lex_backtrk = "\255\255\255\255\255\255\030\000\255\255\028\000\030\000\030\000\ \030\000\030\000\028\000\028\000\028\000\028\000\028\000\255\255\ @@ -3820,7 +3970,7 @@ module Struct = \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ \255\255\000\000\255\255\000\000\189\000\000\000\255\255\000\000\ \000\000\255\255\255\255\000\000\255\255\255\255\255\255\255\255\ - \000\000\202\000\000\000\000\000\255\255\255\255\255\255\000\000\ + \000\000\205\000\000\000\000\000\255\255\255\255\255\255\000\000\ \255\255\255\255\211\000\000\000\255\255\255\255\000\000\000\000\ \000\000\000\000\255\255\255\255\255\255\255\255"; Lexing.lex_trans = @@ -3854,9 +4004,9 @@ module Struct = \024\000\024\000\024\000\024\000\024\000\024\000\024\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ - \025\000\025\000\025\000\025\000\025\000\025\000\025\000\208\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\000\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ - \002\000\003\000\000\000\203\000\003\000\003\000\003\000\051\000\ + \002\000\003\000\000\000\000\000\003\000\003\000\003\000\051\000\ \255\255\255\255\003\000\003\000\048\000\003\000\003\000\003\000\ \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\ \039\000\039\000\003\000\144\000\003\000\003\000\003\000\003\000\ @@ -3865,8 +4015,8 @@ module Struct = \046\000\046\000\046\000\046\000\046\000\046\000\046\000\084\000\ \147\000\084\000\084\000\084\000\003\000\096\000\003\000\039\000\ \102\000\000\000\171\000\101\000\003\000\038\000\000\000\003\000\ - \009\000\009\000\208\000\000\000\084\000\003\000\003\000\000\000\ - \003\000\006\000\009\000\000\000\068\000\000\000\203\000\068\000\ + \009\000\009\000\000\000\000\000\084\000\003\000\003\000\000\000\ + \003\000\006\000\009\000\000\000\068\000\000\000\000\000\068\000\ \106\000\171\000\084\000\096\000\003\000\085\000\003\000\006\000\ \006\000\006\000\003\000\009\000\171\000\171\000\000\000\000\000\ \000\000\003\000\000\000\068\000\003\000\121\000\121\000\000\000\ @@ -3879,12 +4029,12 @@ module Struct = \084\000\003\000\000\000\000\000\003\000\005\000\121\000\085\000\ \000\000\006\000\006\000\006\000\003\000\009\000\191\000\000\000\ \255\255\190\000\000\000\003\000\000\000\000\000\003\000\009\000\ - \009\000\000\000\000\000\094\000\003\000\003\000\000\000\003\000\ - \009\000\009\000\000\000\000\000\120\000\005\000\003\000\000\000\ - \000\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\ - \009\000\003\000\009\000\000\000\000\000\000\000\000\000\000\000\ + \009\000\000\000\208\000\094\000\003\000\003\000\000\000\003\000\ + \009\000\009\000\000\000\000\000\120\000\005\000\003\000\208\000\ + \208\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\ + \009\000\003\000\009\000\203\000\000\000\208\000\000\000\000\000\ \214\000\000\000\000\000\213\000\117\000\117\000\000\000\000\000\ - \194\000\000\000\193\000\111\000\111\000\115\000\117\000\005\000\ + \194\000\203\000\193\000\111\000\111\000\115\000\117\000\005\000\ \000\000\085\000\005\000\003\000\109\000\111\000\003\000\094\000\ \009\000\116\000\216\000\116\000\115\000\115\000\000\000\117\000\ \114\000\000\000\109\000\112\000\112\000\000\000\111\000\111\000\ @@ -4679,46 +4829,49 @@ module Struct = \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ \199\000\199\000\199\000\199\000\199\000\000\000\199\000\199\000\ - \199\000\199\000\199\000\199\000\199\000\199\000\207\000\000\000\ - \000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \204\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\203\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\ - \000\000\205\000\206\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\204\000\ + \202\000\202\000\207\000\202\000\202\000\000\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\204\000\202\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \203\000\202\000\202\000\202\000\202\000\202\000\202\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\202\000\202\000\202\000\202\000\000\000\206\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\255\255\209\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\209\000\203\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\202\000\209\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\255\255\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\203\000\000\000\000\000\000\000\000\000\000\000\000\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\ - \000\000\000\000\000\000\209\000\000\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \209\000\209\000\000\000\000\000\000\000\000\000\209\000\000\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -4726,25 +4879,27 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\208\000\000\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\208\000\ + \000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\208\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -4752,57 +4907,56 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \000\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\ + \221\000\000\000\000\000\000\000\000\000\221\000\000\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\ + \221\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\221\000\221\000\221\000\ + \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\220\000\220\000\220\000\ + \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ - \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -4811,24 +4965,24 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\ + \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\000\000\000\000\ - \217\000\000\000\000\000\000\000\218\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ + \000\000\217\000\000\000\000\000\000\000\218\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ - \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -4837,24 +4991,24 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\ + \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\000\000\000\000\ - \217\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\ + \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\ + \000\000\217\000\000\000\000\000\000\000\000\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\ - \000\000\000\000\000\000\221\000\000\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \000\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -4863,15 +5017,15 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\221\000\221\000\221\000\221\000\ + \000\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\000\000"; + \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\000\000"; Lexing.lex_check = "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\000\000\000\000\029\000\000\000\000\000\101\000\107\000\ @@ -4903,9 +5057,9 @@ module Struct = \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ - \000\000\003\000\255\255\204\000\003\000\003\000\003\000\050\000\ + \000\000\003\000\255\255\255\255\003\000\003\000\003\000\050\000\ \103\000\106\000\003\000\003\000\020\000\003\000\003\000\003\000\ \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\ \039\000\039\000\003\000\143\000\003\000\003\000\003\000\003\000\ @@ -4914,8 +5068,8 @@ module Struct = \038\000\038\000\038\000\038\000\038\000\038\000\038\000\005\000\ \143\000\005\000\005\000\005\000\003\000\005\000\003\000\039\000\ \104\000\255\255\171\000\104\000\006\000\039\000\255\255\006\000\ - \006\000\006\000\208\000\255\255\006\000\006\000\006\000\255\255\ - \006\000\006\000\006\000\255\255\068\000\255\255\208\000\068\000\ + \006\000\006\000\255\255\255\255\006\000\006\000\006\000\255\255\ + \006\000\006\000\006\000\255\255\068\000\255\255\255\255\068\000\ \104\000\171\000\005\000\005\000\003\000\006\000\003\000\006\000\ \006\000\006\000\006\000\006\000\170\000\170\000\255\255\255\255\ \255\255\007\000\255\255\068\000\007\000\007\000\007\000\255\255\ @@ -4928,12 +5082,12 @@ module Struct = \006\000\006\000\255\255\255\255\007\000\007\000\007\000\008\000\ \255\255\008\000\008\000\008\000\008\000\008\000\188\000\255\255\ \020\000\188\000\255\255\009\000\255\255\255\255\009\000\009\000\ - \009\000\255\255\255\255\009\000\009\000\009\000\255\255\009\000\ - \009\000\009\000\255\255\255\255\007\000\007\000\007\000\255\255\ - \255\255\008\000\008\000\008\000\009\000\255\255\009\000\009\000\ - \009\000\009\000\009\000\255\255\255\255\255\255\255\255\255\255\ + \009\000\255\255\204\000\009\000\009\000\009\000\255\255\009\000\ + \009\000\009\000\255\255\255\255\007\000\007\000\007\000\204\000\ + \208\000\008\000\008\000\008\000\009\000\255\255\009\000\009\000\ + \009\000\009\000\009\000\204\000\255\255\208\000\255\255\255\255\ \210\000\255\255\255\255\210\000\011\000\011\000\255\255\255\255\ - \188\000\255\255\188\000\013\000\013\000\011\000\011\000\013\000\ + \188\000\208\000\188\000\013\000\013\000\011\000\011\000\013\000\ \255\255\008\000\008\000\008\000\013\000\013\000\009\000\009\000\ \009\000\011\000\210\000\011\000\011\000\011\000\255\255\011\000\ \013\000\255\255\013\000\013\000\013\000\255\255\013\000\014\000\ @@ -5728,46 +5882,49 @@ module Struct = \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ \199\000\199\000\199\000\199\000\199\000\255\255\199\000\199\000\ - \199\000\199\000\199\000\199\000\199\000\199\000\201\000\255\255\ - \255\255\201\000\255\255\255\255\255\255\255\255\255\255\255\255\ - \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\201\000\201\000\201\000\201\000\201\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\ - \255\255\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\ + \201\000\201\000\201\000\201\000\201\000\255\255\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\201\000\201\000\201\000\201\000\255\255\201\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\201\000\201\000\201\000\201\000\201\000\201\000\ + \255\255\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\ - \201\000\201\000\201\000\205\000\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\205\000\205\000\205\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\201\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\201\000\205\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\201\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\ - \255\255\255\255\255\255\205\000\255\255\205\000\205\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \205\000\205\000\255\255\255\255\255\255\255\255\205\000\255\255\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ @@ -5775,25 +5932,27 @@ module Struct = \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\ - \205\000\205\000\205\000\205\000\206\000\255\255\255\255\255\255\ - \255\255\255\255\255\255\206\000\255\255\206\000\206\000\206\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\206\000\ + \255\255\255\255\255\255\255\255\255\255\206\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\206\000\206\000\ + \206\000\255\255\255\255\255\255\255\255\255\255\255\255\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ - \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\ + \206\000\255\255\255\255\255\255\255\255\206\000\255\255\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ @@ -5801,57 +5960,56 @@ module Struct = \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\255\255\206\000\206\000\206\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ - \206\000\206\000\206\000\206\000\255\255\206\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\255\255\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ - \206\000\206\000\206\000\206\000\209\000\206\000\206\000\206\000\ - \206\000\206\000\206\000\206\000\206\000\209\000\209\000\209\000\ + \206\000\206\000\206\000\206\000\206\000\209\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\209\000\209\000\ + \209\000\255\255\255\255\255\255\255\255\255\255\255\255\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \255\255\255\255\255\255\255\255\209\000\255\255\209\000\209\000\ + \209\000\255\255\255\255\255\255\255\255\209\000\255\255\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \255\255\255\255\255\255\255\255\255\255\255\255\218\000\218\000\ + \209\000\255\255\255\255\255\255\255\255\255\255\255\255\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ - \255\255\255\255\255\255\255\255\218\000\255\255\218\000\218\000\ + \218\000\255\255\255\255\255\255\255\255\218\000\255\255\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ - \255\255\255\255\255\255\255\255\255\255\209\000\209\000\209\000\ + \218\000\255\255\255\255\255\255\255\255\255\255\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\ - \209\000\209\000\209\000\209\000\209\000\218\000\218\000\218\000\ + \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ - \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ - \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\ - \218\000\218\000\218\000\218\000\218\000\219\000\219\000\219\000\ + \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\218\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ - \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\ - \255\255\255\255\255\255\219\000\255\255\219\000\219\000\219\000\ + \255\255\255\255\255\255\255\255\219\000\255\255\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ - \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ @@ -5860,24 +6018,24 @@ module Struct = \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\219\000\219\000\219\000\219\000\ + \255\255\255\255\255\255\255\255\255\255\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ - \219\000\219\000\219\000\255\255\219\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\255\255\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ - \219\000\219\000\219\000\220\000\219\000\219\000\219\000\219\000\ - \219\000\219\000\219\000\219\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\255\255\255\255\ - \220\000\255\255\255\255\255\255\220\000\220\000\220\000\220\000\ + \219\000\219\000\219\000\219\000\220\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\ + \255\255\220\000\255\255\255\255\255\255\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\ - \255\255\255\255\255\255\220\000\255\255\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \255\255\255\255\255\255\255\255\220\000\255\255\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ @@ -5886,24 +6044,24 @@ module Struct = \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\220\000\220\000\220\000\220\000\ + \255\255\255\255\255\255\255\255\255\255\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\255\255\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\255\255\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\ - \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\255\255\255\255\ - \221\000\255\255\255\255\255\255\255\255\221\000\221\000\221\000\ + \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\ + \255\255\221\000\255\255\255\255\255\255\255\255\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\ - \255\255\255\255\255\255\221\000\255\255\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \255\255\255\255\255\255\255\255\221\000\255\255\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ @@ -5912,15 +6070,15 @@ module Struct = \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ - \255\255\255\255\255\255\255\255\221\000\221\000\221\000\221\000\ + \255\255\255\255\255\255\255\255\255\255\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\ - \221\000\221\000\221\000\221\000\255\255"; + \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\255\255"; Lexing.lex_base_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ @@ -6312,7 +6470,7 @@ module Struct = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in - (try INT (int_of_string i, i) + (try INT ((int_of_string i), i) with | Failure _ -> err (Literal_overflow "int") (Loc.of_lexbuf lexbuf)) @@ -6321,7 +6479,7 @@ module Struct = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in - (try FLOAT (float_of_string f, f) + (try FLOAT ((float_of_string f), f) with | Failure _ -> err (Literal_overflow "float") @@ -6331,7 +6489,7 @@ module Struct = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_curr_pos + (-1)) in - (try INT32 (Int32.of_string i, i) + (try INT32 ((Int32.of_string i), i) with | Failure _ -> err (Literal_overflow "int32") @@ -6341,7 +6499,7 @@ module Struct = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_curr_pos + (-1)) in - (try INT64 (Int64.of_string i, i) + (try INT64 ((Int64.of_string i), i) with | Failure _ -> err (Literal_overflow "int64") @@ -6351,27 +6509,29 @@ module Struct = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_curr_pos + (-1)) in - (try NATIVEINT (Nativeint.of_string i, i) + (try NATIVEINT ((Nativeint.of_string i), i) with | Failure _ -> err (Literal_overflow "nativeint") (Loc.of_lexbuf lexbuf)) | 11 -> (with_curr_loc string c; - let s = buff_contents c in STRING (TokenEval.string s, s)) + let s = buff_contents c + in STRING ((TokenEval.string s), s)) | 12 -> let x = Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) (lexbuf.Lexing.lex_curr_pos + (-1)) in - (update_loc c None 1 false 1; CHAR (TokenEval.char x, x)) + (update_loc c None 1 false 1; + CHAR ((TokenEval.char x), x)) | 13 -> let x = Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) (lexbuf.Lexing.lex_curr_pos + (-1)) - in CHAR (TokenEval.char x, x) + in CHAR ((TokenEval.char x), x) | 14 -> let c = Lexing.sub_lexeme_char lexbuf @@ -6663,7 +6823,7 @@ module Struct = and __ocaml_lex_antiquot_rec name c lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with - | 0 -> (set_start_p c; ANTIQUOT (name, buff_contents c)) + | 0 -> (set_start_p c; ANTIQUOT (name, (buff_contents c))) | 1 -> err Unterminated_antiquot (loc c) | 2 -> (update_loc c None 1 false 0; @@ -6800,9 +6960,9 @@ module Struct = let rec self = function | Ast.ExApp (_loc, e1, e2) -> - Ast.IdApp (_loc, self e1, self e2) + Ast.IdApp (_loc, (self e1), (self e2)) | Ast.ExAcc (_loc, e1, e2) -> - Ast.IdAcc (_loc, self e1, self e2) + Ast.IdAcc (_loc, (self e1), (self e2)) | Ast.ExId (_, (Ast.IdLid (_, _))) -> error () | Ast.ExId (_, i) -> if is_module_longident i then i else error () @@ -6819,7 +6979,7 @@ module Struct = let rec self = function | Ast.TyApp (_loc, t1, t2) -> - Ast.IdApp (_loc, self t1, self t2) + Ast.IdApp (_loc, (self t1), (self t2)) | Ast.TyId (_, (Ast.IdLid (_, _))) -> error () | Ast.TyId (_, i) -> if is_module_longident i then i else error () @@ -6833,7 +6993,7 @@ module Struct = let rec self = function | Ast.PaApp (_loc, p1, p2) -> - Ast.IdApp (_loc, self p1, self p2) + Ast.IdApp (_loc, (self p1), (self p2)) | Ast.PaId (_, (Ast.IdLid (_, _))) -> error () | Ast.PaId (_, i) -> if is_module_longident i then i else error () @@ -6900,7 +7060,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TyOr (_loc, t, tyOr_of_list ts) + in Ast.TyOr (_loc, t, (tyOr_of_list ts)) let rec tyAnd_of_list = function @@ -6908,7 +7068,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TyAnd (_loc, t, tyAnd_of_list ts) + in Ast.TyAnd (_loc, t, (tyAnd_of_list ts)) let rec tySem_of_list = function @@ -6916,7 +7076,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TySem (_loc, t, tySem_of_list ts) + in Ast.TySem (_loc, t, (tySem_of_list ts)) let rec tyCom_of_list = function @@ -6924,7 +7084,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TyCom (_loc, t, tyCom_of_list ts) + in Ast.TyCom (_loc, t, (tyCom_of_list ts)) let rec tyAmp_of_list = function @@ -6932,7 +7092,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TyAmp (_loc, t, tyAmp_of_list ts) + in Ast.TyAmp (_loc, t, (tyAmp_of_list ts)) let rec tySta_of_list = function @@ -6940,7 +7100,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_ctyp t - in Ast.TySta (_loc, t, tySta_of_list ts) + in Ast.TySta (_loc, t, (tySta_of_list ts)) let rec stSem_of_list = function @@ -6948,7 +7108,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_str_item t - in Ast.StSem (_loc, t, stSem_of_list ts) + in Ast.StSem (_loc, t, (stSem_of_list ts)) let rec sgSem_of_list = function @@ -6956,7 +7116,7 @@ module Struct = | [ t ] -> t | t :: ts -> let _loc = loc_of_sig_item t - in Ast.SgSem (_loc, t, sgSem_of_list ts) + in Ast.SgSem (_loc, t, (sgSem_of_list ts)) let rec biAnd_of_list = function @@ -6964,7 +7124,7 @@ module Struct = | [ b ] -> b | b :: bs -> let _loc = loc_of_binding b - in Ast.BiAnd (_loc, b, biAnd_of_list bs) + in Ast.BiAnd (_loc, b, (biAnd_of_list bs)) let rec rbSem_of_list = function @@ -6972,7 +7132,7 @@ module Struct = | [ b ] -> b | b :: bs -> let _loc = loc_of_rec_binding b - in Ast.RbSem (_loc, b, rbSem_of_list bs) + in Ast.RbSem (_loc, b, (rbSem_of_list bs)) let rec wcAnd_of_list = function @@ -6980,7 +7140,7 @@ module Struct = | [ w ] -> w | w :: ws -> let _loc = loc_of_with_constr w - in Ast.WcAnd (_loc, w, wcAnd_of_list ws) + in Ast.WcAnd (_loc, w, (wcAnd_of_list ws)) let rec idAcc_of_list = function @@ -6988,7 +7148,7 @@ module Struct = | [ i ] -> i | i :: is -> let _loc = loc_of_ident i - in Ast.IdAcc (_loc, i, idAcc_of_list is) + in Ast.IdAcc (_loc, i, (idAcc_of_list is)) let rec idApp_of_list = function @@ -6996,7 +7156,7 @@ module Struct = | [ i ] -> i | i :: is -> let _loc = loc_of_ident i - in Ast.IdApp (_loc, i, idApp_of_list is) + in Ast.IdApp (_loc, i, (idApp_of_list is)) let rec mcOr_of_list = function @@ -7004,7 +7164,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_match_case x - in Ast.McOr (_loc, x, mcOr_of_list xs) + in Ast.McOr (_loc, x, (mcOr_of_list xs)) let rec mbAnd_of_list = function @@ -7012,7 +7172,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_module_binding x - in Ast.MbAnd (_loc, x, mbAnd_of_list xs) + in Ast.MbAnd (_loc, x, (mbAnd_of_list xs)) let rec meApp_of_list = function @@ -7020,7 +7180,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_module_expr x - in Ast.MeApp (_loc, x, meApp_of_list xs) + in Ast.MeApp (_loc, x, (meApp_of_list xs)) let rec ceAnd_of_list = function @@ -7028,7 +7188,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_class_expr x - in Ast.CeAnd (_loc, x, ceAnd_of_list xs) + in Ast.CeAnd (_loc, x, (ceAnd_of_list xs)) let rec ctAnd_of_list = function @@ -7036,7 +7196,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_class_type x - in Ast.CtAnd (_loc, x, ctAnd_of_list xs) + in Ast.CtAnd (_loc, x, (ctAnd_of_list xs)) let rec cgSem_of_list = function @@ -7044,7 +7204,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_class_sig_item x - in Ast.CgSem (_loc, x, cgSem_of_list xs) + in Ast.CgSem (_loc, x, (cgSem_of_list xs)) let rec crSem_of_list = function @@ -7052,7 +7212,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_class_str_item x - in Ast.CrSem (_loc, x, crSem_of_list xs) + in Ast.CrSem (_loc, x, (crSem_of_list xs)) let rec paSem_of_list = function @@ -7060,7 +7220,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_patt x - in Ast.PaSem (_loc, x, paSem_of_list xs) + in Ast.PaSem (_loc, x, (paSem_of_list xs)) let rec paCom_of_list = function @@ -7068,7 +7228,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_patt x - in Ast.PaCom (_loc, x, paCom_of_list xs) + in Ast.PaCom (_loc, x, (paCom_of_list xs)) let rec exSem_of_list = function @@ -7076,7 +7236,7 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_expr x - in Ast.ExSem (_loc, x, exSem_of_list xs) + in Ast.ExSem (_loc, x, (exSem_of_list xs)) let rec exCom_of_list = function @@ -7084,22 +7244,23 @@ module Struct = | [ x ] -> x | x :: xs -> let _loc = loc_of_expr x - in Ast.ExCom (_loc, x, exCom_of_list xs) + in Ast.ExCom (_loc, x, (exCom_of_list xs)) let ty_of_stl = function - | (_loc, s, []) -> Ast.TyId (_loc, Ast.IdUid (_loc, s)) + | (_loc, s, []) -> Ast.TyId (_loc, (Ast.IdUid (_loc, s))) | (_loc, s, tl) -> - Ast.TyOf (_loc, Ast.TyId (_loc, Ast.IdUid (_loc, s)), - tyAnd_of_list tl) + Ast.TyOf (_loc, (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))), + (tyAnd_of_list tl)) let ty_of_sbt = function | (_loc, s, true, t) -> - Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)), - Ast.TyMut (_loc, t)) + Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))), + (Ast.TyMut (_loc, t))) | (_loc, s, false, t) -> - Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)), t) + Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))), + t) let bi_of_pe (p, e) = let _loc = loc_of_patt p in Ast.BiEq (_loc, p, e) @@ -7239,57 +7400,71 @@ module Struct = let (a, b, c, d, e, f, g, h) = Loc.to_tuple location in Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"), - Ast.IdLid (_loc, "of_tuple"))), - Ast.PaTup (_loc, - Ast.PaCom (_loc, - Ast.PaStr (_loc, Ast.safe_string_escaped a), - Ast.PaCom (_loc, - Ast.PaCom (_loc, - Ast.PaCom (_loc, - Ast.PaCom (_loc, - Ast.PaCom (_loc, - Ast.PaCom (_loc, - Ast.PaInt (_loc, string_of_int b), - Ast.PaInt (_loc, string_of_int c)), - Ast.PaInt (_loc, string_of_int d)), - Ast.PaInt (_loc, string_of_int e)), - Ast.PaInt (_loc, string_of_int f)), - Ast.PaInt (_loc, string_of_int g)), - if h - then - Ast.PaId (_loc, Ast.IdUid (_loc, "True")) - else - Ast.PaId (_loc, Ast.IdUid (_loc, "False")))))) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")), + (Ast.IdLid (_loc, "of_tuple")))))), + (Ast.PaTup (_loc, + (Ast.PaCom (_loc, + (Ast.PaStr (_loc, + (Ast.safe_string_escaped a))), + (Ast.PaCom (_loc, + (Ast.PaCom (_loc, + (Ast.PaCom (_loc, + (Ast.PaCom (_loc, + (Ast.PaCom (_loc, + (Ast.PaCom (_loc, + (Ast.PaInt (_loc, + (string_of_int b))), + (Ast.PaInt (_loc, + (string_of_int c))))), + (Ast.PaInt (_loc, + (string_of_int d))))), + (Ast.PaInt (_loc, + (string_of_int e))))), + (Ast.PaInt (_loc, (string_of_int f))))), + (Ast.PaInt (_loc, (string_of_int g))))), + (if h + then + Ast.PaId (_loc, + (Ast.IdUid (_loc, "True"))) + else + Ast.PaId (_loc, + (Ast.IdUid (_loc, "False"))))))))))) let meta_loc_expr _loc location = let (a, b, c, d, e, f, g, h) = Loc.to_tuple location in Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"), - Ast.IdLid (_loc, "of_tuple"))), - Ast.ExTup (_loc, - Ast.ExCom (_loc, - Ast.ExStr (_loc, Ast.safe_string_escaped a), - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExInt (_loc, string_of_int b), - Ast.ExInt (_loc, string_of_int c)), - Ast.ExInt (_loc, string_of_int d)), - Ast.ExInt (_loc, string_of_int e)), - Ast.ExInt (_loc, string_of_int f)), - Ast.ExInt (_loc, string_of_int g)), - if h - then - Ast.ExId (_loc, Ast.IdUid (_loc, "True")) - else - Ast.ExId (_loc, Ast.IdUid (_loc, "False")))))) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")), + (Ast.IdLid (_loc, "of_tuple")))))), + (Ast.ExTup (_loc, + (Ast.ExCom (_loc, + (Ast.ExStr (_loc, + (Ast.safe_string_escaped a))), + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExInt (_loc, + (string_of_int b))), + (Ast.ExInt (_loc, + (string_of_int c))))), + (Ast.ExInt (_loc, + (string_of_int d))))), + (Ast.ExInt (_loc, + (string_of_int e))))), + (Ast.ExInt (_loc, (string_of_int f))))), + (Ast.ExInt (_loc, (string_of_int g))))), + (if h + then + Ast.ExId (_loc, + (Ast.IdUid (_loc, "True"))) + else + Ast.ExId (_loc, + (Ast.IdUid (_loc, "False"))))))))))) end @@ -7297,23 +7472,23 @@ module Struct = struct let meta_loc_patt _loc _ = Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"), - Ast.IdLid (_loc, "ghost"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")), + (Ast.IdLid (_loc, "ghost"))))) let meta_loc_expr _loc _ = Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"), - Ast.IdLid (_loc, "ghost"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")), + (Ast.IdLid (_loc, "ghost"))))) end module MetaLocVar = struct let meta_loc_patt _loc _ = - Ast.PaId (_loc, Ast.IdLid (_loc, !Loc.name)) + Ast.PaId (_loc, (Ast.IdLid (_loc, !Loc.name))) let meta_loc_expr _loc _ = - Ast.ExId (_loc, Ast.IdLid (_loc, !Loc.name)) + Ast.ExId (_loc, (Ast.IdLid (_loc, !Loc.name))) end @@ -7336,2095 +7511,2274 @@ module Struct = let meta_bool _loc = function | false -> - Ast.ExId (_loc, Ast.IdUid (_loc, "False")) - | true -> Ast.ExId (_loc, Ast.IdUid (_loc, "True")) + Ast.ExId (_loc, (Ast.IdUid (_loc, "False"))) + | true -> + Ast.ExId (_loc, (Ast.IdUid (_loc, "True"))) let rec meta_list mf_a _loc = function - | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]")) + | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))) | x :: xs -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - mf_a _loc x), - meta_list mf_a _loc xs) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), + (mf_a _loc x))), + (meta_list mf_a _loc xs)) let rec meta_binding _loc = function | Ast.BiAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.BiEq (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiEq"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiEq")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_expr _loc x2)) | Ast.BiAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiAnd"))), - meta_loc _loc x0), - meta_binding _loc x1), - meta_binding _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiAnd")))))), + (meta_loc _loc x0))), + (meta_binding _loc x1))), + (meta_binding _loc x2)) | Ast.BiNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiNil")))))), + (meta_loc _loc x0)) and meta_class_expr _loc = function | Ast.CeAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.CeEq (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeEq"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeEq")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeAnd"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeAnd")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeTyc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeTyc"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeTyc")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_type _loc x2)) | Ast.CeStr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeStr"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_str_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeStr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_str_item _loc x2)) | Ast.CeLet (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeLet"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2), - meta_class_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeLet")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2))), + (meta_class_expr _loc x3)) | Ast.CeFun (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeFun"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeFun")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeCon (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeCon"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_ident _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeCon")))))), + (meta_loc _loc x0))), + (meta_virtual_flag _loc x1))), + (meta_ident _loc x2))), + (meta_ctyp _loc x3)) | Ast.CeApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeApp"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeApp")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_expr _loc x2)) | Ast.CeNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeNil")))))), + (meta_loc _loc x0)) and meta_class_sig_item _loc = function | Ast.CgAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.CgVir (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgVir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgVir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CgVal (x0, x1, x2, x3, x4) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_meta_bool _loc x3), - meta_ctyp _loc x4) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_mutable_flag _loc x2))), + (meta_virtual_flag _loc x3))), + (meta_ctyp _loc x4)) | Ast.CgMth (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgMth"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgMth")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CgInh (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgInh"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgInh")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.CgSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgSem"))), - meta_loc _loc x0), - meta_class_sig_item _loc x1), - meta_class_sig_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgSem")))))), + (meta_loc _loc x0))), + (meta_class_sig_item _loc x1))), + (meta_class_sig_item _loc x2)) | Ast.CgCtr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgCtr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgCtr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.CgNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgNil")))))), + (meta_loc _loc x0)) and meta_class_str_item _loc = function | Ast.CrAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.CrVvr (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVvr"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVvr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_mutable_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CrVir (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) - | Ast.CrVal (x0, x1, x2, x3) -> + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) + | Ast.CrVal (x0, x1, x2, x3, x4) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_expr _loc x3) - | Ast.CrMth (x0, x1, x2, x3, x4) -> + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_override_flag _loc x2))), + (meta_mutable_flag _loc x3))), + (meta_expr _loc x4)) + | Ast.CrMth (x0, x1, x2, x3, x4, x5) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrMth"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_expr _loc x3), - meta_ctyp _loc x4) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, + "CrMth")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_override_flag _loc x2))), + (meta_private_flag _loc x3))), + (meta_expr _loc x4))), + (meta_ctyp _loc x5)) | Ast.CrIni (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrIni"))), - meta_loc _loc x0), - meta_expr _loc x1) - | Ast.CrInh (x0, x1, x2) -> + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrIni")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) + | Ast.CrInh (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrInh"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_string _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrInh")))))), + (meta_loc _loc x0))), + (meta_override_flag _loc x1))), + (meta_class_expr _loc x2))), + (meta_string _loc x3)) | Ast.CrCtr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrCtr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrCtr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.CrSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrSem"))), - meta_loc _loc x0), - meta_class_str_item _loc x1), - meta_class_str_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrSem")))))), + (meta_loc _loc x0))), + (meta_class_str_item _loc x1))), + (meta_class_str_item _loc x2)) | Ast.CrNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrNil")))))), + (meta_loc _loc x0)) and meta_class_type _loc = function | Ast.CtAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.CtEq (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtEq"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtEq")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtCol (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtCol"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtCol")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtAnd"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtAnd")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtSig (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtSig"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_class_sig_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtSig")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_class_sig_item _loc x2)) | Ast.CtFun (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtFun"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_class_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtFun")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_class_type _loc x2)) | Ast.CtCon (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtCon"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_ident _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtCon")))))), + (meta_loc _loc x0))), + (meta_virtual_flag _loc x1))), + (meta_ident _loc x2))), + (meta_ctyp _loc x3)) | Ast.CtNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtNil")))))), + (meta_loc _loc x0)) and meta_ctyp _loc = function | Ast.TyAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.TyPkg (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPkg"))), - meta_loc _loc x0), - meta_module_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPkg")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1)) | Ast.TyOfAmp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOfAmp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOfAmp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAmp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAmp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAmp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyVrnInfSup (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnInfSup"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnInfSup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyVrnInf (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnInf"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnInf")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrnSup (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnSup"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnSup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrnEq (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnEq"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnEq")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TySta (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySta"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySta")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyTup (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyTup"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyTup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyMut (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyMut"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyMut")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyPrv (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPrv"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPrv")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyOr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAnd"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAnd")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyOf (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOf"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOf")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TySum (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySum"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySum")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyCom (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCom"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCom")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TySem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySem"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySem")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyCol (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCol"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCol")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyRec (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyRec"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyRec")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrn (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuM (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuM"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuM")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuP (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuP"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuP")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuo (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyPol (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPol"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPol")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyOlb (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyObj (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyObj"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_meta_bool _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyObj")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_row_var_flag _loc x2)) | Ast.TyDcl (x0, x1, x2, x3, x4) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyDcl"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_list meta_ctyp _loc x2), - meta_ctyp _loc x3), - meta_list - (fun _loc (x1, x2) -> - Ast.ExTup (_loc, - Ast.ExCom (_loc, meta_ctyp _loc x1, - meta_ctyp _loc x2))) - _loc x4) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyDcl")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_list meta_ctyp _loc x2))), + (meta_ctyp _loc x3))), + (meta_list + (fun _loc (x1, x2) -> + Ast.ExTup (_loc, + (Ast.ExCom (_loc, + (meta_ctyp _loc x1), + (meta_ctyp _loc x2))))) + _loc x4)) | Ast.TyMan (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyMan"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyMan")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyId (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.TyLab (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyCls (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCls"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCls")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.TyArr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyArr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyArr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyApp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyApp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAny x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAny"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAny")))))), + (meta_loc _loc x0)) | Ast.TyAli (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAli"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAli")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyNil")))))), + (meta_loc _loc x0)) + and meta_direction_flag _loc = + function + | Ast.DiAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.DiDownto -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "DiDownto"))))) + | Ast.DiTo -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "DiTo"))))) and meta_expr _loc = function | Ast.ExPkg (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExPkg"))), - meta_loc _loc x0), - meta_module_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExPkg")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1)) | Ast.ExFUN (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFUN"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFUN")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExOpI (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOpI"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOpI")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_expr _loc x2)) | Ast.ExWhi (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExWhi"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExWhi")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExVrn (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExTyc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTyc"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTyc")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_ctyp _loc x2)) | Ast.ExCom (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExCom"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExCom")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExTup (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTup"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTup")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExTry (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTry"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_match_case _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTry")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_match_case _loc x2)) | Ast.ExStr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExStr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExStr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExSte (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSte"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSte")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExSnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSnd"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_string _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSnd")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_string _loc x2)) | Ast.ExSeq (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSeq"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSeq")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExRec (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExRec"))), - meta_loc _loc x0), - meta_rec_binding _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExRec")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1))), + (meta_expr _loc x2)) | Ast.ExOvr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOvr"))), - meta_loc _loc x0), - meta_rec_binding _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOvr")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1)) | Ast.ExOlb (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExObj (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExObj"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_str_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExObj")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_str_item _loc x2)) | Ast.ExNew (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNew"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNew")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.ExMat (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExMat"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_match_case _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExMat")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_match_case _loc x2)) | Ast.ExLmd (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLmd"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_expr _loc x2), - meta_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLmd")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_expr _loc x2))), + (meta_expr _loc x3)) | Ast.ExLet (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLet"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2), - meta_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLet")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2))), + (meta_expr _loc x3)) | Ast.ExLaz (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLaz"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLaz")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExLab (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExNativeInt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNativeInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNativeInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt64 (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt64"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt64")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt32 (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt32"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt32")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExIfe (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExIfe"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2), - meta_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExIfe")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3)) | Ast.ExFun (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFun"))), - meta_loc _loc x0), - meta_match_case _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFun")))))), + (meta_loc _loc x0))), + (meta_match_case _loc x1)) | Ast.ExFor (x0, x1, x2, x3, x4, x5) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFor"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2), - meta_expr _loc x3), - meta_meta_bool _loc x4), - meta_expr _loc x5) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, + "ExFor")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3))), + (meta_direction_flag _loc x4))), + (meta_expr _loc x5)) | Ast.ExFlo (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFlo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFlo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExCoe (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExCoe"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_ctyp _loc x2), - meta_ctyp _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExCoe")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_ctyp _loc x2))), + (meta_ctyp _loc x3)) | Ast.ExChr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExChr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExChr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExAss (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAss"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAss")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExAsr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAsr"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAsr")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExAsf x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAsf"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAsf")))))), + (meta_loc _loc x0)) | Ast.ExSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSem"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSem")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExArr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExArr"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExArr")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExAre (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAre"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAre")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExApp"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExApp")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.ExAcc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAcc"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAcc")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExId (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.ExNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNil")))))), + (meta_loc _loc x0)) and meta_ident _loc = function | Ast.IdAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.IdUid (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdUid"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdUid")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.IdLid (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdLid"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdLid")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.IdApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdApp"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdApp")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.IdAcc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdAcc"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdAcc")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) and meta_match_case _loc = function | Ast.McAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.McArr (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McArr"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_expr _loc x2), - meta_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McArr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3)) | Ast.McOr (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McOr"))), - meta_loc _loc x0), - meta_match_case _loc x1), - meta_match_case _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McOr")))))), + (meta_loc _loc x0))), + (meta_match_case _loc x1))), + (meta_match_case _loc x2)) | Ast.McNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McNil")))))), + (meta_loc _loc x0)) and meta_meta_bool _loc = function | Ast.BAnt x0 -> Ast.ExAnt (_loc, x0) | Ast.BFalse -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BFalse"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BFalse"))))) | Ast.BTrue -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BTrue"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BTrue"))))) and meta_meta_list mf_a _loc = function | Ast.LAnt x0 -> Ast.ExAnt (_loc, x0) | Ast.LCons (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "LCons"))), - mf_a _loc x0), - meta_meta_list mf_a _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "LCons")))))), + (mf_a _loc x0))), + (meta_meta_list mf_a _loc x1)) | Ast.LNil -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "LNil"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "LNil"))))) and meta_meta_option mf_a _loc = function | Ast.OAnt x0 -> Ast.ExAnt (_loc, x0) | Ast.OSome x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "OSome"))), - mf_a _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OSome")))))), + (mf_a _loc x0)) | Ast.ONone -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ONone"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ONone"))))) and meta_module_binding _loc = function | Ast.MbAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.MbCol (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbCol"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbCol")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.MbColEq (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbColEq"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbColEq")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_expr _loc x3)) | Ast.MbAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbAnd"))), - meta_loc _loc x0), - meta_module_binding _loc x1), - meta_module_binding _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbAnd")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1))), + (meta_module_binding _loc x2)) | Ast.MbNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbNil")))))), + (meta_loc _loc x0)) and meta_module_expr _loc = function | Ast.MeAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.MePkg (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MePkg"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MePkg")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.MeTyc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeTyc"))), - meta_loc _loc x0), - meta_module_expr _loc x1), - meta_module_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeTyc")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1))), + (meta_module_type _loc x2)) | Ast.MeStr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeStr"))), - meta_loc _loc x0), - meta_str_item _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeStr")))))), + (meta_loc _loc x0))), + (meta_str_item _loc x1)) | Ast.MeFun (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeFun"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeFun")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_expr _loc x3)) | Ast.MeApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeApp"))), - meta_loc _loc x0), - meta_module_expr _loc x1), - meta_module_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeApp")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1))), + (meta_module_expr _loc x2)) | Ast.MeId (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.MeNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeNil")))))), + (meta_loc _loc x0)) and meta_module_type _loc = function | Ast.MtAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.MtWit (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtWit"))), - meta_loc _loc x0), - meta_module_type _loc x1), - meta_with_constr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtWit")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1))), + (meta_with_constr _loc x2)) | Ast.MtSig (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtSig"))), - meta_loc _loc x0), - meta_sig_item _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtSig")))))), + (meta_loc _loc x0))), + (meta_sig_item _loc x1)) | Ast.MtQuo (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtQuo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtQuo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.MtFun (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtFun"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_type _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtFun")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_type _loc x3)) | Ast.MtId (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.MtNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtNil")))))), + (meta_loc _loc x0)) + and meta_mutable_flag _loc = + function + | Ast.MuAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.MuNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MuNil"))))) + | Ast.MuMutable -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MuMutable"))))) + and meta_override_flag _loc = + function + | Ast.OvAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.OvNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OvNil"))))) + | Ast.OvOverride -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OvOverride"))))) and meta_patt _loc = function | Ast.PaLaz (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaLaz"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaLaz")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaVrn (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaTyp (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTyp"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTyp")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.PaTyc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTyc"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTyc")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_ctyp _loc x2)) | Ast.PaTup (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTup"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTup")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaStr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaStr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaStr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaEq (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaEq"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaEq")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_patt _loc x2)) | Ast.PaRec (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaRec"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaRec")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaRng (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaRng"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaRng")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaOrp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOrp"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOrp")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaOlbi (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOlbi"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2), - meta_expr _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOlbi")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2))), + (meta_expr _loc x3)) | Ast.PaOlb (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2)) | Ast.PaLab (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2)) | Ast.PaFlo (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaFlo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaFlo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaNativeInt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaNativeInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaNativeInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt64 (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt64"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt64")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt32 (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt32"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt32")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaChr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaChr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaChr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaSem"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaSem")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaCom (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaCom"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaCom")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaArr (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaArr"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaArr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaApp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaApp"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaApp")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaAny x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAny"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAny")))))), + (meta_loc _loc x0)) | Ast.PaAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.PaAli (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAli"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAli")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaId (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.PaNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaNil")))))), + (meta_loc _loc x0)) + and meta_private_flag _loc = + function + | Ast.PrAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.PrNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PrNil"))))) + | Ast.PrPrivate -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PrPrivate"))))) and meta_rec_binding _loc = function | Ast.RbAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.RbEq (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbEq"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbEq")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_expr _loc x2)) | Ast.RbSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbSem"))), - meta_loc _loc x0), - meta_rec_binding _loc x1), - meta_rec_binding _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbSem")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1))), + (meta_rec_binding _loc x2)) | Ast.RbNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbNil")))))), + (meta_loc _loc x0)) + and meta_rec_flag _loc = + function + | Ast.ReAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.ReNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ReNil"))))) + | Ast.ReRecursive -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ReRecursive"))))) + and meta_row_var_flag _loc = + function + | Ast.RvAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.RvNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RvNil"))))) + | Ast.RvRowVar -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RvRowVar"))))) and meta_sig_item _loc = function | Ast.SgAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.SgVal (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.SgTyp (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.SgOpn (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgOpn"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgOpn")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.SgMty (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgMty"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgMty")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.SgRecMod (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgRecMod"))), - meta_loc _loc x0), - meta_module_binding _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgRecMod")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1)) | Ast.SgMod (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgMod"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgMod")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.SgInc (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgInc"))), - meta_loc _loc x0), - meta_module_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgInc")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1)) | Ast.SgExt (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgExt"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2), - meta_meta_list meta_string _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgExt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2))), + (meta_meta_list meta_string _loc x3)) | Ast.SgExc (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgExc"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgExc")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.SgDir (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgDir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgDir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.SgSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgSem"))), - meta_loc _loc x0), - meta_sig_item _loc x1), - meta_sig_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgSem")))))), + (meta_loc _loc x0))), + (meta_sig_item _loc x1))), + (meta_sig_item _loc x2)) | Ast.SgClt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgClt"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgClt")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.SgCls (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgCls"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgCls")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.SgNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgNil")))))), + (meta_loc _loc x0)) and meta_str_item _loc = function | Ast.StAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.StVal (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StVal"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StVal")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2)) | Ast.StTyp (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.StOpn (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StOpn"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StOpn")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.StMty (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StMty"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StMty")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.StRecMod (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StRecMod"))), - meta_loc _loc x0), - meta_module_binding _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StRecMod")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1)) | Ast.StMod (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StMod"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StMod")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_expr _loc x2)) | Ast.StInc (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StInc"))), - meta_loc _loc x0), - meta_module_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StInc")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1)) | Ast.StExt (x0, x1, x2, x3) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExt"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2), - meta_meta_list meta_string _loc x3) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2))), + (meta_meta_list meta_string _loc x3)) | Ast.StExp (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExp"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExp")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.StExc (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExc"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_meta_option meta_ident _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExc")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_meta_option meta_ident _loc x2)) | Ast.StDir (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StDir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StDir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.StSem (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StSem"))), - meta_loc _loc x0), - meta_str_item _loc x1), - meta_str_item _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StSem")))))), + (meta_loc _loc x0))), + (meta_str_item _loc x1))), + (meta_str_item _loc x2)) | Ast.StClt (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StClt"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StClt")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.StCls (x0, x1) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StCls"))), - meta_loc _loc x0), - meta_class_expr _loc x1) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StCls")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1)) | Ast.StNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StNil")))))), + (meta_loc _loc x0)) + and meta_virtual_flag _loc = + function + | Ast.ViAnt x0 -> Ast.ExAnt (_loc, x0) + | Ast.ViNil -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ViNil"))))) + | Ast.ViVirtual -> + Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ViVirtual"))))) and meta_with_constr _loc = function | Ast.WcAnt (x0, x1) -> Ast.ExAnt (x0, x1) | Ast.WcAnd (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcAnd"))), - meta_loc _loc x0), - meta_with_constr _loc x1), - meta_with_constr _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcAnd")))))), + (meta_loc _loc x0))), + (meta_with_constr _loc x1))), + (meta_with_constr _loc x2)) | Ast.WcMoS (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcMoS"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcMoS")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.WcTyS (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcTyS"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcTyS")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.WcMod (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcMod"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcMod")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.WcTyp (x0, x1, x2) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.WcNil x0 -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcNil"))), - meta_loc _loc x0) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcNil")))))), + (meta_loc _loc x0)) end @@ -9443,2095 +9797,2274 @@ module Struct = let meta_bool _loc = function | false -> - Ast.PaId (_loc, Ast.IdUid (_loc, "False")) - | true -> Ast.PaId (_loc, Ast.IdUid (_loc, "True")) + Ast.PaId (_loc, (Ast.IdUid (_loc, "False"))) + | true -> + Ast.PaId (_loc, (Ast.IdUid (_loc, "True"))) let rec meta_list mf_a _loc = function - | [] -> Ast.PaId (_loc, Ast.IdUid (_loc, "[]")) + | [] -> Ast.PaId (_loc, (Ast.IdUid (_loc, "[]"))) | x :: xs -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "::")), - mf_a _loc x), - meta_list mf_a _loc xs) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "::")))), + (mf_a _loc x))), + (meta_list mf_a _loc xs)) let rec meta_binding _loc = function | Ast.BiAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.BiEq (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiEq"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiEq")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_expr _loc x2)) | Ast.BiAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiAnd"))), - meta_loc _loc x0), - meta_binding _loc x1), - meta_binding _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiAnd")))))), + (meta_loc _loc x0))), + (meta_binding _loc x1))), + (meta_binding _loc x2)) | Ast.BiNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiNil")))))), + (meta_loc _loc x0)) and meta_class_expr _loc = function | Ast.CeAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.CeEq (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeEq"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeEq")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeAnd"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeAnd")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeTyc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeTyc"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_class_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeTyc")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_class_type _loc x2)) | Ast.CeStr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeStr"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_str_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeStr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_str_item _loc x2)) | Ast.CeLet (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeLet"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2), - meta_class_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeLet")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2))), + (meta_class_expr _loc x3)) | Ast.CeFun (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeFun"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeFun")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_expr _loc x2)) | Ast.CeCon (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeCon"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_ident _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeCon")))))), + (meta_loc _loc x0))), + (meta_virtual_flag _loc x1))), + (meta_ident _loc x2))), + (meta_ctyp _loc x3)) | Ast.CeApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeApp"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeApp")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1))), + (meta_expr _loc x2)) | Ast.CeNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeNil")))))), + (meta_loc _loc x0)) and meta_class_sig_item _loc = function | Ast.CgAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.CgVir (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgVir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgVir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CgVal (x0, x1, x2, x3, x4) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_meta_bool _loc x3), - meta_ctyp _loc x4) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_mutable_flag _loc x2))), + (meta_virtual_flag _loc x3))), + (meta_ctyp _loc x4)) | Ast.CgMth (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgMth"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgMth")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CgInh (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgInh"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgInh")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.CgSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgSem"))), - meta_loc _loc x0), - meta_class_sig_item _loc x1), - meta_class_sig_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgSem")))))), + (meta_loc _loc x0))), + (meta_class_sig_item _loc x1))), + (meta_class_sig_item _loc x2)) | Ast.CgCtr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgCtr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgCtr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.CgNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgNil")))))), + (meta_loc _loc x0)) and meta_class_str_item _loc = function | Ast.CrAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.CrVvr (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVvr"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVvr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_mutable_flag _loc x2))), + (meta_ctyp _loc x3)) | Ast.CrVir (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_ctyp _loc x3) - | Ast.CrVal (x0, x1, x2, x3) -> + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_private_flag _loc x2))), + (meta_ctyp _loc x3)) + | Ast.CrVal (x0, x1, x2, x3, x4) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_expr _loc x3) - | Ast.CrMth (x0, x1, x2, x3, x4) -> + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_override_flag _loc x2))), + (meta_mutable_flag _loc x3))), + (meta_expr _loc x4)) + | Ast.CrMth (x0, x1, x2, x3, x4, x5) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrMth"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_meta_bool _loc x2), - meta_expr _loc x3), - meta_ctyp _loc x4) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, + "CrMth")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_override_flag _loc x2))), + (meta_private_flag _loc x3))), + (meta_expr _loc x4))), + (meta_ctyp _loc x5)) | Ast.CrIni (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrIni"))), - meta_loc _loc x0), - meta_expr _loc x1) - | Ast.CrInh (x0, x1, x2) -> + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrIni")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) + | Ast.CrInh (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrInh"))), - meta_loc _loc x0), - meta_class_expr _loc x1), - meta_string _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrInh")))))), + (meta_loc _loc x0))), + (meta_override_flag _loc x1))), + (meta_class_expr _loc x2))), + (meta_string _loc x3)) | Ast.CrCtr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrCtr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrCtr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.CrSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrSem"))), - meta_loc _loc x0), - meta_class_str_item _loc x1), - meta_class_str_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrSem")))))), + (meta_loc _loc x0))), + (meta_class_str_item _loc x1))), + (meta_class_str_item _loc x2)) | Ast.CrNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrNil")))))), + (meta_loc _loc x0)) and meta_class_type _loc = function | Ast.CtAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.CtEq (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtEq"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtEq")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtCol (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtCol"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtCol")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtAnd"))), - meta_loc _loc x0), - meta_class_type _loc x1), - meta_class_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtAnd")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1))), + (meta_class_type _loc x2)) | Ast.CtSig (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtSig"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_class_sig_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtSig")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_class_sig_item _loc x2)) | Ast.CtFun (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtFun"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_class_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtFun")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_class_type _loc x2)) | Ast.CtCon (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtCon"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_ident _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtCon")))))), + (meta_loc _loc x0))), + (meta_virtual_flag _loc x1))), + (meta_ident _loc x2))), + (meta_ctyp _loc x3)) | Ast.CtNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtNil")))))), + (meta_loc _loc x0)) and meta_ctyp _loc = function | Ast.TyAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.TyPkg (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPkg"))), - meta_loc _loc x0), - meta_module_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPkg")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1)) | Ast.TyOfAmp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOfAmp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOfAmp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAmp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAmp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAmp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyVrnInfSup (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnInfSup"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnInfSup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyVrnInf (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnInf"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnInf")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrnSup (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnSup"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnSup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrnEq (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrnEq"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrnEq")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TySta (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySta"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySta")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyTup (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyTup"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyTup")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyMut (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyMut"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyMut")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyPrv (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPrv"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPrv")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyOr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAnd"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAnd")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyOf (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOf"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOf")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TySum (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySum"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySum")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyCom (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCom"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCom")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TySem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TySem"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TySem")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyCol (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCol"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCol")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyRec (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyRec"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyRec")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.TyVrn (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuM (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuM"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuM")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuP (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuP"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuP")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyQuo (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyQuo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyQuo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.TyPol (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyPol"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyPol")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyOlb (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyObj (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyObj"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_meta_bool _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyObj")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_row_var_flag _loc x2)) | Ast.TyDcl (x0, x1, x2, x3, x4) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyDcl"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_list meta_ctyp _loc x2), - meta_ctyp _loc x3), - meta_list - (fun _loc (x1, x2) -> - Ast.PaTup (_loc, - Ast.PaCom (_loc, meta_ctyp _loc x1, - meta_ctyp _loc x2))) - _loc x4) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyDcl")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_list meta_ctyp _loc x2))), + (meta_ctyp _loc x3))), + (meta_list + (fun _loc (x1, x2) -> + Ast.PaTup (_loc, + (Ast.PaCom (_loc, + (meta_ctyp _loc x1), + (meta_ctyp _loc x2))))) + _loc x4)) | Ast.TyMan (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyMan"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyMan")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyId (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.TyLab (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyCls (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyCls"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyCls")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.TyArr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyArr"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyArr")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyApp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyApp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyAny x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAny"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAny")))))), + (meta_loc _loc x0)) | Ast.TyAli (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAli"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAli")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.TyNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyNil")))))), + (meta_loc _loc x0)) + and meta_direction_flag _loc = + function + | Ast.DiAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.DiDownto -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "DiDownto"))))) + | Ast.DiTo -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "DiTo"))))) and meta_expr _loc = function | Ast.ExPkg (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExPkg"))), - meta_loc _loc x0), - meta_module_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExPkg")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1)) | Ast.ExFUN (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFUN"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFUN")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExOpI (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOpI"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOpI")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_expr _loc x2)) | Ast.ExWhi (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExWhi"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExWhi")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExVrn (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExTyc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTyc"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTyc")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_ctyp _loc x2)) | Ast.ExCom (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExCom"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExCom")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExTup (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTup"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTup")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExTry (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExTry"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_match_case _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExTry")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_match_case _loc x2)) | Ast.ExStr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExStr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExStr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExSte (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSte"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSte")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExSnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSnd"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_string _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSnd")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_string _loc x2)) | Ast.ExSeq (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSeq"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSeq")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExRec (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExRec"))), - meta_loc _loc x0), - meta_rec_binding _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExRec")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1))), + (meta_expr _loc x2)) | Ast.ExOvr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOvr"))), - meta_loc _loc x0), - meta_rec_binding _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOvr")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1)) | Ast.ExOlb (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExObj (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExObj"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_class_str_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExObj")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_class_str_item _loc x2)) | Ast.ExNew (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNew"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNew")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.ExMat (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExMat"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_match_case _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExMat")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_match_case _loc x2)) | Ast.ExLmd (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLmd"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_expr _loc x2), - meta_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLmd")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_expr _loc x2))), + (meta_expr _loc x3)) | Ast.ExLet (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLet"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2), - meta_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLet")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2))), + (meta_expr _loc x3)) | Ast.ExLaz (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLaz"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLaz")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExLab (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.ExNativeInt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNativeInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNativeInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt64 (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt64"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt64")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt32 (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt32"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt32")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExInt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExIfe (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExIfe"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2), - meta_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExIfe")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3)) | Ast.ExFun (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFun"))), - meta_loc _loc x0), - meta_match_case _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFun")))))), + (meta_loc _loc x0))), + (meta_match_case _loc x1)) | Ast.ExFor (x0, x1, x2, x3, x4, x5) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFor"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2), - meta_expr _loc x3), - meta_meta_bool _loc x4), - meta_expr _loc x5) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, + "ExFor")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3))), + (meta_direction_flag _loc x4))), + (meta_expr _loc x5)) | Ast.ExFlo (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExFlo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExFlo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExCoe (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExCoe"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_ctyp _loc x2), - meta_ctyp _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExCoe")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_ctyp _loc x2))), + (meta_ctyp _loc x3)) | Ast.ExChr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExChr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExChr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.ExAss (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAss"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAss")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExAsr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAsr"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAsr")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExAsf x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAsf"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAsf")))))), + (meta_loc _loc x0)) | Ast.ExSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExSem"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExSem")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExArr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExArr"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExArr")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.ExAre (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAre"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAre")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExApp"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExApp")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.ExAcc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAcc"))), - meta_loc _loc x0), - meta_expr _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAcc")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1))), + (meta_expr _loc x2)) | Ast.ExId (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.ExNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExNil")))))), + (meta_loc _loc x0)) and meta_ident _loc = function | Ast.IdAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.IdUid (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdUid"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdUid")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.IdLid (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdLid"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdLid")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.IdApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdApp"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdApp")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.IdAcc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdAcc"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdAcc")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) and meta_match_case _loc = function | Ast.McAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.McArr (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McArr"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_expr _loc x2), - meta_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McArr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_expr _loc x2))), + (meta_expr _loc x3)) | Ast.McOr (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McOr"))), - meta_loc _loc x0), - meta_match_case _loc x1), - meta_match_case _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McOr")))))), + (meta_loc _loc x0))), + (meta_match_case _loc x1))), + (meta_match_case _loc x2)) | Ast.McNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McNil")))))), + (meta_loc _loc x0)) and meta_meta_bool _loc = function | Ast.BAnt x0 -> Ast.PaAnt (_loc, x0) | Ast.BFalse -> Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BFalse"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BFalse"))))) | Ast.BTrue -> Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BTrue"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BTrue"))))) and meta_meta_list mf_a _loc = function | Ast.LAnt x0 -> Ast.PaAnt (_loc, x0) | Ast.LCons (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "LCons"))), - mf_a _loc x0), - meta_meta_list mf_a _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "LCons")))))), + (mf_a _loc x0))), + (meta_meta_list mf_a _loc x1)) | Ast.LNil -> Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "LNil"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "LNil"))))) and meta_meta_option mf_a _loc = function | Ast.OAnt x0 -> Ast.PaAnt (_loc, x0) | Ast.OSome x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "OSome"))), - mf_a _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OSome")))))), + (mf_a _loc x0)) | Ast.ONone -> Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ONone"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ONone"))))) and meta_module_binding _loc = function | Ast.MbAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.MbCol (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbCol"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbCol")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.MbColEq (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbColEq"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbColEq")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_expr _loc x3)) | Ast.MbAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbAnd"))), - meta_loc _loc x0), - meta_module_binding _loc x1), - meta_module_binding _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbAnd")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1))), + (meta_module_binding _loc x2)) | Ast.MbNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbNil")))))), + (meta_loc _loc x0)) and meta_module_expr _loc = function | Ast.MeAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.MePkg (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MePkg"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MePkg")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.MeTyc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeTyc"))), - meta_loc _loc x0), - meta_module_expr _loc x1), - meta_module_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeTyc")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1))), + (meta_module_type _loc x2)) | Ast.MeStr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeStr"))), - meta_loc _loc x0), - meta_str_item _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeStr")))))), + (meta_loc _loc x0))), + (meta_str_item _loc x1)) | Ast.MeFun (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeFun"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeFun")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_expr _loc x3)) | Ast.MeApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeApp"))), - meta_loc _loc x0), - meta_module_expr _loc x1), - meta_module_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeApp")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1))), + (meta_module_expr _loc x2)) | Ast.MeId (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.MeNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeNil")))))), + (meta_loc _loc x0)) and meta_module_type _loc = function | Ast.MtAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.MtWit (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtWit"))), - meta_loc _loc x0), - meta_module_type _loc x1), - meta_with_constr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtWit")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1))), + (meta_with_constr _loc x2)) | Ast.MtSig (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtSig"))), - meta_loc _loc x0), - meta_sig_item _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtSig")))))), + (meta_loc _loc x0))), + (meta_sig_item _loc x1)) | Ast.MtQuo (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtQuo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtQuo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.MtFun (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtFun"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2), - meta_module_type _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtFun")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2))), + (meta_module_type _loc x3)) | Ast.MtId (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.MtNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtNil")))))), + (meta_loc _loc x0)) + and meta_mutable_flag _loc = + function + | Ast.MuAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.MuNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MuNil"))))) + | Ast.MuMutable -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MuMutable"))))) + and meta_override_flag _loc = + function + | Ast.OvAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.OvNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OvNil"))))) + | Ast.OvOverride -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "OvOverride"))))) and meta_patt _loc = function | Ast.PaLaz (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaLaz"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaLaz")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaVrn (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaVrn"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaVrn")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaTyp (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTyp"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTyp")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.PaTyc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTyc"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTyc")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_ctyp _loc x2)) | Ast.PaTup (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaTup"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaTup")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaStr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaStr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaStr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaEq (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaEq"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaEq")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_patt _loc x2)) | Ast.PaRec (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaRec"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaRec")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaRng (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaRng"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaRng")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaOrp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOrp"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOrp")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaOlbi (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOlbi"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2), - meta_expr _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOlbi")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2))), + (meta_expr _loc x3)) | Ast.PaOlb (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaOlb"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaOlb")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2)) | Ast.PaLab (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaLab"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaLab")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_patt _loc x2)) | Ast.PaFlo (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaFlo"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaFlo")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaNativeInt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaNativeInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaNativeInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt64 (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt64"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt64")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt32 (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt32"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt32")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaInt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaInt"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaInt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaChr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaChr"))), - meta_loc _loc x0), - meta_string _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaChr")))))), + (meta_loc _loc x0))), + (meta_string _loc x1)) | Ast.PaSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaSem"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaSem")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaCom (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaCom"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaCom")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaArr (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaArr"))), - meta_loc _loc x0), - meta_patt _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaArr")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1)) | Ast.PaApp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaApp"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaApp")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaAny x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAny"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAny")))))), + (meta_loc _loc x0)) | Ast.PaAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.PaAli (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAli"))), - meta_loc _loc x0), - meta_patt _loc x1), - meta_patt _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAli")))))), + (meta_loc _loc x0))), + (meta_patt _loc x1))), + (meta_patt _loc x2)) | Ast.PaId (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaId"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaId")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.PaNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaNil")))))), + (meta_loc _loc x0)) + and meta_private_flag _loc = + function + | Ast.PrAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.PrNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PrNil"))))) + | Ast.PrPrivate -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PrPrivate"))))) and meta_rec_binding _loc = function | Ast.RbAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.RbEq (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbEq"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbEq")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_expr _loc x2)) | Ast.RbSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbSem"))), - meta_loc _loc x0), - meta_rec_binding _loc x1), - meta_rec_binding _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbSem")))))), + (meta_loc _loc x0))), + (meta_rec_binding _loc x1))), + (meta_rec_binding _loc x2)) | Ast.RbNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbNil")))))), + (meta_loc _loc x0)) + and meta_rec_flag _loc = + function + | Ast.ReAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.ReNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ReNil"))))) + | Ast.ReRecursive -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ReRecursive"))))) + and meta_row_var_flag _loc = + function + | Ast.RvAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.RvNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RvNil"))))) + | Ast.RvRowVar -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RvRowVar"))))) and meta_sig_item _loc = function | Ast.SgAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.SgVal (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgVal"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgVal")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2)) | Ast.SgTyp (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.SgOpn (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgOpn"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgOpn")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.SgMty (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgMty"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgMty")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.SgRecMod (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgRecMod"))), - meta_loc _loc x0), - meta_module_binding _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgRecMod")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1)) | Ast.SgMod (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgMod"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgMod")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.SgInc (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgInc"))), - meta_loc _loc x0), - meta_module_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgInc")))))), + (meta_loc _loc x0))), + (meta_module_type _loc x1)) | Ast.SgExt (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgExt"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2), - meta_meta_list meta_string _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgExt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2))), + (meta_meta_list meta_string _loc x3)) | Ast.SgExc (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgExc"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgExc")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.SgDir (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgDir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgDir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.SgSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgSem"))), - meta_loc _loc x0), - meta_sig_item _loc x1), - meta_sig_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgSem")))))), + (meta_loc _loc x0))), + (meta_sig_item _loc x1))), + (meta_sig_item _loc x2)) | Ast.SgClt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgClt"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgClt")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.SgCls (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgCls"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgCls")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.SgNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgNil")))))), + (meta_loc _loc x0)) and meta_str_item _loc = function | Ast.StAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.StVal (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StVal"))), - meta_loc _loc x0), - meta_meta_bool _loc x1), - meta_binding _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StVal")))))), + (meta_loc _loc x0))), + (meta_rec_flag _loc x1))), + (meta_binding _loc x2)) | Ast.StTyp (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1)) | Ast.StOpn (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StOpn"))), - meta_loc _loc x0), - meta_ident _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StOpn")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1)) | Ast.StMty (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StMty"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_type _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StMty")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_type _loc x2)) | Ast.StRecMod (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StRecMod"))), - meta_loc _loc x0), - meta_module_binding _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StRecMod")))))), + (meta_loc _loc x0))), + (meta_module_binding _loc x1)) | Ast.StMod (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StMod"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_module_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StMod")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_module_expr _loc x2)) | Ast.StInc (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StInc"))), - meta_loc _loc x0), - meta_module_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StInc")))))), + (meta_loc _loc x0))), + (meta_module_expr _loc x1)) | Ast.StExt (x0, x1, x2, x3) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExt"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_ctyp _loc x2), - meta_meta_list meta_string _loc x3) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExt")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_ctyp _loc x2))), + (meta_meta_list meta_string _loc x3)) | Ast.StExp (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExp"))), - meta_loc _loc x0), - meta_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExp")))))), + (meta_loc _loc x0))), + (meta_expr _loc x1)) | Ast.StExc (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StExc"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_meta_option meta_ident _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StExc")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_meta_option meta_ident _loc x2)) | Ast.StDir (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StDir"))), - meta_loc _loc x0), - meta_string _loc x1), - meta_expr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StDir")))))), + (meta_loc _loc x0))), + (meta_string _loc x1))), + (meta_expr _loc x2)) | Ast.StSem (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StSem"))), - meta_loc _loc x0), - meta_str_item _loc x1), - meta_str_item _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StSem")))))), + (meta_loc _loc x0))), + (meta_str_item _loc x1))), + (meta_str_item _loc x2)) | Ast.StClt (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StClt"))), - meta_loc _loc x0), - meta_class_type _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StClt")))))), + (meta_loc _loc x0))), + (meta_class_type _loc x1)) | Ast.StCls (x0, x1) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StCls"))), - meta_loc _loc x0), - meta_class_expr _loc x1) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StCls")))))), + (meta_loc _loc x0))), + (meta_class_expr _loc x1)) | Ast.StNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StNil")))))), + (meta_loc _loc x0)) + and meta_virtual_flag _loc = + function + | Ast.ViAnt x0 -> Ast.PaAnt (_loc, x0) + | Ast.ViNil -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ViNil"))))) + | Ast.ViVirtual -> + Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ViVirtual"))))) and meta_with_constr _loc = function | Ast.WcAnt (x0, x1) -> Ast.PaAnt (x0, x1) | Ast.WcAnd (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcAnd"))), - meta_loc _loc x0), - meta_with_constr _loc x1), - meta_with_constr _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcAnd")))))), + (meta_loc _loc x0))), + (meta_with_constr _loc x1))), + (meta_with_constr _loc x2)) | Ast.WcMoS (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcMoS"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcMoS")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.WcTyS (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcTyS"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcTyS")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.WcMod (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcMod"))), - meta_loc _loc x0), - meta_ident _loc x1), - meta_ident _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcMod")))))), + (meta_loc _loc x0))), + (meta_ident _loc x1))), + (meta_ident _loc x2)) | Ast.WcTyp (x0, x1, x2) -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcTyp"))), - meta_loc _loc x0), - meta_ctyp _loc x1), - meta_ctyp _loc x2) + (Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcTyp")))))), + (meta_loc _loc x0))), + (meta_ctyp _loc x1))), + (meta_ctyp _loc x2)) | Ast.WcNil x0 -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcNil"))), - meta_loc _loc x0) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcNil")))))), + (meta_loc _loc x0)) end @@ -11581,6 +12114,12 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#string _x_i1 in WcAnt (_x, _x_i1) + method virtual_flag : virtual_flag -> virtual_flag = + function + | ViVirtual -> ViVirtual + | ViNil -> ViNil + | ViAnt _x -> let _x = o#string _x in ViAnt _x + method str_item : str_item -> str_item = function | StNil _x -> let _x = o#loc _x in StNil _x @@ -11638,7 +12177,7 @@ module Struct = let _x_i1 = o#ctyp _x_i1 in StTyp (_x, _x_i1) | StVal (_x, _x_i1, _x_i2) -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in StVal (_x, _x_i1, _x_i2) | StAnt (_x, _x_i1) -> let _x = o#loc _x in @@ -11702,6 +12241,18 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#string _x_i1 in SgAnt (_x, _x_i1) + method row_var_flag : row_var_flag -> row_var_flag = + function + | RvRowVar -> RvRowVar + | RvNil -> RvNil + | RvAnt _x -> let _x = o#string _x in RvAnt _x + + method rec_flag : rec_flag -> rec_flag = + function + | ReRecursive -> ReRecursive + | ReNil -> ReNil + | ReAnt _x -> let _x = o#string _x in ReAnt _x + method rec_binding : rec_binding -> rec_binding = function | RbNil _x -> let _x = o#loc _x in RbNil _x @@ -11718,6 +12269,12 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#string _x_i1 in RbAnt (_x, _x_i1) + method private_flag : private_flag -> private_flag = + function + | PrPrivate -> PrPrivate + | PrNil -> PrNil + | PrAnt _x -> let _x = o#string _x in PrAnt _x + method patt : patt -> patt = function | PaNil _x -> let _x = o#loc _x in PaNil _x @@ -11814,6 +12371,18 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#patt _x_i1 in PaLaz (_x, _x_i1) + method override_flag : override_flag -> override_flag = + function + | OvOverride -> OvOverride + | OvNil -> OvNil + | OvAnt _x -> let _x = o#string _x in OvAnt _x + + method mutable_flag : mutable_flag -> mutable_flag = + function + | MuMutable -> MuMutable + | MuNil -> MuNil + | MuAnt _x -> let _x = o#string _x in MuAnt _x + method module_type : module_type -> module_type = function | MtNil _x -> let _x = o#loc _x in MtNil _x @@ -12018,7 +12587,7 @@ module Struct = let _x_i1 = o#string _x_i1 in let _x_i2 = o#expr _x_i2 in let _x_i3 = o#expr _x_i3 in - let _x_i4 = o#meta_bool _x_i4 in + let _x_i4 = o#direction_flag _x_i4 in let _x_i5 = o#expr _x_i5 in ExFor (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) | ExFun (_x, _x_i1) -> @@ -12051,7 +12620,7 @@ module Struct = let _x_i1 = o#expr _x_i1 in ExLaz (_x, _x_i1) | ExLet (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in let _x_i3 = o#expr _x_i3 in ExLet (_x, _x_i1, _x_i2, _x_i3) @@ -12134,6 +12703,12 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#module_expr _x_i1 in ExPkg (_x, _x_i1) + method direction_flag : direction_flag -> direction_flag = + function + | DiTo -> DiTo + | DiDownto -> DiDownto + | DiAnt _x -> let _x = o#string _x in DiAnt _x + method ctyp : ctyp -> ctyp = function | TyNil _x -> let _x = o#loc _x in TyNil _x @@ -12179,7 +12754,7 @@ module Struct = | TyObj (_x, _x_i1, _x_i2) -> let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in - let _x_i2 = o#meta_bool _x_i2 + let _x_i2 = o#row_var_flag _x_i2 in TyObj (_x, _x_i1, _x_i2) | TyOlb (_x, _x_i1, _x_i2) -> let _x = o#loc _x in @@ -12278,7 +12853,7 @@ module Struct = | CtNil _x -> let _x = o#loc _x in CtNil _x | CtCon (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#virtual_flag _x_i1 in let _x_i2 = o#ident _x_i2 in let _x_i3 = o#ctyp _x_i3 in CtCon (_x, _x_i1, _x_i2, _x_i3) @@ -12323,36 +12898,40 @@ module Struct = let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in let _x_i2 = o#ctyp _x_i2 in CrCtr (_x, _x_i1, _x_i2) - | CrInh (_x, _x_i1, _x_i2) -> + | CrInh (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in - let _x_i1 = o#class_expr _x_i1 in - let _x_i2 = o#string _x_i2 in CrInh (_x, _x_i1, _x_i2) + let _x_i1 = o#override_flag _x_i1 in + let _x_i2 = o#class_expr _x_i2 in + let _x_i3 = o#string _x_i3 + in CrInh (_x, _x_i1, _x_i2, _x_i3) | CrIni (_x, _x_i1) -> let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in CrIni (_x, _x_i1) - | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> + | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#expr _x_i3 in - let _x_i4 = o#ctyp _x_i4 - in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) - | CrVal (_x, _x_i1, _x_i2, _x_i3) -> + let _x_i2 = o#override_flag _x_i2 in + let _x_i3 = o#private_flag _x_i3 in + let _x_i4 = o#expr _x_i4 in + let _x_i5 = o#ctyp _x_i5 + in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) + | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#expr _x_i3 - in CrVal (_x, _x_i1, _x_i2, _x_i3) + let _x_i2 = o#override_flag _x_i2 in + let _x_i3 = o#mutable_flag _x_i3 in + let _x_i4 = o#expr _x_i4 + in CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) | CrVir (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CrVir (_x, _x_i1, _x_i2, _x_i3) | CrVvr (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#mutable_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CrVvr (_x, _x_i1, _x_i2, _x_i3) | CrAnt (_x, _x_i1) -> @@ -12377,20 +12956,20 @@ module Struct = | CgMth (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CgMth (_x, _x_i1, _x_i2, _x_i3) | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#meta_bool _x_i3 in + let _x_i2 = o#mutable_flag _x_i2 in + let _x_i3 = o#virtual_flag _x_i3 in let _x_i4 = o#ctyp _x_i4 in CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) | CgVir (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CgVir (_x, _x_i1, _x_i2, _x_i3) | CgAnt (_x, _x_i1) -> @@ -12406,7 +12985,7 @@ module Struct = let _x_i2 = o#expr _x_i2 in CeApp (_x, _x_i1, _x_i2) | CeCon (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#virtual_flag _x_i1 in let _x_i2 = o#ident _x_i2 in let _x_i3 = o#ctyp _x_i3 in CeCon (_x, _x_i1, _x_i2, _x_i3) @@ -12417,7 +12996,7 @@ module Struct = in CeFun (_x, _x_i1, _x_i2) | CeLet (_x, _x_i1, _x_i2, _x_i3) -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in let _x_i3 = o#class_expr _x_i3 in CeLet (_x, _x_i1, _x_i2, _x_i3) @@ -12499,6 +13078,12 @@ module Struct = | WcAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o + method virtual_flag : virtual_flag -> 'self_type = + function + | ViVirtual -> o + | ViNil -> o + | ViAnt _x -> let o = o#string _x in o + method str_item : str_item -> 'self_type = function | StNil _x -> let o = o#loc _x in o @@ -12542,7 +13127,7 @@ module Struct = let o = o#loc _x in let o = o#ctyp _x_i1 in o | StVal (_x, _x_i1, _x_i2) -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in o | StAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o @@ -12590,6 +13175,18 @@ module Struct = | SgAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o + method row_var_flag : row_var_flag -> 'self_type = + function + | RvRowVar -> o + | RvNil -> o + | RvAnt _x -> let o = o#string _x in o + + method rec_flag : rec_flag -> 'self_type = + function + | ReRecursive -> o + | ReNil -> o + | ReAnt _x -> let o = o#string _x in o + method rec_binding : rec_binding -> 'self_type = function | RbNil _x -> let o = o#loc _x in o @@ -12603,6 +13200,12 @@ module Struct = | RbAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o + method private_flag : private_flag -> 'self_type = + function + | PrPrivate -> o + | PrNil -> o + | PrAnt _x -> let o = o#string _x in o + method patt : patt -> 'self_type = function | PaNil _x -> let o = o#loc _x in o @@ -12672,6 +13275,18 @@ module Struct = | PaLaz (_x, _x_i1) -> let o = o#loc _x in let o = o#patt _x_i1 in o + method override_flag : override_flag -> 'self_type = + function + | OvOverride -> o + | OvNil -> o + | OvAnt _x -> let o = o#string _x in o + + method mutable_flag : mutable_flag -> 'self_type = + function + | MuMutable -> o + | MuNil -> o + | MuAnt _x -> let o = o#string _x in o + method module_type : module_type -> 'self_type = function | MtNil _x -> let o = o#loc _x in o @@ -12836,7 +13451,8 @@ module Struct = let o = o#string _x_i1 in let o = o#expr _x_i2 in let o = o#expr _x_i3 in - let o = o#meta_bool _x_i4 in let o = o#expr _x_i5 in o + let o = o#direction_flag _x_i4 in + let o = o#expr _x_i5 in o | ExFun (_x, _x_i1) -> let o = o#loc _x in let o = o#match_case _x_i1 in o | ExIfe (_x, _x_i1, _x_i2, _x_i3) -> @@ -12858,7 +13474,7 @@ module Struct = let o = o#loc _x in let o = o#expr _x_i1 in o | ExLet (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in let o = o#expr _x_i3 in o | ExLmd (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in @@ -12918,6 +13534,12 @@ module Struct = | ExPkg (_x, _x_i1) -> let o = o#loc _x in let o = o#module_expr _x_i1 in o + method direction_flag : direction_flag -> 'self_type = + function + | DiTo -> o + | DiDownto -> o + | DiAnt _x -> let o = o#string _x in o + method ctyp : ctyp -> 'self_type = function | TyNil _x -> let o = o#loc _x in o @@ -12954,7 +13576,8 @@ module Struct = in o | TyObj (_x, _x_i1, _x_i2) -> let o = o#loc _x in - let o = o#ctyp _x_i1 in let o = o#meta_bool _x_i2 in o + let o = o#ctyp _x_i1 in + let o = o#row_var_flag _x_i2 in o | TyOlb (_x, _x_i1, _x_i2) -> let o = o#loc _x in let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o @@ -13025,7 +13648,7 @@ module Struct = | CtNil _x -> let o = o#loc _x in o | CtCon (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#virtual_flag _x_i1 in let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o | CtFun (_x, _x_i1, _x_i2) -> let o = o#loc _x in @@ -13059,29 +13682,35 @@ module Struct = | CrCtr (_x, _x_i1, _x_i2) -> let o = o#loc _x in let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o - | CrInh (_x, _x_i1, _x_i2) -> + | CrInh (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in - let o = o#class_expr _x_i1 in - let o = o#string _x_i2 in o + let o = o#override_flag _x_i1 in + let o = o#class_expr _x_i2 in + let o = o#string _x_i3 in o | CrIni (_x, _x_i1) -> let o = o#loc _x in let o = o#expr _x_i1 in o - | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> + | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in - let o = o#expr _x_i3 in let o = o#ctyp _x_i4 in o - | CrVal (_x, _x_i1, _x_i2, _x_i3) -> + let o = o#override_flag _x_i2 in + let o = o#private_flag _x_i3 in + let o = o#expr _x_i4 in let o = o#ctyp _x_i5 in o + | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#expr _x_i3 in o + let o = o#override_flag _x_i2 in + let o = o#mutable_flag _x_i3 in + let o = o#expr _x_i4 in o | CrVir (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in + let o = o#ctyp _x_i3 in o | CrVvr (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#mutable_flag _x_i2 in + let o = o#ctyp _x_i3 in o | CrAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o @@ -13100,16 +13729,19 @@ module Struct = | CgMth (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in + let o = o#ctyp _x_i3 in o | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in - let o = o#meta_bool _x_i3 in let o = o#ctyp _x_i4 in o + let o = o#mutable_flag _x_i2 in + let o = o#virtual_flag _x_i3 in + let o = o#ctyp _x_i4 in o | CgVir (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in + let o = o#ctyp _x_i3 in o | CgAnt (_x, _x_i1) -> let o = o#loc _x in let o = o#string _x_i1 in o @@ -13121,14 +13753,14 @@ module Struct = let o = o#class_expr _x_i1 in let o = o#expr _x_i2 in o | CeCon (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#virtual_flag _x_i1 in let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o | CeFun (_x, _x_i1, _x_i2) -> let o = o#loc _x in let o = o#patt _x_i1 in let o = o#class_expr _x_i2 in o | CeLet (_x, _x_i1, _x_i2, _x_i3) -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in let o = o#class_expr _x_i3 in o | CeStr (_x, _x_i1, _x_i2) -> @@ -13480,11 +14112,11 @@ module Struct = | Loc.Exc_located (qloc, exc) -> raise (Loc.Exc_located (qloc, - Error.E ((name, pos_tag, Finding, exc)))) + (Error.E ((name, pos_tag, Finding, exc))))) | exc -> raise (Loc.Exc_located (loc, - Error.E ((name, pos_tag, Finding, exc)))) in + (Error.E ((name, pos_tag, Finding, exc))))) in let loc = Loc.join (Loc.move `start quotation.q_shift loc) in expand_quotation loc expander pos_tag quotation @@ -13605,13 +14237,17 @@ module Struct = | Ptyp_poly (_, _) -> t | _ -> { (t) with ptyp_desc = Ptyp_poly ([], t); } - let mb2b = + let mkvirtual = function - | Ast.BTrue -> true - | Ast.BFalse -> false - | Ast.BAnt _ -> assert false + | Ast.ViVirtual -> Virtual + | Ast.ViNil -> Concrete + | _ -> assert false - let mkvirtual m = if mb2b m then Virtual else Concrete + let mkdirection = + function + | Ast.DiTo -> Upto + | Ast.DiDownto -> Downto + | _ -> assert false let lident s = Lident s @@ -13640,9 +14276,9 @@ module Struct = let mkrf = function - | Ast.BTrue -> Recursive - | Ast.BFalse -> Nonrecursive - | Ast.BAnt _ -> assert false + | Ast.ReRecursive -> Recursive + | Ast.ReNil -> Nonrecursive + | _ -> assert false let mkli s = let rec loop f = @@ -13660,7 +14296,7 @@ module Struct = | Ast.IdAcc (_, i1, i2) -> self i2 (Some (self i1 acc)) | Ast.IdApp (_, i1, i2) -> let i' = - Lapply (fst (self i1 None), fst (self i2 None)) in + Lapply ((fst (self i1 None)), (fst (self i2 None))) in let x = (match acc with | None -> i' @@ -13738,30 +14374,33 @@ module Struct = | (t, TyQuo (_, s)) -> (t, s) | (TyQuo (_, s), t) -> (t, s) | _ -> error loc "invalid alias type") - in mktyp loc (Ptyp_alias (ctyp t, i)) + in mktyp loc (Ptyp_alias ((ctyp t), i)) | TyAny loc -> mktyp loc Ptyp_any | (TyApp (loc, _, _) as f) -> let (f, al) = ctyp_fa [] f in let (is_cls, li) = ctyp_long_id f in if is_cls - then mktyp loc (Ptyp_class (li, List.map ctyp al, [])) - else mktyp loc (Ptyp_constr (li, List.map ctyp al)) + then mktyp loc (Ptyp_class (li, (List.map ctyp al), [])) + else mktyp loc (Ptyp_constr (li, (List.map ctyp al))) | TyArr (loc, (TyLab (_, lab, t1)), t2) -> - mktyp loc (Ptyp_arrow (lab, ctyp t1, ctyp t2)) + mktyp loc (Ptyp_arrow (lab, (ctyp t1), (ctyp t2))) | TyArr (loc, (TyOlb (loc1, lab, t1)), t2) -> let t1 = - TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")), - t1) - in mktyp loc (Ptyp_arrow ("?" ^ lab, ctyp t1, ctyp t2)) + TyApp (loc1, + (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t1) + in + mktyp loc + (Ptyp_arrow (("?" ^ lab), (ctyp t1), (ctyp t2))) | TyArr (loc, t1, t2) -> - mktyp loc (Ptyp_arrow ("", ctyp t1, ctyp t2)) - | Ast.TyObj (loc, fl, Ast.BFalse) -> + mktyp loc (Ptyp_arrow ("", (ctyp t1), (ctyp t2))) + | Ast.TyObj (loc, fl, Ast.RvNil) -> mktyp loc (Ptyp_object (meth_list fl [])) - | Ast.TyObj (loc, fl, Ast.BTrue) -> + | Ast.TyObj (loc, fl, Ast.RvRowVar) -> mktyp loc (Ptyp_object (meth_list fl [ mkfield loc Pfield_var ])) - | TyCls (loc, id) -> mktyp loc (Ptyp_class (ident id, [], [])) + | TyCls (loc, id) -> + mktyp loc (Ptyp_class ((ident id), [], [])) | Ast.TyPkg (loc, pt) -> let (i, cs) = package_type pt in mktyp loc (Ptyp_package (i, cs)) @@ -13772,7 +14411,7 @@ module Struct = | TyOlb (loc, _, _) -> error loc "labelled type not allowed here" | TyPol (loc, t1, t2) -> - mktyp loc (Ptyp_poly (ty_var_list_of_ctyp t1, ctyp t2)) + mktyp loc (Ptyp_poly ((ty_var_list_of_ctyp t1), (ctyp t2))) | TyQuo (loc, s) -> mktyp loc (Ptyp_var s) | TyRec (loc, _) -> error loc "record type not allowed here" | TySum (loc, _) -> error loc "sum type not allowed here" @@ -13793,28 +14432,29 @@ module Struct = (Ptyp_tuple (List.map ctyp (list_of_ctyp t1 (list_of_ctyp t2 [])))) | Ast.TyVrnEq (loc, t) -> - mktyp loc (Ptyp_variant (row_field t, true, None)) + mktyp loc (Ptyp_variant ((row_field t), true, None)) | Ast.TyVrnSup (loc, t) -> - mktyp loc (Ptyp_variant (row_field t, false, None)) + mktyp loc (Ptyp_variant ((row_field t), false, None)) | Ast.TyVrnInf (loc, t) -> - mktyp loc (Ptyp_variant (row_field t, true, Some [])) + mktyp loc (Ptyp_variant ((row_field t), true, (Some []))) | Ast.TyVrnInfSup (loc, t, t') -> mktyp loc - (Ptyp_variant (row_field t, true, Some (name_tags t'))) + (Ptyp_variant ((row_field t), true, + (Some (name_tags t')))) | TyAnt (loc, _) -> error loc "antiquotation not allowed here" | TyOfAmp (_, _, _) | TyAmp (_, _, _) | TySta (_, _, _) | TyCom (_, _, _) | TyVrn (_, _) | TyQuM (_, _) | TyQuP (_, _) | TyDcl (_, _, _, _, _) | - TyObj (_, _, (BAnt _)) | TyNil _ | TyTup (_, _) -> + TyObj (_, _, (RvAnt _)) | TyNil _ | TyTup (_, _) -> assert false and row_field = function | Ast.TyNil _ -> [] | Ast.TyVrn (_, i) -> [ Rtag (i, true, []) ] | Ast.TyOfAmp (_, (Ast.TyVrn (_, i)), t) -> - [ Rtag (i, true, List.map ctyp (list_of_ctyp t [])) ] + [ Rtag (i, true, (List.map ctyp (list_of_ctyp t []))) ] | Ast.TyOf (_, (Ast.TyVrn (_, i)), t) -> - [ Rtag (i, false, List.map ctyp (list_of_ctyp t [])) ] + [ Rtag (i, false, (List.map ctyp (list_of_ctyp t []))) ] | Ast.TyOr (_, t1, t2) -> (row_field t1) @ (row_field t2) | t -> [ Rinherit (ctyp t) ] and name_tags = @@ -13827,7 +14467,7 @@ module Struct = | Ast.TyNil _ -> acc | Ast.TySem (_, t1, t2) -> meth_list t1 (meth_list t2 acc) | Ast.TyCol (loc, (Ast.TyId (_, (Ast.IdLid (_, lab)))), t) -> - (mkfield loc (Pfield (lab, mkpolytype (ctyp t)))) :: acc + (mkfield loc (Pfield (lab, (mkpolytype (ctyp t))))) :: acc | _ -> assert false and package_type_constraints wc acc = match wc with @@ -13862,7 +14502,11 @@ module Struct = let mkprivate' m = if m then Private else Public - let mkprivate m = mkprivate' (mb2b m) + let mkprivate = + function + | Ast.PrPrivate -> Private + | Ast.PrNil -> Public + | _ -> assert false let mktrecord = function @@ -13917,7 +14561,11 @@ module Struct = | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs) | Ast.LAnt _ -> assert false - let mkmutable m = if mb2b m then Mutable else Immutable + let mkmutable = + function + | Ast.MuMutable -> Mutable + | Ast.MuNil -> Immutable + | _ -> assert false let paolab lab p = match (lab, p) with @@ -14002,8 +14650,8 @@ module Struct = then mkghpat loc (Ppat_constant (Const_char c1)) else mkghpat loc - (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)), - deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2)) + (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))), + (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2))) let rec mkrangepat loc c1 c2 = if c1 > c2 @@ -14013,16 +14661,17 @@ module Struct = then mkpat loc (Ppat_constant (Const_char c1)) else mkpat loc - (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)), - deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2)) + (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))), + (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) + c2))) let rec patt = function | Ast.PaId (loc, (Ast.IdLid (_, s))) -> mkpat loc (Ppat_var s) | Ast.PaId (loc, i) -> let p = - Ppat_construct (long_uident ~conv_con i, None, - constructors_arity ()) + Ppat_construct ((long_uident ~conv_con i), None, + (constructors_arity ())) in mkpat loc p | PaAli (loc, p1, p2) -> let (p, i) = @@ -14030,14 +14679,14 @@ module Struct = | (p, Ast.PaId (_, (Ast.IdLid (_, s)))) -> (p, s) | (Ast.PaId (_, (Ast.IdLid (_, s))), p) -> (p, s) | _ -> error loc "invalid alias pattern") - in mkpat loc (Ppat_alias (patt p, i)) + in mkpat loc (Ppat_alias ((patt p), i)) | PaAnt (loc, _) -> error loc "antiquotation not allowed here" | PaAny loc -> mkpat loc Ppat_any | Ast.PaApp (loc, (Ast.PaId (_, (Ast.IdUid (_, s)))), (Ast.PaTup (_, (Ast.PaAny loc_any)))) -> mkpat loc - (Ppat_construct (lident (conv_con s), - Some (mkpat loc_any Ppat_any), false)) + (Ppat_construct ((lident (conv_con s)), + (Some (mkpat loc_any Ppat_any)), false)) | (PaApp (loc, _, _) as f) -> let (f, al) = patt_fa [] f in let al = List.map patt al @@ -14048,13 +14697,15 @@ module Struct = then mkpat loc (Ppat_construct (li, - Some (mkpat loc (Ppat_tuple al)), true)) + (Some (mkpat loc (Ppat_tuple al))), true)) else (let a = match al with | [ a ] -> a | _ -> mkpat loc (Ppat_tuple al) - in mkpat loc (Ppat_construct (li, Some a, false))) + in + mkpat loc + (Ppat_construct (li, (Some a), false))) | Ppat_variant (s, None) -> let a = if constructors_arity () @@ -14063,7 +14714,7 @@ module Struct = (match al with | [ a ] -> a | _ -> mkpat loc (Ppat_tuple al)) - in mkpat loc (Ppat_variant (s, Some a)) + in mkpat loc (Ppat_variant (s, (Some a))) | _ -> error (loc_of_patt f) "this is not a constructor, it cannot be applied in a pattern") @@ -14111,7 +14762,8 @@ module Struct = error loc "labeled pattern not allowed here" | PaOlb (loc, _, _) | PaOlbi (loc, _, _, _) -> error loc "labeled pattern not allowed here" - | PaOrp (loc, p1, p2) -> mkpat loc (Ppat_or (patt p1, patt p2)) + | PaOrp (loc, p1, p2) -> + mkpat loc (Ppat_or ((patt p1), (patt p2))) | PaRng (loc, p1, p2) -> (match (p1, p2) with | (PaChr (loc1, c1), PaChr (loc2, c2)) -> @@ -14139,7 +14791,7 @@ module Struct = (List.map patt (list_of_patt p1 (list_of_patt p2 [])))) | Ast.PaTup (loc, _) -> error loc "singleton tuple pattern" | PaTyc (loc, p, t) -> - mkpat loc (Ppat_constraint (patt p, ctyp t)) + mkpat loc (Ppat_constraint ((patt p), (ctyp t))) | PaTyp (loc, i) -> mkpat loc (Ppat_type (long_type_ident i)) | PaVrn (loc, s) -> mkpat loc (Ppat_variant (s, None)) | PaLaz (loc, p) -> mkpat loc (Ppat_lazy (patt p)) @@ -14173,15 +14825,23 @@ module Struct = let rec normalize_acc = (function | Ast.IdAcc (_loc, i1, i2) -> - Ast.ExAcc (_loc, normalize_acc i1, normalize_acc i2) + Ast.ExAcc (_loc, (normalize_acc i1), + (normalize_acc i2)) | Ast.IdApp (_loc, i1, i2) -> - Ast.ExApp (_loc, normalize_acc i1, normalize_acc i2) + Ast.ExApp (_loc, (normalize_acc i1), + (normalize_acc i2)) | (Ast.IdAnt (_loc, _) | Ast.IdUid (_loc, _) | Ast.IdLid (_loc, _) as i) -> Ast.ExId (_loc, i)) in sep_expr_acc l (normalize_acc i) | e -> ((loc_of_expr e), [], e) :: l + let override_flag loc = + function + | Ast.OvOverride -> Override + | Ast.OvNil -> Fresh + | _ -> error loc "antiquotation not allowed here" + let list_of_opt_ctyp ot acc = match ot with | Ast.TyNil _ -> acc | t -> list_of_ctyp t acc @@ -14189,7 +14849,7 @@ module Struct = function | Ast.ExAcc (loc, x, (Ast.ExId (_, (Ast.IdLid (_, "val"))))) -> mkexp loc - (Pexp_apply (mkexp loc (Pexp_ident (Lident "!")), + (Pexp_apply ((mkexp loc (Pexp_ident (Lident "!"))), [ ("", (expr x)) ])) | (ExAcc (loc, _, _) | Ast.ExId (loc, (Ast.IdAcc (_, _, _))) as e) -> @@ -14199,7 +14859,7 @@ module Struct = let ca = constructors_arity () in ((mkexp loc - (Pexp_construct (mkli (conv_con s) ml, None, + (Pexp_construct ((mkli (conv_con s) ml), None, ca))), l) | (loc, ml, Ast.ExId (_, (Ast.IdLid (_, s)))) :: l -> @@ -14215,7 +14875,7 @@ module Struct = in (loc, (mkexp loc - (Pexp_field (e1, mkli (conv_lab s) ml)))) + (Pexp_field (e1, (mkli (conv_lab s) ml))))) | _ -> error (loc_of_expr e2) "lowercase identifier expected") @@ -14234,7 +14894,7 @@ module Struct = then mkexp loc (Pexp_construct (li, - Some (mkexp loc (Pexp_tuple al)), true)) + (Some (mkexp loc (Pexp_tuple al))), true)) else (let a = match al with @@ -14242,7 +14902,7 @@ module Struct = | _ -> mkexp loc (Pexp_tuple al) in mkexp loc - (Pexp_construct (li, Some a, false))) + (Pexp_construct (li, (Some a), false))) | Pexp_variant (s, None) -> let al = List.map snd al in let a = @@ -14252,12 +14912,13 @@ module Struct = (match al with | [ a ] -> a | _ -> mkexp loc (Pexp_tuple al)) - in mkexp loc (Pexp_variant (s, Some a)) - | _ -> mkexp loc (Pexp_apply (expr f, al))) + in mkexp loc (Pexp_variant (s, (Some a))) + | _ -> mkexp loc (Pexp_apply ((expr f), al))) | ExAre (loc, e1, e2) -> mkexp loc (Pexp_apply - (mkexp loc (Pexp_ident (array_function "Array" "get")), + ((mkexp loc + (Pexp_ident (array_function "Array" "get"))), [ ("", (expr e1)); ("", (expr e2)) ])) | ExArr (loc, e) -> mkexp loc (Pexp_array (List.map expr (list_of_expr e []))) @@ -14267,24 +14928,24 @@ module Struct = (match e with | Ast.ExAcc (loc, x, (Ast.ExId (_, (Ast.IdLid (_, "val"))))) -> - Pexp_apply (mkexp loc (Pexp_ident (Lident ":=")), + Pexp_apply ((mkexp loc (Pexp_ident (Lident ":="))), [ ("", (expr x)); ("", (expr v)) ]) | ExAcc (loc, _, _) -> (match (expr e).pexp_desc with | Pexp_field (e, lab) -> - Pexp_setfield (e, lab, expr v) + Pexp_setfield (e, lab, (expr v)) | _ -> error loc "bad record access") | ExAre (_, e1, e2) -> Pexp_apply - (mkexp loc - (Pexp_ident (array_function "Array" "set")), + ((mkexp loc + (Pexp_ident (array_function "Array" "set"))), [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ]) | Ast.ExId (_, (Ast.IdLid (_, lab))) -> - Pexp_setinstvar (lab, expr v) + Pexp_setinstvar (lab, (expr v)) | ExSte (_, e1, e2) -> Pexp_apply - (mkexp loc - (Pexp_ident (array_function "String" "set")), + ((mkexp loc + (Pexp_ident (array_function "String" "set"))), [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ]) | _ -> error loc "bad left part of assignment") in mkexp loc e @@ -14295,14 +14956,18 @@ module Struct = | ExCoe (loc, e, t1, t2) -> let t1 = (match t1 with | Ast.TyNil _ -> None | t -> Some (ctyp t)) - in mkexp loc (Pexp_constraint (expr e, t1, Some (ctyp t2))) + in + mkexp loc + (Pexp_constraint ((expr e), t1, (Some (ctyp t2)))) | ExFlo (loc, s) -> mkexp loc (Pexp_constant (Const_float (remove_underscores s))) | ExFor (loc, i, e1, e2, df, el) -> - let e3 = ExSeq (loc, el) in - let df = if mb2b df then Upto else Downto - in mkexp loc (Pexp_for (i, expr e1, expr e2, df, expr e3)) + let e3 = ExSeq (loc, el) + in + mkexp loc + (Pexp_for (i, (expr e1), (expr e2), (mkdirection df), + (expr e3))) | Ast.ExFun (loc, (Ast.McArr (_, (PaLab (_, lab, po)), w, e))) -> mkexp loc @@ -14313,20 +14978,20 @@ module Struct = let lab = paolab lab p in mkexp loc - (Pexp_function ("?" ^ lab, Some (expr e1), + (Pexp_function (("?" ^ lab), (Some (expr e1)), [ ((patt p), (when_expr e2 w)) ])) | Ast.ExFun (loc, (Ast.McArr (_, (PaOlb (_, lab, p)), w, e))) -> let lab = paolab lab p in mkexp loc - (Pexp_function ("?" ^ lab, None, + (Pexp_function (("?" ^ lab), None, [ ((patt_of_lab loc lab p), (when_expr e w)) ])) | ExFun (loc, a) -> - mkexp loc (Pexp_function ("", None, match_case a [])) + mkexp loc (Pexp_function ("", None, (match_case a []))) | ExIfe (loc, e1, e2, e3) -> mkexp loc - (Pexp_ifthenelse (expr e1, expr e2, Some (expr e3))) + (Pexp_ifthenelse ((expr e1), (expr e2), (Some (expr e3)))) | ExInt (loc, s) -> let i = (try int_of_string s @@ -14363,11 +15028,11 @@ module Struct = error loc "labeled expression not allowed here" | ExLaz (loc, e) -> mkexp loc (Pexp_lazy (expr e)) | ExLet (loc, rf, bi, e) -> - mkexp loc (Pexp_let (mkrf rf, binding bi [], expr e)) + mkexp loc (Pexp_let ((mkrf rf), (binding bi []), (expr e))) | ExLmd (loc, i, me, e) -> - mkexp loc (Pexp_letmodule (i, module_expr me, expr e)) + mkexp loc (Pexp_letmodule (i, (module_expr me), (expr e))) | ExMat (loc, e, a) -> - mkexp loc (Pexp_match (expr e, match_case a [])) + mkexp loc (Pexp_match ((expr e), (match_case a []))) | ExNew (loc, id) -> mkexp loc (Pexp_new (long_type_ident id)) | ExObj (loc, po, cfl) -> let p = @@ -14386,54 +15051,55 @@ module Struct = (match eo with | Ast.ExNil _ -> None | e -> Some (expr e)) - in mkexp loc (Pexp_record (mklabexp lel [], eo))) + in mkexp loc (Pexp_record ((mklabexp lel []), eo))) | ExSeq (_loc, e) -> let rec loop = (function - | [] -> expr (Ast.ExId (_loc, Ast.IdUid (_loc, "()"))) + | [] -> expr (Ast.ExId (_loc, (Ast.IdUid (_loc, "()")))) | [ e ] -> expr e | e :: el -> let _loc = Loc.merge (loc_of_expr e) _loc - in mkexp _loc (Pexp_sequence (expr e, loop el))) + in mkexp _loc (Pexp_sequence ((expr e), (loop el)))) in loop (list_of_expr e []) - | ExSnd (loc, e, s) -> mkexp loc (Pexp_send (expr e, s)) + | ExSnd (loc, e, s) -> mkexp loc (Pexp_send ((expr e), s)) | ExSte (loc, e1, e2) -> mkexp loc (Pexp_apply - (mkexp loc - (Pexp_ident (array_function "String" "get")), + ((mkexp loc + (Pexp_ident (array_function "String" "get"))), [ ("", (expr e1)); ("", (expr e2)) ])) | ExStr (loc, s) -> mkexp loc (Pexp_constant (Const_string (string_of_string_token loc s))) | ExTry (loc, e, a) -> - mkexp loc (Pexp_try (expr e, match_case a [])) + mkexp loc (Pexp_try ((expr e), (match_case a []))) | Ast.ExTup (loc, (Ast.ExCom (_, e1, e2))) -> mkexp loc (Pexp_tuple (List.map expr (list_of_expr e1 (list_of_expr e2 [])))) | Ast.ExTup (loc, _) -> error loc "singleton tuple" | ExTyc (loc, e, t) -> - mkexp loc (Pexp_constraint (expr e, Some (ctyp t), None)) + mkexp loc + (Pexp_constraint ((expr e), (Some (ctyp t)), None)) | Ast.ExId (loc, (Ast.IdUid (_, "()"))) -> - mkexp loc (Pexp_construct (lident "()", None, true)) + mkexp loc (Pexp_construct ((lident "()"), None, true)) | Ast.ExId (loc, (Ast.IdLid (_, s))) -> mkexp loc (Pexp_ident (lident s)) | Ast.ExId (loc, (Ast.IdUid (_, s))) -> mkexp loc - (Pexp_construct (lident (conv_con s), None, true)) + (Pexp_construct ((lident (conv_con s)), None, true)) | ExVrn (loc, s) -> mkexp loc (Pexp_variant (s, None)) | ExWhi (loc, e1, el) -> let e2 = ExSeq (loc, el) - in mkexp loc (Pexp_while (expr e1, expr e2)) + in mkexp loc (Pexp_while ((expr e1), (expr e2))) | Ast.ExOpI (loc, i, e) -> - mkexp loc (Pexp_open (long_uident i, expr e)) + mkexp loc (Pexp_open ((long_uident i), (expr e))) | Ast.ExPkg (loc, (Ast.MeTyc (_, me, pt))) -> - mkexp loc (Pexp_pack (module_expr me, package_type pt)) + mkexp loc (Pexp_pack ((module_expr me), (package_type pt))) | Ast.ExPkg (loc, _) -> error loc "(module_expr : package_type) expected here" - | ExFUN (loc, i, e) -> mkexp loc (Pexp_newtype (i, expr e)) + | ExFUN (loc, i, e) -> mkexp loc (Pexp_newtype (i, (expr e))) | Ast.ExCom (loc, _, _) -> error loc "expr, expr: not allowed here" | Ast.ExSem (loc, _, _) -> @@ -14443,11 +15109,13 @@ module Struct = error (loc_of_expr e) "invalid expr" and patt_of_lab _loc lab = function - | Ast.PaNil _ -> patt (Ast.PaId (_loc, Ast.IdLid (_loc, lab))) + | Ast.PaNil _ -> + patt (Ast.PaId (_loc, (Ast.IdLid (_loc, lab)))) | p -> patt p and expr_of_lab _loc lab = function - | Ast.ExNil _ -> expr (Ast.ExId (_loc, Ast.IdLid (_loc, lab))) + | Ast.ExNil _ -> + expr (Ast.ExId (_loc, (Ast.IdLid (_loc, lab)))) | e -> expr e and label_expr = function @@ -14460,7 +15128,7 @@ module Struct = | Ast.BiAnd (_, x, y) -> binding x (binding y acc) | Ast.BiEq (_loc, p, (Ast.ExTyc (_, e, (Ast.TyPol (_, vs, ty))))) -> - ((patt (Ast.PaTyc (_loc, p, Ast.TyPol (_loc, vs, ty)))), + ((patt (Ast.PaTyc (_loc, p, (Ast.TyPol (_loc, vs, ty))))), (expr e)) :: acc | Ast.BiEq (_, p, e) -> ((patt p), (expr e)) :: acc | Ast.BiNil _ -> acc @@ -14474,7 +15142,7 @@ module Struct = and when_expr e w = match w with | Ast.ExNil _ -> expr e - | w -> mkexp (loc_of_expr w) (Pexp_when (expr w, expr e)) + | w -> mkexp (loc_of_expr w) (Pexp_when ((expr w), (expr e))) and mklabexp x acc = match x with | Ast.RbSem (_, x, y) -> mklabexp x (mklabexp y acc) @@ -14510,13 +15178,13 @@ module Struct = | Ast.MtId (loc, i) -> mkmty loc (Pmty_ident (long_uident i)) | Ast.MtFun (loc, n, nt, mt) -> mkmty loc - (Pmty_functor (n, module_type nt, module_type mt)) + (Pmty_functor (n, (module_type nt), (module_type mt))) | Ast.MtQuo (loc, _) -> error loc "module type variable not allowed here" | Ast.MtSig (loc, sl) -> mkmty loc (Pmty_signature (sig_item sl [])) | Ast.MtWit (loc, mt, wc) -> - mkmty loc (Pmty_with (module_type mt, mkwithc wc [])) + mkmty loc (Pmty_with ((module_type mt), (mkwithc wc []))) | Ast.MtAnt (_, _) -> assert false and sig_item s l = match s with @@ -14536,22 +15204,22 @@ module Struct = | Ast.SgSem (_, sg1, sg2) -> sig_item sg1 (sig_item sg2 l) | SgDir (_, _, _) -> l | Ast.SgExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s))))) -> - (mksig loc (Psig_exception (conv_con s, []))) :: l + (mksig loc (Psig_exception ((conv_con s), []))) :: l | Ast.SgExc (loc, (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t))) -> (mksig loc - (Psig_exception (conv_con s, - List.map ctyp (list_of_ctyp t [])))) :: + (Psig_exception ((conv_con s), + (List.map ctyp (list_of_ctyp t []))))) :: l | SgExc (_, _) -> assert false | SgExt (loc, n, t, sl) -> (mksig loc - (Psig_value (n, mkvalue_desc t (list_of_meta_list sl)))) :: + (Psig_value (n, (mkvalue_desc t (list_of_meta_list sl))))) :: l | SgInc (loc, mt) -> (mksig loc (Psig_include (module_type mt))) :: l | SgMod (loc, n, mt) -> - (mksig loc (Psig_module (n, module_type mt))) :: l + (mksig loc (Psig_module (n, (module_type mt)))) :: l | SgRecMod (loc, mb) -> (mksig loc (Psig_recmodule (module_sig_binding mb []))) :: l @@ -14566,7 +15234,7 @@ module Struct = | SgTyp (loc, tdl) -> (mksig loc (Psig_type (mktype_decl tdl []))) :: l | SgVal (loc, n, t) -> - (mksig loc (Psig_value (n, mkvalue_desc t []))) :: l + (mksig loc (Psig_value (n, (mkvalue_desc t [])))) :: l | Ast.SgAnt (loc, _) -> error loc "antiquotation in sig_item" and module_sig_binding x acc = match x with @@ -14586,17 +15254,18 @@ module Struct = | Ast.MeNil loc -> error loc "nil module expression" | Ast.MeId (loc, i) -> mkmod loc (Pmod_ident (long_uident i)) | Ast.MeApp (loc, me1, me2) -> - mkmod loc (Pmod_apply (module_expr me1, module_expr me2)) + mkmod loc + (Pmod_apply ((module_expr me1), (module_expr me2))) | Ast.MeFun (loc, n, mt, me) -> mkmod loc - (Pmod_functor (n, module_type mt, module_expr me)) + (Pmod_functor (n, (module_type mt), (module_expr me))) | Ast.MeStr (loc, sl) -> mkmod loc (Pmod_structure (str_item sl [])) | Ast.MeTyc (loc, me, mt) -> mkmod loc - (Pmod_constraint (module_expr me, module_type mt)) + (Pmod_constraint ((module_expr me), (module_type mt))) | Ast.MePkg (loc, (Ast.ExTyc (_, e, (Ast.TyPkg (_, pt))))) -> - mkmod loc (Pmod_unpack (expr e, package_type pt)) + mkmod loc (Pmod_unpack ((expr e), (package_type pt))) | Ast.MePkg (loc, _) -> error loc "(value expr) not supported yet" | Ast.MeAnt (loc, _) -> @@ -14620,55 +15289,58 @@ module Struct = | StDir (_, _, _) -> l | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))), Ast. ONone) -> - (mkstr loc (Pstr_exception (conv_con s, []))) :: l + (mkstr loc (Pstr_exception ((conv_con s), []))) :: l | Ast.StExc (loc, (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t)), Ast. ONone) -> (mkstr loc - (Pstr_exception (conv_con s, - List.map ctyp (list_of_ctyp t [])))) :: + (Pstr_exception ((conv_con s), + (List.map ctyp (list_of_ctyp t []))))) :: l | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))), (Ast.OSome i)) -> - (mkstr loc (Pstr_exn_rebind (conv_con s, ident i))) :: l + (mkstr loc (Pstr_exn_rebind ((conv_con s), (ident i)))) :: + l | StExc (_, _, _) -> assert false | StExp (loc, e) -> (mkstr loc (Pstr_eval (expr e))) :: l | StExt (loc, n, t, sl) -> (mkstr loc (Pstr_primitive (n, - mkvalue_desc t (list_of_meta_list sl)))) :: + (mkvalue_desc t (list_of_meta_list sl))))) :: l | StInc (loc, me) -> (mkstr loc (Pstr_include (module_expr me))) :: l | StMod (loc, n, me) -> - (mkstr loc (Pstr_module (n, module_expr me))) :: l + (mkstr loc (Pstr_module (n, (module_expr me)))) :: l | StRecMod (loc, mb) -> (mkstr loc (Pstr_recmodule (module_str_binding mb []))) :: l | StMty (loc, n, mt) -> - (mkstr loc (Pstr_modtype (n, module_type mt))) :: l + (mkstr loc (Pstr_modtype (n, (module_type mt)))) :: l | StOpn (loc, id) -> (mkstr loc (Pstr_open (long_uident id))) :: l | StTyp (loc, tdl) -> (mkstr loc (Pstr_type (mktype_decl tdl []))) :: l | StVal (loc, rf, bi) -> - (mkstr loc (Pstr_value (mkrf rf, binding bi []))) :: l + (mkstr loc (Pstr_value ((mkrf rf), (binding bi [])))) :: l | Ast.StAnt (loc, _) -> error loc "antiquotation in str_item" and class_type = function - | CtCon (loc, Ast.BFalse, id, tl) -> + | CtCon (loc, ViNil, id, tl) -> mkcty loc - (Pcty_constr (long_class_ident id, - List.map ctyp (list_of_opt_ctyp tl []))) + (Pcty_constr ((long_class_ident id), + (List.map ctyp (list_of_opt_ctyp tl [])))) | CtFun (loc, (TyLab (_, lab, t)), ct) -> - mkcty loc (Pcty_fun (lab, ctyp t, class_type ct)) + mkcty loc (Pcty_fun (lab, (ctyp t), (class_type ct))) | CtFun (loc, (TyOlb (loc1, lab, t)), ct) -> let t = - TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")), - t) - in mkcty loc (Pcty_fun ("?" ^ lab, ctyp t, class_type ct)) + TyApp (loc1, + (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t) + in + mkcty loc + (Pcty_fun (("?" ^ lab), (ctyp t), (class_type ct))) | CtFun (loc, t, ct) -> - mkcty loc (Pcty_fun ("", ctyp t, class_type ct)) + mkcty loc (Pcty_fun ("", (ctyp t), (class_type ct))) | CtSig (loc, t_o, ctfl) -> let t = (match t_o with | Ast.TyNil _ -> Ast.TyAny loc | t -> t) in @@ -14690,7 +15362,7 @@ module Struct = (List.split (class_parameters t [])))) in { - pci_virt = if mb2b vir then Virtual else Concrete; + pci_virt = mkvirtual vir; pci_params = (params, (mkloc loc_params)); pci_name = name; pci_expr = class_expr ce; @@ -14712,7 +15384,7 @@ module Struct = (List.split (class_parameters t [])))) in { - pci_virt = if mb2b vir then Virtual else Concrete; + pci_virt = mkvirtual vir; pci_params = (params, (mkloc loc_params)); pci_name = name; pci_expr = class_type ct; @@ -14749,38 +15421,40 @@ module Struct = | (CeApp (loc, _, _) as c) -> let (ce, el) = class_expr_fa [] c in let el = List.map label_expr el - in mkpcl loc (Pcl_apply (class_expr ce, el)) - | CeCon (loc, Ast.BFalse, id, tl) -> + in mkpcl loc (Pcl_apply ((class_expr ce), el)) + | CeCon (loc, ViNil, id, tl) -> mkpcl loc - (Pcl_constr (long_class_ident id, - List.map ctyp (list_of_opt_ctyp tl []))) + (Pcl_constr ((long_class_ident id), + (List.map ctyp (list_of_opt_ctyp tl [])))) | CeFun (loc, (PaLab (_, lab, po)), ce) -> mkpcl loc - (Pcl_fun (lab, None, patt_of_lab loc lab po, - class_expr ce)) + (Pcl_fun (lab, None, (patt_of_lab loc lab po), + (class_expr ce))) | CeFun (loc, (PaOlbi (_, lab, p, e)), ce) -> let lab = paolab lab p in mkpcl loc - (Pcl_fun ("?" ^ lab, Some (expr e), patt p, - class_expr ce)) + (Pcl_fun (("?" ^ lab), (Some (expr e)), (patt p), + (class_expr ce))) | CeFun (loc, (PaOlb (_, lab, p)), ce) -> let lab = paolab lab p in mkpcl loc - (Pcl_fun ("?" ^ lab, None, patt_of_lab loc lab p, - class_expr ce)) + (Pcl_fun (("?" ^ lab), None, (patt_of_lab loc lab p), + (class_expr ce))) | CeFun (loc, p, ce) -> - mkpcl loc (Pcl_fun ("", None, patt p, class_expr ce)) + mkpcl loc (Pcl_fun ("", None, (patt p), (class_expr ce))) | CeLet (loc, rf, bi, ce) -> - mkpcl loc (Pcl_let (mkrf rf, binding bi [], class_expr ce)) + mkpcl loc + (Pcl_let ((mkrf rf), (binding bi []), (class_expr ce))) | CeStr (loc, po, cfl) -> let p = (match po with | Ast.PaNil _ -> Ast.PaAny loc | p -> p) in let cil = class_str_item cfl [] in mkpcl loc (Pcl_structure (((patt p), cil))) | CeTyc (loc, ce, ct) -> - mkpcl loc (Pcl_constraint (class_expr ce, class_type ct)) + mkpcl loc + (Pcl_constraint ((class_expr ce), (class_type ct))) | CeCon (loc, _, _, _) -> error loc "invalid virtual class inside a class expression" | CeAnt (_, _) | CeEq (_, _, _) | CeAnd (_, _, _) | CeNil _ -> @@ -14792,29 +15466,34 @@ module Struct = (Pcf_cstr (((ctyp t1), (ctyp t2), (mkloc loc)))) :: l | Ast.CrSem (_, cst1, cst2) -> class_str_item cst1 (class_str_item cst2 l) - | CrInh (_, ce, "") -> - (Pcf_inher (Fresh, class_expr ce, None)) :: l - | CrInh (_, ce, pb) -> - (Pcf_inher (Fresh, class_expr ce, Some pb)) :: l + | CrInh (loc, ov, ce, pb) -> + let opb = if pb = "" then None else Some pb + in + (Pcf_inher ((override_flag loc ov), (class_expr ce), opb)) :: + l | CrIni (_, e) -> (Pcf_init (expr e)) :: l - | CrMth (loc, s, b, e, t) -> + | CrMth (loc, s, ov, pf, e, t) -> let t = (match t with | Ast.TyNil _ -> None | t -> Some (mkpolytype (ctyp t))) in - let e = mkexp loc (Pexp_poly (expr e, t)) + let e = mkexp loc (Pexp_poly ((expr e), t)) in - (Pcf_meth ((s, (mkprivate b), Fresh, e, (mkloc loc)))) :: + (Pcf_meth + ((s, (mkprivate pf), (override_flag loc ov), e, + (mkloc loc)))) :: l - | CrVal (loc, s, b, e) -> - (Pcf_val ((s, (mkmutable b), Fresh, (expr e), (mkloc loc)))) :: + | CrVal (loc, s, ov, mf, e) -> + (Pcf_val + ((s, (mkmutable mf), (override_flag loc ov), (expr e), + (mkloc loc)))) :: l - | CrVir (loc, s, b, t) -> + | CrVir (loc, s, pf, t) -> (Pcf_virt - ((s, (mkprivate b), (mkpolytype (ctyp t)), (mkloc loc)))) :: + ((s, (mkprivate pf), (mkpolytype (ctyp t)), (mkloc loc)))) :: l - | CrVvr (loc, s, b, t) -> - (Pcf_valvirt ((s, (mkmutable b), (ctyp t), (mkloc loc)))) :: + | CrVvr (loc, s, mf, t) -> + (Pcf_valvirt ((s, (mkmutable mf), (ctyp t), (mkloc loc)))) :: l | CrAnt (_, _) -> assert false @@ -14833,7 +15512,7 @@ module Struct = let phrase = function - | StDir (_, d, dp) -> Ptop_dir (d, directive dp) + | StDir (_, d, dp) -> Ptop_dir (d, (directive dp)) | si -> Ptop_def (str_item si) end @@ -15115,7 +15794,7 @@ module Struct = | Dynlink.Error e -> raise (Error ("Camlp4's dynamic loader initialization", - Dynlink.error_message e))) + (Dynlink.error_message e)))) else (); let fname = try find_in_path _path file @@ -15126,7 +15805,7 @@ module Struct = try Dynlink.loadfile fname with | Dynlink.Error e -> - raise (Error (fname, Dynlink.error_message e))) + raise (Error (fname, (Dynlink.error_message e)))) let is_native = Dynlink.is_native @@ -15269,9 +15948,9 @@ module Struct = Ast.ExLab (_, s, (Ast.ExNil _)) | Ast.ExOlb (_, s, (Ast.ExNil _)) -> if S.mem s env then o else {< free = f s free; >} - | Ast.ExLet (_, Ast.BFalse, bi, e) -> + | Ast.ExLet (_, Ast.ReNil, bi, e) -> (((o#add_binding bi)#expr e)#set_env env)#binding bi - | Ast.ExLet (_, Ast.BTrue, bi, e) -> + | Ast.ExLet (_, Ast.ReRecursive, bi, e) -> (((o#add_binding bi)#expr e)#binding bi)#set_env env | Ast.ExFor (_, s, e1, e2, _, e3) -> ((((o#expr e1)#expr e2)#add_atom s)#expr e3)#set_env @@ -15290,9 +15969,9 @@ module Struct = method str_item = function | Ast.StExt (_, s, t, _) -> (o#ctyp t)#add_atom s - | Ast.StVal (_, Ast.BFalse, bi) -> + | Ast.StVal (_, Ast.ReNil, bi) -> (o#binding bi)#add_binding bi - | Ast.StVal (_, Ast.BTrue, bi) -> + | Ast.StVal (_, Ast.ReRecursive, bi) -> (o#add_binding bi)#binding bi | st -> super#str_item st @@ -15300,10 +15979,10 @@ module Struct = function | Ast.CeFun (_, p, ce) -> ((o#add_patt p)#class_expr ce)#set_env env - | Ast.CeLet (_, Ast.BFalse, bi, ce) -> + | Ast.CeLet (_, Ast.ReNil, bi, ce) -> (((o#binding bi)#add_binding bi)#class_expr ce)#set_env env - | Ast.CeLet (_, Ast.BTrue, bi, ce) -> + | Ast.CeLet (_, Ast.ReRecursive, bi, ce) -> (((o#add_binding bi)#binding bi)#class_expr ce)#set_env env | Ast.CeStr (_, p, cst) -> @@ -15312,9 +15991,10 @@ module Struct = method class_str_item = function - | (Ast.CrInh (_, _, "") as cst) -> super#class_str_item cst - | Ast.CrInh (_, ce, s) -> (o#class_expr ce)#add_atom s - | Ast.CrVal (_, s, _, e) -> (o#expr e)#add_atom s + | (Ast.CrInh (_, _, _, "") as cst) -> + super#class_str_item cst + | Ast.CrInh (_, _, ce, s) -> (o#class_expr ce)#add_atom s + | Ast.CrVal (_, s, _, _, e) -> (o#expr e)#add_atom s | Ast.CrVvr (_, s, _, t) -> (o#ctyp t)#add_atom s | cst -> super#class_str_item cst @@ -15335,99 +16015,6 @@ module Struct = module Grammar = struct - module Context = - struct - module type S = - sig - module Token : Sig.Token - - open Token - - type t - - val call_with_ctx : - (Token.t * Loc.t) Stream.t -> (t -> 'a) -> 'a - - val loc_bp : t -> Loc.t - - val loc_ep : t -> Loc.t - - val stream : t -> (Token.t * Loc.t) Stream.t - - val peek_nth : t -> int -> (Token.t * Loc.t) option - - val njunk : t -> int -> unit - - val junk : (Token.t * Loc.t) Stream.t -> unit - - val bp : (Token.t * Loc.t) Stream.t -> Loc.t - - end - - module Make (Token : Sig.Token) : S with module Token = Token = - struct - module Token = Token - - open Token - - type t = - { mutable strm : (Token.t * Loc.t) Stream.t; - mutable loc : Loc.t - } - - let loc_bp c = - match Stream.peek c.strm with - | None -> Loc.ghost - | Some ((_, loc)) -> loc - - let loc_ep c = c.loc - - let set_loc c = - match Stream.peek c.strm with - | Some ((_, loc)) -> c.loc <- loc - | None -> () - - let mk strm = - match Stream.peek strm with - | Some ((_, loc)) -> { strm = strm; loc = loc; } - | None -> { strm = strm; loc = Loc.ghost; } - - let stream c = c.strm - - let peek_nth c n = - let list = Stream.npeek n c.strm in - let rec loop list n = - match (list, n) with - | ((((_, loc) as x)) :: _, 1) -> (c.loc <- loc; Some x) - | (_ :: l, n) -> loop l (n - 1) - | ([], _) -> None - in loop list n - - let njunk c n = - (for i = 1 to n do Stream.junk c.strm done; set_loc c) - - let streams = ref [] - - let mk strm = - let c = mk strm in - let () = streams := (strm, c) :: !streams in c - - let junk strm = - (set_loc (List.assq strm !streams); Stream.junk strm) - - let bp strm = loc_bp (List.assq strm !streams) - - let call_with_ctx strm f = - let streams_v = !streams in - let r = - try f (mk strm) - with | exc -> (streams := streams_v; raise exc) - in (streams := streams_v; r) - - end - - end - module Structure = struct open Sig.Grammar @@ -15441,8 +16028,6 @@ module Struct = module Lexer : Sig.Lexer with module Loc = Loc and module Token = Token - module Context : Context.S with module Token = Token - module Action : Sig.Grammar.Action type gram = @@ -15453,8 +16038,11 @@ module Struct = warning_verbose : bool ref; error_verbose : bool ref } - type efun = - Context.t -> (Token.t * Loc.t) Stream.t -> Action.t + type token_info = { prev_loc : Loc.t; cur_loc : Loc.t } + + type token_stream = (Token.t * token_info) Stream.t + + type efun = token_stream -> Action.t type token_pattern = ((Token.t -> bool) * string) @@ -15466,7 +16054,7 @@ module Struct = } and desc = | Dlevels of level list - | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t) + | Dparser of (token_stream -> Action.t) and level = { assoc : assoc; lname : string option; lsuffix : tree; lprefix : tree @@ -15480,6 +16068,7 @@ module Struct = | Slist1 of symbol | Slist1sep of symbol * symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -15551,10 +16140,11 @@ module Struct = warning_verbose : bool ref; error_verbose : bool ref } - module Context = Context.Make(Token) - - type efun = - Context.t -> (Token.t * Loc.t) Stream.t -> Action.t + type token_info = { prev_loc : Loc.t; cur_loc : Loc.t } + + type token_stream = (Token.t * token_info) Stream.t + + type efun = token_stream -> Action.t type token_pattern = ((Token.t -> bool) * string) @@ -15566,7 +16156,7 @@ module Struct = } and desc = | Dlevels of level list - | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t) + | Dparser of (token_stream -> Action.t) and level = { assoc : assoc; lname : string option; lsuffix : tree; lprefix : tree @@ -15580,6 +16170,7 @@ module Struct = | Slist1 of symbol | Slist1sep of symbol * symbol | Sopt of symbol + | Stry of symbol | Sself | Snext | Stoken of token_pattern @@ -15615,6 +16206,8 @@ module Struct = let get_filter g = g.gfilter + let token_location r = r.cur_loc + type 'a not_filtered = 'a let using { gkeywords = table; gfilter = filter } kwd = @@ -15694,8 +16287,8 @@ module Struct = (match symb with | Snterm _ | Snterml (_, _) | Slist0 _ | Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) | - Sopt _ | Stoken _ | Stree _ | Skeyword _ when - symb == prev_symb -> Some symb + Sopt _ | Stry _ | Stoken _ | Stree _ | + Skeyword _ when symb == prev_symb -> Some symb | Slist0 symb -> (match search_symbol symb with | Some symb -> Some (Slist0 symb) @@ -15722,6 +16315,10 @@ module Struct = (match search_symbol symb with | Some symb -> Some (Sopt symb) | None -> None) + | Stry symb -> + (match search_symbol symb with + | Some symb -> Some (Stry symb) + | None -> None) | Stree t -> (match search_tree t with | Some t -> Some (Stree t) @@ -15740,9 +16337,53 @@ module Struct = struct open Structure - let empty_entry ename _ _ _ = + let empty_entry ename _ = raise (Stream.Error ("entry [" ^ (ename ^ "] is empty"))) + let rec stream_map f (__strm : _ Stream.t) = + match Stream.peek __strm with + | Some x -> + (Stream.junk __strm; + let strm = __strm + in + Stream.lcons (fun _ -> f x) + (Stream.slazy (fun _ -> stream_map f strm))) + | _ -> Stream.sempty + + let keep_prev_loc strm = + match Stream.peek strm with + | None -> Stream.sempty + | Some ((_, init_loc)) -> + let rec go prev_loc (__strm : _ Stream.t) = + (match Stream.peek __strm with + | Some ((tok, cur_loc)) -> + (Stream.junk __strm; + let strm = __strm + in + Stream.lcons + (fun _ -> + (tok, + { + prev_loc = prev_loc; + cur_loc = cur_loc; + })) + (Stream.slazy (fun _ -> go cur_loc strm))) + | _ -> Stream.sempty) + in go init_loc strm + + let drop_prev_loc strm = + stream_map (fun (tok, r) -> (tok, (r.cur_loc))) strm + + let get_cur_loc strm = + match Stream.peek strm with + | Some ((_, r)) -> r.cur_loc + | None -> Loc.ghost + + let get_prev_loc strm = + match Stream.peek strm with + | Some ((_, r)) -> r.prev_loc + | None -> Loc.ghost + let is_level_labelled n lev = match lev.lname with | Some n1 -> n = n1 | None -> false @@ -15778,13 +16419,12 @@ module Struct = | (Sself, Snterm e2) -> entry.ename = e2.ename | (Snterml (e1, l1), Snterml (e2, l2)) -> (e1.ename = e2.ename) && (l1 = l2) - | (Slist0 s1, Slist0 s2) -> eq_symbols s1 s2 - | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) -> - (eq_symbols s1 s2) && (eq_symbols sep1 sep2) - | (Slist1 s1, Slist1 s2) -> eq_symbols s1 s2 - | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) -> + | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) | + (Sopt s1, Sopt s2) | (Stry s1, Stry s2) -> + eq_symbols s1 s2 + | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) | + (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) -> (eq_symbols s1 s2) && (eq_symbols sep1 sep2) - | (Sopt s1, Sopt s2) -> eq_symbols s1 s2 | (Stree t1, Stree t2) -> eq_trees t1 t2 | (Stoken ((_, s1)), Stoken ((_, s2))) -> eq_Stoken_ids s1 s2 @@ -15805,13 +16445,12 @@ module Struct = | (Snterm e1, Snterm e2) -> e1 == e2 | (Snterml (e1, l1), Snterml (e2, l2)) -> (e1 == e2) && (l1 = l2) - | (Slist0 s1, Slist0 s2) -> eq_symbol s1 s2 - | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) -> + | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) | + (Sopt s1, Sopt s2) | (Stry s1, Stry s2) -> + eq_symbol s1 s2 + | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) | + (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) -> (eq_symbol s1 s2) && (eq_symbol sep1 sep2) - | (Slist1 s1, Slist1 s2) -> eq_symbol s1 s2 - | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) -> - (eq_symbol s1 s2) && (eq_symbol sep1 sep2) - | (Sopt s1, Sopt s2) -> eq_symbol s1 s2 | (Stree _, Stree _) -> false | (Stoken ((_, s1)), Stoken ((_, s2))) -> eq_Stoken_ids s1 s2 @@ -15908,6 +16547,7 @@ module Struct = fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s + | Stry s -> fprintf ppf "TRY %a" print_symbol1 s | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l | (Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ @@ -15940,7 +16580,7 @@ module Struct = print_level ppf pp_print_space (flatten_tree t) | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ | Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) | - Sopt _ + Sopt _ | Stry _ as s) -> fprintf ppf "(%a)" print_symbol s and print_rule ppf symbols = (fprintf ppf "@[<hov 0>"; @@ -16009,7 +16649,8 @@ module Struct = | DeadEnd -> List.rev acc | LocAct (_, _) -> List.rev acc | Node { node = n; brother = b; son = s } -> - get_brothers ((Bro (n, get_brothers [] s)) :: acc) b + get_brothers ((Bro (n, (get_brothers [] s))) :: acc) + b and print_brothers ppf brothers = if brothers = [] then fprintf ppf "@ []" @@ -16049,6 +16690,7 @@ module Struct = fprintf ppf "LIST1 %a SEP %a" print_symbol1 s print_symbol1 t | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s + | Stry s -> fprintf ppf "TRY %a" print_symbol1 s | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l | (Snterm _ | Snext | Sself | Stree _ | Stoken _ | Skeyword _ @@ -16080,7 +16722,7 @@ module Struct = | Stree t -> print_tree ppf t | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ | Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) | - Sopt _ + Sopt _ | Stry _ as s) -> fprintf ppf "(%a)" print_symbol s and print_rule ppf symbols = (fprintf ppf "@[<hov 0>"; @@ -16160,11 +16802,8 @@ module Struct = let rec name_of_symbol_failed entry = function - | Slist0 s -> name_of_symbol_failed entry s - | Slist0sep (s, _) -> name_of_symbol_failed entry s - | Slist1 s -> name_of_symbol_failed entry s - | Slist1sep (s, _) -> name_of_symbol_failed entry s - | Sopt s -> name_of_symbol_failed entry s + | Slist0 s | Slist0sep (s, _) | Slist1 s | Slist1sep (s, _) + | Sopt s | Stry s -> name_of_symbol_failed entry s | Stree t -> name_of_tree_failed entry t | s -> name_of_symbol entry s and name_of_tree_failed entry = @@ -16237,7 +16876,7 @@ module Struct = | _ -> let txt1 = name_of_symbol_failed entry sep in txt1 ^ (" or " ^ (txt ^ " expected"))) - | Sopt _ | Stree _ -> txt ^ " expected" + | Stry _ | Sopt _ | Stree _ -> txt ^ " expected" | _ -> txt ^ (" expected after " ^ @@ -16288,20 +16927,61 @@ module Struct = open Sig.Grammar + module StreamOrig = Stream + + let njunk strm n = for i = 1 to n do Stream.junk strm done + + let loc_bp = Tools.get_cur_loc + + let loc_ep = Tools.get_prev_loc + + let drop_prev_loc = Tools.drop_prev_loc + + let add_loc bp parse_fun strm = + let x = parse_fun strm in + let ep = loc_ep strm in + let loc = Loc.merge bp ep in (x, loc) + + let stream_peek_nth strm n = + let rec loop i = + function + | x :: xs -> if i = 1 then Some x else loop (i - 1) xs + | [] -> None + in loop n (Stream.npeek n strm) + module Stream = struct - include Stream + type 'a t = 'a StreamOrig.t + + exception Failure = StreamOrig.Failure + + exception Error = StreamOrig.Error + + let peek = StreamOrig.peek - let junk strm = Context.junk strm + let junk = StreamOrig.junk - let count strm = Context.bp strm + let dup strm = + let peek_nth n = + let rec loop n = + function + | [] -> None + | [ x ] -> if n = 0 then Some x else None + | _ :: l -> loop (n - 1) l + in loop n (Stream.npeek (n + 1) strm) + in Stream.from peek_nth end - let add_loc c bp parse_fun strm = - let x = parse_fun c strm in - let ep = Context.loc_ep c in - let loc = Loc.merge bp ep in (x, loc) + let try_parser ps strm = + let strm' = Stream.dup strm in + let r = + try ps strm' + with + | Stream.Error _ | Loc.Exc_located (_, (Stream.Error _)) + -> raise Stream.Failure + | exc -> raise exc + in (njunk strm (StreamOrig.count strm'); r) let level_number entry lab = let rec lookup levn = @@ -16324,7 +17004,7 @@ module Struct = function | Sself | Snext -> Snterm entry | Snterml (e, _) -> Snterm e - | Slist1sep (s, sep) -> Slist1sep (top_symb entry s, sep) + | Slist1sep (s, sep) -> Slist1sep ((top_symb entry s), sep) | _ -> raise Stream.Failure let top_tree entry = @@ -16342,9 +17022,8 @@ module Struct = | Snterml (e, _) -> e | _ -> raise Stream.Failure - let continue entry loc a s c son p1 (__strm : _ Stream.t) = - let a = - (entry_of_symb entry s).econtinue 0 loc a c __strm in + let continue entry loc a s son p1 (__strm : _ Stream.t) = + let a = (entry_of_symb entry s).econtinue 0 loc a __strm in let act = try p1 __strm with @@ -16353,26 +17032,26 @@ module Struct = (Stream.Error (Failed.tree_failed entry a s son)) in Action.mk (fun _ -> Action.getf act a) - let skip_if_empty c bp _ = - if (Context.loc_bp c) = bp + let skip_if_empty bp strm = + if (loc_bp strm) = bp then Action.mk (fun _ -> raise Stream.Failure) else raise Stream.Failure - let do_recover parser_of_tree entry nlevn alevn loc a s c son + let do_recover parser_of_tree entry nlevn alevn loc a s son (__strm : _ Stream.t) = try - parser_of_tree entry nlevn alevn (top_tree entry son) c + parser_of_tree entry nlevn alevn (top_tree entry son) __strm with | Stream.Failure -> - (try skip_if_empty c loc __strm + (try skip_if_empty loc __strm with | Stream.Failure -> - continue entry loc a s c son - (parser_of_tree entry nlevn alevn son c) __strm) + continue entry loc a s son + (parser_of_tree entry nlevn alevn son) __strm) - let recover parser_of_tree entry nlevn alevn loc a s c son - strm = + let recover parser_of_tree entry nlevn alevn loc a s son strm + = if !strict_parsing then raise (Stream.Error (Failed.tree_failed entry a s son)) @@ -16390,33 +17069,33 @@ module Struct = Format.eprintf "\n%s%a@." msg Loc.print loc)) else () in - do_recover parser_of_tree entry nlevn alevn loc a s c + do_recover parser_of_tree entry nlevn alevn loc a s son strm) let rec parser_of_tree entry nlevn alevn = function | DeadEnd -> - (fun _ (__strm : _ Stream.t) -> raise Stream.Failure) - | LocAct (act, _) -> (fun _ (__strm : _ Stream.t) -> act) + (fun (__strm : _ Stream.t) -> raise Stream.Failure) + | LocAct (act, _) -> (fun (__strm : _ Stream.t) -> act) | Node { node = Sself; son = LocAct (act, _); brother = DeadEnd } -> - (fun c (__strm : _ Stream.t) -> - let a = entry.estart alevn c __strm + (fun (__strm : _ Stream.t) -> + let a = entry.estart alevn __strm in Action.getf act a) | Node { node = Sself; son = LocAct (act, _); brother = bro } -> let p2 = parser_of_tree entry nlevn alevn bro in - (fun c (__strm : _ Stream.t) -> - match try Some (entry.estart alevn c __strm) + (fun (__strm : _ Stream.t) -> + match try Some (entry.estart alevn __strm) with | Stream.Failure -> None with | Some a -> Action.getf act a - | _ -> p2 c __strm) + | _ -> p2 __strm) | Node { node = s; son = son; brother = DeadEnd } -> let tokl = (match s with @@ -16430,11 +17109,12 @@ module Struct = let p1 = parser_of_tree entry nlevn alevn son in let p1 = parser_cont p1 entry nlevn alevn s son in - (fun c (__strm : _ Stream.t) -> - let bp = Stream.count __strm in - let a = ps c __strm in + (fun strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in + let a = ps __strm in let act = - try p1 c bp a __strm + try p1 bp a __strm with | Stream.Failure -> raise (Stream.Error "") @@ -16459,20 +17139,21 @@ module Struct = parser_cont p1 entry nlevn alevn s son in let p2 = parser_of_tree entry nlevn alevn bro in - (fun c (__strm : _ Stream.t) -> - let bp = Stream.count __strm + (fun strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in - match try Some (ps c __strm) + match try Some (ps __strm) with | Stream.Failure -> None with | Some a -> let act = - (try p1 c bp a __strm + (try p1 bp a __strm with | Stream.Failure -> raise (Stream.Error "")) in Action.getf act a - | _ -> p2 c __strm) + | _ -> p2 __strm) | Some ((tokl, last_tok, son)) -> let p1 = parser_of_tree entry nlevn alevn son in let p1 = @@ -16480,18 +17161,18 @@ module Struct = let p1 = parser_of_token_list p1 tokl in let p2 = parser_of_tree entry nlevn alevn bro in - (fun c (__strm : _ Stream.t) -> - try p1 c __strm - with | Stream.Failure -> p2 c __strm)) + (fun (__strm : _ Stream.t) -> + try p1 __strm + with | Stream.Failure -> p2 __strm)) and - parser_cont p1 entry nlevn alevn s son c loc a + parser_cont p1 entry nlevn alevn s son loc a (__strm : _ Stream.t) = - try p1 c __strm + try p1 __strm with | Stream.Failure -> (try - recover parser_of_tree entry nlevn alevn loc a s c - son __strm + recover parser_of_tree entry nlevn alevn loc a s son + __strm with | Stream.Failure -> raise @@ -16502,63 +17183,65 @@ module Struct = | Stoken ((tematch, _)) :: tokl -> (match tokl with | [] -> - let ps c _ = - (match Context.peek_nth c n with + let ps strm = + (match stream_peek_nth strm n with | Some ((tok, _)) when tematch tok -> - (Context.njunk c n; Action.mk tok) + (njunk strm n; Action.mk tok) | _ -> raise Stream.Failure) in - (fun c (__strm : _ Stream.t) -> - let bp = Stream.count __strm in - let a = ps c __strm in + (fun strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in + let a = ps __strm in let act = - try p1 c bp a __strm + try p1 bp a __strm with | Stream.Failure -> raise (Stream.Error "") in Action.getf act a) | _ -> - let ps c _ = - (match Context.peek_nth c n with + let ps strm = + (match stream_peek_nth strm n with | Some ((tok, _)) when tematch tok -> tok | _ -> raise Stream.Failure) in let p1 = loop (n + 1) tokl in - (fun c (__strm : _ Stream.t) -> - let tok = ps c __strm in + (fun (__strm : _ Stream.t) -> + let tok = ps __strm in let s = __strm in - let act = p1 c s in Action.getf act tok)) + let act = p1 s in Action.getf act tok)) | Skeyword kwd :: tokl -> (match tokl with | [] -> - let ps c _ = - (match Context.peek_nth c n with + let ps strm = + (match stream_peek_nth strm n with | Some ((tok, _)) when Token.match_keyword kwd tok -> - (Context.njunk c n; Action.mk tok) + (njunk strm n; Action.mk tok) | _ -> raise Stream.Failure) in - (fun c (__strm : _ Stream.t) -> - let bp = Stream.count __strm in - let a = ps c __strm in + (fun strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in + let a = ps __strm in let act = - try p1 c bp a __strm + try p1 bp a __strm with | Stream.Failure -> raise (Stream.Error "") in Action.getf act a) | _ -> - let ps c _ = - (match Context.peek_nth c n with + let ps strm = + (match stream_peek_nth strm n with | Some ((tok, _)) when Token.match_keyword kwd tok -> tok | _ -> raise Stream.Failure) in let p1 = loop (n + 1) tokl in - (fun c (__strm : _ Stream.t) -> - let tok = ps c __strm in + (fun (__strm : _ Stream.t) -> + let tok = ps __strm in let s = __strm in - let act = p1 c s in Action.getf act tok)) + let act = p1 s in Action.getf act tok)) | _ -> invalid_arg "parser_of_token_list" in loop 1 tokl and parser_of_symbol entry nlevn = @@ -16567,134 +17250,133 @@ module Struct = let act = Obj.magic act entry symbl in let pl = List.map (parser_of_symbol entry nlevn) symbl in - (fun c -> - Obj.magic - (List.fold_left - (fun act p -> Obj.magic act (p c)) act pl)) + Obj.magic + (List.fold_left (fun act p -> Obj.magic act p) act + pl) | Slist0 s -> let ps = parser_of_symbol entry nlevn s in - let rec loop c al (__strm : _ Stream.t) = - (match try Some (ps c __strm) + let rec loop al (__strm : _ Stream.t) = + (match try Some (ps __strm) with | Stream.Failure -> None with - | Some a -> loop c (a :: al) __strm + | Some a -> loop (a :: al) __strm | _ -> al) in - (fun c (__strm : _ Stream.t) -> - let a = loop c [] __strm in Action.mk (List.rev a)) + (fun (__strm : _ Stream.t) -> + let a = loop [] __strm in Action.mk (List.rev a)) | Slist0sep (symb, sep) -> let ps = parser_of_symbol entry nlevn symb in let pt = parser_of_symbol entry nlevn sep in - let rec kont c al (__strm : _ Stream.t) = - (match try Some (pt c __strm) + let rec kont al (__strm : _ Stream.t) = + (match try Some (pt __strm) with | Stream.Failure -> None with | Some v -> let a = - (try ps c __strm + (try ps __strm with | Stream.Failure -> raise (Stream.Error (Failed.symb_failed entry v sep symb))) - in kont c (a :: al) __strm + in kont (a :: al) __strm | _ -> al) in - (fun c (__strm : _ Stream.t) -> - match try Some (ps c __strm) + (fun (__strm : _ Stream.t) -> + match try Some (ps __strm) with | Stream.Failure -> None with | Some a -> let s = __strm - in Action.mk (List.rev (kont c [ a ] s)) + in Action.mk (List.rev (kont [ a ] s)) | _ -> Action.mk []) | Slist1 s -> let ps = parser_of_symbol entry nlevn s in - let rec loop c al (__strm : _ Stream.t) = - (match try Some (ps c __strm) + let rec loop al (__strm : _ Stream.t) = + (match try Some (ps __strm) with | Stream.Failure -> None with - | Some a -> loop c (a :: al) __strm + | Some a -> loop (a :: al) __strm | _ -> al) in - (fun c (__strm : _ Stream.t) -> - let a = ps c __strm in + (fun (__strm : _ Stream.t) -> + let a = ps __strm in let s = __strm - in Action.mk (List.rev (loop c [ a ] s))) + in Action.mk (List.rev (loop [ a ] s))) | Slist1sep (symb, sep) -> let ps = parser_of_symbol entry nlevn symb in let pt = parser_of_symbol entry nlevn sep in - let rec kont c al (__strm : _ Stream.t) = - (match try Some (pt c __strm) + let rec kont al (__strm : _ Stream.t) = + (match try Some (pt __strm) with | Stream.Failure -> None with | Some v -> let a = - (try ps c __strm + (try ps __strm with | Stream.Failure -> - (try parse_top_symb' entry symb c __strm + (try parse_top_symb entry symb __strm with | Stream.Failure -> raise (Stream.Error (Failed.symb_failed entry v sep symb)))) - in kont c (a :: al) __strm + in kont (a :: al) __strm | _ -> al) in - (fun c (__strm : _ Stream.t) -> - let a = ps c __strm in + (fun (__strm : _ Stream.t) -> + let a = ps __strm in let s = __strm - in Action.mk (List.rev (kont c [ a ] s))) + in Action.mk (List.rev (kont [ a ] s))) | Sopt s -> let ps = parser_of_symbol entry nlevn s in - (fun c (__strm : _ Stream.t) -> - match try Some (ps c __strm) + (fun (__strm : _ Stream.t) -> + match try Some (ps __strm) with | Stream.Failure -> None with | Some a -> Action.mk (Some a) | _ -> Action.mk None) + | Stry s -> + let ps = parser_of_symbol entry nlevn s + in try_parser ps | Stree t -> let pt = parser_of_tree entry 1 0 t in - (fun c (__strm : _ Stream.t) -> - let bp = Stream.count __strm in - let (act, loc) = add_loc c bp pt __strm + (fun strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in + let (act, loc) = add_loc bp pt __strm in Action.getf act loc) | Snterm e -> - (fun c (__strm : _ Stream.t) -> e.estart 0 c __strm) + (fun (__strm : _ Stream.t) -> e.estart 0 __strm) | Snterml (e, l) -> - (fun c (__strm : _ Stream.t) -> - e.estart (level_number e l) c __strm) + (fun (__strm : _ Stream.t) -> + e.estart (level_number e l) __strm) | Sself -> - (fun c (__strm : _ Stream.t) -> entry.estart 0 c __strm) + (fun (__strm : _ Stream.t) -> entry.estart 0 __strm) | Snext -> - (fun c (__strm : _ Stream.t) -> - entry.estart nlevn c __strm) + (fun (__strm : _ Stream.t) -> entry.estart nlevn __strm) | Skeyword kwd -> - (fun _ (__strm : _ Stream.t) -> + (fun (__strm : _ Stream.t) -> match Stream.peek __strm with | Some ((tok, _)) when Token.match_keyword kwd tok -> (Stream.junk __strm; Action.mk tok) | _ -> raise Stream.Failure) | Stoken ((f, _)) -> - (fun _ (__strm : _ Stream.t) -> + (fun (__strm : _ Stream.t) -> match Stream.peek __strm with | Some ((tok, _)) when f tok -> (Stream.junk __strm; Action.mk tok) | _ -> raise Stream.Failure) - and parse_top_symb' entry symb c = - parser_of_symbol entry 0 (top_symb entry symb) c and parse_top_symb entry symb strm = - Context.call_with_ctx strm - (fun c -> parse_top_symb' entry symb c (Context.stream c)) + parser_of_symbol entry 0 (top_symb entry symb) strm let rec start_parser_of_levels entry clevn = function | [] -> - (fun _ _ (__strm : _ Stream.t) -> raise Stream.Failure) + (fun _ (__strm : _ Stream.t) -> raise Stream.Failure) | lev :: levs -> let p1 = start_parser_of_levels entry (succ clevn) levs in @@ -16710,24 +17392,25 @@ module Struct = in (match levs with | [] -> - (fun levn c (__strm : _ Stream.t) -> - let bp = Stream.count __strm in + (fun levn strm -> + let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in let (act, loc) = - add_loc c bp p2 __strm in + add_loc bp p2 __strm in let strm = __strm in let a = Action.getf act loc - in entry.econtinue levn loc a c strm) + in entry.econtinue levn loc a strm) | _ -> - (fun levn c strm -> + (fun levn strm -> if levn > clevn - then p1 levn c strm + then p1 levn strm else - (let (__strm : _ Stream.t) = strm in - let bp = Stream.count __strm + (let bp = loc_bp strm in + let (__strm : _ Stream.t) = strm in match try Some - (add_loc c bp p2 __strm) + (add_loc bp p2 __strm) with | Stream.Failure -> None with @@ -16735,19 +17418,19 @@ module Struct = let a = Action.getf act loc in entry.econtinue levn loc a - c strm - | _ -> p1 levn c __strm)))) + strm + | _ -> p1 levn __strm)))) let start_parser_of_entry entry = match entry.edesc with | Dlevels [] -> Tools.empty_entry entry.ename | Dlevels elev -> start_parser_of_levels entry 0 elev - | Dparser p -> (fun _ _ strm -> p strm) + | Dparser p -> (fun _ -> p) let rec continue_parser_of_levels entry clevn = function | [] -> - (fun _ _ _ _ (__strm : _ Stream.t) -> + (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure) | lev :: levs -> let p1 = @@ -16763,32 +17446,29 @@ module Struct = let p2 = parser_of_tree entry (succ clevn) alevn tree in - (fun c levn bp a strm -> + (fun levn bp a strm -> if levn > clevn - then p1 c levn bp a strm + then p1 levn bp a strm else (let (__strm : _ Stream.t) = strm in - try p1 c levn bp a __strm + try p1 levn bp a __strm with | Stream.Failure -> let (act, loc) = - add_loc c bp p2 __strm in + add_loc bp p2 __strm in let a = Action.getf2 act a loc - in - entry.econtinue levn loc a c - strm))) + in entry.econtinue levn loc a strm))) let continue_parser_of_entry entry = match entry.edesc with | Dlevels elev -> let p = continue_parser_of_levels entry 0 elev in - (fun levn bp a c (__strm : _ Stream.t) -> - try p c levn bp a __strm - with | Stream.Failure -> a) + (fun levn bp a (__strm : _ Stream.t) -> + try p levn bp a __strm with | Stream.Failure -> a) | Dparser _ -> - (fun _ _ _ _ (__strm : _ Stream.t) -> + (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure) end @@ -16818,13 +17498,13 @@ module Struct = let rec derive_eps = function - | Slist0 _ -> true - | Slist0sep (_, _) -> true - | Sopt _ -> true + | Slist0 _ | Slist0sep (_, _) | Sopt _ -> true + | Stry s -> derive_eps s | Stree t -> tree_derive_eps t - | Smeta (_, _, _) | Slist1 _ | Slist1sep (_, _) | Snterm _ - | Snterml (_, _) | Snext | Sself | Stoken _ | - Skeyword _ -> false + | Slist1 _ | Slist1sep (_, _) | Stoken _ | Skeyword _ -> + false + | Smeta (_, _, _) | Snterm _ | Snterml (_, _) | Snext | + Sself -> false and tree_derive_eps = function | LocAct (_, _) -> true @@ -16963,9 +17643,8 @@ module Struct = (check_gram entry t; check_gram entry s) | Slist1sep (s, t) -> (check_gram entry t; check_gram entry s) - | Slist0 s -> check_gram entry s - | Slist1 s -> check_gram entry s - | Sopt s -> check_gram entry s + | Slist0 s | Slist1 s | Sopt s | Stry s -> + check_gram entry s | Stree t -> tree_check_gram entry t | Snext | Sself | Stoken _ | Skeyword _ -> () and tree_check_gram entry = @@ -16985,11 +17664,9 @@ module Struct = let rec insert = function | Smeta (_, sl, _) -> List.iter insert sl - | Slist0 s -> insert s - | Slist1 s -> insert s + | Slist0 s | Slist1 s | Sopt s | Stry s -> insert s | Slist0sep (s, t) -> (insert s; insert t) | Slist1sep (s, t) -> (insert s; insert t) - | Sopt s -> insert s | Stree t -> tinsert t | Skeyword kwd -> using gram kwd | Snterm _ | Snterml (_, _) | Snext | Sself | Stoken _ -> @@ -17022,7 +17699,7 @@ module Struct = "<W> Grammar extension: in [%s] some rule has been masked@." entry.ename else () - in LocAct (action, old_action :: action_list) + in LocAct (action, (old_action :: action_list)) | DeadEnd -> LocAct (action, [])) and insert_in_tree s sl tree = match try_insert s sl tree with @@ -17145,13 +17822,13 @@ module Struct = in (entry.edesc <- Dlevels elev; entry.estart <- - (fun lev c strm -> + (fun lev strm -> let f = Parser.start_parser_of_entry entry - in (entry.estart <- f; f lev c strm)); + in (entry.estart <- f; f lev strm)); entry.econtinue <- - fun lev bp a c strm -> + fun lev bp a strm -> let f = Parser.continue_parser_of_entry entry - in (entry.econtinue <- f; f lev bp a c strm)) + in (entry.econtinue <- f; f lev bp a strm)) end @@ -17223,13 +17900,12 @@ module Struct = function | Skeyword kwd -> removing gram kwd | Smeta (_, sl, _) -> List.iter (decr_keyw_use gram) sl - | Slist0 s -> decr_keyw_use gram s - | Slist1 s -> decr_keyw_use gram s + | Slist0 s | Slist1 s | Sopt s | Stry s -> + decr_keyw_use gram s | Slist0sep (s1, s2) -> (decr_keyw_use gram s1; decr_keyw_use gram s2) | Slist1sep (s1, s2) -> (decr_keyw_use gram s1; decr_keyw_use gram s2) - | Sopt s -> decr_keyw_use gram s | Stree t -> decr_keyw_use_in_tree gram t | Sself | Snext | Snterm _ | Snterml (_, _) | Stoken _ -> () @@ -17310,13 +17986,13 @@ module Struct = in (entry.edesc <- Dlevels levs; entry.estart <- - (fun lev c strm -> + (fun lev strm -> let f = Parser.start_parser_of_entry entry - in (entry.estart <- f; f lev c strm)); + in (entry.estart <- f; f lev strm)); entry.econtinue <- - (fun lev bp a c strm -> + (fun lev bp a strm -> let f = Parser.continue_parser_of_entry entry - in (entry.econtinue <- f; f lev bp a c strm))) + in (entry.econtinue <- f; f lev bp a strm))) | Dparser _ -> () end @@ -17353,11 +18029,11 @@ module Struct = module Stream = struct - include Stream - - let junk strm = Context.junk strm + type 'a t = 'a Stream.t + + exception Failure = Stream.Failure - let count strm = Context.bp strm + exception Error = Stream.Error end @@ -17459,6 +18135,8 @@ module Struct = open Structure + open Tools + type 'a t = internal_entry let name e = e.ename @@ -17471,24 +18149,21 @@ module Struct = { egram = g; ename = n; - estart = Tools.empty_entry n; + estart = empty_entry n; econtinue = - (fun _ _ _ _ (__strm : _ Stream.t) -> + (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure); edesc = Dlevels []; } let action_parse entry ts : Action.t = - Context.call_with_ctx ts - (fun c -> - try entry.estart 0 c (Context.stream c) - with - | Stream.Failure -> - Loc.raise (Context.loc_ep c) - (Stream.Error - ("illegal begin of " ^ entry.ename)) - | (Loc.Exc_located (_, _) as exc) -> raise exc - | exc -> Loc.raise (Context.loc_ep c) exc) + try entry.estart 0 ts + with + | Stream.Failure -> + Loc.raise (get_prev_loc ts) + (Stream.Error ("illegal begin of " ^ entry.ename)) + | (Loc.Exc_located (_, _) as exc) -> raise exc + | exc -> Loc.raise (get_prev_loc ts) exc let lex entry loc cs = entry.egram.glexer loc cs @@ -17496,7 +18171,8 @@ module Struct = lex entry loc (Stream.of_string str) let filter entry ts = - Token.Filter.filter (get_filter entry.egram) ts + keep_prev_loc + (Token.Filter.filter (get_filter entry.egram) ts) let parse_tokens_after_filter entry ts = Action.get (action_parse entry ts) @@ -17510,33 +18186,36 @@ module Struct = let parse_string entry loc str = parse_tokens_before_filter entry (lex_string entry loc str) - let of_parser g n (p : (Token.t * Loc.t) Stream.t -> 'a) : - 'a t = - { - egram = g; - ename = n; - estart = (fun _ _ ts -> Action.mk (p ts)); - econtinue = - (fun _ _ _ _ (__strm : _ Stream.t) -> - raise Stream.Failure); - edesc = Dparser (fun ts -> Action.mk (p ts)); - } + let of_parser g n + (p : (Token.t * token_info) Stream.t -> 'a) : 'a t = + let f ts = Action.mk (p ts) + in + { + egram = g; + ename = n; + estart = (fun _ -> f); + econtinue = + (fun _ _ _ (__strm : _ Stream.t) -> + raise Stream.Failure); + edesc = Dparser f; + } - let setup_parser e (p : (Token.t * Loc.t) Stream.t -> 'a) = + let setup_parser e + (p : (Token.t * token_info) Stream.t -> 'a) + = let f ts = Action.mk (p ts) in - (e.estart <- (fun _ _ -> f); + (e.estart <- (fun _ -> f); e.econtinue <- - (fun _ _ _ _ (__strm : _ Stream.t) -> + (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure); e.edesc <- Dparser f) let clear e = (e.estart <- - (fun _ _ (__strm : _ Stream.t) -> raise Stream.Failure); + (fun _ (__strm : _ Stream.t) -> raise Stream.Failure); e.econtinue <- - (fun _ _ _ _ (__strm : _ Stream.t) -> - raise Stream.Failure); + (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure); e.edesc <- Dlevels []) let obj x = x @@ -17563,6 +18242,8 @@ module Struct = module Fold = Fold.Make(Structure) + module Tools = Tools.Make(Structure) + include Structure let gram = @@ -17606,7 +18287,8 @@ module Struct = let lex_string loc str = lex loc (Stream.of_string str) - let filter ts = Token.Filter.filter gram.gfilter ts + let filter ts = + Tools.keep_prev_loc (Token.Filter.filter gram.gfilter ts) let parse_tokens_after_filter entry ts = Entry.E.parse_tokens_after_filter entry ts @@ -17655,6 +18337,8 @@ module Struct = module Fold = Fold.Make(Structure) + module Tools = Tools.Make(Structure) + include Structure let mk () = @@ -17674,7 +18358,8 @@ module Struct = let lex_string g loc str = lex g loc (Stream.of_string str) - let filter g ts = Token.Filter.filter g.gfilter ts + let filter g ts = + Tools.keep_prev_loc (Token.Filter.filter g.gfilter ts) let parse_tokens_after_filter entry ts = Entry.parse_tokens_after_filter entry ts @@ -17905,9 +18590,11 @@ module Printers = val semisep : sep - val value_val : string + method value_val : string + + method value_let : string - val value_let : string + method andsep : sep method anti : formatter -> string -> unit @@ -17990,16 +18677,16 @@ module Printers = method module_type : formatter -> Ast.module_type -> unit + method override_flag : + formatter -> Ast.override_flag -> unit + method mutable_flag : - formatter -> Ast.meta_bool -> unit + formatter -> Ast.mutable_flag -> unit method direction_flag : - formatter -> Ast.meta_bool -> unit - - method rec_flag : formatter -> Ast.meta_bool -> unit + formatter -> Ast.direction_flag -> unit - method flag : - formatter -> Ast.meta_bool -> string -> unit + method rec_flag : formatter -> Ast.rec_flag -> unit method node : formatter -> 'b -> ('b -> Loc.t) -> unit @@ -18027,10 +18714,10 @@ module Printers = Loc.t -> formatter -> unit method private_flag : - formatter -> Ast.meta_bool -> unit + formatter -> Ast.private_flag -> unit method virtual_flag : - formatter -> Ast.meta_bool -> unit + formatter -> Ast.virtual_flag -> unit method quoted_string : formatter -> string -> unit @@ -18137,7 +18824,7 @@ module Printers = function | Ast.LNil -> [] | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs) - | Ast.LAnt x -> assert false + | Ast.LAnt _ -> assert false let meta_list elt sep f mxs = let xs = list_of_meta_list mxs in list elt sep f xs @@ -18278,18 +18965,18 @@ module Printers = val semisep = (";;" : sep) - val andsep = ("@]@ @[<2>and@ " : sep) - - val value_val = "val" - - val value_let = "let" - val mode = if comments then `comments else `no_comments val curry_constr = init_curry_constr val var_conversion = false + method andsep : sep = "@]@ @[<2>and@ " + + method value_val = "val" + + method value_let = "let" + method semisep = semisep method set_semisep = fun s -> {< semisep = s; >} @@ -18360,20 +19047,40 @@ module Printers = o#class_params t2 | x -> o#ctyp f x - method mutable_flag = fun f b -> o#flag f b "mutable" + method override_flag = + fun f -> + function + | Ast.OvOverride -> pp f "!" + | Ast.OvNil -> () + | Ast.OvAnt s -> o#anti f s - method rec_flag = fun f b -> o#flag f b "rec" + method mutable_flag = + fun f -> + function + | Ast.MuMutable -> pp f "mutable@ " + | Ast.MuNil -> () + | Ast.MuAnt s -> o#anti f s - method virtual_flag = fun f b -> o#flag f b "virtual" + method rec_flag = + fun f -> + function + | Ast.ReRecursive -> pp f "rec@ " + | Ast.ReNil -> () + | Ast.ReAnt s -> o#anti f s - method private_flag = fun f b -> o#flag f b "private" + method virtual_flag = + fun f -> + function + | Ast.ViVirtual -> pp f "virtual@ " + | Ast.ViNil -> () + | Ast.ViAnt s -> o#anti f s - method flag = - fun f b n -> - match b with - | Ast.BTrue -> (pp_print_string f n; pp f "@ ") - | Ast.BFalse -> () - | Ast.BAnt s -> o#anti f s + method private_flag = + fun f -> + function + | Ast.PrPrivate -> pp f "private@ " + | Ast.PrNil -> () + | Ast.PrAnt s -> o#anti f s method anti = fun f s -> pp f "$%s$" s @@ -18419,7 +19126,7 @@ module Printers = match bi with | Ast.BiNil _ -> () | Ast.BiAnd (_, b1, b2) -> - (o#binding f b1; pp f andsep; o#binding f b2) + (o#binding f b1; pp f o#andsep; o#binding f b2) | Ast.BiEq (_, p, e) -> let (pl, e) = (match p with @@ -18551,7 +19258,7 @@ module Printers = pp f "@[<2>%a :@ %a@]" o#var s o#module_type mt | Ast.MbAnd (_, mb1, mb2) -> (o#module_rec_binding f mb1; - pp f andsep; + pp f o#andsep; o#module_rec_binding f mb2) | Ast.MbAnt (_, s) -> o#anti f s @@ -18570,15 +19277,16 @@ module Printers = in o#expr f (Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "raise")), - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "Match_failure")), - Ast.ExStr (_loc, Ast.safe_string_escaped n)), - Ast.ExInt (_loc, string_of_int l)), - Ast.ExInt (_loc, string_of_int c)))) + (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "Match_failure")))), + (Ast.ExStr (_loc, + (Ast.safe_string_escaped n))))), + (Ast.ExInt (_loc, (string_of_int l))))), + (Ast.ExInt (_loc, (string_of_int c))))))) method node : 'a. formatter -> 'a -> ('a -> Loc.t) -> unit = fun f node loc_of_node -> @@ -18639,7 +19347,7 @@ module Printers = o#apply_expr y | al -> pp f "@[<2>%a@ (%a)@]" o#apply_expr a - (list o#under_pipe#expr ",@ ") al) + (list o#under_pipe#apply_expr ",@ ") al) else pp f "@[<2>%a@]" (list o#apply_expr "@ ") (a :: al) @@ -18811,9 +19519,9 @@ module Printers = method direction_flag = fun f b -> match b with - | Ast.BTrue -> pp_print_string f "to" - | Ast.BFalse -> pp_print_string f "downto" - | Ast.BAnt s -> o#anti f s + | Ast.DiTo -> pp_print_string f "to" + | Ast.DiDownto -> pp_print_string f "downto" + | Ast.DiAnt s -> o#anti f s method patt = fun f p -> @@ -18960,13 +19668,12 @@ module Printers = pp f "@[<2>%s:@ %a@]" s o#simple_ctyp t | Ast.TyOlb (_, s, t) -> pp f "@[<2>?%s:@ %a@]" s o#simple_ctyp t - | Ast.TyObj (_, (Ast.TyNil _), Ast.BFalse) -> - pp f "< >" - | Ast.TyObj (_, (Ast.TyNil _), Ast.BTrue) -> + | Ast.TyObj (_, (Ast.TyNil _), Ast.RvNil) -> pp f "< >" + | Ast.TyObj (_, (Ast.TyNil _), Ast.RvRowVar) -> pp f "< .. >" - | Ast.TyObj (_, t, Ast.BTrue) -> + | Ast.TyObj (_, t, Ast.RvRowVar) -> pp f "@[<0>@[<2><@ %a;@ ..@]@ >@]" o#ctyp t - | Ast.TyObj (_, t, Ast.BFalse) -> + | Ast.TyObj (_, t, Ast.RvNil) -> pp f "@[<0>@[<2><@ %a@]@ >@]" o#ctyp t | Ast.TyQuo (_, s) -> pp f "'%a" o#var s | Ast.TyRec (_, t) -> pp f "@[<2>{@ %a@]@ }" o#ctyp t @@ -18986,9 +19693,6 @@ module Printers = | Ast.TyVrnSup (_, t) -> pp f "@[<2>[>@ %a@]@,]" o#sum_type t | Ast.TyCls (_, i) -> pp f "@[<2>#%a@]" o#ident i - | Ast.TyMan (_, t1, t2) -> - pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 - o#simple_ctyp t2 | Ast.TyVrn (_, s) -> pp f "`%a" o#var s | Ast.TySta (_, t1, t2) -> pp f "%a *@ %a" o#simple_ctyp t1 o#simple_ctyp t2 @@ -19028,6 +19732,8 @@ module Printers = pp f "@[<2>mutable@ %a@]" o#ctyp t | Ast.TyAmp (_, t1, t2) -> pp f "%a@ &@ %a" o#ctyp t1 o#ctyp t2 + | Ast.TyMan (_, t1, t2) -> + pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#ctyp t2 | Ast.TyDcl (_, tn, tp, te, cl) -> (pp f "@[<2>%a%a@]" o#type_params tp o#var tn; (match te with @@ -19110,7 +19816,7 @@ module Printers = pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep | Ast.SgVal (_, s, t) -> - pp f "@[<2>%s %a :@ %a%(%)@]" value_val o#var s + pp f "@[<2>%s %a :@ %a%(%)@]" o#value_val o#var s o#ctyp t semisep | Ast.SgInc (_, mt) -> pp f "@[<2>include@ %a%(%)@]" o#module_type mt @@ -19173,7 +19879,7 @@ module Printers = pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t semisep | Ast.StVal (_, r, bi) -> - pp f "@[<2>%s %a%a%(%)@]" value_let o#rec_flag r + pp f "@[<2>%s %a%a%(%)@]" o#value_let o#rec_flag r o#binding bi semisep | Ast.StExp (_, e) -> pp f "@[<2>let _ =@ %a%(%)@]" o#expr e semisep @@ -19229,7 +19935,7 @@ module Printers = o#ident i2 | Ast.WcAnd (_, wc1, wc2) -> (o#with_constraint f wc1; - pp f andsep; + pp f o#andsep; o#with_constraint f wc2) | Ast.WcAnt (_, s) -> o#anti f s @@ -19268,10 +19974,10 @@ module Printers = o#module_type mt | Ast.MePkg (_, (Ast.ExTyc (_, e, (Ast.TyPkg (_, mt))))) -> - pp f "@[<1>(%s %a :@ %a)@]" value_val o#expr e + pp f "@[<1>(%s %a :@ %a)@]" o#value_val o#expr e o#module_type mt | Ast.MePkg (_, e) -> - pp f "@[<1>(%s %a)@]" value_val o#expr e + pp f "@[<1>(%s %a)@]" o#value_val o#expr e method class_expr = fun f ce -> @@ -19280,14 +19986,15 @@ module Printers = match ce with | Ast.CeApp (_, ce, e) -> pp f "@[<2>%a@ %a@]" o#class_expr ce o#expr e - | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) -> + | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) -> pp f "@[<2>%a@]" o#ident i - | Ast.CeCon (_, Ast.BFalse, i, t) -> + | Ast.CeCon (_, Ast.ViNil, i, t) -> pp f "@[<2>@[<1>[%a]@]@ %a@]" o#class_params t o#ident i - | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), + | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i - | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) -> + | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t) + -> pp f "@[<2>virtual@ @[<1>[%a]@]@ %a@]" o#class_params t o#var i | Ast.CeFun (_, p, ce) -> @@ -19309,7 +20016,7 @@ module Printers = | Ast.CeAnt (_, s) -> o#anti f s | Ast.CeAnd (_, ce1, ce2) -> (o#class_expr f ce1; - pp f andsep; + pp f o#andsep; o#class_expr f ce2) | Ast.CeEq (_, ce1, (Ast.CeFun (_, p, ce2))) when is_irrefut_patt p -> @@ -19325,14 +20032,15 @@ module Printers = let () = o#node f ct Ast.loc_of_class_type in match ct with - | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) -> + | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) -> pp f "@[<2>%a@]" o#ident i - | Ast.CtCon (_, Ast.BFalse, i, t) -> + | Ast.CtCon (_, Ast.ViNil, i, t) -> pp f "@[<2>[@,%a@]@,]@ %a" o#class_params t o#ident i - | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), + | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i - | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) -> + | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t) + -> pp f "@[<2>virtual@ [@,%a@]@,]@ %a" o#class_params t o#var i | Ast.CtFun (_, t, ct) -> @@ -19348,7 +20056,7 @@ module Printers = | Ast.CtAnt (_, s) -> o#anti f s | Ast.CtAnd (_, ct1, ct2) -> (o#class_type f ct1; - pp f andsep; + pp f o#andsep; o#class_type f ct2) | Ast.CtCol (_, ct1, ct2) -> pp f "%a :@ %a" o#class_type ct1 o#class_type ct2 @@ -19382,7 +20090,7 @@ module Printers = pp f "@[<2>method virtual %a%a :@ %a%(%)@]" o#private_flag pr o#var s o#ctyp t semisep | Ast.CgVal (_, s, mu, vi, t) -> - pp f "@[<2>%s %a%a%a :@ %a%(%)@]" value_val + pp f "@[<2>%s %a%a%a :@ %a%(%)@]" o#value_val o#mutable_flag mu o#virtual_flag vi o#var s o#ctyp t semisep | Ast.CgAnt (_, s) -> pp f "%a%(%)" o#anti s semisep @@ -19403,30 +20111,33 @@ module Printers = | Ast.CrCtr (_, t1, t2) -> pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1 o#ctyp t2 semisep - | Ast.CrInh (_, ce, "") -> - pp f "@[<2>inherit@ %a%(%)@]" o#class_expr ce + | Ast.CrInh (_, ov, ce, "") -> + pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov + o#class_expr ce semisep + | Ast.CrInh (_, ov, ce, s) -> + pp f "@[<2>inherit%a@ %a as@ %a%(%)@]" + o#override_flag ov o#class_expr ce o#var s semisep - | Ast.CrInh (_, ce, s) -> - pp f "@[<2>inherit@ %a as@ %a%(%)@]" o#class_expr - ce o#var s semisep | Ast.CrIni (_, e) -> pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep - | Ast.CrMth (_, s, pr, e, (Ast.TyNil _)) -> - pp f "@[<2>method %a%a =@ %a%(%)@]" o#private_flag - pr o#var s o#expr e semisep - | Ast.CrMth (_, s, pr, e, t) -> - pp f "@[<2>method %a%a :@ %a =@ %a%(%)@]" - o#private_flag pr o#var s o#ctyp t o#expr e - semisep + | Ast.CrMth (_, s, ov, pr, e, (Ast.TyNil _)) -> + pp f "@[<2>method%a %a%a =@ %a%(%)@]" + o#override_flag ov o#private_flag pr o#var s + o#expr e semisep + | Ast.CrMth (_, s, ov, pr, e, t) -> + pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]" + o#override_flag ov o#private_flag pr o#var s + o#ctyp t o#expr e semisep | Ast.CrVir (_, s, pr, t) -> pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]" o#private_flag pr o#var s o#ctyp t semisep | Ast.CrVvr (_, s, mu, t) -> - pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" value_val + pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" o#value_val o#mutable_flag mu o#var s o#ctyp t semisep - | Ast.CrVal (_, s, mu, e) -> - pp f "@[<2>%s %a%a =@ %a%(%)@]" value_val - o#mutable_flag mu o#var s o#expr e semisep + | Ast.CrVal (_, s, ov, mu, e) -> + pp f "@[<2>%s%a %a%a =@ %a%(%)@]" o#value_val + o#override_flag ov o#mutable_flag mu o#var s + o#expr e semisep | Ast.CrAnt (_, s) -> pp f "%a%(%)" o#anti s semisep method implem = @@ -19603,13 +20314,7 @@ module Printers = PP_o.printer ~curry_constr: init_curry_constr ~comments () as super - val semisep = (";" : sep) - - val andsep = ("@]@ @[<2>and@ " : sep) - - val value_val = "value" - - val value_let = "value" + val! semisep = (";" : sep) val mode = if comments then `comments else `no_comments @@ -19617,6 +20322,12 @@ module Printers = val first_match_case = true + method andsep : sep = "@]@ @[<2>and@ " + + method value_val = "value" + + method value_let = "value" + method under_pipe = o method under_semi = o @@ -19892,14 +20603,15 @@ module Printers = | Ast.CtFun (_, t, ct) -> pp f "@[<2>[ %a ] ->@ %a@]" o#simple_ctyp t o#class_type ct - | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) -> + | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) -> pp f "@[<2>%a@]" o#ident i - | Ast.CtCon (_, Ast.BFalse, i, t) -> + | Ast.CtCon (_, Ast.ViNil, i, t) -> pp f "@[<2>%a [@,%a@]@,]" o#ident i o#class_params t - | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), + | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i - | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) -> + | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t) + -> pp f "@[<2>virtual@ %a@ [@,%a@]@,]" o#var i o#class_params t | ct -> super#class_type f ct @@ -19909,14 +20621,15 @@ module Printers = let () = o#node f ce Ast.loc_of_class_expr in match ce with - | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) -> + | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) -> pp f "@[<2>%a@]" o#ident i - | Ast.CeCon (_, Ast.BFalse, i, t) -> + | Ast.CeCon (_, Ast.ViNil, i, t) -> pp f "@[<2>%a@ @[<1>[%a]@]@]" o#ident i o#class_params t - | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), + | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i - | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) -> + | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t) + -> pp f "@[<2>virtual@ %a@ @[<1>[%a]@]@]" o#var i o#ctyp t | ce -> super#class_expr f ce @@ -19925,11 +20638,14 @@ module Printers = let with_outfile = with_outfile - let print = print + let print output_file fct = + let o = new printer () in with_outfile output_file (fct o) - let print_interf = print_interf + let print_interf ?input_file:(_) ?output_file sg = + print output_file (fun o -> o#interf) sg - let print_implem = print_implem + let print_implem ?input_file:(_) ?output_file st = + print output_file (fun o -> o#implem) st end @@ -20113,6 +20829,8 @@ module OCamlInitSyntax = let direction_flag = Gram.Entry.mk "direction_flag" + let direction_flag_quot = Gram.Entry.mk "direction_flag_quot" + let dummy = Gram.Entry.mk "dummy" let entry_eoi = Gram.Entry.mk "entry_eoi" @@ -20206,6 +20924,8 @@ module OCamlInitSyntax = let opt_dot_dot = Gram.Entry.mk "opt_dot_dot" + let row_var_flag_quot = Gram.Entry.mk "row_var_flag_quot" + let opt_eq_ctyp = Gram.Entry.mk "opt_eq_ctyp" let opt_expr = Gram.Entry.mk "opt_expr" @@ -20214,18 +20934,30 @@ module OCamlInitSyntax = let opt_mutable = Gram.Entry.mk "opt_mutable" + let mutable_flag_quot = Gram.Entry.mk "mutable_flag_quot" + let opt_polyt = Gram.Entry.mk "opt_polyt" let opt_private = Gram.Entry.mk "opt_private" + let private_flag_quot = Gram.Entry.mk "private_flag_quot" + let opt_rec = Gram.Entry.mk "opt_rec" + let rec_flag_quot = Gram.Entry.mk "rec_flag_quot" + let opt_sig_items = Gram.Entry.mk "opt_sig_items" let opt_str_items = Gram.Entry.mk "opt_str_items" let opt_virtual = Gram.Entry.mk "opt_virtual" + let virtual_flag_quot = Gram.Entry.mk "virtual_flag_quot" + + let opt_override = Gram.Entry.mk "opt_override" + + let override_flag_quot = Gram.Entry.mk "override_flag_quot" + let opt_when_expr = Gram.Entry.mk "opt_when_expr" let patt = Gram.Entry.mk "patt" diff --git a/camlp4/boot/Camlp4.ml4 b/camlp4/boot/Camlp4.ml4 index d3ea1c7a03..3eb7978ac8 100644 --- a/camlp4/boot/Camlp4.ml4 +++ b/camlp4/boot/Camlp4.ml4 @@ -35,7 +35,6 @@ module Struct = struct sig INCLUDE "camlp4/Camlp4/Struct/FreeVars.mli"; end = struct INCLUDE "camlp4/Camlp4/Struct/FreeVars.ml"; end; module Grammar = struct - module Context = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Context.ml"; end; module Structure = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Structure.ml"; end; module Search = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Search.ml"; end; (* module Find = struct INCLUDE "camlp4/Camlp4/Struct/Grammar/Find.ml"; end; *) diff --git a/camlp4/boot/Camlp4Ast.ml b/camlp4/boot/Camlp4Ast.ml index 11b1c27c4d..67d865b5b3 100644 --- a/camlp4/boot/Camlp4Ast.ml +++ b/camlp4/boot/Camlp4Ast.ml @@ -568,7 +568,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CeLet"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2)) (meta_class_expr _loc x3) | Ast.CeFun x0 x1 x2 -> @@ -590,7 +590,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CeCon"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_virtual_flag _loc x1)) (meta_ident _loc x2)) (meta_ctyp _loc x3) | Ast.CeApp x0 x1 x2 -> @@ -622,7 +622,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgVir"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CgVal x0 x1 x2 x3 x4 -> Ast.ExApp _loc @@ -635,8 +635,8 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgVal"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_meta_bool _loc x3)) + (meta_mutable_flag _loc x2)) + (meta_virtual_flag _loc x3)) (meta_ctyp _loc x4) | Ast.CgMth x0 x1 x2 x3 -> Ast.ExApp _loc @@ -648,7 +648,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgMth"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CgInh x0 x1 -> Ast.ExApp _loc @@ -697,7 +697,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrVvr"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_mutable_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CrVir x0 x1 x2 x3 -> Ast.ExApp _loc @@ -709,21 +709,9 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrVir"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) - | Ast.CrVal x0 x1 x2 x3 -> - Ast.ExApp _loc - (Ast.ExApp _loc - (Ast.ExApp _loc - (Ast.ExApp _loc - (Ast.ExId _loc - (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrVal"))) - (meta_loc _loc x0)) - (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_expr _loc x3) - | Ast.CrMth x0 x1 x2 x3 x4 -> + | Ast.CrVal x0 x1 x2 x3 x4 -> Ast.ExApp _loc (Ast.ExApp _loc (Ast.ExApp _loc @@ -731,12 +719,29 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.ExApp _loc (Ast.ExId _loc (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrMth"))) + (Ast.IdUid _loc "CrVal"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_expr _loc x3)) - (meta_ctyp _loc x4) + (meta_override_flag _loc x2)) + (meta_mutable_flag _loc x3)) + (meta_expr _loc x4) + | Ast.CrMth x0 x1 x2 x3 x4 x5 -> + Ast.ExApp _loc + (Ast.ExApp _loc + (Ast.ExApp _loc + (Ast.ExApp _loc + (Ast.ExApp _loc + (Ast.ExApp _loc + (Ast.ExId _loc + (Ast.IdAcc _loc + (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "CrMth"))) + (meta_loc _loc x0)) + (meta_string _loc x1)) + (meta_override_flag _loc x2)) + (meta_private_flag _loc x3)) + (meta_expr _loc x4)) + (meta_ctyp _loc x5) | Ast.CrIni x0 x1 -> Ast.ExApp _loc (Ast.ExApp _loc @@ -745,16 +750,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrIni"))) (meta_loc _loc x0)) (meta_expr _loc x1) - | Ast.CrInh x0 x1 x2 -> + | Ast.CrInh x0 x1 x2 x3 -> Ast.ExApp _loc (Ast.ExApp _loc (Ast.ExApp _loc - (Ast.ExId _loc - (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrInh"))) - (meta_loc _loc x0)) - (meta_class_expr _loc x1)) - (meta_string _loc x2) + (Ast.ExApp _loc + (Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "CrInh"))) + (meta_loc _loc x0)) + (meta_override_flag _loc x1)) + (meta_class_expr _loc x2)) + (meta_string _loc x3) | Ast.CrCtr x0 x1 x2 -> Ast.ExApp _loc (Ast.ExApp _loc @@ -843,7 +850,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CtCon"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_virtual_flag _loc x1)) (meta_ident _loc x2)) (meta_ctyp _loc x3) | Ast.CtNil x0 -> @@ -1088,7 +1095,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "TyObj"))) (meta_loc _loc x0)) (meta_ctyp _loc x1)) - (meta_meta_bool _loc x2) + (meta_row_var_flag _loc x2) | Ast.TyDcl x0 x1 x2 x3 x4 -> Ast.ExApp _loc (Ast.ExApp _loc @@ -1186,6 +1193,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "TyNil"))) (meta_loc _loc x0) ] + and meta_direction_flag _loc = + fun + [ Ast.DiAnt x0 -> Ast.ExAnt _loc x0 + | Ast.DiDownto -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "DiDownto")) + | Ast.DiTo -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "DiTo")) ] and meta_expr _loc = fun [ Ast.ExPkg x0 x1 -> @@ -1385,7 +1403,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "ExLet"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2)) (meta_expr _loc x3) | Ast.ExLaz x0 x1 -> @@ -1473,7 +1491,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (meta_string _loc x1)) (meta_expr _loc x2)) (meta_expr _loc x3)) - (meta_meta_bool _loc x4)) + (meta_direction_flag _loc x4)) (meta_expr _loc x5) | Ast.ExFlo x0 x1 -> Ast.ExApp _loc @@ -1860,6 +1878,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "MtNil"))) (meta_loc _loc x0) ] + and meta_mutable_flag _loc = + fun + [ Ast.MuAnt x0 -> Ast.ExAnt _loc x0 + | Ast.MuNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "MuNil")) + | Ast.MuMutable -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "MuMutable")) ] + and meta_override_flag _loc = + fun + [ Ast.OvAnt x0 -> Ast.ExAnt _loc x0 + | Ast.OvNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "OvNil")) + | Ast.OvOverride -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "OvOverride")) ] and meta_patt _loc = fun [ Ast.PaLaz x0 x1 -> @@ -2099,6 +2139,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "PaNil"))) (meta_loc _loc x0) ] + and meta_private_flag _loc = + fun + [ Ast.PrAnt x0 -> Ast.ExAnt _loc x0 + | Ast.PrNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "PrNil")) + | Ast.PrPrivate -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "PrPrivate")) ] and meta_rec_binding _loc = fun [ Ast.RbAnt x0 x1 -> Ast.ExAnt x0 x1 @@ -2128,6 +2179,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "RbNil"))) (meta_loc _loc x0) ] + and meta_rec_flag _loc = + fun + [ Ast.ReAnt x0 -> Ast.ExAnt _loc x0 + | Ast.ReNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ReNil")) + | Ast.ReRecursive -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ReRecursive")) ] + and meta_row_var_flag _loc = + fun + [ Ast.RvAnt x0 -> Ast.ExAnt _loc x0 + | Ast.RvNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "RvNil")) + | Ast.RvRowVar -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "RvRowVar")) ] and meta_sig_item _loc = fun [ Ast.SgAnt x0 x1 -> Ast.ExAnt x0 x1 @@ -2266,7 +2339,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "StVal"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2) | Ast.StTyp x0 x1 -> Ast.ExApp _loc @@ -2392,6 +2465,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "StNil"))) (meta_loc _loc x0) ] + and meta_virtual_flag _loc = + fun + [ Ast.ViAnt x0 -> Ast.ExAnt _loc x0 + | Ast.ViNil -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ViNil")) + | Ast.ViVirtual -> + Ast.ExId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ViVirtual")) ] and meta_with_constr _loc = fun [ Ast.WcAnt x0 x1 -> Ast.ExAnt x0 x1 @@ -2552,7 +2636,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CeLet"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2)) (meta_class_expr _loc x3) | Ast.CeFun x0 x1 x2 -> @@ -2574,7 +2658,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CeCon"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_virtual_flag _loc x1)) (meta_ident _loc x2)) (meta_ctyp _loc x3) | Ast.CeApp x0 x1 x2 -> @@ -2606,7 +2690,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgVir"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CgVal x0 x1 x2 x3 x4 -> Ast.PaApp _loc @@ -2619,8 +2703,8 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgVal"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_meta_bool _loc x3)) + (meta_mutable_flag _loc x2)) + (meta_virtual_flag _loc x3)) (meta_ctyp _loc x4) | Ast.CgMth x0 x1 x2 x3 -> Ast.PaApp _loc @@ -2632,7 +2716,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CgMth"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CgInh x0 x1 -> Ast.PaApp _loc @@ -2681,7 +2765,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrVvr"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_mutable_flag _loc x2)) (meta_ctyp _loc x3) | Ast.CrVir x0 x1 x2 x3 -> Ast.PaApp _loc @@ -2693,21 +2777,9 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrVir"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) + (meta_private_flag _loc x2)) (meta_ctyp _loc x3) - | Ast.CrVal x0 x1 x2 x3 -> - Ast.PaApp _loc - (Ast.PaApp _loc - (Ast.PaApp _loc - (Ast.PaApp _loc - (Ast.PaId _loc - (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrVal"))) - (meta_loc _loc x0)) - (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_expr _loc x3) - | Ast.CrMth x0 x1 x2 x3 x4 -> + | Ast.CrVal x0 x1 x2 x3 x4 -> Ast.PaApp _loc (Ast.PaApp _loc (Ast.PaApp _loc @@ -2715,12 +2787,29 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.PaApp _loc (Ast.PaId _loc (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrMth"))) + (Ast.IdUid _loc "CrVal"))) (meta_loc _loc x0)) (meta_string _loc x1)) - (meta_meta_bool _loc x2)) - (meta_expr _loc x3)) - (meta_ctyp _loc x4) + (meta_override_flag _loc x2)) + (meta_mutable_flag _loc x3)) + (meta_expr _loc x4) + | Ast.CrMth x0 x1 x2 x3 x4 x5 -> + Ast.PaApp _loc + (Ast.PaApp _loc + (Ast.PaApp _loc + (Ast.PaApp _loc + (Ast.PaApp _loc + (Ast.PaApp _loc + (Ast.PaId _loc + (Ast.IdAcc _loc + (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "CrMth"))) + (meta_loc _loc x0)) + (meta_string _loc x1)) + (meta_override_flag _loc x2)) + (meta_private_flag _loc x3)) + (meta_expr _loc x4)) + (meta_ctyp _loc x5) | Ast.CrIni x0 x1 -> Ast.PaApp _loc (Ast.PaApp _loc @@ -2729,16 +2818,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "CrIni"))) (meta_loc _loc x0)) (meta_expr _loc x1) - | Ast.CrInh x0 x1 x2 -> + | Ast.CrInh x0 x1 x2 x3 -> Ast.PaApp _loc (Ast.PaApp _loc (Ast.PaApp _loc - (Ast.PaId _loc - (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") - (Ast.IdUid _loc "CrInh"))) - (meta_loc _loc x0)) - (meta_class_expr _loc x1)) - (meta_string _loc x2) + (Ast.PaApp _loc + (Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "CrInh"))) + (meta_loc _loc x0)) + (meta_override_flag _loc x1)) + (meta_class_expr _loc x2)) + (meta_string _loc x3) | Ast.CrCtr x0 x1 x2 -> Ast.PaApp _loc (Ast.PaApp _loc @@ -2827,7 +2918,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "CtCon"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_virtual_flag _loc x1)) (meta_ident _loc x2)) (meta_ctyp _loc x3) | Ast.CtNil x0 -> @@ -3072,7 +3163,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdUid _loc "TyObj"))) (meta_loc _loc x0)) (meta_ctyp _loc x1)) - (meta_meta_bool _loc x2) + (meta_row_var_flag _loc x2) | Ast.TyDcl x0 x1 x2 x3 x4 -> Ast.PaApp _loc (Ast.PaApp _loc @@ -3170,6 +3261,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "TyNil"))) (meta_loc _loc x0) ] + and meta_direction_flag _loc = + fun + [ Ast.DiAnt x0 -> Ast.PaAnt _loc x0 + | Ast.DiDownto -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "DiDownto")) + | Ast.DiTo -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "DiTo")) ] and meta_expr _loc = fun [ Ast.ExPkg x0 x1 -> @@ -3369,7 +3471,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "ExLet"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2)) (meta_expr _loc x3) | Ast.ExLaz x0 x1 -> @@ -3457,7 +3559,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (meta_string _loc x1)) (meta_expr _loc x2)) (meta_expr _loc x3)) - (meta_meta_bool _loc x4)) + (meta_direction_flag _loc x4)) (meta_expr _loc x5) | Ast.ExFlo x0 x1 -> Ast.PaApp _loc @@ -3844,6 +3946,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "MtNil"))) (meta_loc _loc x0) ] + and meta_mutable_flag _loc = + fun + [ Ast.MuAnt x0 -> Ast.PaAnt _loc x0 + | Ast.MuNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "MuNil")) + | Ast.MuMutable -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "MuMutable")) ] + and meta_override_flag _loc = + fun + [ Ast.OvAnt x0 -> Ast.PaAnt _loc x0 + | Ast.OvNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "OvNil")) + | Ast.OvOverride -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "OvOverride")) ] and meta_patt _loc = fun [ Ast.PaLaz x0 x1 -> @@ -4083,6 +4207,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "PaNil"))) (meta_loc _loc x0) ] + and meta_private_flag _loc = + fun + [ Ast.PrAnt x0 -> Ast.PaAnt _loc x0 + | Ast.PrNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "PrNil")) + | Ast.PrPrivate -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "PrPrivate")) ] and meta_rec_binding _loc = fun [ Ast.RbAnt x0 x1 -> Ast.PaAnt x0 x1 @@ -4112,6 +4247,28 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "RbNil"))) (meta_loc _loc x0) ] + and meta_rec_flag _loc = + fun + [ Ast.ReAnt x0 -> Ast.PaAnt _loc x0 + | Ast.ReNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ReNil")) + | Ast.ReRecursive -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ReRecursive")) ] + and meta_row_var_flag _loc = + fun + [ Ast.RvAnt x0 -> Ast.PaAnt _loc x0 + | Ast.RvNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "RvNil")) + | Ast.RvRowVar -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "RvRowVar")) ] and meta_sig_item _loc = fun [ Ast.SgAnt x0 x1 -> Ast.PaAnt x0 x1 @@ -4250,7 +4407,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "StVal"))) (meta_loc _loc x0)) - (meta_meta_bool _loc x1)) + (meta_rec_flag _loc x1)) (meta_binding _loc x2) | Ast.StTyp x0 x1 -> Ast.PaApp _loc @@ -4376,6 +4533,17 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") (Ast.IdUid _loc "StNil"))) (meta_loc _loc x0) ] + and meta_virtual_flag _loc = + fun + [ Ast.ViAnt x0 -> Ast.PaAnt _loc x0 + | Ast.ViNil -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ViNil")) + | Ast.ViVirtual -> + Ast.PaId _loc + (Ast.IdAcc _loc (Ast.IdUid _loc "Ast") + (Ast.IdUid _loc "ViVirtual")) ] and meta_with_constr _loc = fun [ Ast.WcAnt x0 x1 -> Ast.PaAnt x0 x1 @@ -4475,6 +4643,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | WcAnt _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in WcAnt _x _x_i1 ]; + method virtual_flag : virtual_flag -> virtual_flag = + fun + [ ViVirtual -> ViVirtual + | ViNil -> ViNil + | ViAnt _x -> let _x = o#string _x in ViAnt _x ]; method str_item : str_item -> str_item = fun [ StNil _x -> let _x = o#loc _x in StNil _x @@ -4526,7 +4699,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in StTyp _x _x_i1 | StVal _x _x_i1 _x_i2 -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in StVal _x _x_i1 _x_i2 | StAnt _x _x_i1 -> let _x = o#loc _x in @@ -4582,6 +4755,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | SgAnt _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in SgAnt _x _x_i1 ]; + method row_var_flag : row_var_flag -> row_var_flag = + fun + [ RvRowVar -> RvRowVar + | RvNil -> RvNil + | RvAnt _x -> let _x = o#string _x in RvAnt _x ]; + method rec_flag : rec_flag -> rec_flag = + fun + [ ReRecursive -> ReRecursive + | ReNil -> ReNil + | ReAnt _x -> let _x = o#string _x in ReAnt _x ]; method rec_binding : rec_binding -> rec_binding = fun [ RbNil _x -> let _x = o#loc _x in RbNil _x @@ -4596,6 +4779,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | RbAnt _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in RbAnt _x _x_i1 ]; + method private_flag : private_flag -> private_flag = + fun + [ PrPrivate -> PrPrivate + | PrNil -> PrNil + | PrAnt _x -> let _x = o#string _x in PrAnt _x ]; method patt : patt -> patt = fun [ PaNil _x -> let _x = o#loc _x in PaNil _x @@ -4685,6 +4873,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x_i1 = o#string _x_i1 in PaVrn _x _x_i1 | PaLaz _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#patt _x_i1 in PaLaz _x _x_i1 ]; + method override_flag : override_flag -> override_flag = + fun + [ OvOverride -> OvOverride + | OvNil -> OvNil + | OvAnt _x -> let _x = o#string _x in OvAnt _x ]; + method mutable_flag : mutable_flag -> mutable_flag = + fun + [ MuMutable -> MuMutable + | MuNil -> MuNil + | MuAnt _x -> let _x = o#string _x in MuAnt _x ]; method module_type : module_type -> module_type = fun [ MtNil _x -> let _x = o#loc _x in MtNil _x @@ -4861,7 +5059,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x_i1 = o#string _x_i1 in let _x_i2 = o#expr _x_i2 in let _x_i3 = o#expr _x_i3 in - let _x_i4 = o#meta_bool _x_i4 in + let _x_i4 = o#direction_flag _x_i4 in let _x_i5 = o#expr _x_i5 in ExFor _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 | ExFun _x _x_i1 -> @@ -4892,7 +5090,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in ExLaz _x _x_i1 | ExLet _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in let _x_i3 = o#expr _x_i3 in ExLet _x _x_i1 _x_i2 _x_i3 | ExLmd _x _x_i1 _x_i2 _x_i3 -> @@ -4967,6 +5165,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | ExPkg _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#module_expr _x_i1 in ExPkg _x _x_i1 ]; + method direction_flag : direction_flag -> direction_flag = + fun + [ DiTo -> DiTo + | DiDownto -> DiDownto + | DiAnt _x -> let _x = o#string _x in DiAnt _x ]; method ctyp : ctyp -> ctyp = fun [ TyNil _x -> let _x = o#loc _x in TyNil _x @@ -5011,7 +5214,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | TyObj _x _x_i1 _x_i2 -> let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in TyObj _x _x_i1 _x_i2 + let _x_i2 = o#row_var_flag _x_i2 in TyObj _x _x_i1 _x_i2 | TyOlb _x _x_i1 _x_i2 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in @@ -5102,7 +5305,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = [ CtNil _x -> let _x = o#loc _x in CtNil _x | CtCon _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#virtual_flag _x_i1 in let _x_i2 = o#ident _x_i2 in let _x_i3 = o#ctyp _x_i3 in CtCon _x _x_i1 _x_i2 _x_i3 | CtFun _x _x_i1 _x_i2 -> @@ -5139,32 +5342,36 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x = o#loc _x in let _x_i1 = o#ctyp _x_i1 in let _x_i2 = o#ctyp _x_i2 in CrCtr _x _x_i1 _x_i2 - | CrInh _x _x_i1 _x_i2 -> + | CrInh _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in - let _x_i1 = o#class_expr _x_i1 in - let _x_i2 = o#string _x_i2 in CrInh _x _x_i1 _x_i2 + let _x_i1 = o#override_flag _x_i1 in + let _x_i2 = o#class_expr _x_i2 in + let _x_i3 = o#string _x_i3 in CrInh _x _x_i1 _x_i2 _x_i3 | CrIni _x _x_i1 -> let _x = o#loc _x in let _x_i1 = o#expr _x_i1 in CrIni _x _x_i1 - | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 -> + | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#expr _x_i3 in - let _x_i4 = o#ctyp _x_i4 in CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 - | CrVal _x _x_i1 _x_i2 _x_i3 -> + let _x_i2 = o#override_flag _x_i2 in + let _x_i3 = o#private_flag _x_i3 in + let _x_i4 = o#expr _x_i4 in + let _x_i5 = o#ctyp _x_i5 + in CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 + | CrVal _x _x_i1 _x_i2 _x_i3 _x_i4 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#expr _x_i3 in CrVal _x _x_i1 _x_i2 _x_i3 + let _x_i2 = o#override_flag _x_i2 in + let _x_i3 = o#mutable_flag _x_i3 in + let _x_i4 = o#expr _x_i4 in CrVal _x _x_i1 _x_i2 _x_i3 _x_i4 | CrVir _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CrVir _x _x_i1 _x_i2 _x_i3 | CrVvr _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#mutable_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CrVvr _x _x_i1 _x_i2 _x_i3 | CrAnt _x _x_i1 -> let _x = o#loc _x in @@ -5186,18 +5393,18 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | CgMth _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CgMth _x _x_i1 _x_i2 _x_i3 | CgVal _x _x_i1 _x_i2 _x_i3 _x_i4 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in - let _x_i3 = o#meta_bool _x_i3 in + let _x_i2 = o#mutable_flag _x_i2 in + let _x_i3 = o#virtual_flag _x_i3 in let _x_i4 = o#ctyp _x_i4 in CgVal _x _x_i1 _x_i2 _x_i3 _x_i4 | CgVir _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in let _x_i1 = o#string _x_i1 in - let _x_i2 = o#meta_bool _x_i2 in + let _x_i2 = o#private_flag _x_i2 in let _x_i3 = o#ctyp _x_i3 in CgVir _x _x_i1 _x_i2 _x_i3 | CgAnt _x _x_i1 -> let _x = o#loc _x in @@ -5211,7 +5418,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x_i2 = o#expr _x_i2 in CeApp _x _x_i1 _x_i2 | CeCon _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#virtual_flag _x_i1 in let _x_i2 = o#ident _x_i2 in let _x_i3 = o#ctyp _x_i3 in CeCon _x _x_i1 _x_i2 _x_i3 | CeFun _x _x_i1 _x_i2 -> @@ -5220,7 +5427,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let _x_i2 = o#class_expr _x_i2 in CeFun _x _x_i1 _x_i2 | CeLet _x _x_i1 _x_i2 _x_i3 -> let _x = o#loc _x in - let _x_i1 = o#meta_bool _x_i1 in + let _x_i1 = o#rec_flag _x_i1 in let _x_i2 = o#binding _x_i2 in let _x_i3 = o#class_expr _x_i3 in CeLet _x _x_i1 _x_i2 _x_i3 | CeStr _x _x_i1 _x_i2 -> @@ -5287,6 +5494,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#loc _x in let o = o#with_constr _x_i1 in let o = o#with_constr _x_i2 in o | WcAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; + method virtual_flag : virtual_flag -> 'self_type = + fun + [ ViVirtual -> o + | ViNil -> o + | ViAnt _x -> let o = o#string _x in o ]; method str_item : str_item -> 'self_type = fun [ StNil _x -> let o = o#loc _x in o @@ -5324,7 +5536,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | StTyp _x _x_i1 -> let o = o#loc _x in let o = o#ctyp _x_i1 in o | StVal _x _x_i1 _x_i2 -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in let o = o#binding _x_i2 in o + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in o | StAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; method sig_item : sig_item -> 'self_type = fun @@ -5361,6 +5573,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#loc _x in let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o | SgAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; + method row_var_flag : row_var_flag -> 'self_type = + fun + [ RvRowVar -> o + | RvNil -> o + | RvAnt _x -> let o = o#string _x in o ]; + method rec_flag : rec_flag -> 'self_type = + fun + [ ReRecursive -> o + | ReNil -> o + | ReAnt _x -> let o = o#string _x in o ]; method rec_binding : rec_binding -> 'self_type = fun [ RbNil _x -> let o = o#loc _x in o @@ -5371,6 +5593,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#loc _x in let o = o#ident _x_i1 in let o = o#expr _x_i2 in o | RbAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; + method private_flag : private_flag -> 'self_type = + fun + [ PrPrivate -> o + | PrNil -> o + | PrAnt _x -> let o = o#string _x in o ]; method patt : patt -> 'self_type = fun [ PaNil _x -> let o = o#loc _x in o @@ -5427,6 +5654,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | PaTyp _x _x_i1 -> let o = o#loc _x in let o = o#ident _x_i1 in o | PaVrn _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o | PaLaz _x _x_i1 -> let o = o#loc _x in let o = o#patt _x_i1 in o ]; + method override_flag : override_flag -> 'self_type = + fun + [ OvOverride -> o + | OvNil -> o + | OvAnt _x -> let o = o#string _x in o ]; + method mutable_flag : mutable_flag -> 'self_type = + fun + [ MuMutable -> o + | MuNil -> o + | MuAnt _x -> let o = o#string _x in o ]; method module_type : module_type -> 'self_type = fun [ MtNil _x -> let o = o#loc _x in o @@ -5554,7 +5791,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#string _x_i1 in let o = o#expr _x_i2 in let o = o#expr _x_i3 in - let o = o#meta_bool _x_i4 in let o = o#expr _x_i5 in o + let o = o#direction_flag _x_i4 in let o = o#expr _x_i5 in o | ExFun _x _x_i1 -> let o = o#loc _x in let o = o#match_case _x_i1 in o | ExIfe _x _x_i1 _x_i2 _x_i3 -> @@ -5574,7 +5811,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | ExLaz _x _x_i1 -> let o = o#loc _x in let o = o#expr _x_i1 in o | ExLet _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in let o = o#expr _x_i3 in o | ExLmd _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in @@ -5625,6 +5862,11 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#string _x_i1 in let o = o#expr _x_i2 in o | ExPkg _x _x_i1 -> let o = o#loc _x in let o = o#module_expr _x_i1 in o ]; + method direction_flag : direction_flag -> 'self_type = + fun + [ DiTo -> o + | DiDownto -> o + | DiAnt _x -> let o = o#string _x in o ]; method ctyp : ctyp -> 'self_type = fun [ TyNil _x -> let o = o#loc _x in o @@ -5659,7 +5901,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = in o | TyObj _x _x_i1 _x_i2 -> let o = o#loc _x in - let o = o#ctyp _x_i1 in let o = o#meta_bool _x_i2 in o + let o = o#ctyp _x_i1 in let o = o#row_var_flag _x_i2 in o | TyOlb _x _x_i1 _x_i2 -> let o = o#loc _x in let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o @@ -5718,7 +5960,7 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = [ CtNil _x -> let o = o#loc _x in o | CtCon _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#virtual_flag _x_i1 in let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o | CtFun _x _x_i1 _x_i2 -> let o = o#loc _x in @@ -5746,27 +5988,30 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | CrCtr _x _x_i1 _x_i2 -> let o = o#loc _x in let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o - | CrInh _x _x_i1 _x_i2 -> + | CrInh _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in - let o = o#class_expr _x_i1 in let o = o#string _x_i2 in o + let o = o#override_flag _x_i1 in + let o = o#class_expr _x_i2 in let o = o#string _x_i3 in o | CrIni _x _x_i1 -> let o = o#loc _x in let o = o#expr _x_i1 in o - | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 -> + | CrMth _x _x_i1 _x_i2 _x_i3 _x_i4 _x_i5 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in - let o = o#expr _x_i3 in let o = o#ctyp _x_i4 in o - | CrVal _x _x_i1 _x_i2 _x_i3 -> + let o = o#override_flag _x_i2 in + let o = o#private_flag _x_i3 in + let o = o#expr _x_i4 in let o = o#ctyp _x_i5 in o + | CrVal _x _x_i1 _x_i2 _x_i3 _x_i4 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#expr _x_i3 in o + let o = o#override_flag _x_i2 in + let o = o#mutable_flag _x_i3 in let o = o#expr _x_i4 in o | CrVir _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o | CrVvr _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#mutable_flag _x_i2 in let o = o#ctyp _x_i3 in o | CrAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; method class_sig_item : class_sig_item -> 'self_type = fun @@ -5783,16 +6028,16 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = | CgMth _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o | CgVal _x _x_i1 _x_i2 _x_i3 _x_i4 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in - let o = o#meta_bool _x_i3 in let o = o#ctyp _x_i4 in o + let o = o#mutable_flag _x_i2 in + let o = o#virtual_flag _x_i3 in let o = o#ctyp _x_i4 in o | CgVir _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in let o = o#string _x_i1 in - let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o + let o = o#private_flag _x_i2 in let o = o#ctyp _x_i3 in o | CgAnt _x _x_i1 -> let o = o#loc _x in let o = o#string _x_i1 in o ]; method class_expr : class_expr -> 'self_type = fun @@ -5802,14 +6047,14 @@ module Make (Loc : Sig.Loc) : Sig.Camlp4Ast with module Loc = Loc = let o = o#class_expr _x_i1 in let o = o#expr _x_i2 in o | CeCon _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#virtual_flag _x_i1 in let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o | CeFun _x _x_i1 _x_i2 -> let o = o#loc _x in let o = o#patt _x_i1 in let o = o#class_expr _x_i2 in o | CeLet _x _x_i1 _x_i2 _x_i3 -> let o = o#loc _x in - let o = o#meta_bool _x_i1 in + let o = o#rec_flag _x_i1 in let o = o#binding _x_i2 in let o = o#class_expr _x_i3 in o | CeStr _x _x_i1 _x_i2 -> let o = o#loc _x in diff --git a/camlp4/boot/camlp4boot.ml b/camlp4/boot/camlp4boot.ml index 4537866607..618693ed88 100644 --- a/camlp4/boot/camlp4boot.ml +++ b/camlp4/boot/camlp4boot.ml @@ -367,14 +367,14 @@ Very old (no more supported) syntax:\n\ let mkumin _loc f arg = match arg with - | Ast.ExInt (_, n) -> Ast.ExInt (_loc, neg_string n) - | Ast.ExInt32 (_, n) -> Ast.ExInt32 (_loc, neg_string n) - | Ast.ExInt64 (_, n) -> Ast.ExInt64 (_loc, neg_string n) - | Ast.ExNativeInt (_, n) -> Ast.ExNativeInt (_loc, neg_string n) - | Ast.ExFlo (_, n) -> Ast.ExFlo (_loc, neg_string n) + | Ast.ExInt (_, n) -> Ast.ExInt (_loc, (neg_string n)) + | Ast.ExInt32 (_, n) -> Ast.ExInt32 (_loc, (neg_string n)) + | Ast.ExInt64 (_, n) -> Ast.ExInt64 (_loc, (neg_string n)) + | Ast.ExNativeInt (_, n) -> Ast.ExNativeInt (_loc, (neg_string n)) + | Ast.ExFlo (_, n) -> Ast.ExFlo (_loc, (neg_string n)) | _ -> - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdLid (_loc, "~" ^ f)), - arg) + Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdLid (_loc, ("~" ^ f))))), arg) let mklistexp _loc last = let rec loop top = @@ -382,15 +382,15 @@ Very old (no more supported) syntax:\n\ | [] -> (match last with | Some e -> e - | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) | e1 :: el -> let _loc = if top then _loc else Loc.merge (Ast.loc_of_expr e1) _loc in Ast.ExApp (_loc, - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - e1), - loop false el) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), e1)), + (loop false el)) in loop true let mkassert _loc = @@ -424,13 +424,13 @@ Very old (no more supported) syntax:\n\ let module_type_app mt1 mt2 = match (mt1, mt2) with | (Ast.MtId (_loc, i1), Ast.MtId (_, i2)) -> - Ast.MtId (_loc, Ast.IdApp (_loc, i1, i2)) + Ast.MtId (_loc, (Ast.IdApp (_loc, i1, i2))) | _ -> raise Stream.Failure let module_type_acc mt1 mt2 = match (mt1, mt2) with | (Ast.MtId (_loc, i1), Ast.MtId (_, i2)) -> - Ast.MtId (_loc, Ast.IdAcc (_loc, i1, i2)) + Ast.MtId (_loc, (Ast.IdAcc (_loc, i1, i2))) | _ -> raise Stream.Failure let bigarray_get _loc arr arg = @@ -443,47 +443,49 @@ Very old (no more supported) syntax:\n\ match coords with | [ c1 ] -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array1"), - Ast.IdLid (_loc, "get")))), - arr), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Array1")), + (Ast.IdLid (_loc, "get")))))))), + arr)), c1) | [ c1; c2 ] -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array2"), - Ast.IdLid (_loc, "get")))), - arr), - c1), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Array2")), + (Ast.IdLid (_loc, "get")))))))), + arr)), + c1)), c2) | [ c1; c2; c3 ] -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array3"), - Ast.IdLid (_loc, "get")))), - arr), - c1), - c2), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Array3")), + (Ast.IdLid (_loc, "get")))))))), + arr)), + c1)), + c2)), c3) | (* | coords -> <:expr< Bigarray.Genarray.get $arr$ [| $list:coords$ |] >> ] *) coords -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Genarray"), - Ast.IdLid (_loc, "get")))), - arr), - Ast.ExArr (_loc, Ast.exSem_of_list coords)) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Genarray")), + (Ast.IdLid (_loc, "get")))))))), + arr)), + (Ast.ExArr (_loc, (Ast.exSem_of_list coords)))) let bigarray_set _loc var newval = match var with @@ -497,14 +499,15 @@ Very old (no more supported) syntax:\n\ c1) -> Some (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array1"), - Ast.IdLid (_loc, "set")))), - arr), - c1), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Array1")), + (Ast.IdLid (_loc, "set")))))))), + arr)), + c1)), newval)) | Ast.ExApp (_, (Ast.ExApp (_, @@ -518,16 +521,18 @@ Very old (no more supported) syntax:\n\ c2) -> Some (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array2"), - Ast.IdLid (_loc, "set")))), - arr), - c1), - c2), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Array2")), + (Ast.IdLid (_loc, "set")))))))), + arr)), + c1)), + c2)), newval)) | Ast.ExApp (_, (Ast.ExApp (_, @@ -543,18 +548,20 @@ Very old (no more supported) syntax:\n\ c3) -> Some (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Array3"), - Ast.IdLid (_loc, "set")))), - arr), - c1), - c2), - c3), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Array3")), + (Ast.IdLid (_loc, "set")))))))), + arr)), + c1)), + c2)), + c3)), newval)) | Ast.ExApp (_, (Ast.ExApp (_, @@ -566,32 +573,18 @@ Very old (no more supported) syntax:\n\ (Ast.ExArr (_, coords))) -> Some (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Bigarray"), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Genarray"), - Ast.IdLid (_loc, "set")))), - arr), - Ast.ExArr (_loc, coords)), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Bigarray")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Genarray")), + (Ast.IdLid (_loc, "set")))))))), + arr)), + (Ast.ExArr (_loc, coords)))), newval)) | _ -> None - let test_not_left_brace_nor_do = - Gram.Entry.of_parser "test_not_left_brace_nor_do" - (fun strm -> - match Stream.peek strm with - | Some (((KEYWORD "{" | KEYWORD "do"), _)) -> - raise Stream.Failure - | _ -> ()) - - let test_lparen_type = - Gram.Entry.of_parser "test_lparen_type" - (fun strm -> - match Stream.npeek 2 strm with - | [ (KEYWORD "(", _); (KEYWORD "type", _) ] -> () - | _ -> raise Stream.Failure) - let stopped_at _loc = Some (Loc.move_line 1 _loc) (* FIXME be more precise *) @@ -605,21 +598,25 @@ Very old (no more supported) syntax:\n\ else if List.mem s.[i] list then loop s (i + 1) else false in loop + let setup_op_parser entry p = + Gram.Entry.setup_parser entry + (fun (__strm : _ Stream.t) -> + match Stream.peek __strm with + | Some (((KEYWORD x | SYMBOL x), ti)) when p x -> + (Stream.junk __strm; + let _loc = Gram.token_location ti + in Ast.ExId (_loc, (Ast.IdLid (_loc, x)))) + | _ -> raise Stream.Failure) + let _ = let list = [ '!'; '?'; '~' ] in let excl = [ "!="; "??" ] in - Gram.Entry.setup_parser prefixop - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - (not (List.mem x excl)) && - (((String.length x) >= 2) && - ((List.mem x.[0] list) && (symbolchar x 1))) - -> - (Stream.junk __strm; - Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser prefixop + (fun x -> + (not (List.mem x excl)) && + (((String.length x) >= 2) && + ((List.mem x.[0] list) && (symbolchar x 1)))) let _ = let list_ok = @@ -627,76 +624,47 @@ Very old (no more supported) syntax:\n\ let list_first_char_ok = [ '='; '<'; '>'; '|'; '&'; '$'; '!' ] in let excl = [ "<-"; "||"; "&&" ] in - Gram.Entry.setup_parser infixop0 - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - (List.mem x list_ok) || - ((not (List.mem x excl)) && - (((String.length x) >= 2) && - ((List.mem x.[0] list_first_char_ok) && - (symbolchar x 1)))) - -> - (Stream.junk __strm; - Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser infixop0 + (fun x -> + (List.mem x list_ok) || + ((not (List.mem x excl)) && + (((String.length x) >= 2) && + ((List.mem x.[0] list_first_char_ok) && + (symbolchar x 1))))) let _ = let list = [ '@'; '^' ] in - Gram.Entry.setup_parser infixop1 - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - ((String.length x) >= 1) && - ((List.mem x.[0] list) && (symbolchar x 1)) - -> - (Stream.junk __strm; - Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser infixop1 + (fun x -> + ((String.length x) >= 1) && + ((List.mem x.[0] list) && (symbolchar x 1))) let _ = let list = [ '+'; '-' ] in - Gram.Entry.setup_parser infixop2 - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - (x <> "->") && - (((String.length x) >= 1) && - ((List.mem x.[0] list) && (symbolchar x 1))) - -> - (Stream.junk __strm; - Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser infixop2 + (fun x -> + (x <> "->") && + (((String.length x) >= 1) && + ((List.mem x.[0] list) && (symbolchar x 1)))) let _ = let list = [ '*'; '/'; '%'; '\\' ] in - Gram.Entry.setup_parser infixop3 - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - ((String.length x) >= 1) && - ((List.mem x.[0] list) && - (((x.[0] <> '*') || - (((String.length x) < 2) || (x.[1] <> '*'))) - && (symbolchar x 1))) - -> - (Stream.junk __strm; - Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser infixop3 + (fun x -> + ((String.length x) >= 1) && + ((List.mem x.[0] list) && + (((x.[0] <> '*') || + (((String.length x) < 2) || (x.[1] <> '*'))) + && (symbolchar x 1)))) let _ = - Gram.Entry.setup_parser infixop4 - (fun (__strm : _ Stream.t) -> - match Stream.peek __strm with - | Some (((KEYWORD x | SYMBOL x), _loc)) when - ((String.length x) >= 2) && - ((x.[0] == '*') && ((x.[1] == '*') && (symbolchar x 2))) - -> - (Stream.junk __strm; Ast.ExId (_loc, Ast.IdLid (_loc, x))) - | _ -> raise Stream.Failure) + setup_op_parser infixop4 + (fun x -> + ((String.length x) >= 2) && + ((x.[0] == '*') && ((x.[1] == '*') && (symbolchar x 2)))) let rec infix_kwds_filter (__strm : _ Stream.t) = match Stream.peek __strm with @@ -740,24 +708,27 @@ Very old (no more supported) syntax:\n\ Token.Filter.define_filter (Gram.get_filter ()) (fun f strm -> infix_kwds_filter (f strm)) - (* transmit the context *) let _ = Gram.Entry.setup_parser sem_expr (let symb1 = Gram.parse_tokens_after_filter expr in let symb (__strm : _ Stream.t) = match Stream.peek __strm with - | Some ((ANTIQUOT ((("list" as n)), s), _loc)) -> + | Some ((ANTIQUOT ((("list" as n)), s), ti)) -> (Stream.junk __strm; - Ast.ExAnt (_loc, mk_anti ~c: "expr;" n s)) + let _loc = Gram.token_location ti + in Ast.ExAnt (_loc, (mk_anti ~c: "expr;" n s))) | _ -> symb1 __strm in let rec kont al (__strm : _ Stream.t) = match Stream.peek __strm with - | Some ((KEYWORD ";", _loc)) -> + | Some ((KEYWORD ";", _)) -> (Stream.junk __strm; let a = (try symb __strm with | Stream.Failure -> raise (Stream.Error "")) in - let s = __strm in kont (Ast.ExSem (_loc, al, a)) s) + let s = __strm in + let _loc = + Loc.merge (Ast.loc_of_expr al) (Ast.loc_of_expr a) + in kont (Ast.ExSem (_loc, al, a)) s) | _ -> al in fun (__strm : _ Stream.t) -> @@ -765,6 +736,13 @@ Very old (no more supported) syntax:\n\ let _ = let _ = (a_CHAR : 'a_CHAR Gram.Entry.t) + and _ = (override_flag_quot : 'override_flag_quot Gram.Entry.t) + and _ = (row_var_flag_quot : 'row_var_flag_quot Gram.Entry.t) + and _ = (virtual_flag_quot : 'virtual_flag_quot Gram.Entry.t) + and _ = (private_flag_quot : 'private_flag_quot Gram.Entry.t) + and _ = (mutable_flag_quot : 'mutable_flag_quot Gram.Entry.t) + and _ = (direction_flag_quot : 'direction_flag_quot Gram.Entry.t) + and _ = (rec_flag_quot : 'rec_flag_quot Gram.Entry.t) and _ = (package_type : 'package_type Gram.Entry.t) and _ = (do_sequence : 'do_sequence Gram.Entry.t) and _ = (infixop4 : 'infixop4 Gram.Entry.t) @@ -952,6 +930,15 @@ Very old (no more supported) syntax:\n\ <:patt< ? $i$ : ($p$ = $e$) >> *) string_list : 'string_list Gram.Entry.t = grammar_entry_create "string_list" + and opt_override : 'opt_override Gram.Entry.t = + grammar_entry_create "opt_override" + and value_val_opt_override : 'value_val_opt_override Gram.Entry.t = + grammar_entry_create "value_val_opt_override" + and method_opt_override : 'method_opt_override Gram.Entry.t = + grammar_entry_create "method_opt_override" + and module_longident_dot_lparen : + 'module_longident_dot_lparen Gram.Entry.t = + grammar_entry_create "module_longident_dot_lparen" and fun_def_cont_no_when : 'fun_def_cont_no_when Gram.Entry.t = grammar_entry_create "fun_def_cont_no_when" and fun_def_cont : 'fun_def_cont Gram.Entry.t = @@ -1008,7 +995,8 @@ Very old (no more supported) syntax:\n\ (fun _ (p : 'package_type) _ (e : 'expr) _ _ (_loc : Gram.Loc.t) -> (Ast.MePkg (_loc, - Ast.ExTyc (_loc, e, Ast.TyPkg (_loc, p))) : + (Ast.ExTyc (_loc, e, + (Ast.TyPkg (_loc, p))))) : 'module_expr)))); ([ Gram.Skeyword "("; Gram.Snterm @@ -1066,7 +1054,7 @@ Very old (no more supported) syntax:\n\ ((("" | "mexp" | "anti" | "list" as n)), s) -> (Ast.MeAnt (_loc, - mk_anti ~c: "module_expr" n s) : + (mk_anti ~c: "module_expr" n s)) : 'module_expr) | _ -> assert false))) ]) ])) ()); @@ -1105,7 +1093,7 @@ Very old (no more supported) syntax:\n\ ((("" | "stri" | "anti" | "list" as n)), s) -> (Ast.StAnt (_loc, - mk_anti ~c: "str_item" n s) : + (mk_anti ~c: "str_item" n s)) : 'str_item) | _ -> assert false))); ([ Gram.Skeyword "class"; Gram.Skeyword "type"; @@ -1226,7 +1214,7 @@ Very old (no more supported) syntax:\n\ (fun (i : 'type_longident) _ (t : 'constructor_declaration) _ (_loc : Gram.Loc.t) -> - (Ast.StExc (_loc, t, Ast.OSome i) : + (Ast.StExc (_loc, t, (Ast.OSome i)) : 'str_item)))); ([ Gram.Skeyword "exception"; Gram.Snterm @@ -1328,7 +1316,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" as n)), m) -> - (Ast.MbColEq (_loc, mk_anti n m, mt, me) : + (Ast.MbColEq (_loc, (mk_anti n m), mt, + me) : 'module_binding) | _ -> assert false))); ([ Gram.Stoken @@ -1342,7 +1331,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" as n)), s) -> (Ast.MbAnt (_loc, - mk_anti ~c: "module_binding" n s) : + (mk_anti ~c: "module_binding" n s)) : 'module_binding) | _ -> assert false))); ([ Gram.Stoken @@ -1361,7 +1350,7 @@ Very old (no more supported) syntax:\n\ n)), s) -> (Ast.MbAnt (_loc, - mk_anti ~c: "module_binding" n s) : + (mk_anti ~c: "module_binding" n s)) : 'module_binding) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -1462,7 +1451,7 @@ Very old (no more supported) syntax:\n\ ((("" | "mtyp" | "anti" | "list" as n)), s) -> (Ast.MtAnt (_loc, - mk_anti ~c: "module_type" n s) : + (mk_anti ~c: "module_type" n s)) : 'module_type) | _ -> assert false))) ]) ])) ()); @@ -1525,7 +1514,7 @@ Very old (no more supported) syntax:\n\ (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_UIDENT) _ _ (_loc : Gram.Loc.t) -> - (Ast.SgMty (_loc, i, Ast.MtNil _loc) : + (Ast.SgMty (_loc, i, (Ast.MtNil _loc)) : 'sig_item)))); ([ Gram.Skeyword "module"; Gram.Skeyword "type"; Gram.Snterm @@ -1617,7 +1606,7 @@ Very old (no more supported) syntax:\n\ ((("" | "sigi" | "anti" | "list" as n)), s) -> (Ast.SgAnt (_loc, - mk_anti ~c: "sig_item" n s) : + (mk_anti ~c: "sig_item" n s)) : 'sig_item) | _ -> assert false))) ]) ])) ()); @@ -1697,7 +1686,7 @@ Very old (no more supported) syntax:\n\ as n)), s) -> (Ast.MbAnt (_loc, - mk_anti ~c: "module_binding" n s) : + (mk_anti ~c: "module_binding" n s)) : 'module_rec_declaration) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -1758,8 +1747,8 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("" | "typ" | "anti" as n)), s) -> (Ast.WcTyS (_loc, - Ast.TyAnt (_loc, - mk_anti ~c: "ctyp" n s), + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s))), t) : 'with_constr) | _ -> assert false))); @@ -1809,8 +1798,8 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("" | "typ" | "anti" as n)), s) -> (Ast.WcTyp (_loc, - Ast.TyAnt (_loc, - mk_anti ~c: "ctyp" n s), + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s))), t) : 'with_constr) | _ -> assert false))); @@ -1842,7 +1831,7 @@ Very old (no more supported) syntax:\n\ as n)), s) -> (Ast.WcAnt (_loc, - mk_anti ~c: "with_constr" n s) : + (mk_anti ~c: "with_constr" n s)) : 'with_constr) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -1881,7 +1870,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (seq : 'do_sequence) _ (e : 'sequence) _ (_loc : Gram.Loc.t) -> - (Ast.ExWhi (_loc, mksequence' _loc e, seq) : + (Ast.ExWhi (_loc, (mksequence' _loc e), seq) : 'expr)))); ([ Gram.Skeyword "for"; Gram.Snterm @@ -1906,8 +1895,8 @@ Very old (no more supported) syntax:\n\ (fun (seq : 'do_sequence) _ (e2 : 'sequence) (df : 'direction_flag) (e1 : 'sequence) _ (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> - (Ast.ExFor (_loc, i, mksequence' _loc e1, - mksequence' _loc e2, df, seq) : + (Ast.ExFor (_loc, i, (mksequence' _loc e1), + (mksequence' _loc e2), df, seq) : 'expr)))); ([ Gram.Skeyword "do"; Gram.Snterm @@ -1934,7 +1923,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (a : 'match_case) _ (e : 'sequence) _ (_loc : Gram.Loc.t) -> - (Ast.ExTry (_loc, mksequence' _loc e, a) : + (Ast.ExTry (_loc, (mksequence' _loc e), a) : 'expr)))); ([ Gram.Skeyword "match"; Gram.Snterm @@ -1947,7 +1936,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (a : 'match_case) _ (e : 'sequence) _ (_loc : Gram.Loc.t) -> - (Ast.ExMat (_loc, mksequence' _loc e, a) : + (Ast.ExMat (_loc, (mksequence' _loc e), a) : 'expr)))); ([ Gram.Skeyword "fun"; Gram.Snterm @@ -1958,15 +1947,16 @@ Very old (no more supported) syntax:\n\ (e : 'expr)))); ([ Gram.Skeyword "fun"; Gram.Skeyword "["; Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj - (match_case0 : 'match_case0 Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj + (match_case0 : + 'match_case0 Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (a : 'match_case0 list) _ _ (_loc : Gram.Loc.t) -> - (Ast.ExFun (_loc, Ast.mcOr_of_list a) : + (Ast.ExFun (_loc, (Ast.mcOr_of_list a)) : 'expr)))); ([ Gram.Skeyword "let"; Gram.Skeyword "open"; Gram.Snterm @@ -2034,7 +2024,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop6) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))) ]); ((Some "&&"), (Some Camlp4.Sig.Grammar.RightA), @@ -2046,7 +2036,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop5) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))) ]); ((Some "<"), (Some Camlp4.Sig.Grammar.LeftA), @@ -2058,7 +2048,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop0) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))) ]); ((Some "^"), (Some Camlp4.Sig.Grammar.RightA), @@ -2070,7 +2060,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop1) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))) ]); ((Some "+"), (Some Camlp4.Sig.Grammar.LeftA), @@ -2082,7 +2072,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop2) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))) ]); ((Some "*"), (Some Camlp4.Sig.Grammar.LeftA), @@ -2094,7 +2084,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop3) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "mod"; Gram.Sself ], @@ -2102,9 +2092,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "mod")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "mod")))), + e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "lxor"; Gram.Sself ], @@ -2112,10 +2103,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "lxor")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "lxor")))), + e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "lor"; Gram.Sself ], @@ -2123,9 +2114,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "lor")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "lor")))), + e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "land"; Gram.Sself ], @@ -2133,10 +2125,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "land")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "land")))), + e1)), e2) : 'expr)))) ]); ((Some "**"), (Some Camlp4.Sig.Grammar.RightA), @@ -2148,7 +2140,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e2 : 'expr) (op : 'infixop4) (e1 : 'expr) (_loc : Gram.Loc.t) -> - (Ast.ExApp (_loc, Ast.ExApp (_loc, op, e1), + (Ast.ExApp (_loc, (Ast.ExApp (_loc, op, e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "lsr"; Gram.Sself ], @@ -2156,9 +2148,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "lsr")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "lsr")))), + e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "lsl"; Gram.Sself ], @@ -2166,9 +2159,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "lsl")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "lsl")))), + e1)), e2) : 'expr)))); ([ Gram.Sself; Gram.Skeyword "asr"; Gram.Sself ], @@ -2176,9 +2170,10 @@ Very old (no more supported) syntax:\n\ (fun (e2 : 'expr) _ (e1 : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "asr")), - e1), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "asr")))), + e1)), e2) : 'expr)))) ]); ((Some "unary minus"), (Some Camlp4.Sig.Grammar.NonA), @@ -2220,7 +2215,8 @@ Very old (no more supported) syntax:\n\ (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> - (Ast.ExOlb (_loc, i, Ast.ExNil _loc) : 'expr)))); + (Ast.ExOlb (_loc, i, (Ast.ExNil _loc)) : + 'expr)))); ([ Gram.Skeyword "?"; Gram.Snterm (Gram.Entry.obj @@ -2257,7 +2253,8 @@ Very old (no more supported) syntax:\n\ (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> - (Ast.ExLab (_loc, i, Ast.ExNil _loc) : 'expr)))); + (Ast.ExLab (_loc, i, (Ast.ExNil _loc)) : + 'expr)))); ([ Gram.Skeyword "~"; Gram.Snterm (Gram.Entry.obj @@ -2314,7 +2311,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e : 'expr) _ (_loc : Gram.Loc.t) -> (Ast.ExAcc (_loc, e, - Ast.ExId (_loc, Ast.IdLid (_loc, "val"))) : + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "val"))))) : 'expr)))) ]); ((Some "simple"), None, [ ([ Gram.Skeyword "("; Gram.Skeyword "module"; @@ -2330,7 +2328,7 @@ Very old (no more supported) syntax:\n\ (fun _ (pt : 'package_type) _ (me : 'module_expr) _ _ (_loc : Gram.Loc.t) -> - (Ast.ExPkg (_loc, Ast.MeTyc (_loc, me, pt)) : + (Ast.ExPkg (_loc, (Ast.MeTyc (_loc, me, pt))) : 'expr)))); ([ Gram.Skeyword "("; Gram.Skeyword "module"; Gram.Snterm @@ -2344,7 +2342,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "begin"; Gram.Skeyword "end" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) : + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) : 'expr)))); ([ Gram.Skeyword "begin"; Gram.Snterm @@ -2366,7 +2364,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (t : 'ctyp) _ (e : 'expr) _ (_loc : Gram.Loc.t) -> - (Ast.ExCoe (_loc, e, Ast.TyNil _loc, t) : + (Ast.ExCoe (_loc, e, (Ast.TyNil _loc), t) : 'expr)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ":"; Gram.Snterm @@ -2402,7 +2400,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (el : 'comma_expr) _ (e : 'expr) _ (_loc : Gram.Loc.t) -> - (Ast.ExTup (_loc, Ast.ExCom (_loc, e, el)) : + (Ast.ExTup (_loc, (Ast.ExCom (_loc, e, el))) : 'expr)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ":"; Gram.Snterm @@ -2415,7 +2413,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "("; Gram.Skeyword ")" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) : + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) : 'expr)))); ([ Gram.Skeyword "{<"; Gram.Snterm @@ -2430,7 +2428,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "{<"; Gram.Skeyword ">}" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.ExOvr (_loc, Ast.RbNil _loc) : 'expr)))); + (Ast.ExOvr (_loc, (Ast.RbNil _loc)) : 'expr)))); ([ Gram.Skeyword "{"; Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")"; Gram.Skeyword "with"; Gram.Snterm @@ -2451,7 +2449,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (el : 'label_expr_list) _ (_loc : Gram.Loc.t) -> - (Ast.ExRec (_loc, el, Ast.ExNil _loc) : + (Ast.ExRec (_loc, el, (Ast.ExNil _loc)) : 'expr)))); ([ Gram.Skeyword "[|"; Gram.Snterm @@ -2464,7 +2462,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "[|"; Gram.Skeyword "|]" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.ExArr (_loc, Ast.ExNil _loc) : 'expr)))); + (Ast.ExArr (_loc, (Ast.ExNil _loc)) : 'expr)))); ([ Gram.Skeyword "["; Gram.Snterm (Gram.Entry.obj @@ -2475,7 +2473,7 @@ Very old (no more supported) syntax:\n\ (fun _ (mk_list : 'sem_expr_for_list) _ (_loc : Gram.Loc.t) -> (mk_list - (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) : + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) : 'expr)))); ([ Gram.Skeyword "["; Gram.Snterm @@ -2490,7 +2488,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "["; Gram.Skeyword "]" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")) : + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))) : 'expr)))); ([ Gram.Skeyword "`"; Gram.Snterm @@ -2499,13 +2497,29 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (s : 'a_ident) _ (_loc : Gram.Loc.t) -> (Ast.ExVrn (_loc, s) : 'expr)))); - ([ Gram.Snterm - (Gram.Entry.obj - (val_longident : - 'val_longident Gram.Entry.t)) ], + ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (val_longident : + 'val_longident Gram.Entry.t))) ], (Gram.Action.mk (fun (i : 'val_longident) (_loc : Gram.Loc.t) -> (Ast.ExId (_loc, i) : 'expr)))); + ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (module_longident_dot_lparen : + 'module_longident_dot_lparen Gram. + Entry.t))); + Gram.Snterm + (Gram.Entry.obj + (sequence : 'sequence Gram.Entry.t)); + Gram.Skeyword ")" ], + (Gram.Action.mk + (fun _ (e : 'sequence) + (i : 'module_longident_dot_lparen) + (_loc : Gram.Loc.t) -> + (Ast.ExOpI (_loc, i, e) : 'expr)))); ([ Gram.Snterm (Gram.Entry.obj (a_CHAR : 'a_CHAR Gram.Entry.t)) ], (Gram.Action.mk @@ -2557,8 +2571,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("seq" as n)), s) -> (Ast.ExSeq (_loc, - Ast.ExAnt (_loc, - mk_anti ~c: "expr" n s)) : + (Ast.ExAnt (_loc, + (mk_anti ~c: "expr" n s)))) : 'expr) | _ -> assert false))); ([ Gram.Stoken @@ -2572,8 +2586,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("tup" as n)), s) -> (Ast.ExTup (_loc, - Ast.ExAnt (_loc, - mk_anti ~c: "expr" n s)) : + (Ast.ExAnt (_loc, + (mk_anti ~c: "expr" n s)))) : 'expr) | _ -> assert false))); ([ Gram.Stoken @@ -2587,7 +2601,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("`bool" as n)), s) -> (Ast.ExId (_loc, - Ast.IdAnt (_loc, mk_anti n s)) : + (Ast.IdAnt (_loc, (mk_anti n s)))) : 'expr) | _ -> assert false))); ([ Gram.Stoken @@ -2602,7 +2616,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("exp" | "" | "anti" as n)), s) -> - (Ast.ExAnt (_loc, mk_anti ~c: "expr" n s) : + (Ast.ExAnt (_loc, + (mk_anti ~c: "expr" n s)) : 'expr) | _ -> assert false))); ([ Gram.Stoken @@ -2622,25 +2637,50 @@ Very old (no more supported) syntax:\n\ ((fun () -> (None, [ (None, None, - [ ([ Gram.Snterm - (Gram.Entry.obj - (test_not_left_brace_nor_do : - 'test_not_left_brace_nor_do Gram.Entry.t)); - Gram.Snterm - (Gram.Entry.obj - (sequence : 'sequence Gram.Entry.t)); - Gram.Skeyword "done" ], + [ ([ Gram.Skeyword "done" ], (Gram.Action.mk - (fun _ (seq : 'sequence) _ (_loc : Gram.Loc.t) - -> (seq : 'do_sequence)))); - ([ Gram.Skeyword "{"; - Gram.Snterm - (Gram.Entry.obj - (sequence : 'sequence Gram.Entry.t)); - Gram.Skeyword "}" ], + (fun _ (_loc : Gram.Loc.t) -> + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) : + 'do_sequence)))); + ([ Gram.Stry + (Gram.srules do_sequence + [ ([ Gram.Snterm + (Gram.Entry.obj + (sequence : + 'sequence Gram.Entry.t)); + Gram.Skeyword "done" ], + (Gram.Action.mk + (fun _ (seq : 'sequence) + (_loc : Gram.Loc.t) -> + (seq : 'e__3)))) ]) ], (Gram.Action.mk - (fun _ (seq : 'sequence) _ (_loc : Gram.Loc.t) - -> (seq : 'do_sequence)))) ]) ])) + (fun (seq : 'e__3) (_loc : Gram.Loc.t) -> + (seq : 'do_sequence)))); + ([ Gram.Stry + (Gram.srules do_sequence + [ ([ Gram.Skeyword "{"; Gram.Skeyword "}" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (() : 'e__2)))) ]) ], + (Gram.Action.mk + (fun _ (_loc : Gram.Loc.t) -> + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) : + 'do_sequence)))); + ([ Gram.Stry + (Gram.srules do_sequence + [ ([ Gram.Skeyword "{"; + Gram.Snterm + (Gram.Entry.obj + (sequence : + 'sequence Gram.Entry.t)); + Gram.Skeyword "}" ], + (Gram.Action.mk + (fun _ (seq : 'sequence) _ + (_loc : Gram.Loc.t) -> + (seq : 'e__1)))) ]) ], + (Gram.Action.mk + (fun (seq : 'e__1) (_loc : Gram.Loc.t) -> + (seq : 'do_sequence)))) ]) ])) ()); Gram.extend (infixop5 : 'infixop5 Gram.Entry.t) ((fun () -> @@ -2651,15 +2691,15 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (x : Gram.Token.t) (_loc : Gram.Loc.t) -> - (Gram.Token.extract_string x : 'e__1)))); + (Gram.Token.extract_string x : 'e__4)))); ([ Gram.Skeyword "&" ], (Gram.Action.mk (fun (x : Gram.Token.t) (_loc : Gram.Loc.t) -> - (Gram.Token.extract_string x : 'e__1)))) ] ], + (Gram.Token.extract_string x : 'e__4)))) ] ], (Gram.Action.mk - (fun (x : 'e__1) (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdLid (_loc, x)) : + (fun (x : 'e__4) (_loc : Gram.Loc.t) -> + (Ast.ExId (_loc, (Ast.IdLid (_loc, x))) : 'infixop5)))) ]) ])) ()); Gram.extend (infixop6 : 'infixop6 Gram.Entry.t) @@ -2671,15 +2711,15 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (x : Gram.Token.t) (_loc : Gram.Loc.t) -> - (Gram.Token.extract_string x : 'e__2)))); + (Gram.Token.extract_string x : 'e__5)))); ([ Gram.Skeyword "or" ], (Gram.Action.mk (fun (x : Gram.Token.t) (_loc : Gram.Loc.t) -> - (Gram.Token.extract_string x : 'e__2)))) ] ], + (Gram.Token.extract_string x : 'e__5)))) ] ], (Gram.Action.mk - (fun (x : 'e__2) (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdLid (_loc, x)) : + (fun (x : 'e__5) (_loc : Gram.Loc.t) -> + (Ast.ExId (_loc, (Ast.IdLid (_loc, x))) : 'infixop6)))) ]) ])) ()); Gram.extend @@ -2693,10 +2733,23 @@ Very old (no more supported) syntax:\n\ (fun (e : 'expr) (_loc : Gram.Loc.t) -> (fun acc -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "::")), - e), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + acc) : + 'sem_expr_for_list)))); + ([ Gram.Snterm + (Gram.Entry.obj (expr : 'expr Gram.Entry.t)); + Gram.Skeyword ";" ], + (Gram.Action.mk + (fun _ (e : 'expr) (_loc : Gram.Loc.t) -> + (fun acc -> + Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), acc) : 'sem_expr_for_list)))); ([ Gram.Snterm @@ -2707,11 +2760,11 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> (fun acc -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "::")), - e), - el acc) : + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + (el acc)) : 'sem_expr_for_list)))) ]) ])) ()); Gram.extend (comma_expr : 'comma_expr Gram.Entry.t) @@ -2719,7 +2772,7 @@ Very old (no more supported) syntax:\n\ (None, [ (None, None, [ ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top") ], (Gram.Action.mk (fun (e : 'expr) (_loc : Gram.Loc.t) -> @@ -2735,7 +2788,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.ExAnt (_loc, - mk_anti ~c: "expr," n s) : + (mk_anti ~c: "expr," n s)) : 'comma_expr) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ], @@ -2796,7 +2849,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.ExAnt (_loc, - mk_anti ~c: "expr;" n s) : + (mk_anti ~c: "expr;" n s)) : 'sequence) | _ -> assert false))); ([ Gram.Skeyword "let"; Gram.Skeyword "open"; @@ -2821,7 +2874,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (el : 'sequence) _ (mb : 'module_binding0) (m : 'a_UIDENT) _ _ (_loc : Gram.Loc.t) -> - (Ast.ExLmd (_loc, m, mb, mksequence _loc el) : + (Ast.ExLmd (_loc, m, mb, + (mksequence _loc el)) : 'sequence)))); ([ Gram.Skeyword "let"; Gram.Skeyword "module"; Gram.Snterm @@ -2853,7 +2907,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (el : 'sequence) _ (bi : 'binding) (rf : 'opt_rec) _ (_loc : Gram.Loc.t) -> - (Ast.ExLet (_loc, rf, bi, mksequence _loc el) : + (Ast.ExLet (_loc, rf, bi, + (mksequence _loc el)) : 'sequence)))); ([ Gram.Skeyword "let"; Gram.Snterm @@ -2900,7 +2955,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.BiAnt (_loc, - mk_anti ~c: "binding" n s) : + (mk_anti ~c: "binding" n s)) : 'binding) | _ -> assert false))); ([ Gram.Stoken @@ -2917,8 +2972,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.BiEq (_loc, - Ast.PaAnt (_loc, - mk_anti ~c: "patt" n s), + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s))), e) : 'binding) | _ -> assert false))); @@ -2934,7 +2989,7 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("binding" | "list" as n)), s) -> (Ast.BiAnt (_loc, - mk_anti ~c: "binding" n s) : + (mk_anti ~c: "binding" n s)) : 'binding) | _ -> assert false))) ]) ])) ()); @@ -2963,28 +3018,30 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (bi : 'cvalue_binding) (_loc : Gram.Loc.t) -> (bi : 'fun_binding)))); - ([ Gram.Snterm - (Gram.Entry.obj - (labeled_ipatt : - 'labeled_ipatt Gram.Entry.t)); + ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (labeled_ipatt : + 'labeled_ipatt Gram.Entry.t))); Gram.Sself ], (Gram.Action.mk (fun (e : 'fun_binding) (p : 'labeled_ipatt) (_loc : Gram.Loc.t) -> (Ast.ExFun (_loc, - Ast.McArr (_loc, p, Ast.ExNil _loc, e)) : + (Ast.McArr (_loc, p, (Ast.ExNil _loc), e))) : 'fun_binding)))); - ([ Gram.Snterm - (Gram.Entry.obj - (test_lparen_type : - 'test_lparen_type Gram.Entry.t)); - Gram.Skeyword "("; Gram.Skeyword "type"; + ([ Gram.Stry + (Gram.srules fun_binding + [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (() : 'e__6)))) ]); Gram.Snterm (Gram.Entry.obj (a_LIDENT : 'a_LIDENT Gram.Entry.t)); Gram.Skeyword ")"; Gram.Sself ], (Gram.Action.mk - (fun (e : 'fun_binding) _ (i : 'a_LIDENT) _ _ _ + (fun (e : 'fun_binding) _ (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> (Ast.ExFUN (_loc, i, e) : 'fun_binding)))) ]) ])) ()); @@ -3000,14 +3057,15 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e : 'expr) _ (p : 'ipatt) (_loc : Gram.Loc.t) -> - (Ast.McArr (_loc, p, Ast.ExNil _loc, e) : + (Ast.McArr (_loc, p, (Ast.ExNil _loc), e) : 'match_case)))); ([ Gram.Skeyword "["; Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj - (match_case0 : 'match_case0 Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj + (match_case0 : + 'match_case0 Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (l : 'match_case0 list) _ @@ -3051,8 +3109,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.McArr (_loc, - Ast.PaAnt (_loc, - mk_anti ~c: "patt" n s), + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s))), w, e) : 'match_case0) | _ -> assert false))); @@ -3070,9 +3128,9 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.McArr (_loc, - Ast.PaAnt (_loc, - mk_anti ~c: "patt" n s), - Ast.ExNil _loc, e) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s))), + (Ast.ExNil _loc), e) : 'match_case0) | _ -> assert false))); ([ Gram.Stoken @@ -3086,7 +3144,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.McAnt (_loc, - mk_anti ~c: "match_case" n s) : + (mk_anti ~c: "match_case" n s)) : 'match_case0) | _ -> assert false))); ([ Gram.Stoken @@ -3102,7 +3160,7 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("match_case" | "list" as n)), s) -> (Ast.McAnt (_loc, - mk_anti ~c: "match_case" n s) : + (mk_anti ~c: "match_case" n s)) : 'match_case0) | _ -> assert false))) ]) ])) ()); @@ -3179,8 +3237,8 @@ Very old (no more supported) syntax:\n\ (fun (i : 'label_longident) (_loc : Gram.Loc.t) -> (Ast.RbEq (_loc, i, - Ast.ExId (_loc, - Ast.IdLid (_loc, lid_of_ident i))) : + (Ast.ExId (_loc, + (Ast.IdLid (_loc, (lid_of_ident i)))))) : 'label_expr)))); ([ Gram.Snterm (Gram.Entry.obj @@ -3204,7 +3262,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.RbAnt (_loc, - mk_anti ~c: "rec_binding" n s) : + (mk_anti ~c: "rec_binding" n s)) : 'label_expr) | _ -> assert false))); ([ Gram.Stoken @@ -3221,8 +3279,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.RbEq (_loc, - Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s), + (Ast.IdAnt (_loc, + (mk_anti ~c: "ident" n s))), e) : 'label_expr) | _ -> assert false))); @@ -3237,7 +3295,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "anti" as n)), s) -> (Ast.RbAnt (_loc, - mk_anti ~c: "rec_binding" n s) : + (mk_anti ~c: "rec_binding" n s)) : 'label_expr) | _ -> assert false))); ([ Gram.Stoken @@ -3251,7 +3309,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("rec_binding" as n)), s) -> (Ast.RbAnt (_loc, - mk_anti ~c: "rec_binding" n s) : + (mk_anti ~c: "rec_binding" n s)) : 'label_expr) | _ -> assert false))) ]) ])) ()); @@ -3259,23 +3317,26 @@ Very old (no more supported) syntax:\n\ ((fun () -> (None, [ (None, None, - [ ([ Gram.Snterm - (Gram.Entry.obj - (labeled_ipatt : - 'labeled_ipatt Gram.Entry.t)); + [ ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (labeled_ipatt : + 'labeled_ipatt Gram.Entry.t))); Gram.Snterm (Gram.Entry.obj (fun_def_cont : 'fun_def_cont Gram.Entry.t)) ], (Gram.Action.mk (fun ((w, e) : 'fun_def_cont) (p : 'labeled_ipatt) (_loc : Gram.Loc.t) -> - (Ast.ExFun (_loc, Ast.McArr (_loc, p, w, e)) : + (Ast.ExFun (_loc, + (Ast.McArr (_loc, p, w, e))) : 'fun_def)))); - ([ Gram.Snterm - (Gram.Entry.obj - (test_lparen_type : - 'test_lparen_type Gram.Entry.t)); - Gram.Skeyword "("; Gram.Skeyword "type"; + ([ Gram.Stry + (Gram.srules fun_def + [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (() : 'e__7)))) ]); Gram.Snterm (Gram.Entry.obj (a_LIDENT : 'a_LIDENT Gram.Entry.t)); @@ -3286,7 +3347,7 @@ Very old (no more supported) syntax:\n\ 'fun_def_cont_no_when Gram.Entry.t)) ], (Gram.Action.mk (fun (e : 'fun_def_cont_no_when) _ - (i : 'a_LIDENT) _ _ _ (_loc : Gram.Loc.t) -> + (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> (Ast.ExFUN (_loc, i, e) : 'fun_def)))) ]) ])) ()); Gram.extend (fun_def_cont : 'fun_def_cont Gram.Entry.t) @@ -3309,23 +3370,25 @@ Very old (no more supported) syntax:\n\ (fun (e : 'expr) _ (w : 'expr) _ (_loc : Gram.Loc.t) -> ((w, e) : 'fun_def_cont)))); - ([ Gram.Snterm - (Gram.Entry.obj - (labeled_ipatt : - 'labeled_ipatt Gram.Entry.t)); + ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (labeled_ipatt : + 'labeled_ipatt Gram.Entry.t))); Gram.Sself ], (Gram.Action.mk (fun ((w, e) : 'fun_def_cont) (p : 'labeled_ipatt) (_loc : Gram.Loc.t) -> (((Ast.ExNil _loc), (Ast.ExFun (_loc, - Ast.McArr (_loc, p, w, e)))) : + (Ast.McArr (_loc, p, w, e))))) : 'fun_def_cont)))); - ([ Gram.Snterm - (Gram.Entry.obj - (test_lparen_type : - 'test_lparen_type Gram.Entry.t)); - Gram.Skeyword "("; Gram.Skeyword "type"; + ([ Gram.Stry + (Gram.srules fun_def_cont + [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (() : 'e__8)))) ]); Gram.Snterm (Gram.Entry.obj (a_LIDENT : 'a_LIDENT Gram.Entry.t)); @@ -3336,7 +3399,7 @@ Very old (no more supported) syntax:\n\ 'fun_def_cont_no_when Gram.Entry.t)) ], (Gram.Action.mk (fun (e : 'fun_def_cont_no_when) _ - (i : 'a_LIDENT) _ _ _ (_loc : Gram.Loc.t) -> + (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> (((Ast.ExNil _loc), (Ast.ExFUN (_loc, i, e))) : 'fun_def_cont)))) ]) ])) ()); @@ -3351,30 +3414,33 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e : 'expr) _ (_loc : Gram.Loc.t) -> (e : 'fun_def_cont_no_when)))); - ([ Gram.Snterm - (Gram.Entry.obj - (labeled_ipatt : - 'labeled_ipatt Gram.Entry.t)); + ([ Gram.Stry + (Gram.Snterm + (Gram.Entry.obj + (labeled_ipatt : + 'labeled_ipatt Gram.Entry.t))); Gram.Snterm (Gram.Entry.obj (fun_def_cont : 'fun_def_cont Gram.Entry.t)) ], (Gram.Action.mk (fun ((w, e) : 'fun_def_cont) (p : 'labeled_ipatt) (_loc : Gram.Loc.t) -> - (Ast.ExFun (_loc, Ast.McArr (_loc, p, w, e)) : + (Ast.ExFun (_loc, + (Ast.McArr (_loc, p, w, e))) : 'fun_def_cont_no_when)))); - ([ Gram.Snterm - (Gram.Entry.obj - (test_lparen_type : - 'test_lparen_type Gram.Entry.t)); - Gram.Skeyword "("; Gram.Skeyword "type"; + ([ Gram.Stry + (Gram.srules fun_def_cont_no_when + [ ([ Gram.Skeyword "("; Gram.Skeyword "type" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (() : 'e__9)))) ]); Gram.Snterm (Gram.Entry.obj (a_LIDENT : 'a_LIDENT Gram.Entry.t)); Gram.Skeyword ")"; Gram.Sself ], (Gram.Action.mk (fun (e : 'fun_def_cont_no_when) _ - (i : 'a_LIDENT) _ _ _ (_loc : Gram.Loc.t) -> + (i : 'a_LIDENT) _ (_loc : Gram.Loc.t) -> (Ast.ExFUN (_loc, i, e) : 'fun_def_cont_no_when)))) ]) ])) ()); @@ -3435,8 +3501,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaOlb (_loc, mk_anti n i, - Ast.PaNil _loc) : + (Ast.PaOlb (_loc, (mk_anti n i), + (Ast.PaNil _loc)) : 'patt) | _ -> assert false))); ([ Gram.Skeyword "?"; @@ -3448,7 +3514,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | LIDENT i -> - (Ast.PaOlb (_loc, i, Ast.PaNil _loc) : + (Ast.PaOlb (_loc, i, (Ast.PaNil _loc)) : 'patt) | _ -> assert false))); ([ Gram.Skeyword "?"; @@ -3500,7 +3566,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | LIDENT i -> - (Ast.PaLab (_loc, i, Ast.PaNil _loc) : + (Ast.PaLab (_loc, i, (Ast.PaNil _loc)) : 'patt) | _ -> assert false))); ([ Gram.Skeyword "~"; @@ -3514,8 +3580,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaLab (_loc, mk_anti n i, - Ast.PaNil _loc) : + (Ast.PaLab (_loc, (mk_anti n i), + (Ast.PaNil _loc)) : 'patt) | _ -> assert false))); ([ Gram.Skeyword "~"; @@ -3530,7 +3596,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaLab (_loc, mk_anti n i, p) : + (Ast.PaLab (_loc, (mk_anti n i), p) : 'patt) | _ -> assert false))); ([ Gram.Stoken @@ -3582,7 +3648,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (pl : 'comma_patt) _ (p : 'patt) _ (_loc : Gram.Loc.t) -> - (Ast.PaTup (_loc, Ast.PaCom (_loc, p, pl)) : + (Ast.PaTup (_loc, (Ast.PaCom (_loc, p, pl))) : 'patt)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword "as"; Gram.Sself; Gram.Skeyword ")" ], @@ -3605,7 +3671,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "("; Gram.Skeyword ")" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.PaId (_loc, Ast.IdUid (_loc, "()")) : + (Ast.PaId (_loc, (Ast.IdUid (_loc, "()"))) : 'patt)))); ([ Gram.Skeyword "{"; Gram.Snterm @@ -3628,7 +3694,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "[|"; Gram.Skeyword "|]" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.PaArr (_loc, Ast.PaNil _loc) : 'patt)))); + (Ast.PaArr (_loc, (Ast.PaNil _loc)) : 'patt)))); ([ Gram.Skeyword "["; Gram.Snterm (Gram.Entry.obj @@ -3639,7 +3705,7 @@ Very old (no more supported) syntax:\n\ (fun _ (mk_list : 'sem_patt_for_list) _ (_loc : Gram.Loc.t) -> (mk_list - (Ast.PaId (_loc, Ast.IdUid (_loc, "[]"))) : + (Ast.PaId (_loc, (Ast.IdUid (_loc, "[]")))) : 'patt)))); ([ Gram.Skeyword "["; Gram.Snterm @@ -3654,7 +3720,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "["; Gram.Skeyword "]" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.PaId (_loc, Ast.IdUid (_loc, "[]")) : + (Ast.PaId (_loc, (Ast.IdUid (_loc, "[]"))) : 'patt)))); ([ Gram.Skeyword "-"; Gram.Snterm @@ -3662,14 +3728,14 @@ Very old (no more supported) syntax:\n\ (a_FLOAT : 'a_FLOAT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_FLOAT) _ (_loc : Gram.Loc.t) -> - (Ast.PaFlo (_loc, neg_string s) : 'patt)))); + (Ast.PaFlo (_loc, (neg_string s)) : 'patt)))); ([ Gram.Skeyword "-"; Gram.Snterm (Gram.Entry.obj (a_NATIVEINT : 'a_NATIVEINT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_NATIVEINT) _ (_loc : Gram.Loc.t) -> - (Ast.PaNativeInt (_loc, neg_string s) : + (Ast.PaNativeInt (_loc, (neg_string s)) : 'patt)))); ([ Gram.Skeyword "-"; Gram.Snterm @@ -3677,20 +3743,20 @@ Very old (no more supported) syntax:\n\ (a_INT64 : 'a_INT64 Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_INT64) _ (_loc : Gram.Loc.t) -> - (Ast.PaInt64 (_loc, neg_string s) : 'patt)))); + (Ast.PaInt64 (_loc, (neg_string s)) : 'patt)))); ([ Gram.Skeyword "-"; Gram.Snterm (Gram.Entry.obj (a_INT32 : 'a_INT32 Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_INT32) _ (_loc : Gram.Loc.t) -> - (Ast.PaInt32 (_loc, neg_string s) : 'patt)))); + (Ast.PaInt32 (_loc, (neg_string s)) : 'patt)))); ([ Gram.Skeyword "-"; Gram.Snterm (Gram.Entry.obj (a_INT : 'a_INT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_INT) _ (_loc : Gram.Loc.t) -> - (Ast.PaInt (_loc, neg_string s) : 'patt)))); + (Ast.PaInt (_loc, (neg_string s)) : 'patt)))); ([ Gram.Snterm (Gram.Entry.obj (a_CHAR : 'a_CHAR Gram.Entry.t)) ], (Gram.Action.mk @@ -3747,7 +3813,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("`bool" as n)), s) -> (Ast.PaId (_loc, - Ast.IdAnt (_loc, mk_anti n s)) : + (Ast.IdAnt (_loc, (mk_anti n s)))) : 'patt) | _ -> assert false))); ([ Gram.Stoken @@ -3761,8 +3827,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("tup" as n)), s) -> (Ast.PaTup (_loc, - Ast.PaAnt (_loc, - mk_anti ~c: "patt" n s)) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)))) : 'patt) | _ -> assert false))); ([ Gram.Stoken @@ -3777,7 +3843,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "pat" | "anti" as n)), s) -> - (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)) : 'patt) | _ -> assert false))) ]) ])) ()); @@ -3801,7 +3868,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.PaAnt (_loc, - mk_anti ~c: "patt," n s) : + (mk_anti ~c: "patt," n s)) : 'comma_patt) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ], @@ -3819,6 +3886,12 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (p : 'patt) (_loc : Gram.Loc.t) -> (p : 'sem_patt)))); + ([ Gram.Snterm + (Gram.Entry.obj (patt : 'patt Gram.Entry.t)); + Gram.Skeyword ";" ], + (Gram.Action.mk + (fun _ (p : 'patt) (_loc : Gram.Loc.t) -> + (p : 'sem_patt)))); ([ Gram.Stoken (((function | ANTIQUOT ("list", _) -> true @@ -3830,12 +3903,14 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.PaAnt (_loc, - mk_anti ~c: "patt;" n s) : + (mk_anti ~c: "patt;" n s)) : 'sem_patt) | _ -> assert false))); - ([ Gram.Sself; Gram.Skeyword ";"; Gram.Sself ], + ([ Gram.Snterm + (Gram.Entry.obj (patt : 'patt Gram.Entry.t)); + Gram.Skeyword ";"; Gram.Sself ], (Gram.Action.mk - (fun (p2 : 'sem_patt) _ (p1 : 'sem_patt) + (fun (p2 : 'sem_patt) _ (p1 : 'patt) (_loc : Gram.Loc.t) -> (Ast.PaSem (_loc, p1, p2) : 'sem_patt)))) ]) ])) ()); @@ -3850,10 +3925,23 @@ Very old (no more supported) syntax:\n\ (fun (p : 'patt) (_loc : Gram.Loc.t) -> (fun acc -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdUid (_loc, "::")), - p), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, "::")))), + p)), + acc) : + 'sem_patt_for_list)))); + ([ Gram.Snterm + (Gram.Entry.obj (patt : 'patt Gram.Entry.t)); + Gram.Skeyword ";" ], + (Gram.Action.mk + (fun _ (p : 'patt) (_loc : Gram.Loc.t) -> + (fun acc -> + Ast.PaApp (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, "::")))), + p)), acc) : 'sem_patt_for_list)))); ([ Gram.Snterm @@ -3864,11 +3952,11 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> (fun acc -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdUid (_loc, "::")), - p), - pl acc) : + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, "::")))), + p)), + (pl acc)) : 'sem_patt_for_list)))) ]) ])) ()); Gram.extend (label_patt_list : 'label_patt_list Gram.Entry.t) @@ -3896,7 +3984,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ _ _ (p1 : 'label_patt) (_loc : Gram.Loc.t) -> - (Ast.PaSem (_loc, p1, Ast.PaAny _loc) : + (Ast.PaSem (_loc, p1, (Ast.PaAny _loc)) : 'label_patt_list)))); ([ Gram.Snterm (Gram.Entry.obj @@ -3905,7 +3993,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ _ (p1 : 'label_patt) (_loc : Gram.Loc.t) -> - (Ast.PaSem (_loc, p1, Ast.PaAny _loc) : + (Ast.PaSem (_loc, p1, (Ast.PaAny _loc)) : 'label_patt_list)))); ([ Gram.Snterm (Gram.Entry.obj @@ -3928,8 +4016,8 @@ Very old (no more supported) syntax:\n\ (fun (i : 'label_longident) (_loc : Gram.Loc.t) -> (Ast.PaEq (_loc, i, - Ast.PaId (_loc, - Ast.IdLid (_loc, lid_of_ident i))) : + (Ast.PaId (_loc, + (Ast.IdLid (_loc, (lid_of_ident i)))))) : 'label_patt)))); ([ Gram.Snterm (Gram.Entry.obj @@ -3953,7 +4041,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.PaAnt (_loc, - mk_anti ~c: "patt;" n s) : + (mk_anti ~c: "patt;" n s)) : 'label_patt) | _ -> assert false))); ([ Gram.Stoken @@ -3980,7 +4068,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "pat" | "anti" as n)), s) -> - (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)) : 'label_patt) | _ -> assert false))) ]) ])) ()); @@ -3997,7 +4086,7 @@ Very old (no more supported) syntax:\n\ (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_LIDENT) (_loc : Gram.Loc.t) -> - (Ast.PaId (_loc, Ast.IdLid (_loc, s)) : + (Ast.PaId (_loc, (Ast.IdLid (_loc, s))) : 'ipatt)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ","; Gram.Snterm @@ -4007,7 +4096,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (pl : 'comma_ipatt) _ (p : 'ipatt) _ (_loc : Gram.Loc.t) -> - (Ast.PaTup (_loc, Ast.PaCom (_loc, p, pl)) : + (Ast.PaTup (_loc, (Ast.PaCom (_loc, p, pl))) : 'ipatt)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword "as"; Gram.Sself; Gram.Skeyword ")" ], @@ -4030,7 +4119,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "("; Gram.Skeyword ")" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.PaId (_loc, Ast.IdUid (_loc, "()")) : + (Ast.PaId (_loc, (Ast.IdUid (_loc, "()"))) : 'ipatt)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), @@ -4055,8 +4144,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("tup" as n)), s) -> (Ast.PaTup (_loc, - Ast.PaAnt (_loc, - mk_anti ~c: "patt" n s)) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)))) : 'ipatt) | _ -> assert false))); ([ Gram.Stoken @@ -4071,7 +4160,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "pat" | "anti" as n)), s) -> - (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)) : 'ipatt) | _ -> assert false))); ([ Gram.Skeyword "{"; @@ -4115,7 +4205,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.PaAnt (_loc, - mk_anti ~c: "patt," n s) : + (mk_anti ~c: "patt," n s)) : 'comma_ipatt) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ], @@ -4189,7 +4279,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.PaAnt (_loc, - mk_anti ~c: "patt;" n s) : + (mk_anti ~c: "patt;" n s)) : 'label_ipatt) | _ -> assert false))); ([ Gram.Stoken @@ -4204,7 +4294,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "pat" | "anti" as n)), s) -> - (Ast.PaAnt (_loc, mk_anti ~c: "patt" n s) : + (Ast.PaAnt (_loc, + (mk_anti ~c: "patt" n s)) : 'label_ipatt) | _ -> assert false))) ]) ])) ()); @@ -4259,7 +4350,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctypand" n s) : + (mk_anti ~c: "ctypand" n s)) : 'type_declaration) | _ -> assert false))); ([ Gram.Stoken @@ -4274,7 +4365,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "typ" | "anti" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'type_declaration) | _ -> assert false))) ]) ])) ()); @@ -4435,7 +4527,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "typ" | "anti" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti n s) : + (Ast.TyAnt (_loc, (mk_anti n s)) : 'type_parameter) | _ -> assert false))) ]) ])) ()); @@ -4451,7 +4543,7 @@ Very old (no more supported) syntax:\n\ ((Some "private"), (Some Camlp4.Sig.Grammar.NonA), [ ([ Gram.Skeyword "private"; Gram.Snterml - (Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t), + ((Gram.Entry.obj (ctyp : 'ctyp Gram.Entry.t)), "alias") ], (Gram.Action.mk (fun (t : 'ctyp) _ (_loc : Gram.Loc.t) -> @@ -4520,7 +4612,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> (let t = Ast.TyApp (_loc, t1, t2) in - try Ast.TyId (_loc, Ast.ident_of_ctyp t) + try Ast.TyId (_loc, (Ast.ident_of_ctyp t)) with | Invalid_argument _ -> t : 'ctyp)))) ]); ((Some "."), (Some Camlp4.Sig.Grammar.LeftA), @@ -4530,8 +4622,9 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> (try Ast.TyId (_loc, - Ast.IdAcc (_loc, Ast.ident_of_ctyp t1, - Ast.ident_of_ctyp t2)) + (Ast.IdAcc (_loc, + (Ast.ident_of_ctyp t1), + (Ast.ident_of_ctyp t2)))) with | Invalid_argument s -> raise (Stream.Error s) : @@ -4630,7 +4723,8 @@ Very old (no more supported) syntax:\n\ Gram.Skeyword "]" ], (Gram.Action.mk (fun _ _ _ (_loc : Gram.Loc.t) -> - (Ast.TyVrnSup (_loc, Ast.TyNil _loc) : 'ctyp)))); + (Ast.TyVrnSup (_loc, (Ast.TyNil _loc)) : + 'ctyp)))); ([ Gram.Skeyword "["; Gram.Skeyword "="; Gram.Snterm (Gram.Entry.obj @@ -4653,7 +4747,7 @@ Very old (no more supported) syntax:\n\ ([ Gram.Skeyword "["; Gram.Skeyword "]" ], (Gram.Action.mk (fun _ _ (_loc : Gram.Loc.t) -> - (Ast.TySum (_loc, Ast.TyNil _loc) : 'ctyp)))); + (Ast.TySum (_loc, (Ast.TyNil _loc)) : 'ctyp)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ], (Gram.Action.mk (fun _ (t : 'ctyp) _ (_loc : Gram.Loc.t) -> @@ -4666,21 +4760,21 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (tl : 'star_ctyp) _ (t : 'ctyp) _ (_loc : Gram.Loc.t) -> - (Ast.TyTup (_loc, Ast.TySta (_loc, t, tl)) : + (Ast.TyTup (_loc, (Ast.TySta (_loc, t, tl))) : 'ctyp)))); ([ Gram.Snterm (Gram.Entry.obj (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.TyId (_loc, Ast.IdUid (_loc, i)) : + (Ast.TyId (_loc, (Ast.IdUid (_loc, i))) : 'ctyp)))); ([ Gram.Snterm (Gram.Entry.obj (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) -> - (Ast.TyId (_loc, Ast.IdLid (_loc, i)) : + (Ast.TyId (_loc, (Ast.IdLid (_loc, i))) : 'ctyp)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), @@ -4705,8 +4799,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("id" as n)), s) -> (Ast.TyId (_loc, - Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s)) : + (Ast.IdAnt (_loc, + (mk_anti ~c: "ident" n s)))) : 'ctyp) | _ -> assert false))); ([ Gram.Stoken @@ -4720,8 +4814,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("tup" as n)), s) -> (Ast.TyTup (_loc, - Ast.TyAnt (_loc, - mk_anti ~c: "ctyp" n s)) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)))) : 'ctyp) | _ -> assert false))); ([ Gram.Stoken @@ -4736,7 +4830,8 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" | "typ" | "anti" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'ctyp) | _ -> assert false))); ([ Gram.Skeyword "_" ], @@ -4776,7 +4871,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp*" n s) : + (mk_anti ~c: "ctyp*" n s)) : 'star_ctyp) | _ -> assert false))); ([ Gram.Stoken @@ -4789,7 +4884,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'star_ctyp) | _ -> assert false))) ]) ])) ()); @@ -4804,7 +4900,7 @@ Very old (no more supported) syntax:\n\ (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.TyId (_loc, Ast.IdUid (_loc, s)) : + (Ast.TyId (_loc, (Ast.IdUid (_loc, s))) : 'constructor_declarations)))); ([ Gram.Snterm (Gram.Entry.obj @@ -4818,7 +4914,8 @@ Very old (no more supported) syntax:\n\ (fun (t : 'constructor_arg_list) _ (s : 'a_UIDENT) (_loc : Gram.Loc.t) -> (Ast.TyOf (_loc, - Ast.TyId (_loc, Ast.IdUid (_loc, s)), t) : + (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))), + t) : 'constructor_declarations)))); ([ Gram.Sself; Gram.Skeyword "|"; Gram.Sself ], (Gram.Action.mk @@ -4850,7 +4947,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp|" n s) : + (mk_anti ~c: "ctyp|" n s)) : 'constructor_declarations) | _ -> assert false))); ([ Gram.Stoken @@ -4863,7 +4960,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'constructor_declarations) | _ -> assert false))) ]) ])) ()); @@ -4878,7 +4976,7 @@ Very old (no more supported) syntax:\n\ (a_UIDENT : 'a_UIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (s : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.TyId (_loc, Ast.IdUid (_loc, s)) : + (Ast.TyId (_loc, (Ast.IdUid (_loc, s))) : 'constructor_declaration)))); ([ Gram.Snterm (Gram.Entry.obj @@ -4892,7 +4990,8 @@ Very old (no more supported) syntax:\n\ (fun (t : 'constructor_arg_list) _ (s : 'a_UIDENT) (_loc : Gram.Loc.t) -> (Ast.TyOf (_loc, - Ast.TyId (_loc, Ast.IdUid (_loc, s)), t) : + (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))), + t) : 'constructor_declaration)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), @@ -4916,7 +5015,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'constructor_declaration) | _ -> assert false))) ]) ])) ()); @@ -4948,7 +5048,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctypand" n s) : + (mk_anti ~c: "ctypand" n s)) : 'constructor_arg_list) | _ -> assert false))) ]) ])) ()); @@ -5003,8 +5103,8 @@ Very old (no more supported) syntax:\n\ (fun (t : 'poly_type) _ _ (s : 'a_LIDENT) (_loc : Gram.Loc.t) -> (Ast.TyCol (_loc, - Ast.TyId (_loc, Ast.IdLid (_loc, s)), - Ast.TyMut (_loc, t)) : + (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))), + (Ast.TyMut (_loc, t))) : 'label_declaration)))); ([ Gram.Snterm (Gram.Entry.obj @@ -5017,7 +5117,8 @@ Very old (no more supported) syntax:\n\ (fun (t : 'poly_type) _ (s : 'a_LIDENT) (_loc : Gram.Loc.t) -> (Ast.TyCol (_loc, - Ast.TyId (_loc, Ast.IdLid (_loc, s)), t) : + (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))), + t) : 'label_declaration)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), @@ -5042,7 +5143,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp;" n s) : + (mk_anti ~c: "ctyp;" n s)) : 'label_declaration) | _ -> assert false))); ([ Gram.Stoken @@ -5055,7 +5156,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'label_declaration) | _ -> assert false))) ]) ])) ()); @@ -5087,7 +5189,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (j : 'ident) _ (i : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.IdAcc (_loc, Ast.IdUid (_loc, i), j) : + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, i)), j) : 'ident)))); ([ Gram.Stoken (((function @@ -5104,8 +5206,8 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAcc (_loc, - Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s), + (Ast.IdAnt (_loc, + (mk_anti ~c: "ident" n s))), i) : 'ident) | _ -> assert false))); @@ -5135,7 +5237,7 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'ident) | _ -> assert false))) ]) ])) ()); @@ -5156,7 +5258,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (l : 'module_longident) _ (m : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.IdAcc (_loc, Ast.IdUid (_loc, m), l) : + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) : 'module_longident)))); ([ Gram.Stoken (((function @@ -5172,7 +5274,7 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'module_longident) | _ -> assert false))) ]) ])) ()); @@ -5224,10 +5326,52 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'module_longident_with_app) | _ -> assert false))) ]) ])) ()); + Gram.extend + (module_longident_dot_lparen : + 'module_longident_dot_lparen Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (a_UIDENT : 'a_UIDENT Gram.Entry.t)); + Gram.Skeyword "."; Gram.Skeyword "(" ], + (Gram.Action.mk + (fun _ _ (i : 'a_UIDENT) (_loc : Gram.Loc.t) -> + (Ast.IdUid (_loc, i) : + 'module_longident_dot_lparen)))); + ([ Gram.Snterm + (Gram.Entry.obj + (a_UIDENT : 'a_UIDENT Gram.Entry.t)); + Gram.Skeyword "."; Gram.Sself ], + (Gram.Action.mk + (fun (l : 'module_longident_dot_lparen) _ + (m : 'a_UIDENT) (_loc : Gram.Loc.t) -> + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) : + 'module_longident_dot_lparen)))); + ([ Gram.Stoken + (((function + | ANTIQUOT (("" | "id" | "anti" | "list"), + _) -> true + | _ -> false), + "ANTIQUOT ((\"\" | \"id\" | \"anti\" | \"list\"), _)")); + Gram.Skeyword "."; Gram.Skeyword "(" ], + (Gram.Action.mk + (fun _ _ (__camlp4_0 : Gram.Token.t) + (_loc : Gram.Loc.t) -> + match __camlp4_0 with + | ANTIQUOT + ((("" | "id" | "anti" | "list" as n)), s) + -> + (Ast.IdAnt (_loc, + (mk_anti ~c: "ident" n s)) : + 'module_longident_dot_lparen) + | _ -> assert false))) ]) ])) + ()); Gram.extend (type_longident : 'type_longident Gram.Entry.t) ((fun () -> (None, @@ -5274,7 +5418,7 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'type_longident) | _ -> assert false))) ]) ])) ()); @@ -5295,7 +5439,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (l : 'label_longident) _ (m : 'a_UIDENT) (_loc : Gram.Loc.t) -> - (Ast.IdAcc (_loc, Ast.IdUid (_loc, m), l) : + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), l) : 'label_longident)))); ([ Gram.Stoken (((function @@ -5311,7 +5455,7 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'label_longident) | _ -> assert false))) ]) ])) ()); @@ -5395,7 +5539,7 @@ Very old (no more supported) syntax:\n\ ((("" | "cdcl" | "anti" | "list" as n)), s) -> (Ast.CeAnt (_loc, - mk_anti ~c: "class_expr" n s) : + (mk_anti ~c: "class_expr" n s)) : 'class_declaration) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -5460,7 +5604,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun ((i, ot) : 'class_name_and_param) (mv : 'opt_virtual) (_loc : Gram.Loc.t) -> - (Ast.CtCon (_loc, mv, Ast.IdLid (_loc, i), + (Ast.CtCon (_loc, mv, (Ast.IdLid (_loc, i)), ot) : 'class_info_for_class_type)))) ]) ])) ()); @@ -5480,7 +5624,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun ((i, ot) : 'class_name_and_param) (mv : 'opt_virtual) (_loc : Gram.Loc.t) -> - (Ast.CeCon (_loc, mv, Ast.IdLid (_loc, i), + (Ast.CeCon (_loc, mv, (Ast.IdLid (_loc, i)), ot) : 'class_info_for_class_expr)))) ]) ])) ()); @@ -5533,7 +5677,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp," n s) : + (mk_anti ~c: "ctyp," n s)) : 'comma_type_parameter) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ], @@ -5581,7 +5725,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp," n s) : + (mk_anti ~c: "ctyp," n s)) : 'comma_ctyp) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword ","; Gram.Sself ], @@ -5643,7 +5787,7 @@ Very old (no more supported) syntax:\n\ ((Some "apply"), (Some Camlp4.Sig.Grammar.NonA), [ ([ Gram.Sself; Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "label") ], (Gram.Action.mk (fun (e : 'expr) (ce : 'class_expr) @@ -5710,7 +5854,7 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("" | "cexp" | "anti" as n)), s) -> (Ast.CeAnt (_loc, - mk_anti ~c: "class_expr" n s) : + (mk_anti ~c: "class_expr" n s)) : 'class_expr) | _ -> assert false))) ]) ])) ()); @@ -5727,8 +5871,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (ci : 'class_longident) (_loc : Gram.Loc.t) -> - (Ast.CeCon (_loc, Ast.BFalse, ci, - Ast.TyNil _loc) : + (Ast.CeCon (_loc, Ast.ViNil, ci, + (Ast.TyNil _loc)) : 'class_longident_and_param)))); ([ Gram.Snterm (Gram.Entry.obj @@ -5743,7 +5887,7 @@ Very old (no more supported) syntax:\n\ (fun _ (t : 'comma_ctyp) _ (ci : 'class_longident) (_loc : Gram.Loc.t) -> - (Ast.CeCon (_loc, Ast.BFalse, ci, t) : + (Ast.CeCon (_loc, Ast.ViNil, ci, t) : 'class_longident_and_param)))) ]) ])) ()); Gram.extend (class_structure : 'class_structure Gram.Entry.t) @@ -5762,9 +5906,9 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (cst : 'class_str_item) (_loc : Gram.Loc.t) -> - (cst : 'e__3)))) ]) ], + (cst : 'e__10)))) ]) ], (Gram.Action.mk - (fun (l : 'e__3 list) (_loc : Gram.Loc.t) -> + (fun (l : 'e__10 list) (_loc : Gram.Loc.t) -> (Ast.crSem_of_list l : 'class_structure)))); ([ Gram.Stoken (((function @@ -5784,8 +5928,8 @@ Very old (no more supported) syntax:\n\ ((("" | "cst" | "anti" | "list" as n)), s) -> (Ast.CrSem (_loc, - Ast.CrAnt (_loc, - mk_anti ~c: "class_str_item" n s), + (Ast.CrAnt (_loc, + (mk_anti ~c: "class_str_item" n s))), cst) : 'class_structure) | _ -> assert false))); @@ -5803,7 +5947,7 @@ Very old (no more supported) syntax:\n\ ((("" | "cst" | "anti" | "list" as n)), s) -> (Ast.CrAnt (_loc, - mk_anti ~c: "class_str_item" n s) : + (mk_anti ~c: "class_str_item" n s)) : 'class_structure) | _ -> assert false))) ]) ])) ()); @@ -5859,41 +6003,59 @@ Very old (no more supported) syntax:\n\ (fun (t2 : 'ctyp) _ (t1 : 'ctyp) _ (_loc : Gram.Loc.t) -> (Ast.CrCtr (_loc, t1, t2) : 'class_str_item)))); - ([ Gram.Skeyword "method"; + ([ Gram.Snterm + (Gram.Entry.obj + (method_opt_override : + 'method_opt_override Gram.Entry.t)); Gram.Snterm (Gram.Entry.obj (opt_private : 'opt_private Gram.Entry.t)); + Gram.Skeyword "virtual"; Gram.Snterm (Gram.Entry.obj (label : 'label Gram.Entry.t)); + Gram.Skeyword ":"; Gram.Snterm (Gram.Entry.obj - (opt_polyt : 'opt_polyt Gram.Entry.t)); - Gram.Snterm - (Gram.Entry.obj - (fun_binding : 'fun_binding Gram.Entry.t)) ], + (poly_type : 'poly_type Gram.Entry.t)) ], (Gram.Action.mk - (fun (e : 'fun_binding) (topt : 'opt_polyt) - (l : 'label) (pf : 'opt_private) _ - (_loc : Gram.Loc.t) -> - (Ast.CrMth (_loc, l, pf, e, topt) : + (fun (t : 'poly_type) _ (l : 'label) _ + (pf : 'opt_private) + (o : 'method_opt_override) + (_loc : Gram.Loc.t) -> + (if o <> Ast.OvNil + then + raise + (Stream.Error + "override (!) is incompatible with virtual") + else Ast.CrVir (_loc, l, pf, t) : 'class_str_item)))); - ([ Gram.Skeyword "method"; + ([ Gram.Snterm + (Gram.Entry.obj + (method_opt_override : + 'method_opt_override Gram.Entry.t)); Gram.Snterm (Gram.Entry.obj (opt_private : 'opt_private Gram.Entry.t)); - Gram.Skeyword "virtual"; Gram.Snterm (Gram.Entry.obj (label : 'label Gram.Entry.t)); - Gram.Skeyword ":"; Gram.Snterm (Gram.Entry.obj - (poly_type : 'poly_type Gram.Entry.t)) ], + (opt_polyt : 'opt_polyt Gram.Entry.t)); + Gram.Snterm + (Gram.Entry.obj + (fun_binding : 'fun_binding Gram.Entry.t)) ], (Gram.Action.mk - (fun (t : 'poly_type) _ (l : 'label) _ - (pf : 'opt_private) _ (_loc : Gram.Loc.t) -> - (Ast.CrVir (_loc, l, pf, t) : + (fun (e : 'fun_binding) (topt : 'opt_polyt) + (l : 'label) (pf : 'opt_private) + (o : 'method_opt_override) + (_loc : Gram.Loc.t) -> + (Ast.CrMth (_loc, l, o, pf, e, topt) : 'class_str_item)))); - ([ Gram.Skeyword "method"; Gram.Skeyword "virtual"; + ([ Gram.Snterm + (Gram.Entry.obj + (method_opt_override : + 'method_opt_override Gram.Entry.t)); + Gram.Skeyword "virtual"; Gram.Snterm (Gram.Entry.obj (opt_private : 'opt_private Gram.Entry.t)); @@ -5905,13 +6067,20 @@ Very old (no more supported) syntax:\n\ (poly_type : 'poly_type Gram.Entry.t)) ], (Gram.Action.mk (fun (t : 'poly_type) _ (l : 'label) - (pf : 'opt_private) _ _ (_loc : Gram.Loc.t) - -> - (Ast.CrVir (_loc, l, pf, t) : + (pf : 'opt_private) _ + (o : 'method_opt_override) + (_loc : Gram.Loc.t) -> + (if o <> Ast.OvNil + then + raise + (Stream.Error + "override (!) is incompatible with virtual") + else Ast.CrVir (_loc, l, pf, t) : 'class_str_item)))); ([ Gram.Snterm (Gram.Entry.obj - (value_val : 'value_val Gram.Entry.t)); + (value_val_opt_override : + 'value_val_opt_override Gram.Entry.t)); Gram.Skeyword "virtual"; Gram.Snterm (Gram.Entry.obj @@ -5924,13 +6093,20 @@ Very old (no more supported) syntax:\n\ (poly_type : 'poly_type Gram.Entry.t)) ], (Gram.Action.mk (fun (t : 'poly_type) _ (l : 'label) - (mf : 'opt_mutable) _ _ (_loc : Gram.Loc.t) - -> - (Ast.CrVvr (_loc, l, mf, t) : + (mf : 'opt_mutable) _ + (o : 'value_val_opt_override) + (_loc : Gram.Loc.t) -> + (if o <> Ast.OvNil + then + raise + (Stream.Error + "override (!) is incompatible with virtual") + else Ast.CrVvr (_loc, l, mf, t) : 'class_str_item)))); ([ Gram.Snterm (Gram.Entry.obj - (value_val : 'value_val Gram.Entry.t)); + (value_val_opt_override : + 'value_val_opt_override Gram.Entry.t)); Gram.Snterm (Gram.Entry.obj (opt_mutable : 'opt_mutable Gram.Entry.t)); @@ -5943,12 +6119,20 @@ Very old (no more supported) syntax:\n\ (poly_type : 'poly_type Gram.Entry.t)) ], (Gram.Action.mk (fun (t : 'poly_type) _ (l : 'label) _ - (mf : 'opt_mutable) _ (_loc : Gram.Loc.t) -> - (Ast.CrVvr (_loc, l, mf, t) : + (mf : 'opt_mutable) + (o : 'value_val_opt_override) + (_loc : Gram.Loc.t) -> + (if o <> Ast.OvNil + then + raise + (Stream.Error + "override (!) is incompatible with virtual") + else Ast.CrVvr (_loc, l, mf, t) : 'class_str_item)))); ([ Gram.Snterm (Gram.Entry.obj - (value_val : 'value_val Gram.Entry.t)); + (value_val_opt_override : + 'value_val_opt_override Gram.Entry.t)); Gram.Snterm (Gram.Entry.obj (opt_mutable : 'opt_mutable Gram.Entry.t)); @@ -5960,21 +6144,27 @@ Very old (no more supported) syntax:\n\ 'cvalue_binding Gram.Entry.t)) ], (Gram.Action.mk (fun (e : 'cvalue_binding) (lab : 'label) - (mf : 'opt_mutable) _ (_loc : Gram.Loc.t) -> - (Ast.CrVal (_loc, lab, mf, e) : + (mf : 'opt_mutable) + (o : 'value_val_opt_override) + (_loc : Gram.Loc.t) -> + (Ast.CrVal (_loc, lab, o, mf, e) : 'class_str_item)))); ([ Gram.Skeyword "inherit"; Gram.Snterm (Gram.Entry.obj + (opt_override : 'opt_override Gram.Entry.t)); + Gram.Snterm + (Gram.Entry.obj (class_expr : 'class_expr Gram.Entry.t)); Gram.Snterm (Gram.Entry.obj (opt_as_lident : 'opt_as_lident Gram.Entry.t)) ], (Gram.Action.mk - (fun (pb : 'opt_as_lident) (ce : 'class_expr) _ - (_loc : Gram.Loc.t) -> - (Ast.CrInh (_loc, ce, pb) : 'class_str_item)))); + (fun (pb : 'opt_as_lident) (ce : 'class_expr) + (o : 'opt_override) _ (_loc : Gram.Loc.t) -> + (Ast.CrInh (_loc, o, ce, pb) : + 'class_str_item)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), "QUOTATION _")) ], @@ -6001,10 +6191,80 @@ Very old (no more supported) syntax:\n\ ((("" | "cst" | "anti" | "list" as n)), s) -> (Ast.CrAnt (_loc, - mk_anti ~c: "class_str_item" n s) : + (mk_anti ~c: "class_str_item" n s)) : 'class_str_item) | _ -> assert false))) ]) ])) ()); + Gram.extend + (method_opt_override : 'method_opt_override Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Skeyword "method" ], + (Gram.Action.mk + (fun _ (_loc : Gram.Loc.t) -> + (Ast.OvNil : 'method_opt_override)))); + ([ Gram.Skeyword "method"; + Gram.Stoken + (((function + | ANTIQUOT (("!" | "override" | "anti"), _) + -> true + | _ -> false), + "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ], + (Gram.Action.mk + (fun (__camlp4_0 : Gram.Token.t) _ + (_loc : Gram.Loc.t) -> + match __camlp4_0 with + | ANTIQUOT + ((("!" | "override" | "anti" as n)), s) + -> + (Ast.OvAnt (mk_anti n s) : + 'method_opt_override) + | _ -> assert false))); + ([ Gram.Skeyword "method"; Gram.Skeyword "!" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (Ast.OvOverride : 'method_opt_override)))) ]) ])) + ()); + Gram.extend + (value_val_opt_override : + 'value_val_opt_override Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (value_val : 'value_val Gram.Entry.t)) ], + (Gram.Action.mk + (fun _ (_loc : Gram.Loc.t) -> + (Ast.OvNil : 'value_val_opt_override)))); + ([ Gram.Snterm + (Gram.Entry.obj + (value_val : 'value_val Gram.Entry.t)); + Gram.Stoken + (((function + | ANTIQUOT (("!" | "override" | "anti"), _) + -> true + | _ -> false), + "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ], + (Gram.Action.mk + (fun (__camlp4_0 : Gram.Token.t) _ + (_loc : Gram.Loc.t) -> + match __camlp4_0 with + | ANTIQUOT + ((("!" | "override" | "anti" as n)), s) + -> + (Ast.OvAnt (mk_anti n s) : + 'value_val_opt_override) + | _ -> assert false))); + ([ Gram.Snterm + (Gram.Entry.obj + (value_val : 'value_val Gram.Entry.t)); + Gram.Skeyword "!" ], + (Gram.Action.mk + (fun _ _ (_loc : Gram.Loc.t) -> + (Ast.OvOverride : 'value_val_opt_override)))) ]) ])) + ()); Gram.extend (opt_as_lident : 'opt_as_lident Gram.Entry.t) ((fun () -> (None, @@ -6050,7 +6310,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e : 'expr) _ (t : 'ctyp) _ (_loc : Gram.Loc.t) -> - (Ast.ExCoe (_loc, e, Ast.TyNil _loc, t) : + (Ast.ExCoe (_loc, e, (Ast.TyNil _loc), t) : 'cvalue_binding)))); ([ Gram.Skeyword ":"; Gram.Snterm @@ -6153,7 +6413,7 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("" | "ctyp" | "anti" as n)), s) -> (Ast.CtAnt (_loc, - mk_anti ~c: "class_type" n s) : + (mk_anti ~c: "class_type" n s)) : 'class_type) | _ -> assert false))) ]) ])) ()); @@ -6170,8 +6430,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (i : 'class_type_longident) (_loc : Gram.Loc.t) -> - (Ast.CtCon (_loc, Ast.BFalse, i, - Ast.TyNil _loc) : + (Ast.CtCon (_loc, Ast.ViNil, i, + (Ast.TyNil _loc)) : 'class_type_longident_and_param)))); ([ Gram.Snterm (Gram.Entry.obj @@ -6186,7 +6446,7 @@ Very old (no more supported) syntax:\n\ (fun _ (t : 'comma_ctyp) _ (i : 'class_type_longident) (_loc : Gram.Loc.t) -> - (Ast.CtCon (_loc, Ast.BFalse, i, t) : + (Ast.CtCon (_loc, Ast.ViNil, i, t) : 'class_type_longident_and_param)))) ]) ])) ()); Gram.extend (class_type_plus : 'class_type_plus Gram.Entry.t) @@ -6241,9 +6501,9 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun _ (csg : 'class_sig_item) (_loc : Gram.Loc.t) -> - (csg : 'e__4)))) ]) ], + (csg : 'e__11)))) ]) ], (Gram.Action.mk - (fun (l : 'e__4 list) (_loc : Gram.Loc.t) -> + (fun (l : 'e__11 list) (_loc : Gram.Loc.t) -> (Ast.cgSem_of_list l : 'class_signature)))); ([ Gram.Stoken (((function @@ -6263,8 +6523,8 @@ Very old (no more supported) syntax:\n\ ((("" | "csg" | "anti" | "list" as n)), s) -> (Ast.CgSem (_loc, - Ast.CgAnt (_loc, - mk_anti ~c: "class_sig_item" n s), + (Ast.CgAnt (_loc, + (mk_anti ~c: "class_sig_item" n s))), csg) : 'class_signature) | _ -> assert false))); @@ -6282,7 +6542,7 @@ Very old (no more supported) syntax:\n\ ((("" | "csg" | "anti" | "list" as n)), s) -> (Ast.CgAnt (_loc, - mk_anti ~c: "class_sig_item" n s) : + (mk_anti ~c: "class_sig_item" n s)) : 'class_signature) | _ -> assert false))) ]) ])) ()); @@ -6403,7 +6663,7 @@ Very old (no more supported) syntax:\n\ ((("" | "csg" | "anti" | "list" as n)), s) -> (Ast.CgAnt (_loc, - mk_anti ~c: "class_sig_item" n s) : + (mk_anti ~c: "class_sig_item" n s)) : 'class_sig_item) | _ -> assert false))) ]) ])) ()); @@ -6466,7 +6726,7 @@ Very old (no more supported) syntax:\n\ ((("" | "typ" | "anti" | "list" as n)), s) -> (Ast.CtAnt (_loc, - mk_anti ~c: "class_type" n s) : + (mk_anti ~c: "class_type" n s)) : 'class_description) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -6523,7 +6783,7 @@ Very old (no more supported) syntax:\n\ ((("" | "typ" | "anti" | "list" as n)), s) -> (Ast.CtAnt (_loc, - mk_anti ~c: "class_type" n s) : + (mk_anti ~c: "class_type" n s)) : 'class_type_declaration) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -6572,7 +6832,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (e : 'expr) _ (l : 'label) (_loc : Gram.Loc.t) -> - (Ast.RbEq (_loc, Ast.IdLid (_loc, l), e) : + (Ast.RbEq (_loc, (Ast.IdLid (_loc, l)), e) : 'field_expr)))); ([ Gram.Stoken (((function @@ -6585,7 +6845,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.RbAnt (_loc, - mk_anti ~c: "rec_binding" n s) : + (mk_anti ~c: "rec_binding" n s)) : 'field_expr) | _ -> assert false))); ([ Gram.Stoken @@ -6600,7 +6860,7 @@ Very old (no more supported) syntax:\n\ | ANTIQUOT ((("" | "bi" | "anti" as n)), s) -> (Ast.RbAnt (_loc, - mk_anti ~c: "rec_binding" n s) : + (mk_anti ~c: "rec_binding" n s)) : 'field_expr) | _ -> assert false))) ]) ])) ()); @@ -6651,7 +6911,8 @@ Very old (no more supported) syntax:\n\ (fun (t : 'poly_type) _ (lab : 'a_LIDENT) (_loc : Gram.Loc.t) -> (Ast.TyCol (_loc, - Ast.TyId (_loc, Ast.IdLid (_loc, lab)), t) : + (Ast.TyId (_loc, (Ast.IdLid (_loc, lab)))), + t) : 'meth_decl)))); ([ Gram.Stoken (((function | QUOTATION _ -> true | _ -> false), @@ -6676,7 +6937,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp;" n s) : + (mk_anti ~c: "ctyp;" n s)) : 'meth_decl) | _ -> assert false))); ([ Gram.Stoken @@ -6689,7 +6950,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'meth_decl) | _ -> assert false))) ]) ])) ()); @@ -6702,7 +6964,7 @@ Very old (no more supported) syntax:\n\ (opt_dot_dot : 'opt_dot_dot Gram.Entry.t)) ], (Gram.Action.mk (fun (v : 'opt_dot_dot) (_loc : Gram.Loc.t) -> - (Ast.TyObj (_loc, Ast.TyNil _loc, v) : + (Ast.TyObj (_loc, (Ast.TyNil _loc), v) : 'opt_meth_list)))); ([ Gram.Snterm (Gram.Entry.obj @@ -6765,7 +7027,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'typevars) | _ -> assert false))); ([ Gram.Sself; Gram.Sself ], @@ -6794,7 +7057,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (t : 'amp_ctyp) _ (i : 'a_ident) _ (_loc : Gram.Loc.t) -> - (Ast.TyOf (_loc, Ast.TyVrn (_loc, i), t) : + (Ast.TyOf (_loc, (Ast.TyVrn (_loc, i)), t) : 'row_field)))); ([ Gram.Skeyword "`"; Gram.Snterm @@ -6807,7 +7070,7 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (t : 'amp_ctyp) _ _ (i : 'a_ident) _ (_loc : Gram.Loc.t) -> - (Ast.TyOfAmp (_loc, Ast.TyVrn (_loc, i), t) : + (Ast.TyOfAmp (_loc, (Ast.TyVrn (_loc, i)), t) : 'row_field)))); ([ Gram.Skeyword "`"; Gram.Snterm @@ -6832,7 +7095,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp|" n s) : + (mk_anti ~c: "ctyp|" n s)) : 'row_field) | _ -> assert false))); ([ Gram.Stoken @@ -6845,7 +7108,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'row_field) | _ -> assert false))) ]) ])) ()); @@ -6869,7 +7133,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("list" as n)), s) -> (Ast.TyAnt (_loc, - mk_anti ~c: "ctyp&" n s) : + (mk_anti ~c: "ctyp&" n s)) : 'amp_ctyp) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "&"; Gram.Sself ], @@ -6904,7 +7168,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "typ" as n)), s) -> - (Ast.TyAnt (_loc, mk_anti ~c: "ctyp" n s) : + (Ast.TyAnt (_loc, + (mk_anti ~c: "ctyp" n s)) : 'name_tags) | _ -> assert false))) ]) ])) ()); @@ -6979,8 +7244,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaOlb (_loc, mk_anti n i, - Ast.PaNil _loc) : + (Ast.PaOlb (_loc, (mk_anti n i), + (Ast.PaNil _loc)) : 'ipatt) | _ -> assert false))); ([ Gram.Skeyword "?"; @@ -6992,7 +7257,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | LIDENT i -> - (Ast.PaOlb (_loc, i, Ast.PaNil _loc) : + (Ast.PaOlb (_loc, i, (Ast.PaNil _loc)) : 'ipatt) | _ -> assert false))); ([ Gram.Skeyword "?"; @@ -7044,7 +7309,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | LIDENT i -> - (Ast.PaLab (_loc, i, Ast.PaNil _loc) : + (Ast.PaLab (_loc, i, (Ast.PaNil _loc)) : 'ipatt) | _ -> assert false))); ([ Gram.Skeyword "~"; @@ -7058,8 +7323,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaLab (_loc, mk_anti n i, - Ast.PaNil _loc) : + (Ast.PaLab (_loc, (mk_anti n i), + (Ast.PaNil _loc)) : 'ipatt) | _ -> assert false))); ([ Gram.Skeyword "~"; @@ -7074,7 +7339,7 @@ Very old (no more supported) syntax:\n\ _ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" | "lid" as n)), i) -> - (Ast.PaLab (_loc, mk_anti n i, p) : + (Ast.PaLab (_loc, (mk_anti n i), p) : 'ipatt) | _ -> assert false))); ([ Gram.Stoken @@ -7114,25 +7379,25 @@ Very old (no more supported) syntax:\n\ [ (None, None, [ ([ Gram.Stoken (((function - | ANTIQUOT ("to", _) -> true + | ANTIQUOT (("to" | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"to\", _)")) ], + "ANTIQUOT ((\"to\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT ((("to" as n)), s) -> - (Ast.BAnt (mk_anti n s) : + | ANTIQUOT ((("to" | "anti" as n)), s) -> + (Ast.DiAnt (mk_anti n s) : 'direction_flag) | _ -> assert false))); ([ Gram.Skeyword "downto" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'direction_flag)))); + (Ast.DiDownto : 'direction_flag)))); ([ Gram.Skeyword "to" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'direction_flag)))) ]) ])) + (Ast.DiTo : 'direction_flag)))) ]) ])) ()); Gram.extend (opt_private : 'opt_private Gram.Entry.t) ((fun () -> @@ -7141,23 +7406,24 @@ Very old (no more supported) syntax:\n\ [ ([], (Gram.Action.mk (fun (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'opt_private)))); + (Ast.PrNil : 'opt_private)))); ([ Gram.Stoken (((function - | ANTIQUOT ("private", _) -> true + | ANTIQUOT (("private" | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"private\", _)")) ], + "ANTIQUOT ((\"private\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT ((("private" as n)), s) -> - (Ast.BAnt (mk_anti n s) : 'opt_private) + | ANTIQUOT ((("private" | "anti" as n)), s) + -> + (Ast.PrAnt (mk_anti n s) : 'opt_private) | _ -> assert false))); ([ Gram.Skeyword "private" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'opt_private)))) ]) ])) + (Ast.PrPrivate : 'opt_private)))) ]) ])) ()); Gram.extend (opt_mutable : 'opt_mutable Gram.Entry.t) ((fun () -> @@ -7166,23 +7432,24 @@ Very old (no more supported) syntax:\n\ [ ([], (Gram.Action.mk (fun (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'opt_mutable)))); + (Ast.MuNil : 'opt_mutable)))); ([ Gram.Stoken (((function - | ANTIQUOT ("mutable", _) -> true + | ANTIQUOT (("mutable" | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"mutable\", _)")) ], + "ANTIQUOT ((\"mutable\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT ((("mutable" as n)), s) -> - (Ast.BAnt (mk_anti n s) : 'opt_mutable) + | ANTIQUOT ((("mutable" | "anti" as n)), s) + -> + (Ast.MuAnt (mk_anti n s) : 'opt_mutable) | _ -> assert false))); ([ Gram.Skeyword "mutable" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'opt_mutable)))) ]) ])) + (Ast.MuMutable : 'opt_mutable)))) ]) ])) ()); Gram.extend (opt_virtual : 'opt_virtual Gram.Entry.t) ((fun () -> @@ -7191,23 +7458,24 @@ Very old (no more supported) syntax:\n\ [ ([], (Gram.Action.mk (fun (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'opt_virtual)))); + (Ast.ViNil : 'opt_virtual)))); ([ Gram.Stoken (((function - | ANTIQUOT ("virtual", _) -> true + | ANTIQUOT (("virtual" | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"virtual\", _)")) ], + "ANTIQUOT ((\"virtual\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT ((("virtual" as n)), s) -> - (Ast.BAnt (mk_anti n s) : 'opt_virtual) + | ANTIQUOT ((("virtual" | "anti" as n)), s) + -> + (Ast.ViAnt (mk_anti n s) : 'opt_virtual) | _ -> assert false))); ([ Gram.Skeyword "virtual" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'opt_virtual)))) ]) ])) + (Ast.ViVirtual : 'opt_virtual)))) ]) ])) ()); Gram.extend (opt_dot_dot : 'opt_dot_dot Gram.Entry.t) ((fun () -> @@ -7216,23 +7484,23 @@ Very old (no more supported) syntax:\n\ [ ([], (Gram.Action.mk (fun (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'opt_dot_dot)))); + (Ast.RvNil : 'opt_dot_dot)))); ([ Gram.Stoken (((function - | ANTIQUOT ("..", _) -> true + | ANTIQUOT ((".." | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"..\", _)")) ], + "ANTIQUOT ((\"..\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT (((".." as n)), s) -> - (Ast.BAnt (mk_anti n s) : 'opt_dot_dot) + | ANTIQUOT (((".." | "anti" as n)), s) -> + (Ast.RvAnt (mk_anti n s) : 'opt_dot_dot) | _ -> assert false))); ([ Gram.Skeyword ".." ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'opt_dot_dot)))) ]) ])) + (Ast.RvRowVar : 'opt_dot_dot)))) ]) ])) ()); Gram.extend (opt_rec : 'opt_rec Gram.Entry.t) ((fun () -> @@ -7241,23 +7509,51 @@ Very old (no more supported) syntax:\n\ [ ([], (Gram.Action.mk (fun (_loc : Gram.Loc.t) -> - (Ast.BFalse : 'opt_rec)))); + (Ast.ReNil : 'opt_rec)))); ([ Gram.Stoken (((function - | ANTIQUOT ("rec", _) -> true + | ANTIQUOT (("rec" | "anti"), _) -> true | _ -> false), - "ANTIQUOT (\"rec\", _)")) ], + "ANTIQUOT ((\"rec\" | \"anti\"), _)")) ], (Gram.Action.mk (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | ANTIQUOT ((("rec" as n)), s) -> - (Ast.BAnt (mk_anti n s) : 'opt_rec) + | ANTIQUOT ((("rec" | "anti" as n)), s) -> + (Ast.ReAnt (mk_anti n s) : 'opt_rec) | _ -> assert false))); ([ Gram.Skeyword "rec" ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.BTrue : 'opt_rec)))) ]) ])) + (Ast.ReRecursive : 'opt_rec)))) ]) ])) + ()); + Gram.extend (opt_override : 'opt_override Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([], + (Gram.Action.mk + (fun (_loc : Gram.Loc.t) -> + (Ast.OvNil : 'opt_override)))); + ([ Gram.Stoken + (((function + | ANTIQUOT (("!" | "override" | "anti"), _) + -> true + | _ -> false), + "ANTIQUOT ((\"!\" | \"override\" | \"anti\"), _)")) ], + (Gram.Action.mk + (fun (__camlp4_0 : Gram.Token.t) + (_loc : Gram.Loc.t) -> + match __camlp4_0 with + | ANTIQUOT + ((("!" | "override" | "anti" as n)), s) + -> + (Ast.OvAnt (mk_anti n s) : 'opt_override) + | _ -> assert false))); + ([ Gram.Skeyword "!" ], + (Gram.Action.mk + (fun _ (_loc : Gram.Loc.t) -> + (Ast.OvOverride : 'opt_override)))) ]) ])) ()); Gram.extend (opt_expr : 'opt_expr Gram.Entry.t) ((fun () -> @@ -7325,9 +7621,10 @@ Very old (no more supported) syntax:\n\ (semi : 'semi Gram.Entry.t)) ], (Gram.Action.mk (fun _ (sg : 'sig_item) - (_loc : Gram.Loc.t) -> (sg : 'e__5)))) ]) ], + (_loc : Gram.Loc.t) -> + (sg : 'e__12)))) ]) ], (Gram.Action.mk - (fun (l : 'e__5 list) (_loc : Gram.Loc.t) -> + (fun (l : 'e__12 list) (_loc : Gram.Loc.t) -> (Ast.sgSem_of_list l : 'sig_items)))); ([ Gram.Stoken (((function @@ -7347,8 +7644,8 @@ Very old (no more supported) syntax:\n\ ((("" | "sigi" | "anti" | "list" as n)), s) -> (Ast.SgSem (_loc, - Ast.SgAnt (_loc, - mk_anti n ~c: "sig_item" s), + (Ast.SgAnt (_loc, + (mk_anti n ~c: "sig_item" s))), sg) : 'sig_items) | _ -> assert false))); @@ -7366,7 +7663,7 @@ Very old (no more supported) syntax:\n\ ((("" | "sigi" | "anti" | "list" as n)), s) -> (Ast.SgAnt (_loc, - mk_anti n ~c: "sig_item" s) : + (mk_anti n ~c: "sig_item" s)) : 'sig_items) | _ -> assert false))) ]) ])) ()); @@ -7422,9 +7719,10 @@ Very old (no more supported) syntax:\n\ (semi : 'semi Gram.Entry.t)) ], (Gram.Action.mk (fun _ (st : 'str_item) - (_loc : Gram.Loc.t) -> (st : 'e__6)))) ]) ], + (_loc : Gram.Loc.t) -> + (st : 'e__13)))) ]) ], (Gram.Action.mk - (fun (l : 'e__6 list) (_loc : Gram.Loc.t) -> + (fun (l : 'e__13 list) (_loc : Gram.Loc.t) -> (Ast.stSem_of_list l : 'str_items)))); ([ Gram.Stoken (((function @@ -7444,8 +7742,8 @@ Very old (no more supported) syntax:\n\ ((("" | "stri" | "anti" | "list" as n)), s) -> (Ast.StSem (_loc, - Ast.StAnt (_loc, - mk_anti n ~c: "str_item" s), + (Ast.StAnt (_loc, + (mk_anti n ~c: "str_item" s))), st) : 'str_items) | _ -> assert false))); @@ -7463,7 +7761,7 @@ Very old (no more supported) syntax:\n\ ((("" | "stri" | "anti" | "list" as n)), s) -> (Ast.StAnt (_loc, - mk_anti n ~c: "str_item" s) : + (mk_anti n ~c: "str_item" s)) : 'str_items) | _ -> assert false))) ]) ])) ()); @@ -8064,7 +8362,8 @@ Very old (no more supported) syntax:\n\ (fun (z : 'label_declaration_list) _ (y : 'more_ctyp) _ (x : 'more_ctyp) (_loc : Gram.Loc.t) -> - (Ast.TySem (_loc, Ast.TyCol (_loc, x, y), z) : + (Ast.TySem (_loc, (Ast.TyCol (_loc, x, y)), + z) : 'ctyp_quot)))); ([ Gram.Snterm (Gram.Entry.obj @@ -8091,7 +8390,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun (z : 'row_field) _ (y : 'amp_ctyp) _ _ (x : 'more_ctyp) (_loc : Gram.Loc.t) -> - (Ast.TyOr (_loc, Ast.TyOfAmp (_loc, x, y), z) : + (Ast.TyOr (_loc, (Ast.TyOfAmp (_loc, x, y)), + z) : 'ctyp_quot)))); ([ Gram.Snterm (Gram.Entry.obj @@ -8121,7 +8421,7 @@ Very old (no more supported) syntax:\n\ (fun (z : 'constructor_declarations) _ (y : 'constructor_arg_list) _ (x : 'more_ctyp) (_loc : Gram.Loc.t) -> - (Ast.TyOr (_loc, Ast.TyOf (_loc, x, y), z) : + (Ast.TyOr (_loc, (Ast.TyOf (_loc, x, y)), z) : 'ctyp_quot)))); ([ Gram.Snterm (Gram.Entry.obj @@ -8311,10 +8611,11 @@ Very old (no more supported) syntax:\n\ (fun (_loc : Gram.Loc.t) -> (Ast.McNil _loc : 'match_case_quot)))); ([ Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj - (match_case0 : 'match_case0 Gram.Entry.t)), - Gram.Skeyword "|") ], + ((Gram.Snterm + (Gram.Entry.obj + (match_case0 : + 'match_case0 Gram.Entry.t))), + (Gram.Skeyword "|")) ], (Gram.Action.mk (fun (x : 'match_case0 list) (_loc : Gram.Loc.t) -> (Ast.mcOr_of_list x : 'match_case_quot)))) ]) ])) @@ -8406,7 +8707,8 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" as n)), m) -> - (Ast.MbColEq (_loc, mk_anti n m, mt, me) : + (Ast.MbColEq (_loc, (mk_anti n m), mt, + me) : 'module_binding_quot) | _ -> assert false))); ([ Gram.Stoken @@ -8424,7 +8726,7 @@ Very old (no more supported) syntax:\n\ (_loc : Gram.Loc.t) -> match __camlp4_0 with | ANTIQUOT ((("" as n)), m) -> - (Ast.MbCol (_loc, mk_anti n m, mt) : + (Ast.MbCol (_loc, (mk_anti n m), mt) : 'module_binding_quot) | _ -> assert false))); ([ Gram.Stoken @@ -8438,7 +8740,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("" as n)), s) -> (Ast.MbAnt (_loc, - mk_anti ~c: "module_binding" n s) : + (mk_anti ~c: "module_binding" n s)) : 'module_binding_quot) | _ -> assert false))); ([ Gram.Stoken @@ -8455,7 +8757,7 @@ Very old (no more supported) syntax:\n\ ((("module_binding" | "anti" as n)), s) -> (Ast.MbAnt (_loc, - mk_anti ~c: "module_binding" n s) : + (mk_anti ~c: "module_binding" n s)) : 'module_binding_quot) | _ -> assert false))); ([ Gram.Sself; Gram.Skeyword "and"; Gram.Sself ], @@ -8502,8 +8804,8 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAcc (_loc, - Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s), + (Ast.IdAnt (_loc, + (mk_anti ~c: "ident" n s))), i) : 'ident_quot) | _ -> assert false))); @@ -8533,7 +8835,7 @@ Very old (no more supported) syntax:\n\ ((("" | "id" | "anti" | "list" as n)), s) -> (Ast.IdAnt (_loc, - mk_anti ~c: "ident" n s) : + (mk_anti ~c: "ident" n s)) : 'ident_quot) | _ -> assert false))) ]) ])) ()); @@ -8569,7 +8871,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("virtual" as n)), s) -> (let anti = - Ast.BAnt + Ast.ViAnt (mk_anti ~c: "class_expr" n s) in Ast.CeCon (_loc, anti, i, ot) : 'class_expr_quot) @@ -8582,8 +8884,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun ((i, ot) : 'class_name_and_param) _ (_loc : Gram.Loc.t) -> - (Ast.CeCon (_loc, Ast.BTrue, - Ast.IdLid (_loc, i), ot) : + (Ast.CeCon (_loc, Ast.ViVirtual, + (Ast.IdLid (_loc, i)), ot) : 'class_expr_quot)))); ([ Gram.Sself; Gram.Skeyword "="; Gram.Sself ], (Gram.Action.mk @@ -8633,7 +8935,7 @@ Very old (no more supported) syntax:\n\ match __camlp4_0 with | ANTIQUOT ((("virtual" as n)), s) -> (let anti = - Ast.BAnt + Ast.ViAnt (mk_anti ~c: "class_type" n s) in Ast.CtCon (_loc, anti, i, ot) : 'class_type_quot) @@ -8646,8 +8948,8 @@ Very old (no more supported) syntax:\n\ (Gram.Action.mk (fun ((i, ot) : 'class_name_and_param) _ (_loc : Gram.Loc.t) -> - (Ast.CtCon (_loc, Ast.BTrue, - Ast.IdLid (_loc, i), ot) : + (Ast.CtCon (_loc, Ast.ViVirtual, + (Ast.IdLid (_loc, i)), ot) : 'class_type_quot)))); ([ Gram.Sself; Gram.Skeyword ":"; Gram.Sself ], (Gram.Action.mk @@ -8744,6 +9046,90 @@ Very old (no more supported) syntax:\n\ (fun (x : 'with_constr) (_loc : Gram.Loc.t) -> (x : 'with_constr_quot)))) ]) ])) ()); + Gram.extend (rec_flag_quot : 'rec_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_rec : 'opt_rec Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_rec) (_loc : Gram.Loc.t) -> + (x : 'rec_flag_quot)))) ]) ])) + ()); + Gram.extend + (direction_flag_quot : 'direction_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (direction_flag : + 'direction_flag Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'direction_flag) (_loc : Gram.Loc.t) + -> (x : 'direction_flag_quot)))) ]) ])) + ()); + Gram.extend + (mutable_flag_quot : 'mutable_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_mutable : 'opt_mutable Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_mutable) (_loc : Gram.Loc.t) -> + (x : 'mutable_flag_quot)))) ]) ])) + ()); + Gram.extend + (private_flag_quot : 'private_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_private : 'opt_private Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_private) (_loc : Gram.Loc.t) -> + (x : 'private_flag_quot)))) ]) ])) + ()); + Gram.extend + (virtual_flag_quot : 'virtual_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_virtual : 'opt_virtual Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_virtual) (_loc : Gram.Loc.t) -> + (x : 'virtual_flag_quot)))) ]) ])) + ()); + Gram.extend + (row_var_flag_quot : 'row_var_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_dot_dot : 'opt_dot_dot Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_dot_dot) (_loc : Gram.Loc.t) -> + (x : 'row_var_flag_quot)))) ]) ])) + ()); + Gram.extend + (override_flag_quot : 'override_flag_quot Gram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ Gram.Snterm + (Gram.Entry.obj + (opt_override : 'opt_override Gram.Entry.t)) ], + (Gram.Action.mk + (fun (x : 'opt_override) (_loc : Gram.Loc.t) -> + (x : 'override_flag_quot)))) ]) ])) + ()); Gram.extend (patt_eoi : 'patt_eoi Gram.Entry.t) ((fun () -> (None, @@ -8829,9 +9215,9 @@ module Camlp4QuotationCommon = let meta_loc_expr _loc loc = match !loc_name with - | None -> Ast.ExId (_loc, Ast.IdLid (_loc, !Loc.name)) + | None -> Ast.ExId (_loc, (Ast.IdLid (_loc, !Loc.name))) | Some "here" -> MetaLocHere.meta_loc_expr _loc loc - | Some x -> Ast.ExId (_loc, Ast.IdLid (_loc, x)) + | Some x -> Ast.ExId (_loc, (Ast.IdLid (_loc, x))) let meta_loc_patt _loc _ = Ast.PaAny _loc @@ -8872,139 +9258,156 @@ module Camlp4QuotationCommon = match n with | "antisig_item" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgAnt")))))), + (mloc _loc))), p) | "antistr_item" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StAnt")))))), + (mloc _loc))), p) | "antictyp" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAnt")))))), + (mloc _loc))), p) | "antipatt" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAnt")))))), + (mloc _loc))), p) | "antiexpr" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAnt")))))), + (mloc _loc))), p) | "antimodule_type" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtAnt")))))), + (mloc _loc))), p) | "antimodule_expr" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeAnt")))))), + (mloc _loc))), p) | "anticlass_type" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtAnt")))))), + (mloc _loc))), p) | "anticlass_expr" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeAnt")))))), + (mloc _loc))), p) | "anticlass_sig_item" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgAnt")))))), + (mloc _loc))), p) | "anticlass_str_item" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrAnt")))))), + (mloc _loc))), p) | "antiwith_constr" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcAnt")))))), + (mloc _loc))), p) | "antibinding" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiAnt")))))), + (mloc _loc))), p) | "antirec_binding" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbAnt")))))), + (mloc _loc))), p) | "antimatch_case" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McAnt")))))), + (mloc _loc))), p) | "antimodule_binding" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbAnt")))))), + (mloc _loc))), p) | "antiident" -> Ast.PaApp (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdAnt"))), - mloc _loc), + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdAnt")))))), + (mloc _loc))), p) | _ -> p) | p -> super#patt p @@ -9020,339 +9423,387 @@ module Camlp4QuotationCommon = match n with | "`int" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "string_of_int")), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "string_of_int")))), e) | "`int32" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Int32"), - Ast.IdLid (_loc, "to_string"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Int32")), + (Ast.IdLid (_loc, "to_string")))))), e) | "`int64" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Int64"), - Ast.IdLid (_loc, "to_string"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Int64")), + (Ast.IdLid (_loc, "to_string")))))), e) | "`nativeint" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Nativeint"), - Ast.IdLid (_loc, "to_string"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Nativeint")), + (Ast.IdLid (_loc, "to_string")))))), e) | "`flo" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "string_of_float")), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "string_of_float")))), e) | "`str" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "safe_string_escaped"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "safe_string_escaped")))))), e) | "`chr" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Char"), - Ast.IdLid (_loc, "escaped"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Char")), + (Ast.IdLid (_loc, "escaped")))))), e) | "`bool" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdUid"))), - mloc _loc), - Ast.ExIfe (_loc, e, Ast.ExStr (_loc, "True"), - Ast.ExStr (_loc, "False"))) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdUid")))))), + (mloc _loc))), + (Ast.ExIfe (_loc, e, + (Ast.ExStr (_loc, "True")), + (Ast.ExStr (_loc, "False"))))) | "liststr_item" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "stSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "stSem_of_list")))))), e) | "listsig_item" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "sgSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "sgSem_of_list")))))), e) | "listclass_sig_item" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "cgSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "cgSem_of_list")))))), e) | "listclass_str_item" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "crSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "crSem_of_list")))))), e) | "listmodule_expr" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "meApp_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "meApp_of_list")))))), e) | "listmodule_type" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "mtApp_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "mtApp_of_list")))))), e) | "listmodule_binding" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "mbAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "mbAnd_of_list")))))), e) | "listbinding" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "biAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "biAnd_of_list")))))), e) | "listbinding;" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "biSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "biSem_of_list")))))), e) | "listrec_binding" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "rbSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "rbSem_of_list")))))), e) | "listclass_type" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "ctAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "ctAnd_of_list")))))), e) | "listclass_expr" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "ceAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "ceAnd_of_list")))))), e) | "listident" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "idAcc_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "idAcc_of_list")))))), e) | "listctypand" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tyAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tyAnd_of_list")))))), e) | "listctyp;" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tySem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tySem_of_list")))))), e) | "listctyp*" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tySta_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tySta_of_list")))))), e) | "listctyp|" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tyOr_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tyOr_of_list")))))), e) | "listctyp," -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tyCom_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tyCom_of_list")))))), e) | "listctyp&" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "tyAmp_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "tyAmp_of_list")))))), e) | "listwith_constr" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "wcAnd_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "wcAnd_of_list")))))), e) | "listmatch_case" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "mcOr_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "mcOr_of_list")))))), e) | "listpatt," -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "paCom_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "paCom_of_list")))))), e) | "listpatt;" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "paSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "paSem_of_list")))))), e) | "listexpr," -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "exCom_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "exCom_of_list")))))), e) | "listexpr;" -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdLid (_loc, "exSem_of_list"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdLid (_loc, "exSem_of_list")))))), e) | "antisig_item" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "SgAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "SgAnt")))))), + (mloc _loc))), e) | "antistr_item" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "StAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "StAnt")))))), + (mloc _loc))), e) | "antictyp" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "TyAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "TyAnt")))))), + (mloc _loc))), e) | "antipatt" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "PaAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "PaAnt")))))), + (mloc _loc))), e) | "antiexpr" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "ExAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "ExAnt")))))), + (mloc _loc))), e) | "antimodule_type" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MtAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MtAnt")))))), + (mloc _loc))), e) | "antimodule_expr" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MeAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MeAnt")))))), + (mloc _loc))), e) | "anticlass_type" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CtAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CtAnt")))))), + (mloc _loc))), e) | "anticlass_expr" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CeAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CeAnt")))))), + (mloc _loc))), e) | "anticlass_sig_item" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CgAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CgAnt")))))), + (mloc _loc))), e) | "anticlass_str_item" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "CrAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "CrAnt")))))), + (mloc _loc))), e) | "antiwith_constr" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "WcAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "WcAnt")))))), + (mloc _loc))), e) | "antibinding" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "BiAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "BiAnt")))))), + (mloc _loc))), e) | "antirec_binding" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "RbAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "RbAnt")))))), + (mloc _loc))), e) | "antimatch_case" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "McAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "McAnt")))))), + (mloc _loc))), e) | "antimodule_binding" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "MbAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "MbAnt")))))), + (mloc _loc))), e) | "antiident" -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, "IdAnt"))), - mloc _loc), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, "IdAnt")))))), + (mloc _loc))), e) | _ -> e) | e -> super#expr e @@ -9390,12 +9841,12 @@ module Camlp4QuotationCommon = (Ast.IdUid (_, u)))))), _) -> Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"), - Ast.IdUid (_loc, u))), - Ast.PaId (_loc, Ast.IdLid (_loc, name))) + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")), + (Ast.IdUid (_loc, u)))))), + (Ast.PaId (_loc, (Ast.IdLid (_loc, name))))) | Ast.PaApp (_loc, a, b) -> - Ast.PaApp (_loc, subst_first_loc a, b) + Ast.PaApp (_loc, (subst_first_loc a), b) | p -> p) in subst_first_loc exp_ast in @@ -9478,6 +9929,34 @@ module Camlp4QuotationCommon = let _ = add_quotation "ident" ident_quot ME.meta_ident MP.meta_ident + let _ = + add_quotation "rec_flag" rec_flag_quot ME.meta_rec_flag MP. + meta_rec_flag + + let _ = + add_quotation "private_flag" private_flag_quot ME.meta_private_flag + MP.meta_private_flag + + let _ = + add_quotation "row_var_flag" row_var_flag_quot ME.meta_row_var_flag + MP.meta_row_var_flag + + let _ = + add_quotation "mutable_flag" mutable_flag_quot ME.meta_mutable_flag + MP.meta_mutable_flag + + let _ = + add_quotation "virtual_flag" virtual_flag_quot ME.meta_virtual_flag + MP.meta_virtual_flag + + let _ = + add_quotation "override_flag" override_flag_quot ME. + meta_override_flag MP.meta_override_flag + + let _ = + add_quotation "direction_flag" direction_flag_quot ME. + meta_direction_flag MP.meta_direction_flag + end end @@ -9584,13 +10063,13 @@ module Rp = let peek_fun _loc = Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "peek"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "peek"))))) let junk_fun _loc = Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "junk"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "junk"))))) (* Parsers. *) (* In syntax generated, many cases are optimisations. *) @@ -9637,7 +10116,7 @@ module Rp = | Ast.McArr (_, _, (Ast.ExNil _), e) -> handle_failure e | _ -> false) in (handle_failure me) && (match_case_handle_failure a) - | Ast.ExLet (_, Ast.BFalse, bi, e) -> + | Ast.ExLet (_, Ast.ReNil, bi, e) -> let rec binding_handle_failure = (function | Ast.BiAnd (_, b1, b2) -> @@ -9673,61 +10152,63 @@ module Rp = match e with | Ast.ExId (_, (Ast.IdLid (_, x))) -> let x = if x = v then strm_n else x - in Ast.ExId (_loc, Ast.IdLid (_loc, x)) + in Ast.ExId (_loc, (Ast.IdLid (_loc, x))) | Ast.ExId (_, (Ast.IdUid (_, _))) -> e | Ast.ExInt (_, _) -> e | Ast.ExChr (_, _) -> e | Ast.ExStr (_, _) -> e | Ast.ExAcc (_, _, _) -> e | Ast.ExLet (_, rf, bi, e) -> - Ast.ExLet (_loc, rf, subst_binding v bi, subst v e) + Ast.ExLet (_loc, rf, (subst_binding v bi), (subst v e)) | Ast.ExApp (_, e1, e2) -> - Ast.ExApp (_loc, subst v e1, subst v e2) - | Ast.ExTup (_, e) -> Ast.ExTup (_loc, subst v e) + Ast.ExApp (_loc, (subst v e1), (subst v e2)) + | Ast.ExTup (_, e) -> Ast.ExTup (_loc, (subst v e)) | Ast.ExCom (_, e1, e2) -> - Ast.ExCom (_loc, subst v e1, subst v e2) + Ast.ExCom (_loc, (subst v e1), (subst v e2)) | _ -> raise Not_found and subst_binding v = function | Ast.BiAnd (_loc, b1, b2) -> - Ast.BiAnd (_loc, subst_binding v b1, subst_binding v b2) + Ast.BiAnd (_loc, (subst_binding v b1), (subst_binding v b2)) | Ast.BiEq (_loc, (Ast.PaId (_, (Ast.IdLid (_, v')))), e) -> - Ast.BiEq (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, v')), - if v = v' then e else subst v e) + Ast.BiEq (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, v')))), + (if v = v' then e else subst v e)) | _ -> raise Not_found let stream_pattern_component skont ckont = function | SpTrm (_loc, p, None) -> Ast.ExMat (_loc, - Ast.ExApp (_loc, peek_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - Ast.McOr (_loc, - Ast.McArr (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p), - Ast.ExNil _loc, - Ast.ExSeq (_loc, - Ast.ExSem (_loc, - Ast.ExApp (_loc, junk_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - skont))), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ckont))) + (Ast.ExApp (_loc, (peek_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + (Ast.McOr (_loc, + (Ast.McArr (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p)), + (Ast.ExNil _loc), + (Ast.ExSeq (_loc, + (Ast.ExSem (_loc, + (Ast.ExApp (_loc, (junk_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + skont)))))), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + ckont))))) | SpTrm (_loc, p, (Some w)) -> Ast.ExMat (_loc, - Ast.ExApp (_loc, peek_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - Ast.McOr (_loc, - Ast.McArr (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p), - w, - Ast.ExSeq (_loc, - Ast.ExSem (_loc, - Ast.ExApp (_loc, junk_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - skont))), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ckont))) + (Ast.ExApp (_loc, (peek_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + (Ast.McOr (_loc, + (Ast.McArr (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p)), + w, + (Ast.ExSeq (_loc, + (Ast.ExSem (_loc, + (Ast.ExApp (_loc, (junk_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + skont)))))), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + ckont))))) | SpNtr (_loc, p, e) -> let e = (match e with @@ -9743,7 +10224,7 @@ module Rp = when v = strm_n -> e | _ -> Ast.ExApp (_loc, e, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))) + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))) in if pattern_eq_expression p skont then @@ -9754,31 +10235,31 @@ module Rp = then e else Ast.ExTry (_loc, e, - Ast.McArr (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Failure"))), - Ast.ExNil _loc, ckont)) + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Failure")))))), + (Ast.ExNil _loc), ckont))) else if is_raise_failure ckont then - Ast.ExLet (_loc, Ast.BFalse, Ast.BiEq (_loc, p, e), + Ast.ExLet (_loc, Ast.ReNil, (Ast.BiEq (_loc, p, e)), skont) else if pattern_eq_expression (Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p)) + (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p)) skont then Ast.ExTry (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), e), - Ast.McArr (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Failure"))), - Ast.ExNil _loc, ckont)) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), e)), + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Failure")))))), + (Ast.ExNil _loc), ckont))) else if is_raise ckont then @@ -9787,33 +10268,37 @@ module Rp = then e else Ast.ExTry (_loc, e, - Ast.McArr (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Failure"))), - Ast.ExNil _loc, ckont)) + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Failure")))))), + (Ast.ExNil _loc), ckont))) in - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, p, tst), skont)) + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, p, tst)), skont)) else Ast.ExMat (_loc, - Ast.ExTry (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), e), - Ast.McArr (_loc, - Ast.PaId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Failure"))), - Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "None")))), - Ast.McOr (_loc, - Ast.McArr (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p), - Ast.ExNil _loc, skont), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - ckont))) + (Ast.ExTry (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), + e)), + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Failure")))))), + (Ast.ExNil _loc), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "None")))))))), + (Ast.McOr (_loc, + (Ast.McArr (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, "Some")))), + p)), + (Ast.ExNil _loc), skont)), + (Ast.McArr (_loc, (Ast.PaAny _loc), + (Ast.ExNil _loc), ckont))))) | SpStr (_loc, p) -> (try match p with @@ -9821,9 +10306,9 @@ module Rp = | _ -> raise Not_found with | Not_found -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, p, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, p, + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), skont)) let rec stream_pattern _loc epo e ekont = @@ -9831,13 +10316,13 @@ module Rp = | [] -> (match epo with | Some ep -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, ep, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "count"))), - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, ep, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "count")))))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))), e) | _ -> e) | (spc, err) :: spcl -> @@ -9849,12 +10334,12 @@ module Rp = | _ -> Ast.ExStr (_loc, "")) in Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "raise")), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Error"))), - str)) + (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Error")))))), + str))) in stream_pattern _loc epo e ekont spcl in let ckont = ekont err in stream_pattern_component skont ckont spc @@ -9865,7 +10350,7 @@ module Rp = (fun (p, w, _loc, spcl, epo, e) acc -> let p = Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "Some")), p) in + (Ast.PaId (_loc, (Ast.IdUid (_loc, "Some")))), p) in let e = let ekont err = let str = @@ -9874,33 +10359,35 @@ module Rp = | _ -> Ast.ExStr (_loc, "") in Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "raise")), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Error"))), - str)) in + (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Error")))))), + str))) in let skont = stream_pattern _loc epo e ekont spcl in Ast.ExSeq (_loc, - Ast.ExSem (_loc, - Ast.ExApp (_loc, junk_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - skont)) + (Ast.ExSem (_loc, + (Ast.ExApp (_loc, (junk_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + skont))) in match w with | Some w -> - Ast.McOr (_loc, Ast.McArr (_loc, p, w, e), acc) + Ast.McOr (_loc, (Ast.McArr (_loc, p, w, e)), acc) | None -> Ast.McOr (_loc, - Ast.McArr (_loc, p, Ast.ExNil _loc, e), acc)) + (Ast.McArr (_loc, p, (Ast.ExNil _loc), e)), acc)) tspel (Ast.McNil _loc) in Ast.ExMat (_loc, - Ast.ExApp (_loc, peek_fun _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n))), - Ast.McOr (_loc, pel, - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, ekont ()))) + (Ast.ExApp (_loc, (peek_fun _loc), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))), + (Ast.McOr (_loc, pel, + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + (ekont ())))))) let rec group_terms = function @@ -9912,10 +10399,11 @@ module Rp = let rec parser_cases _loc = function | [] -> - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdLid (_loc, "raise")), - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdUid (_loc, "Failure")))) + Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdUid (_loc, "Failure"))))))) | spel -> (match group_terms spel with | ([], (spcl, epo, e) :: spel) -> @@ -9930,36 +10418,36 @@ module Rp = let e = match bpo with | Some bp -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, bp, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "count"))), - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, bp, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "count")))))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))), e) | None -> e in let p = - Ast.PaTyc (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, strm_n)), - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "t"))), - Ast.TyAny _loc)) - in Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, e)) + Ast.PaTyc (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, strm_n)))), + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyAny _loc)))) + in Ast.ExFun (_loc, (Ast.McArr (_loc, p, (Ast.ExNil _loc), e))) let cparser_match _loc me bpo pc = let pc = parser_cases _loc pc in let e = match bpo with | Some bp -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, bp, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "count"))), - Ast.ExId (_loc, Ast.IdLid (_loc, strm_n)))), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, bp, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "count")))))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, strm_n)))))))), pc) | None -> pc in let me = @@ -9970,16 +10458,16 @@ module Rp = match me with | Ast.ExId (_, (Ast.IdLid (_, x))) when x = strm_n -> e | _ -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, - Ast.PaTyc (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, strm_n)), - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "t"))), - Ast.TyAny _loc)), - me), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaTyc (_loc, + (Ast.PaId (_loc, (Ast.IdLid (_loc, strm_n)))), + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyAny _loc))))), + me)), e) (* streams *) @@ -10006,10 +10494,10 @@ module Rp = | Ast.ExId (_, (Ast.IdLid (_, _))) -> f | _ -> Ast.ExFun (_loc, - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, e))) + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), e)))) | _ -> Ast.ExFun (_loc, - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, e)) + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), e))) let rec cstream gloc = function @@ -10017,67 +10505,67 @@ module Rp = let _loc = gloc in Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "sempty"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "sempty"))))) | [ SeTrm (_loc, e) ] -> if not_computing e then Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "ising"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "ising")))))), e) else Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "lsing"))), - slazy _loc e) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "lsing")))))), + (slazy _loc e)) | SeTrm (_loc, e) :: secl -> if not_computing e then Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "icons"))), - e), - cstream gloc secl) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "icons")))))), + e)), + (cstream gloc secl)) else Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "lcons"))), - slazy _loc e), - cstream gloc secl) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "lcons")))))), + (slazy _loc e))), + (cstream gloc secl)) | [ SeNtr (_loc, e) ] -> if not_computing e then e else Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "slazy"))), - slazy _loc e) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "slazy")))))), + (slazy _loc e)) | SeNtr (_loc, e) :: secl -> if not_computing e then Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "iapp"))), - e), - cstream gloc secl) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "iapp")))))), + e)), + (cstream gloc secl)) else Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Stream"), - Ast.IdLid (_loc, "lapp"))), - slazy _loc e), - cstream gloc secl) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Stream")), + (Ast.IdLid (_loc, "lapp")))))), + (slazy _loc e))), + (cstream gloc secl)) (* Syntax extensions in Revised Syntax grammar *) let _ = @@ -10156,10 +10644,11 @@ module Rp = ([ pc ] : 'parser_case_list)))); ([ Gram.Skeyword "["; Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj - (parser_case : 'parser_case Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj + (parser_case : + 'parser_case Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (pcl : 'parser_case list) _ @@ -10275,9 +10764,9 @@ module Rp = 'stream_expr Gram.Entry.t)) ], (Gram.Action.mk (fun (e : 'stream_expr) _ - (_loc : Gram.Loc.t) -> (e : 'e__7)))) ]) ], + (_loc : Gram.Loc.t) -> (e : 'e__14)))) ]) ], (Gram.Action.mk - (fun (eo : 'e__7 option) + (fun (eo : 'e__14 option) (spc : 'stream_patt_comp) (_loc : Gram.Loc.t) -> ((spc, eo) : 'stream_patt_comp_err)))) ]) ])) ()); @@ -10348,9 +10837,9 @@ module Rp = 'stream_expr Gram.Entry.t)) ], (Gram.Action.mk (fun (e : 'stream_expr) _ - (_loc : Gram.Loc.t) -> (e : 'e__8)))) ]) ], + (_loc : Gram.Loc.t) -> (e : 'e__15)))) ]) ], (Gram.Action.mk - (fun (eo : 'e__8 option) (p : 'patt) _ + (fun (eo : 'e__15 option) (p : 'patt) _ (_loc : Gram.Loc.t) -> (SpTrm (_loc, p, eo) : 'stream_patt_comp)))) ]) ])) ()); @@ -10367,7 +10856,7 @@ module Rp = (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) -> - (Ast.PaId (_loc, Ast.IdLid (_loc, i)) : + (Ast.PaId (_loc, (Ast.IdLid (_loc, i))) : 'parser_ipatt)))) ]) ])) ()); Gram.extend (expr : 'expr Gram.Entry.t) @@ -10526,6 +11015,7 @@ module G = | TXnext of loc | TXnterm of loc * 'e name * string option | TXopt of loc * ('e, 'p) text + | TXtry of loc * ('e, 'p) text | TXrules of loc * (((('e, 'p) text) list) * 'e) list | TXself of loc | TXkwd of loc * string @@ -10643,16 +11133,17 @@ module G = (s) with pattern = - Some (Ast.PaId (_loc, Ast.IdLid (_loc, "x"))); + Some (Ast.PaId (_loc, (Ast.IdLid (_loc, "x")))); } ]; action = Some (Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Token"), - Ast.IdLid (_loc, "extract_string")))), - Ast.ExId (_loc, Ast.IdLid (_loc, "x")))); + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Token")), + (Ast.IdLid (_loc, "extract_string")))))))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, "x")))))); } | (* ...; [ symb ]; ... ==> ...; (x = [ symb ] -> x); ... *) { prod = [ ({ pattern = None } as s) ]; action = None } -> @@ -10662,9 +11153,9 @@ module G = (s) with pattern = - Some (Ast.PaId (_loc, Ast.IdLid (_loc, "x"))); + Some (Ast.PaId (_loc, (Ast.IdLid (_loc, "x")))); } ]; - action = Some (Ast.ExId (_loc, Ast.IdLid (_loc, "x"))); + action = Some (Ast.ExId (_loc, (Ast.IdLid (_loc, "x")))); } | (* ...; ([] -> a); ... *) ({ prod = []; action = Some _ } as r) -> r @@ -10677,29 +11168,29 @@ module G = let mklistexp _loc = let rec loop top = function - | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]")) + | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))) | e1 :: el -> let _loc = if top then _loc else Loc.merge (Ast.loc_of_expr e1) _loc in Ast.ExApp (_loc, - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - e1), - loop false el) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), e1)), + (loop false el)) in loop true let mklistpat _loc = let rec loop top = function - | [] -> Ast.PaId (_loc, Ast.IdUid (_loc, "[]")) + | [] -> Ast.PaId (_loc, (Ast.IdUid (_loc, "[]"))) | p1 :: pl -> let _loc = if top then _loc else Loc.merge (Ast.loc_of_patt p1) _loc in Ast.PaApp (_loc, - Ast.PaApp (_loc, Ast.PaId (_loc, Ast.IdUid (_loc, "::")), - p1), - loop false pl) + (Ast.PaApp (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "::")))), p1)), + (loop false pl)) in loop true let rec expr_fa al = @@ -10709,9 +11200,9 @@ module G = let rec make_ctyp styp tvar = match styp with - | STlid (_loc, s) -> Ast.TyId (_loc, Ast.IdLid (_loc, s)) + | STlid (_loc, s) -> Ast.TyId (_loc, (Ast.IdLid (_loc, s))) | STapp (_loc, t1, t2) -> - Ast.TyApp (_loc, make_ctyp t1 tvar, make_ctyp t2 tvar) + Ast.TyApp (_loc, (make_ctyp t1 tvar), (make_ctyp t2 tvar)) | STquo (_loc, s) -> Ast.TyQuo (_loc, s) | STself (_loc, x) -> if tvar = "" @@ -10722,11 +11213,12 @@ module G = else Ast.TyQuo (_loc, tvar) | STtok _loc -> Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Token")), - Ast.IdLid (_loc, "t"))) - | STstring_tok _loc -> Ast.TyId (_loc, Ast.IdLid (_loc, "string")) + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Token")))), + (Ast.IdLid (_loc, "t"))))) + | STstring_tok _loc -> + Ast.TyId (_loc, (Ast.IdLid (_loc, "string"))) | STtyp t -> t let make_ctyp_patt styp tvar patt = @@ -10744,11 +11236,11 @@ module G = | t -> let _loc = Ast.loc_of_expr expr in Ast.ExTyc (_loc, expr, t) let text_of_action _loc psl rtvar act tvar = - let locid = Ast.PaId (_loc, Ast.IdLid (_loc, !Loc.name)) in + let locid = Ast.PaId (_loc, (Ast.IdLid (_loc, !Loc.name))) in let act = match act with | Some act -> act - | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "()")) in + | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) in let (tok_match_pl, act, _) = List.fold_left (fun (((tok_match_pl, act, i) as accu)) -> @@ -10763,15 +11255,16 @@ module G = (Ast.PaId (_, (Ast.IdLid (_, s)))))) } -> (tok_match_pl, - (Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, s)), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Token"), - Ast.IdLid (_loc, "extract_string")))), - Ast.ExId (_loc, Ast.IdLid (_loc, s)))), + (Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaId (_loc, (Ast.IdLid (_loc, s)))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Token")), + (Ast.IdLid (_loc, "extract_string")))))))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, s)))))))), act)), i) | { pattern = Some p; text = TXtok (_, _, _) } -> @@ -10780,53 +11273,54 @@ module G = ((Some (match tok_match_pl with | None -> - ((Ast.ExId (_loc, Ast.IdLid (_loc, id))), p) + ((Ast.ExId (_loc, (Ast.IdLid (_loc, id)))), + p) | Some ((tok_pl, match_pl)) -> ((Ast.ExCom (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, id)), + (Ast.ExId (_loc, (Ast.IdLid (_loc, id)))), tok_pl)), (Ast.PaCom (_loc, p, match_pl))))), act, (succ i)) | _ -> accu) (None, act, 0) psl in let e = - let e1 = Ast.ExTyc (_loc, act, Ast.TyQuo (_loc, rtvar)) in + let e1 = Ast.ExTyc (_loc, act, (Ast.TyQuo (_loc, rtvar))) in let e2 = match tok_match_pl with | None -> e1 | Some ((Ast.ExCom (_, t1, t2), Ast.PaCom (_, p1, p2))) -> Ast.ExMat (_loc, - Ast.ExTup (_loc, Ast.ExCom (_loc, t1, t2)), - Ast.McOr (_loc, - Ast.McArr (_loc, - Ast.PaTup (_loc, Ast.PaCom (_loc, p1, p2)), - Ast.ExNil _loc, e1), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - Ast.ExAsf _loc))) + (Ast.ExTup (_loc, (Ast.ExCom (_loc, t1, t2)))), + (Ast.McOr (_loc, + (Ast.McArr (_loc, + (Ast.PaTup (_loc, (Ast.PaCom (_loc, p1, p2)))), + (Ast.ExNil _loc), e1)), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + (Ast.ExAsf _loc)))))) | Some ((tok, match_)) -> Ast.ExMat (_loc, tok, - Ast.McOr (_loc, - Ast.McArr (_loc, match_, Ast.ExNil _loc, e1), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - Ast.ExAsf _loc))) + (Ast.McOr (_loc, + (Ast.McArr (_loc, match_, (Ast.ExNil _loc), e1)), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + (Ast.ExAsf _loc)))))) in Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaTyc (_loc, locid, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Loc")), - Ast.IdLid (_loc, "t")))), - Ast.ExNil _loc, e2)) in + (Ast.McArr (_loc, + (Ast.PaTyc (_loc, locid, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Loc")))), + (Ast.IdLid (_loc, "t")))))))), + (Ast.ExNil _loc), e2))) in let (txt, _) = List.fold_left (fun (txt, i) s -> match s.pattern with | None | Some (Ast.PaAny _) -> ((Ast.ExFun (_loc, - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - txt))), + (Ast.McArr (_loc, (Ast.PaAny _loc), + (Ast.ExNil _loc), txt)))), i) | Some (Ast.PaAli (_, @@ -10836,39 +11330,40 @@ module G = let p = make_ctyp_patt s.styp tvar p in ((Ast.ExFun (_loc, - Ast.McArr (_loc, p, Ast.ExNil _loc, txt))), + (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))), i) | Some p when Ast.is_irrefut_patt p -> let p = make_ctyp_patt s.styp tvar p in ((Ast.ExFun (_loc, - Ast.McArr (_loc, p, Ast.ExNil _loc, txt))), + (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))), i) | Some _ -> let p = make_ctyp_patt s.styp tvar (Ast.PaId (_loc, - Ast.IdLid (_loc, "__camlp4_" ^ (string_of_int i)))) + (Ast.IdLid (_loc, + ("__camlp4_" ^ (string_of_int i)))))) in ((Ast.ExFun (_loc, - Ast.McArr (_loc, p, Ast.ExNil _loc, txt))), + (Ast.McArr (_loc, p, (Ast.ExNil _loc), txt)))), (succ i))) (e, 0) psl in let txt = if !meta_action then Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Obj"), - Ast.IdLid (_loc, "magic"))), - MetaAst.Expr.meta_expr _loc txt) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Obj")), + (Ast.IdLid (_loc, "magic")))))), + (MetaAst.Expr.meta_expr _loc txt)) else txt in Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Action"), - Ast.IdLid (_loc, "mk")))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Action")), + (Ast.IdLid (_loc, "mk")))))))), txt) let srules loc t rl tvar = @@ -10885,144 +11380,154 @@ module G = List.fold_right (fun t el -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - make_expr entry "" t), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), + (make_expr entry "" t))), el)) - tl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + tl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) in Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Smeta"))), - Ast.ExStr (_loc, n)), - el), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Action"), - Ast.IdLid (_loc, "mk")))), - make_ctyp_expr t tvar e)) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Smeta")))))), + (Ast.ExStr (_loc, n)))), + el)), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Action")), + (Ast.IdLid (_loc, "mk")))))))), + (make_ctyp_expr t tvar e)))) | TXlist (_loc, min, t, ts) -> let txt = make_expr entry "" t.text in (match (min, ts) with | (false, None) -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Slist0"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Slist0")))))), txt) | (true, None) -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Slist1"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Slist1")))))), txt) | (false, Some s) -> let x = make_expr entry tvar s.text in Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Slist0sep"))), - txt), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Slist0sep")))))), + txt)), x) | (true, Some s) -> let x = make_expr entry tvar s.text in Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Slist1sep"))), - txt), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Slist1sep")))))), + txt)), x)) | TXnext _loc -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Snext"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Snext"))))) | TXnterm (_loc, n, lev) -> (match lev with | Some lab -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Snterml"))), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"), - Ast.IdLid (_loc, "obj")))), - Ast.ExTyc (_loc, n.expr, - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Entry")), - Ast.IdLid (_loc, "t"))), - Ast.TyQuo (_loc, n.tvar))))), - Ast.ExStr (_loc, lab)) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Snterml")))))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Entry")), + (Ast.IdLid (_loc, "obj")))))))), + (Ast.ExTyc (_loc, n.expr, + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Entry")))), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyQuo (_loc, n.tvar)))))))))), + (Ast.ExStr (_loc, lab))) | None -> if n.tvar = tvar then Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Sself"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Sself"))))) else Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Snterm"))), - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"), - Ast.IdLid (_loc, "obj")))), - Ast.ExTyc (_loc, n.expr, - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Entry")), - Ast.IdLid (_loc, "t"))), - Ast.TyQuo (_loc, n.tvar)))))) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Snterm")))))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Entry")), + (Ast.IdLid (_loc, "obj")))))))), + (Ast.ExTyc (_loc, n.expr, + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Entry")))), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyQuo (_loc, n.tvar)))))))))) | TXopt (_loc, t) -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Sopt"))), - make_expr entry "" t) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Sopt")))))), + (make_expr entry "" t)) + | TXtry (_loc, t) -> + Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Stry")))))), + (make_expr entry "" t)) | TXrules (_loc, rl) -> Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, "srules"))), - entry.expr), - make_expr_rules _loc entry rl "") + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, "srules")))))), + entry.expr)), + (make_expr_rules _loc entry rl "")) | TXself _loc -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Sself"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Sself"))))) | TXkwd (_loc, kwd) -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Skeyword"))), - Ast.ExStr (_loc, kwd)) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Skeyword")))))), + (Ast.ExStr (_loc, kwd))) | TXtok (_loc, match_fun, descr) -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Stoken"))), - Ast.ExTup (_loc, - Ast.ExCom (_loc, match_fun, - Ast.ExStr (_loc, Ast.safe_string_escaped descr)))) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Stoken")))))), + (Ast.ExTup (_loc, + (Ast.ExCom (_loc, match_fun, + (Ast.ExStr (_loc, (Ast.safe_string_escaped descr)))))))) and make_expr_rules _loc n rl tvar = List.fold_left (fun txt (sl, ac) -> @@ -11032,26 +11537,28 @@ module G = let x = make_expr n tvar t in Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), x), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), x)), txt)) - sl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + sl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) in Ast.ExApp (_loc, - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - Ast.ExTup (_loc, Ast.ExCom (_loc, sl, ac))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), + (Ast.ExTup (_loc, (Ast.ExCom (_loc, sl, ac)))))), txt)) - (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) rl + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) rl let expr_of_delete_rule _loc n sl = let sl = List.fold_right (fun s e -> Ast.ExApp (_loc, - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - make_expr n "" s.text), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), + (make_expr n "" s.text))), e)) - sl (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + sl (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) in ((n.expr), sl) let rec tvar_of_ident = @@ -11150,19 +11657,19 @@ module G = let _loc = e.name.loc in Ast.ExTyc (_loc, x.expr, - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Entry")), - Ast.IdLid (_loc, "t"))), - Ast.TyQuo (_loc, x.tvar))) in + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Entry")))), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyQuo (_loc, x.tvar))))) in let pos = match e.pos with | Some pos -> - Ast.ExApp (_loc, Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), - pos) - | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in + Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), pos) + | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in let txt = List.fold_right (fun level txt -> @@ -11170,28 +11677,29 @@ module G = match level.label with | Some lab -> Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), - Ast.ExStr (_loc, lab)) - | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in + (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), + (Ast.ExStr (_loc, lab))) + | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in let ass = match level.assoc with | Some ass -> Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "Some")), ass) - | None -> Ast.ExId (_loc, Ast.IdUid (_loc, "None")) in + (Ast.ExId (_loc, (Ast.IdUid (_loc, "Some")))), ass) + | None -> Ast.ExId (_loc, (Ast.IdUid (_loc, "None"))) in let txt = let rl = srules _loc e.name.tvar level.rules e.name.tvar in let e = make_expr_rules _loc e.name rl e.name.tvar in Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - Ast.ExTup (_loc, - Ast.ExCom (_loc, lab, Ast.ExCom (_loc, ass, e)))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))), + (Ast.ExTup (_loc, + (Ast.ExCom (_loc, lab, + (Ast.ExCom (_loc, ass, e)))))))), txt) in txt) - e.levels (Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + e.levels (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))) in (ent, pos, txt) let let_in_of_extend _loc gram gl el args = @@ -11220,28 +11728,28 @@ module G = | Ast.ExId (_, (Ast.IdLid (_, i))) -> i | _ -> failwith "internal error in the Grammar extension") in - Ast.BiEq (_loc, Ast.PaId (_loc, Ast.IdLid (_loc, i)), - Ast.ExTyc (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "grammar_entry_create")), - Ast.ExStr (_loc, i)), - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Entry")), - Ast.IdLid (_loc, "t"))), - Ast.TyQuo (_loc, x)))) in + Ast.BiEq (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, i)))), + (Ast.ExTyc (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "grammar_entry_create")))), + (Ast.ExStr (_loc, i)))), + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Entry")))), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyQuo (_loc, x))))))) in let expr_of_name { expr = e; tvar = x; loc = _loc } = Ast.ExTyc (_loc, e, - Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdUid (_loc, "Entry")), - Ast.IdLid (_loc, "t"))), - Ast.TyQuo (_loc, x))) in + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdUid (_loc, "Entry")))), + (Ast.IdLid (_loc, "t")))))), + (Ast.TyQuo (_loc, x))))) in let e = (match ll with | [] -> args @@ -11250,30 +11758,31 @@ module G = List.fold_right (fun name acc -> Ast.BiAnd (_loc, acc, - local_binding_of_name name)) + (local_binding_of_name name))) xs (local_binding_of_name x) in let entry_mk = (match gram with | Some g -> Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Entry"), - Ast.IdLid (_loc, "mk")))), - Ast.ExId (_loc, g)) + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Entry")), + (Ast.IdLid (_loc, "mk")))))))), + (Ast.ExId (_loc, g))) | None -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Entry"), - Ast.IdLid (_loc, "mk"))))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Entry")), + (Ast.IdLid (_loc, "mk")))))))) in - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, - Ast.PaId (_loc, - Ast.IdLid (_loc, "grammar_entry_create")), - entry_mk), - Ast.ExLet (_loc, Ast.BFalse, locals, args))) + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaId (_loc, + (Ast.IdLid (_loc, "grammar_entry_create")))), + entry_mk)), + (Ast.ExLet (_loc, Ast.ReNil, locals, args)))) in (match nl with | [] -> e @@ -11282,11 +11791,12 @@ module G = List.fold_right (fun name acc -> Ast.BiAnd (_loc, acc, - Ast.BiEq (_loc, Ast.PaAny _loc, - expr_of_name name))) + (Ast.BiEq (_loc, (Ast.PaAny _loc), + (expr_of_name name))))) xs - (Ast.BiEq (_loc, Ast.PaAny _loc, expr_of_name x)) - in Ast.ExLet (_loc, Ast.BFalse, globals, e))) + (Ast.BiEq (_loc, (Ast.PaAny _loc), + (expr_of_name x))) + in Ast.ExLet (_loc, Ast.ReNil, globals, e))) class subst gmod = object inherit Ast.map as super @@ -11308,41 +11818,42 @@ module G = let (ent, pos, txt) = text_of_entry e.name.loc e in let e = Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, "extend"))), - ent), - Ast.ExApp (_loc, - Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "()")), - Ast.ExNil _loc, - Ast.ExTup (_loc, Ast.ExCom (_loc, pos, txt)))), - Ast.ExId (_loc, Ast.IdUid (_loc, "()")))) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, "extend")))))), + ent)), + (Ast.ExApp (_loc, + (Ast.ExFun (_loc, + (Ast.McArr (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "()")))), + (Ast.ExNil _loc), + (Ast.ExTup (_loc, + (Ast.ExCom (_loc, pos, txt)))))))), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))))))) in if !split_ext then - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, "aux")), - Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, "()")), - Ast.ExNil _loc, e))), - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "aux")), - Ast.ExId (_loc, Ast.IdUid (_loc, "()")))) + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaId (_loc, (Ast.IdLid (_loc, "aux")))), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, + (Ast.PaId (_loc, (Ast.IdUid (_loc, "()")))), + (Ast.ExNil _loc), e)))))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, (Ast.IdLid (_loc, "aux")))), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))))))) else e) el in match el with - | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "()")) + | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) | [ e ] -> e | e :: el -> Ast.ExSeq (_loc, - List.fold_left (fun acc x -> Ast.ExSem (_loc, acc, x)) e - el) + (List.fold_left (fun acc x -> Ast.ExSem (_loc, acc, x)) e + el)) in subst_gmod (let_in_of_extend _loc gram gl el args) gmod let wildcarder = @@ -11363,15 +11874,15 @@ module G = if Ast.is_irrefut_patt p' then Ast.ExFun (_loc, - Ast.McArr (_loc, p', Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "True")))) + (Ast.McArr (_loc, p', (Ast.ExNil _loc), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "True"))))))) else Ast.ExFun (_loc, - Ast.McOr (_loc, - Ast.McArr (_loc, p', Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "True"))), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "False"))))) in + (Ast.McOr (_loc, + (Ast.McArr (_loc, p', (Ast.ExNil _loc), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))))), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "False"))))))))) in let descr = string_of_patt p' in let text = TXtok (_loc, match_fun, descr) in { used = []; text = text; styp = t; pattern = Some p; } @@ -11508,9 +12019,9 @@ module G = 'semi_sep Gram.Entry.t)) ], (Gram.Action.mk (fun _ (e : 'entry) - (_loc : Gram.Loc.t) -> (e : 'e__9)))) ]) ], + (_loc : Gram.Loc.t) -> (e : 'e__16)))) ]) ], (Gram.Action.mk - (fun (el : 'e__9 list) + (fun (el : 'e__16 list) (global_list : 'global option) ((gram, g) : 'extend_header) (_loc : Gram.Loc.t) -> @@ -11529,12 +12040,12 @@ module G = (Gram.Entry.obj (name : 'name Gram.Entry.t)); Gram.Skeyword ":"; Gram.Slist0sep + ((Gram.Snterm + (Gram.Entry.obj + (symbol : 'symbol Gram.Entry.t))), (Gram.Snterm (Gram.Entry.obj - (symbol : 'symbol Gram.Entry.t)), - Gram.Snterm - (Gram.Entry.obj - (semi_sep : 'semi_sep Gram.Entry.t))) ], + (semi_sep : 'semi_sep Gram.Entry.t)))) ], (Gram.Action.mk (fun (sl : 'symbol list) _ (n : 'name) (g : 'qualuid) (_loc : Gram.Loc.t) -> @@ -11542,12 +12053,13 @@ module G = in subst_gmod (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, "delete_rule"))), - e), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, + "delete_rule")))))), + e)), b)) g : 'delete_rule_body)))) ]) ])) @@ -11566,7 +12078,7 @@ module G = (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | UIDENT "GLOBAL" -> (() : 'e__10) + | UIDENT "GLOBAL" -> (() : 'e__17) | _ -> assert false))); ([ Gram.Stoken (((function @@ -11577,7 +12089,7 @@ module G = (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | LIDENT ((_)) -> (() : 'e__10) + | LIDENT ((_)) -> (() : 'e__17) | _ -> assert false))) ] ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> @@ -11601,7 +12113,9 @@ module G = (fun (xs : 'qualuid) _ (x : Gram.Token.t) (_loc : Gram.Loc.t) -> (let x = Gram.Token.extract_string x - in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) : + in + Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)), + xs) : 'qualuid)))) ]) ])) ()); Gram.extend (qualuid : 'qualuid Gram.Entry.t) @@ -11618,7 +12132,7 @@ module G = (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | UIDENT "GLOBAL" -> (() : 'e__11) + | UIDENT "GLOBAL" -> (() : 'e__18) | _ -> assert false))); ([ Gram.Stoken (((function @@ -11629,7 +12143,7 @@ module G = (fun (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | LIDENT ((_)) -> (() : 'e__11) + | LIDENT ((_)) -> (() : 'e__18) | _ -> assert false))) ] ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> @@ -11653,7 +12167,9 @@ module G = (fun (xs : 'qualuid) _ (x : Gram.Token.t) (_loc : Gram.Loc.t) -> (let x = Gram.Token.extract_string x - in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) : + in + Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)), + xs) : 'qualuid)))) ]) ])) ()); Gram.extend (qualid : 'qualid Gram.Entry.t) @@ -11682,7 +12198,9 @@ module G = (fun (xs : 'qualid) _ (x : Gram.Token.t) (_loc : Gram.Loc.t) -> (let x = Gram.Token.extract_string x - in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) : + in + Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)), + xs) : 'qualid)))) ]) ])) ()); Gram.extend (t_qualid : 't_qualid Gram.Entry.t) @@ -11729,7 +12247,9 @@ module G = (fun (xs : 't_qualid) _ (x : Gram.Token.t) (_loc : Gram.Loc.t) -> (let x = Gram.Token.extract_string x - in Ast.IdAcc (_loc, Ast.IdUid (_loc, x), xs) : + in + Ast.IdAcc (_loc, (Ast.IdUid (_loc, x)), + xs) : 't_qualid)))) ]) ])) ()); Gram.extend (global : 'global Gram.Entry.t) @@ -11793,14 +12313,15 @@ module G = match __camlp4_0 with | UIDENT "LEVEL" -> (Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "Level"))))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, + "Grammar")), + (Ast.IdUid (_loc, "Level")))))))))), n) : 'position) | _ -> assert false))); @@ -11817,14 +12338,15 @@ module G = match __camlp4_0 with | UIDENT "AFTER" -> (Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "After"))))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, + "Grammar")), + (Ast.IdUid (_loc, "After")))))))))), n) : 'position) | _ -> assert false))); @@ -11841,14 +12363,16 @@ module G = match __camlp4_0 with | UIDENT "BEFORE" -> (Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "Before"))))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, + "Grammar")), + (Ast.IdUid (_loc, + "Before")))))))))), n) : 'position) | _ -> assert false))); @@ -11863,13 +12387,13 @@ module G = match __camlp4_0 with | UIDENT "LAST" -> (Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "Last"))))) : + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Grammar")), + (Ast.IdUid (_loc, "Last"))))))))) : 'position) | _ -> assert false))); ([ Gram.Stoken @@ -11883,13 +12407,13 @@ module G = match __camlp4_0 with | UIDENT "FIRST" -> (Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "First"))))) : + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Grammar")), + (Ast.IdUid (_loc, "First"))))))))) : 'position) | _ -> assert false))) ]) ])) ()); @@ -11899,10 +12423,10 @@ module G = [ (None, None, [ ([ Gram.Skeyword "["; Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj - (level : 'level Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj + (level : 'level Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (ll : 'level list) _ (_loc : Gram.Loc.t) @@ -11924,7 +12448,7 @@ module G = (_loc : Gram.Loc.t) -> (let x = Gram.Token.extract_string x - in x : 'e__12)))) ]); + in x : 'e__19)))) ]); Gram.Sopt (Gram.Snterm (Gram.Entry.obj @@ -11934,7 +12458,7 @@ module G = (rule_list : 'rule_list Gram.Entry.t)) ], (Gram.Action.mk (fun (rules : 'rule_list) (ass : 'assoc option) - (lab : 'e__12 option) (_loc : Gram.Loc.t) -> + (lab : 'e__19 option) (_loc : Gram.Loc.t) -> ({ label = lab; assoc = ass; rules = rules; } : 'level)))) ]) ])) ()); @@ -11953,13 +12477,13 @@ module G = match __camlp4_0 with | UIDENT "NONA" -> (Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "NonA"))))) : + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Grammar")), + (Ast.IdUid (_loc, "NonA"))))))))) : 'assoc) | _ -> assert false))); ([ Gram.Stoken @@ -11973,13 +12497,13 @@ module G = match __camlp4_0 with | UIDENT "RIGHTA" -> (Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "RightA"))))) : + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Grammar")), + (Ast.IdUid (_loc, "RightA"))))))))) : 'assoc) | _ -> assert false))); ([ Gram.Stoken @@ -11993,13 +12517,13 @@ module G = match __camlp4_0 with | UIDENT "LEFTA" -> (Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Camlp4"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Sig"), - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Grammar"), - Ast.IdUid (_loc, "LeftA"))))) : + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Camlp4")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Sig")), + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Grammar")), + (Ast.IdUid (_loc, "LeftA"))))))))) : 'assoc) | _ -> assert false))) ]) ])) ()); @@ -12009,9 +12533,9 @@ module G = [ (None, None, [ ([ Gram.Skeyword "["; Gram.Slist1sep - (Gram.Snterm - (Gram.Entry.obj (rule : 'rule Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj (rule : 'rule Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (rules : 'rule list) _ @@ -12028,22 +12552,22 @@ module G = (None, [ (None, None, [ ([ Gram.Slist0sep + ((Gram.Snterm + (Gram.Entry.obj + (psymbol : 'psymbol Gram.Entry.t))), (Gram.Snterm (Gram.Entry.obj - (psymbol : 'psymbol Gram.Entry.t)), - Gram.Snterm - (Gram.Entry.obj - (semi_sep : 'semi_sep Gram.Entry.t))) ], + (semi_sep : 'semi_sep Gram.Entry.t)))) ], (Gram.Action.mk (fun (psl : 'psymbol list) (_loc : Gram.Loc.t) -> ({ prod = psl; action = None; } : 'rule)))); ([ Gram.Slist0sep + ((Gram.Snterm + (Gram.Entry.obj + (psymbol : 'psymbol Gram.Entry.t))), (Gram.Snterm (Gram.Entry.obj - (psymbol : 'psymbol Gram.Entry.t)), - Gram.Snterm - (Gram.Entry.obj - (semi_sep : 'semi_sep Gram.Entry.t))); + (semi_sep : 'semi_sep Gram.Entry.t)))); Gram.Skeyword "->"; Gram.Snterm (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ], @@ -12078,8 +12602,8 @@ module G = -> mk_tok _loc (Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdUid (_loc, u)), + (Ast.PaId (_loc, + (Ast.IdUid (_loc, u)))), p)) s.styp | _ -> { (s) with pattern = Some p; } : @@ -12107,10 +12631,10 @@ module G = | UIDENT "LEVEL" -> (let s = Gram.Token.extract_string s - in s : 'e__13) + in s : 'e__20) | _ -> assert false))) ]) ], (Gram.Action.mk - (fun (lev : 'e__13 option) (i : Gram.Token.t) + (fun (lev : 'e__20 option) (i : Gram.Token.t) (_loc : Gram.Loc.t) -> (let i = Gram.Token.extract_string i in let name = @@ -12145,19 +12669,21 @@ module G = -> let match_fun = Ast.ExFun (_loc, - Ast.McOr (_loc, - Ast.McArr (_loc, p', - Ast.ExNil _loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "True"))), - Ast.McArr (_loc, Ast.PaAny _loc, - Ast.ExNil _loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "False"))))) in + (Ast.McOr (_loc, + (Ast.McArr (_loc, p', + (Ast.ExNil _loc), + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "True")))))), + (Ast.McArr (_loc, + (Ast.PaAny _loc), + (Ast.ExNil _loc), + (Ast.ExId (_loc, + (Ast.IdUid (_loc, + "False"))))))))) in let p' = Ast.PaAli (_loc, p', - Ast.PaId (_loc, - Ast.IdLid (_loc, p))) in + (Ast.PaId (_loc, + (Ast.IdLid (_loc, p))))) in let descr = u ^ " _" in let text = TXtok (_loc, match_fun, descr) @@ -12175,7 +12701,7 @@ module G = pattern = Some (Ast.PaId (_loc, - Ast.IdLid (_loc, p))); + (Ast.IdLid (_loc, p)))); } : 'psymbol)))) ]) ])) ()); @@ -12184,6 +12710,25 @@ module G = (None, [ ((Some "top"), (Some Camlp4.Sig.Grammar.NonA), [ ([ Gram.Stoken + (((function | UIDENT "TRY" -> true | _ -> false), + "UIDENT \"TRY\"")); + Gram.Sself ], + (Gram.Action.mk + (fun (s : 'symbol) (__camlp4_0 : Gram.Token.t) + (_loc : Gram.Loc.t) -> + match __camlp4_0 with + | UIDENT "TRY" -> + (let text = TXtry (_loc, s.text) + in + { + used = s.used; + text = text; + styp = s.styp; + pattern = None; + } : + 'symbol) + | _ -> assert false))); + ([ Gram.Stoken (((function | UIDENT "OPT" -> true | _ -> false), "UIDENT \"OPT\"")); Gram.Sself ], @@ -12194,7 +12739,7 @@ module G = | UIDENT "OPT" -> (let () = check_not_tok s in let styp = - STapp (_loc, STlid (_loc, "option"), + STapp (_loc, (STlid (_loc, "option")), s.styp) in let text = TXopt (_loc, s.text) in @@ -12227,10 +12772,10 @@ module G = (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | UIDENT "SEP" -> (t : 'e__15) + | UIDENT "SEP" -> (t : 'e__22) | _ -> assert false))) ]) ], (Gram.Action.mk - (fun (sep : 'e__15 option) (s : 'symbol) + (fun (sep : 'e__22 option) (s : 'symbol) (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with @@ -12241,7 +12786,7 @@ module G = | Some symb -> symb.used @ s.used | None -> s.used) in let styp = - STapp (_loc, STlid (_loc, "list"), + STapp (_loc, (STlid (_loc, "list")), s.styp) in let text = slist _loc true sep s in @@ -12274,10 +12819,10 @@ module G = (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with - | UIDENT "SEP" -> (t : 'e__14) + | UIDENT "SEP" -> (t : 'e__21) | _ -> assert false))) ]) ], (Gram.Action.mk - (fun (sep : 'e__14 option) (s : 'symbol) + (fun (sep : 'e__21 option) (s : 'symbol) (__camlp4_0 : Gram.Token.t) (_loc : Gram.Loc.t) -> match __camlp4_0 with @@ -12288,7 +12833,7 @@ module G = | Some symb -> symb.used @ s.used | None -> s.used) in let styp = - STapp (_loc, STlid (_loc, "list"), + STapp (_loc, (STlid (_loc, "list")), s.styp) in let text = slist _loc false sep s in @@ -12327,10 +12872,10 @@ module G = | UIDENT "LEVEL" -> (let s = Gram.Token.extract_string s - in s : 'e__17) + in s : 'e__24) | _ -> assert false))) ]) ], (Gram.Action.mk - (fun (lev : 'e__17 option) (n : 'name) + (fun (lev : 'e__24 option) (n : 'name) (_loc : Gram.Loc.t) -> ({ used = [ n.tvar ]; @@ -12364,15 +12909,15 @@ module G = | UIDENT "LEVEL" -> (let s = Gram.Token.extract_string s - in s : 'e__16) + in s : 'e__23) | _ -> assert false))) ]) ], (Gram.Action.mk - (fun (lev : 'e__16 option) (il : 'qualid) _ + (fun (lev : 'e__23 option) (il : 'qualid) _ (i : Gram.Token.t) (_loc : Gram.Loc.t) -> (let i = Gram.Token.extract_string i in let n = mk_name _loc - (Ast.IdAcc (_loc, Ast.IdUid (_loc, i), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, i)), il)) in { @@ -12414,34 +12959,38 @@ module G = AntiquotSyntax.parse_expr _loc s in let match_fun = Ast.ExFun (_loc, - Ast.McOr (_loc, - Ast.McArr (_loc, - Ast.PaApp (_loc, - Ast.PaId (_loc, - Ast.IdUid (_loc, x)), - Ast.PaId (_loc, - Ast.IdLid (_loc, "camlp4_x"))), - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdLid (_loc, "=")), - Ast.ExId (_loc, - Ast.IdLid (_loc, - "camlp4_x"))), - e), - Ast.ExId (_loc, - Ast.IdUid (_loc, "True"))), - Ast.McArr (_loc, Ast.PaAny _loc, - Ast.ExNil _loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "False"))))) in + (Ast.McOr (_loc, + (Ast.McArr (_loc, + (Ast.PaApp (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, x)))), + (Ast.PaId (_loc, + (Ast.IdLid (_loc, + "camlp4_x")))))), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdLid (_loc, + "=")))), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, + "camlp4_x")))))), + e)), + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "True")))))), + (Ast.McArr (_loc, + (Ast.PaAny _loc), + (Ast.ExNil _loc), + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "False"))))))))) in let descr = "$" ^ (x ^ (" " ^ s)) in let text = TXtok (_loc, match_fun, descr) in let p = Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, x)), - Ast.PaTup (_loc, Ast.PaAny _loc)) + (Ast.PaId (_loc, + (Ast.IdUid (_loc, x)))), + (Ast.PaTup (_loc, (Ast.PaAny _loc)))) in { used = []; @@ -12465,8 +13014,9 @@ module G = in mk_tok _loc (Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, x)), - Ast.PaStr (_loc, s))) + (Ast.PaId (_loc, + (Ast.IdUid (_loc, x)))), + (Ast.PaStr (_loc, s)))) (STtok _loc) : 'symbol)))); ([ Gram.Stoken @@ -12478,8 +13028,9 @@ module G = in mk_tok _loc (Ast.PaApp (_loc, - Ast.PaId (_loc, Ast.IdUid (_loc, x)), - Ast.PaTup (_loc, Ast.PaAny _loc))) + (Ast.PaId (_loc, + (Ast.IdUid (_loc, x)))), + (Ast.PaTup (_loc, (Ast.PaAny _loc))))) (STstring_tok _loc) : 'symbol)))); ([ Gram.Skeyword "`"; @@ -12490,9 +13041,9 @@ module G = (mk_tok _loc p (STtok _loc) : 'symbol)))); ([ Gram.Skeyword "["; Gram.Slist0sep - (Gram.Snterm - (Gram.Entry.obj (rule : 'rule Gram.Entry.t)), - Gram.Skeyword "|"); + ((Gram.Snterm + (Gram.Entry.obj (rule : 'rule Gram.Entry.t))), + (Gram.Skeyword "|")); Gram.Skeyword "]" ], (Gram.Action.mk (fun _ (rl : 'rule list) _ (_loc : Gram.Loc.t) @@ -12504,7 +13055,7 @@ module G = { used = used_of_rule_list rl; text = - TXrules (_loc, srules _loc t rl ""); + TXrules (_loc, (srules _loc t rl "")); styp = STquo (_loc, t); pattern = None; } : @@ -12556,7 +13107,7 @@ module G = (Gram.Action.mk (fun _ (p2 : 'comma_patt) _ (p1 : 'pattern) _ (_loc : Gram.Loc.t) -> - (Ast.PaTup (_loc, Ast.PaCom (_loc, p1, p2)) : + (Ast.PaTup (_loc, (Ast.PaCom (_loc, p1, p2))) : 'pattern)))); ([ Gram.Skeyword "("; Gram.Sself; Gram.Skeyword ")" ], (Gram.Action.mk @@ -12572,7 +13123,7 @@ module G = (Gram.Action.mk (fun (i : Gram.Token.t) (_loc : Gram.Loc.t) -> (let i = Gram.Token.extract_string i - in Ast.PaId (_loc, Ast.IdLid (_loc, i)) : + in Ast.PaId (_loc, (Ast.IdLid (_loc, i))) : 'pattern)))) ]) ])) ()); Gram.extend (comma_patt : 'comma_patt Gram.Entry.t) @@ -12648,25 +13199,25 @@ module G = END; *) let sfold _loc n foldfun f e s = - let styp = STquo (_loc, new_type_var ()) in + let styp = STquo (_loc, (new_type_var ())) in let e = Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, foldfun))), - f), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, foldfun)))))), + f)), e) in let t = STapp (_loc, - STapp (_loc, - STtyp - (Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, "fold"))), - Ast.TyAny _loc)), - s.styp), + (STapp (_loc, + (STtyp + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, "fold")))))), + (Ast.TyAny _loc)))), + s.styp)), styp) in { @@ -12677,25 +13228,25 @@ module G = } let sfoldsep _loc n foldfun f e s sep = - let styp = STquo (_loc, new_type_var ()) in + let styp = STquo (_loc, (new_type_var ())) in let e = Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, foldfun))), - f), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, foldfun)))))), + f)), e) in let t = STapp (_loc, - STapp (_loc, - STtyp - (Ast.TyApp (_loc, - Ast.TyId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, gm), - Ast.IdLid (_loc, "foldsep"))), - Ast.TyAny _loc)), - s.styp), + (STapp (_loc, + (STtyp + (Ast.TyApp (_loc, + (Ast.TyId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, gm)), + (Ast.IdLid (_loc, "foldsep")))))), + (Ast.TyAny _loc)))), + s.styp)), styp) in { @@ -12832,7 +13383,7 @@ module G = (a_LIDENT : 'a_LIDENT Gram.Entry.t)) ], (Gram.Action.mk (fun (i : 'a_LIDENT) (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdLid (_loc, i)) : + (Ast.ExId (_loc, (Ast.IdLid (_loc, i))) : 'simple_expr)))) ]) ])) ())) @@ -12978,26 +13529,26 @@ Added statements: let substp _loc env = let rec loop = function - | Ast.ExApp (_, e1, e2) -> Ast.PaApp (_loc, loop e1, loop e2) + | Ast.ExApp (_, e1, e2) -> Ast.PaApp (_loc, (loop e1), (loop e2)) | Ast.ExNil _ -> Ast.PaNil _loc | Ast.ExId (_, (Ast.IdLid (_, x))) -> (try List.assoc x env - with | Not_found -> Ast.PaId (_loc, Ast.IdLid (_loc, x))) + with | Not_found -> Ast.PaId (_loc, (Ast.IdLid (_loc, x)))) | Ast.ExId (_, (Ast.IdUid (_, x))) -> (try List.assoc x env - with | Not_found -> Ast.PaId (_loc, Ast.IdUid (_loc, x))) + with | Not_found -> Ast.PaId (_loc, (Ast.IdUid (_loc, x)))) | Ast.ExInt (_, x) -> Ast.PaInt (_loc, x) | Ast.ExStr (_, s) -> Ast.PaStr (_loc, s) - | Ast.ExTup (_, x) -> Ast.PaTup (_loc, loop x) - | Ast.ExCom (_, x1, x2) -> Ast.PaCom (_loc, loop x1, loop x2) + | Ast.ExTup (_, x) -> Ast.PaTup (_loc, (loop x)) + | Ast.ExCom (_, x1, x2) -> Ast.PaCom (_loc, (loop x1), (loop x2)) | Ast.ExRec (_, bi, (Ast.ExNil _)) -> let rec substbi = (function | Ast.RbSem (_, b1, b2) -> - Ast.PaSem (_loc, substbi b1, substbi b2) - | Ast.RbEq (_, i, e) -> Ast.PaEq (_loc, i, loop e) + Ast.PaSem (_loc, (substbi b1), (substbi b2)) + | Ast.RbEq (_, i, e) -> Ast.PaEq (_loc, i, (loop e)) | _ -> bad_patt _loc) - in Ast.PaRec (_loc, substbi bi) + in Ast.PaRec (_loc, (substbi bi)) | _ -> bad_patt _loc in loop @@ -13519,7 +14070,7 @@ Added statements: (Gram.Entry.obj (endif : 'endif Gram.Entry.t)) ], (Gram.Action.mk (fun _ (_loc : Gram.Loc.t) -> - (Ast.ExId (_loc, Ast.IdUid (_loc, "()")) : + (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))) : 'else_expr)))); ([ Gram.Skeyword "ELSE"; Gram.Snterm @@ -13546,7 +14097,7 @@ Added statements: (Gram.Action.mk (fun _ (si : 'str_item) (_loc : Gram.Loc.t) -> - (SdStr si : 'e__18)))); + (SdStr si : 'e__25)))); ([ Gram.Snterm (Gram.Entry.obj (macro_def : @@ -13562,9 +14113,9 @@ Added statements: (fun a b -> Ast.StSem (_loc, a, b)) Then d : - 'e__18)))) ]) ], + 'e__25)))) ]) ], (Gram.Action.mk - (fun (sml : 'e__18 list) (_loc : Gram.Loc.t) -> + (fun (sml : 'e__25 list) (_loc : Gram.Loc.t) -> (sml : 'smlist_then)))) ]) ])) ()); Gram.extend (smlist_else : 'smlist_else Gram.Entry.t) @@ -13583,7 +14134,7 @@ Added statements: (Gram.Action.mk (fun _ (si : 'str_item) (_loc : Gram.Loc.t) -> - (SdStr si : 'e__19)))); + (SdStr si : 'e__26)))); ([ Gram.Snterm (Gram.Entry.obj (macro_def : @@ -13599,9 +14150,9 @@ Added statements: (fun a b -> Ast.StSem (_loc, a, b)) Else d : - 'e__19)))) ]) ], + 'e__26)))) ]) ], (Gram.Action.mk - (fun (sml : 'e__19 list) (_loc : Gram.Loc.t) -> + (fun (sml : 'e__26 list) (_loc : Gram.Loc.t) -> (sml : 'smlist_else)))) ]) ])) ()); Gram.extend (sglist_then : 'sglist_then Gram.Entry.t) @@ -13620,7 +14171,7 @@ Added statements: (Gram.Action.mk (fun _ (si : 'sig_item) (_loc : Gram.Loc.t) -> - (SdStr si : 'e__20)))); + (SdStr si : 'e__27)))); ([ Gram.Snterm (Gram.Entry.obj (macro_def_sig : @@ -13636,9 +14187,9 @@ Added statements: (fun a b -> Ast.SgSem (_loc, a, b)) Then d : - 'e__20)))) ]) ], + 'e__27)))) ]) ], (Gram.Action.mk - (fun (sgl : 'e__20 list) (_loc : Gram.Loc.t) -> + (fun (sgl : 'e__27 list) (_loc : Gram.Loc.t) -> (sgl : 'sglist_then)))) ]) ])) ()); Gram.extend (sglist_else : 'sglist_else Gram.Entry.t) @@ -13657,7 +14208,7 @@ Added statements: (Gram.Action.mk (fun _ (si : 'sig_item) (_loc : Gram.Loc.t) -> - (SdStr si : 'e__21)))); + (SdStr si : 'e__28)))); ([ Gram.Snterm (Gram.Entry.obj (macro_def_sig : @@ -13673,9 +14224,9 @@ Added statements: (fun a b -> Ast.SgSem (_loc, a, b)) Else d : - 'e__21)))) ]) ], + 'e__28)))) ]) ], (Gram.Action.mk - (fun (sgl : 'e__21 list) (_loc : Gram.Loc.t) -> + (fun (sgl : 'e__28 list) (_loc : Gram.Loc.t) -> (sgl : 'sglist_else)))) ]) ])) ()); Gram.extend (endif : 'endif Gram.Entry.t) @@ -13705,24 +14256,24 @@ Added statements: (Some (([], e)) : 'opt_macro_value)))); ([ Gram.Skeyword "("; Gram.Slist1sep - (Gram.srules opt_macro_value - [ ([ Gram.Stoken - (((function - | LIDENT ((_)) -> true - | _ -> false), - "LIDENT _")) ], - (Gram.Action.mk - (fun (x : Gram.Token.t) - (_loc : Gram.Loc.t) -> - (let x = - Gram.Token.extract_string x - in x : 'e__22)))) ], - Gram.Skeyword ","); + ((Gram.srules opt_macro_value + [ ([ Gram.Stoken + (((function + | LIDENT ((_)) -> true + | _ -> false), + "LIDENT _")) ], + (Gram.Action.mk + (fun (x : Gram.Token.t) + (_loc : Gram.Loc.t) -> + (let x = + Gram.Token.extract_string x + in x : 'e__29)))) ]), + (Gram.Skeyword ",")); Gram.Skeyword ")"; Gram.Skeyword "="; Gram.Snterm (Gram.Entry.obj (expr : 'expr Gram.Entry.t)) ], (Gram.Action.mk - (fun (e : 'expr) _ _ (pl : 'e__22 list) _ + (fun (e : 'expr) _ _ (pl : 'e__29 list) _ (_loc : Gram.Loc.t) -> (Some ((pl, e)) : 'opt_macro_value)))) ]) ])) ()); @@ -13783,39 +14334,51 @@ Added statements: Loc.to_tuple _loc in Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, - Ast.IdUid (_loc, "Loc"), - Ast.IdLid (_loc, "of_tuple"))), - Ast.ExTup (_loc, - Ast.ExCom (_loc, - Ast.ExStr (_loc, - Ast.safe_string_escaped a), - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExCom (_loc, - Ast.ExInt (_loc, - string_of_int b), - Ast.ExInt (_loc, - string_of_int c)), - Ast.ExInt (_loc, - string_of_int d)), - Ast.ExInt (_loc, - string_of_int e)), - Ast.ExInt (_loc, - string_of_int f)), - Ast.ExInt (_loc, - string_of_int g)), - if h - then - Ast.ExId (_loc, - Ast.IdUid (_loc, "True")) - else - Ast.ExId (_loc, - Ast.IdUid (_loc, "False")))))) : + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, + (Ast.IdUid (_loc, "Loc")), + (Ast.IdLid (_loc, "of_tuple")))))), + (Ast.ExTup (_loc, + (Ast.ExCom (_loc, + (Ast.ExStr (_loc, + (Ast.safe_string_escaped a))), + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom (_loc, + (Ast.ExCom + (_loc, + (Ast.ExInt + (_loc, + ( + string_of_int + b))), + (Ast.ExInt + (_loc, + ( + string_of_int + c))))), + (Ast.ExInt + (_loc, + (string_of_int + d))))), + (Ast.ExInt (_loc, + (string_of_int + e))))), + (Ast.ExInt (_loc, + (string_of_int f))))), + (Ast.ExInt (_loc, + (string_of_int g))))), + (if h + then + Ast.ExId (_loc, + (Ast.IdUid (_loc, + "True"))) + else + Ast.ExId (_loc, + (Ast.IdUid (_loc, + "False"))))))))))) : 'expr) | _ -> assert false))); ([ Gram.Stoken @@ -13829,8 +14392,8 @@ Added statements: match __camlp4_0 with | LIDENT "__FILE__" -> (Ast.ExStr (_loc, - Ast.safe_string_escaped - (Loc.file_name _loc)) : + (Ast.safe_string_escaped + (Loc.file_name _loc))) : 'expr) | _ -> assert false))) ]) ])) ()); @@ -13980,30 +14543,30 @@ module D = function | None -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"), - Ast.IdLid (_loc, "mode"))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")), + (Ast.IdLid (_loc, "mode"))))) | Some m -> Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, m), - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"), - Ast.IdLid (_loc, "mode")))) + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, m)), + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")), + (Ast.IdLid (_loc, "mode"))))))) let mk_debug _loc m fmt section args = let call = apply (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "Debug"), - Ast.IdLid (_loc, "printf"))), - Ast.ExStr (_loc, section)), - Ast.ExStr (_loc, fmt))) + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Debug")), + (Ast.IdLid (_loc, "printf")))))), + (Ast.ExStr (_loc, section)))), + (Ast.ExStr (_loc, fmt)))) args in Ast.ExIfe (_loc, - Ast.ExApp (_loc, mk_debug_mode _loc m, - Ast.ExStr (_loc, section)), - call, Ast.ExId (_loc, Ast.IdUid (_loc, "()"))) + (Ast.ExApp (_loc, (mk_debug_mode _loc m), + (Ast.ExStr (_loc, section)))), + call, (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))))) let _ = let _ = (expr : 'expr Gram.Entry.t) in @@ -14028,7 +14591,7 @@ module D = "STRING _")); Gram.Slist0 (Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), ".")); Gram.Snterm (Gram.Entry.obj @@ -14044,16 +14607,16 @@ module D = match (x, (debug_mode section)) with | (None, false) -> Ast.ExId (_loc, - Ast.IdUid (_loc, "()")) + (Ast.IdUid (_loc, "()"))) | (Some e, false) -> e | (None, _) -> mk_debug _loc m fmt section args | (Some e, _) -> - Ast.ExLet (_loc, Ast.BFalse, - Ast.BiEq (_loc, - Ast.PaId (_loc, - Ast.IdUid (_loc, "()")), - mk_debug _loc m fmt section args), + Ast.ExLet (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaId (_loc, + (Ast.IdUid (_loc, "()")))), + (mk_debug _loc m fmt section args))), e) : 'expr)))) ]) ])) ()); @@ -14188,79 +14751,88 @@ module L = if Ast.is_irrefut_patt p then Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"), - Ast.IdLid (_loc, "map"))), - Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, e))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")), + (Ast.IdLid (_loc, "map")))))), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, p, (Ast.ExNil _loc), e)))))), l) else Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"), - Ast.IdLid (_loc, "fold_right"))), - Ast.ExFun (_loc, - Ast.McOr (_loc, - Ast.McArr (_loc, p, - Ast.ExId (_loc, Ast.IdUid (_loc, "True")), - Ast.ExApp (_loc, - Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, "x")), - Ast.ExNil _loc, - Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, "xs")), - Ast.ExNil _loc, - Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "::")), - Ast.ExId (_loc, - Ast.IdLid (_loc, "x"))), - Ast.ExId (_loc, - Ast.IdLid (_loc, "xs"))))))), - e)), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - Ast.ExFun (_loc, - Ast.McArr (_loc, - Ast.PaId (_loc, Ast.IdLid (_loc, "l")), - Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdLid (_loc, "l")))))))), - l), - Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")), + (Ast.IdLid (_loc, "fold_right")))))), + (Ast.ExFun (_loc, + (Ast.McOr (_loc, + (Ast.McArr (_loc, p, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))), + (Ast.ExApp (_loc, + (Ast.ExFun (_loc, + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdLid (_loc, "x")))), + (Ast.ExNil _loc), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdLid (_loc, "xs")))), + (Ast.ExNil _loc), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, + "::")))), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, + "x")))))), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "xs")))))))))))))), + e)))), + (Ast.McArr (_loc, (Ast.PaAny _loc), + (Ast.ExNil _loc), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, + (Ast.PaId (_loc, + (Ast.IdLid (_loc, "l")))), + (Ast.ExNil _loc), + (Ast.ExId (_loc, + (Ast.IdLid (_loc, "l")))))))))))))))), + l)), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))) let filter _loc p b l = if Ast.is_irrefut_patt p then Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"), - Ast.IdLid (_loc, "filter"))), - Ast.ExFun (_loc, Ast.McArr (_loc, p, Ast.ExNil _loc, b))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")), + (Ast.IdLid (_loc, "filter")))))), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, p, (Ast.ExNil _loc), b)))))), l) else Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"), - Ast.IdLid (_loc, "filter"))), - Ast.ExFun (_loc, - Ast.McOr (_loc, - Ast.McArr (_loc, p, - Ast.ExId (_loc, Ast.IdUid (_loc, "True")), b), - Ast.McArr (_loc, Ast.PaAny _loc, Ast.ExNil _loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "False")))))), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")), + (Ast.IdLid (_loc, "filter")))))), + (Ast.ExFun (_loc, + (Ast.McOr (_loc, + (Ast.McArr (_loc, p, + (Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))), b)), + (Ast.McArr (_loc, (Ast.PaAny _loc), (Ast.ExNil _loc), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "False")))))))))))), l) let concat _loc l = Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdAcc (_loc, Ast.IdUid (_loc, "List"), - Ast.IdLid (_loc, "concat"))), + (Ast.ExId (_loc, + (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "List")), + (Ast.IdLid (_loc, "concat")))))), l) let rec compr _loc e = @@ -14326,43 +14898,45 @@ module L = (None, [ (None, None, [ ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top") ], (Gram.Action.mk (fun (e : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - e), - Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) : + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))) : 'comprehension_or_sem_expr_for_list)))); ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top"); Gram.Skeyword "|"; Gram.Slist1sep - (Gram.Snterm - (Gram.Entry.obj (item : 'item Gram.Entry.t)), - Gram.Skeyword ";") ], + ((Gram.Snterm + (Gram.Entry.obj (item : 'item Gram.Entry.t))), + (Gram.Skeyword ";")) ], (Gram.Action.mk (fun (l : 'item list) _ (e : 'expr) (_loc : Gram.Loc.t) -> (compr _loc e l : 'comprehension_or_sem_expr_for_list)))); ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top"); Gram.Skeyword ";" ], (Gram.Action.mk (fun _ (e : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - e), - Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))) : + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + (Ast.ExId (_loc, (Ast.IdUid (_loc, "[]"))))) : 'comprehension_or_sem_expr_for_list)))); ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top"); Gram.Skeyword ";"; Gram.Snterm @@ -14373,35 +14947,41 @@ module L = (fun (mk : 'sem_expr_for_list) _ (e : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, Ast.IdUid (_loc, "::")), - e), - mk - (Ast.ExId (_loc, Ast.IdUid (_loc, "[]")))) : + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + (mk + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "[]")))))) : 'comprehension_or_sem_expr_for_list)))) ]) ])) ()); Gram.extend (item : 'item Gram.Entry.t) ((fun () -> (None, [ (None, None, - [ ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), - "top") ], + [ ([ (* NP: These rules rely on being on this particular order. Which should + be improved. *) + Gram.Snterml + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), + "top") ], (Gram.Action.mk (fun (e : 'expr) (_loc : Gram.Loc.t) -> (`cond e : 'item)))); - ([ Gram.Snterm - (Gram.Entry.obj - (test_patt_lessminus : - 'test_patt_lessminus Gram.Entry.t)); - Gram.Snterm - (Gram.Entry.obj (patt : 'patt Gram.Entry.t)); - Gram.Skeyword "<-"; + ([ Gram.Stry + (Gram.srules item + [ ([ Gram.Snterm + (Gram.Entry.obj + (patt : 'patt Gram.Entry.t)); + Gram.Skeyword "<-" ], + (Gram.Action.mk + (fun _ (p : 'patt) (_loc : Gram.Loc.t) + -> (p : 'e__30)))) ]); Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top") ], (Gram.Action.mk - (fun (e : 'expr) _ (p : 'patt) _ + (fun (e : 'expr) (p : 'e__30) (_loc : Gram.Loc.t) -> (`gen ((p, e)) : 'item)))) ]) ])) ())) @@ -14421,7 +15001,7 @@ module L = (None, [ (None, None, [ ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top"); Gram.Skeyword "::"; Gram.Snterm @@ -14430,14 +15010,14 @@ module L = (fun (last : 'expr) _ (e : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "::")), - e), + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), last) : 'comprehension_or_sem_expr_for_list)))); ([ Gram.Snterml - (Gram.Entry.obj (expr : 'expr Gram.Entry.t), + ((Gram.Entry.obj (expr : 'expr Gram.Entry.t)), "top"); Gram.Skeyword ";"; Gram.Snterm @@ -14452,11 +15032,11 @@ module L = (mk : 'sem_expr_for_list) _ (e : 'expr) (_loc : Gram.Loc.t) -> (Ast.ExApp (_loc, - Ast.ExApp (_loc, - Ast.ExId (_loc, - Ast.IdUid (_loc, "::")), - e), - mk last) : + (Ast.ExApp (_loc, + (Ast.ExId (_loc, + (Ast.IdUid (_loc, "::")))), + e)), + (mk last)) : 'comprehension_or_sem_expr_for_list)))) ]) ])) ())) else () @@ -14814,6 +15394,8 @@ You should give the -noassert option to the ocaml compiler instead.@." ("-v", (Arg.Unit print_version), "Print Camlp4 version and exit."); ("-version", (Arg.Unit just_print_the_version), "Print Camlp4 version number and exit."); + ("-vnum", (Arg.Unit just_print_the_version), + "Print Camlp4 version number and exit."); ("-no_quot", (Arg.Clear Camlp4_config.quotations), "Don't parse quotations, allowing to use, e.g. \"<:>\" as token."); ("-loaded-modules", (Arg.Set print_loaded_modules), diff --git a/config/Makefile.msvc b/config/Makefile.msvc index b2dee22420..8f0a50ce43 100644 --- a/config/Makefile.msvc +++ b/config/Makefile.msvc @@ -98,7 +98,7 @@ FLEXLINK=flexlink -merge-manifest FLEXDIR=$(shell $(FLEXLINK) -where) IFLEXDIR=-I"$(FLEXDIR)" MKDLL=$(FLEXLINK) -MKEXE=$(FLEXLINK) -exe +MKEXE=$(FLEXLINK) -exe -link /STACK:16777216 MKMAINDLL=$(FLEXLINK) -maindll ### How to build a static library diff --git a/config/Makefile.msvc64 b/config/Makefile.msvc64 index 3c19e59221..e91b26f724 100644 --- a/config/Makefile.msvc64 +++ b/config/Makefile.msvc64 @@ -103,7 +103,7 @@ FLEXLINK=flexlink -x64 -merge-manifest FLEXDIR=$(shell $(FLEXLINK) -where) IFLEXDIR=-I"$(FLEXDIR)" MKDLL=$(FLEXLINK) -MKEXE=$(FLEXLINK) -exe +MKEXE=$(FLEXLINK) -exe -link /STACK:33554432 MKMAINDLL=$(FLEXLINK) -maindll ### How to build a static library @@ -433,10 +433,11 @@ esac # Determine alignment constraints case "$host" in - sparc*-*-*|hppa*-*-*) + sparc*-*-*|hppa*-*-*|arm*-*-*) # On Sparc V9 with certain versions of gcc, determination of double # alignment is not reliable (PR#1521), hence force it. # Same goes for hppa. + # PR#5088 suggests same problem on ARM. # But there's a knack (PR#2572): # if we're in 64-bit mode (sizeof(long) == 8), # we must not doubleword-align floats... @@ -464,7 +465,8 @@ esac if $int64_native; then case "$host" in - sparc*-*-*|hppa*-*-*) + # PR#5088: autodetection is unreliable on ARM + sparc*-*-*|hppa*-*-*|arm*-*-*) if test $2 = 8; then echo "64-bit integers can be word-aligned." echo "#undef ARCH_ALIGN_INT64" >> m.h @@ -574,14 +576,11 @@ if test $withsharedlibs = "yes"; then mksharedlibrpath="-rpath " shared_libraries_supported=true;; i[3456]86-*-darwin10.*) - if test $arch64 == true; then - mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress" - bytecccompopts="$dl_defs $bytecccompopts" - dl_needs_underscore=false - shared_libraries_supported=true - else - shared_libraries_supported=false - fi;; + mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress" + bytecccompopts="$dl_defs $bytecccompopts" + dl_needs_underscore=false + shared_libraries_supported=true + ;; i[3456]86-*-darwin*) mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress -read_only_relocs suppress" bytecccompopts="$dl_defs $bytecccompopts" @@ -1571,10 +1570,11 @@ fi # Look for BFD library -if ./hasgot -i bfd.h -lbfd -ldl; then +if ./hasgot -i bfd.h && \ + ./hasgot -lbfd -ldl -liberty -lz bfd_openr; then echo "BFD library found." echo "#define HAS_LIBBFD" >> s.h - echo "LIBBFD_LINK=-lbfd -ldl -liberty" >> Makefile + echo "LIBBFD_LINK=-lbfd -ldl -liberty -lz" >> Makefile else echo "BFD library not found, 'objinfo' will be unable to display info on .cmxs files" echo "LIBBFD_LINK=" >> Makefile diff --git a/driver/main_args.ml b/driver/main_args.ml index 578367f3bb..279a46328e 100644 --- a/driver/main_args.ml +++ b/driver/main_args.ml @@ -712,6 +712,7 @@ struct mk_nopervasives F._nopervasives; mk_dparsetree F._dparsetree; mk_drawlambda F._drawlambda; + mk_dlambda F._dlambda; mk_dcmm F._dcmm; mk_dsel F._dsel; mk_dcombine F._dcombine; diff --git a/myocamlbuild.ml b/myocamlbuild.ml index 0e3d9a2e27..ec4299c034 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -283,7 +283,7 @@ Pathname.define_context "toplevel" ["toplevel"; "parsing"; "typing"; "bytecomp"; Pathname.define_context "driver" ["driver"; "asmcomp"; "bytecomp"; "typing"; "utils"; "parsing"; "stdlib"];; Pathname.define_context "debugger" ["bytecomp"; "utils"; "typing"; "parsing"; "toplevel"; "stdlib"];; Pathname.define_context "otherlibs/dynlink" ["otherlibs/dynlink"; "bytecomp"; "utils"; "typing"; "parsing"; "stdlib"];; -Pathname.define_context "otherlibs/dynlink/nat" ["otherlibs/dynlink/nat"; "stdlib"];; +Pathname.define_context "otherlibs/dynlink/nat" ["otherlibs/dynlink/nat"; "asmcomp"; "stdlib"];; Pathname.define_context "asmcomp" ["asmcomp"; "bytecomp"; "parsing"; "typing"; "utils"; "stdlib"];; Pathname.define_context "ocamlbuild" ["ocamlbuild"; "stdlib"; "."];; Pathname.define_context "lex" ["lex"; "stdlib"];; diff --git a/ocamlbuild/discard_printf.ml b/ocamlbuild/discard_printf.ml index 0d2e925d9c..b48b43c253 100644 --- a/ocamlbuild/discard_printf.ml +++ b/ocamlbuild/discard_printf.ml @@ -11,6 +11,5 @@ (* Original author: Nicolas Pouillard *) -let rec greedy _ = greedy -let discard_printf _fmt = Obj.magic greedy +let discard_printf fmt = Format.ifprintf Format.std_formatter fmt;; diff --git a/ocamlbuild/ocamlbuild_unix_plugin.ml b/ocamlbuild/ocamlbuild_unix_plugin.ml index 3eaaf1743c..cb2f0101ae 100644 --- a/ocamlbuild/ocamlbuild_unix_plugin.ml +++ b/ocamlbuild/ocamlbuild_unix_plugin.ml @@ -82,4 +82,4 @@ let setup () = implem.at_exit_once <- at_exit_once; implem.is_link <- is_link; implem.stat <- mkstat Unix.stat; - implem.lstat <- mkstat Unix.lstat; + implem.lstat <- mkstat Unix.lstat;; diff --git a/ocamldoc/.depend b/ocamldoc/.depend index c05f40336e..355a0a2fc3 100644 --- a/ocamldoc/.depend +++ b/ocamldoc/.depend @@ -214,8 +214,6 @@ odoc_value.cmo: ../typing/types.cmi ../typing/printtyp.cmi odoc_types.cmi \ odoc_parameter.cmo odoc_name.cmi odoc_value.cmx: ../typing/types.cmx ../typing/printtyp.cmx odoc_types.cmx \ odoc_parameter.cmx odoc_name.cmx -t.cmo: -t.cmx: odoc_analyse.cmi: odoc_module.cmo odoc_args.cmi odoc_args.cmi: odoc_types.cmi odoc_module.cmo odoc_ast.cmi: ../typing/types.cmi ../typing/typedtree.cmi ../typing/path.cmi \ diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile index a9ce895918..7ed30908df 100644 --- a/ocamldoc/Makefile +++ b/ocamldoc/Makefile @@ -282,7 +282,7 @@ installopt_really: ########### test: dummy $(MKDIR) $@ - $(OCAMLDOC_RUN) -html -colorize-code -sort -d $@ $(INCLUDES) -dump $@/ocamldoc.odoc test.txt test2.txt odoc*.ml odoc*.mli -v + $(OCAMLDOC_RUN) -html -colorize-code -sort -d $@ $(INCLUDES) -dump $@/ocamldoc.odoc odoc*.ml odoc*.mli -v test_stdlib: dummy $(MKDIR) $@ diff --git a/ocamldoc/odoc_cross.ml b/ocamldoc/odoc_cross.ml index 4d9f3ca291..962da359eb 100644 --- a/ocamldoc/odoc_cross.ml +++ b/ocamldoc/odoc_cross.ml @@ -646,6 +646,7 @@ let rec assoc_comments_text_elements parent_name module_list t_ele = | Ref (initial_name, None, text_option) -> ( let rec iter_parent ?parent_name name = + let name = Odoc_name.normalize_name name in let res = match get_known_elements name with [] -> diff --git a/ocamldoc/odoc_name.ml b/ocamldoc/odoc_name.ml index 672203ff67..b82cf87458 100644 --- a/ocamldoc/odoc_name.ml +++ b/ocamldoc/odoc_name.ml @@ -33,14 +33,39 @@ let infix_chars = [ '|' ; type t = string +let strip_string s = + let len = String.length s in + let rec iter_first n = + if n >= len then + None + else + match s.[n] with + ' ' | '\t' | '\n' | '\r' -> iter_first (n+1) + | _ -> Some n + in + match iter_first 0 with + None -> "" + | Some first -> + let rec iter_last n = + if n <= first then + None + else + match s.[n] with + ' ' | '\t' | '\n' | '\r' -> iter_last (n-1) + | _ -> Some n + in + match iter_last (len-1) with + None -> String.sub s first 1 + | Some last -> String.sub s first ((last-first)+1) + let parens_if_infix name = - match name with + match strip_string name with | "" -> "" | s when s.[0] = '*' || s.[String.length s - 1] = '*' -> "( " ^ s ^ " )" | s when List.mem s.[0] infix_chars -> "(" ^ s ^ ")" | "or" | "mod" | "land" | "lor" | "lxor" | "lsl" | "lsr" | "asr" -> "(" ^ name ^ ")" - | _ -> name + | name -> name ;; let cut name = @@ -80,6 +105,22 @@ let father name = fst (cut name) let concat n1 n2 = n1^"."^n2 +let normalize_name name = + let (p,s) = cut name in + let len = String.length s in + let s = + if len >= 2 && + s.[0] = '(' && s.[len - 1] = ')' + then + parens_if_infix (strip_string (String.sub s 1 (len - 2))) + else + s + in + match p with + "" -> s + | p -> concat p s + ;; + let head_and_tail n = try let pos = String.index n '.' in diff --git a/ocamldoc/odoc_name.mli b/ocamldoc/odoc_name.mli index 0feb3b83e2..e3b43a7867 100644 --- a/ocamldoc/odoc_name.mli +++ b/ocamldoc/odoc_name.mli @@ -27,6 +27,10 @@ val father : t -> t (** Concatenates two names. *) val concat : t -> t -> t +(** Normalize the given name by removing the beginning and ending spaces + of the simple name and adding parenthesis if needed. *) +val normalize_name : t -> t + (** Returns the head of a name. *) val head : t -> t diff --git a/ocamldoc/odoc_text_lexer.mll b/ocamldoc/odoc_text_lexer.mll index 9108c5e606..f229f08a66 100644 --- a/ocamldoc/odoc_text_lexer.mll +++ b/ocamldoc/odoc_text_lexer.mll @@ -777,7 +777,9 @@ rule main = parse Char (Lexing.lexeme lexbuf) else let s = Lexing.lexeme lexbuf in - let tag = Odoc_misc.no_blanks s in + let len = String.length s in + (* remove this starting '{' *) + let tag = Odoc_misc.no_blanks (String.sub s 1 (len - 1)) in CUSTOM tag } diff --git a/otherlibs/bigarray/.depend b/otherlibs/bigarray/.depend index 5026d55ef4..92f29e8c68 100644 --- a/otherlibs/bigarray/.depend +++ b/otherlibs/bigarray/.depend @@ -1,21 +1,21 @@ bigarray_stubs.o: bigarray_stubs.c ../../byterun/alloc.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h bigarray.h \ - ../../byterun/config.h ../../byterun/mlvalues.h ../../byterun/custom.h \ - ../../byterun/fail.h ../../byterun/intext.h ../../byterun/io.h \ - ../../byterun/fix_code.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h bigarray.h \ + ../../byterun/config.h ../../byterun/mlvalues.h ../../byterun/custom.h \ + ../../byterun/fail.h ../../byterun/intext.h ../../byterun/io.h \ + ../../byterun/fix_code.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h mmap_unix.o: mmap_unix.c bigarray.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \ - ../../byterun/custom.h ../../byterun/mlvalues.h ../../byterun/fail.h \ - ../../byterun/io.h ../../byterun/sys.h + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \ + ../../byterun/custom.h ../../byterun/mlvalues.h ../../byterun/fail.h \ + ../../byterun/io.h ../../byterun/sys.h mmap_win32.o: mmap_win32.c bigarray.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \ - ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h \ - ../../byterun/fail.h ../../byterun/sys.h ../unix/unixsupport.h + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/mlvalues.h ../../byterun/config.h ../../byterun/misc.h \ + ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h \ + ../../byterun/fail.h ../../byterun/sys.h ../unix/unixsupport.h bigarray.cmi: bigarray.cmo: bigarray.cmi bigarray.cmx: bigarray.cmi diff --git a/otherlibs/graph/.depend b/otherlibs/graph/.depend index e71de3418e..54df0691ff 100644 --- a/otherlibs/graph/.depend +++ b/otherlibs/graph/.depend @@ -1,63 +1,103 @@ -color.o: color.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h -draw.o: draw.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h -dump_img.o: dump_img.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h image.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h -events.o: events.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/signals.h -fill.o: fill.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h -image.o: image.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h image.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/custom.h -make_img.o: make_img.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h image.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h -open.o: open.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/callback.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h -point_col.o: point_col.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h -sound.o: sound.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h -subwindow.o: subwindow.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h -text.o: text.c libgraph.h ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h +color.o: color.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h \ + +draw.o: draw.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h +dump_img.o: dump_img.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h image.h \ + ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h +events.o: events.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/signals.h +fill.o: fill.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h +image.o: image.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h image.h \ + ../../byterun/alloc.h ../../byterun/mlvalues.h ../../byterun/custom.h +make_img.o: make_img.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h image.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/mlvalues.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h +open.o: open.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/callback.h ../../byterun/fail.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h +point_col.o: point_col.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h +sound.o: sound.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h +subwindow.o: subwindow.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h +text.o: text.c libgraph.h \ + \ + \ + \ + ../../byterun/mlvalues.h ../../byterun/compatibility.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h graphics.cmi: graphicsX11.cmi: graphics.cmo: graphics.cmi diff --git a/otherlibs/labltk/lib/Makefile b/otherlibs/labltk/lib/Makefile index 91f477fcf2..b82bcddfaf 100644 --- a/otherlibs/labltk/lib/Makefile +++ b/otherlibs/labltk/lib/Makefile @@ -57,14 +57,23 @@ $(LIBNAME): Makefile $(TOPDIR)/config/Makefile @echo "#!/bin/sh" > $@ @echo 'exec $(INSTALLDIR)/$(LIBNAME)top$(EXE) -I $(INSTALLDIR) $$*' >> $@ +install-script: $(LIBNAME) + cp $(LIBNAME) $(BINDIR) + chmod 755 $(BINDIR)/$(LIBNAME) + +install-batch: + cp labltk.bat $(BINDIR) + install: if test -d $(INSTALLDIR); then : ; else mkdir $(INSTALLDIR); fi cp $(LIBNAME).cma $(LIBNAME)top$(EXE) $(INSTALLDIR) chmod 644 $(INSTALLDIR)/$(LIBNAME).cma chmod 755 $(INSTALLDIR)/$(LIBNAME)top$(EXE) @if test -d $(BINDIR); then : ; else mkdir $(BINDIR); fi - cp $(LIBNAME) $(BINDIR) - chmod 755 $(BINDIR)/$(LIBNAME) + @case x$(TOOLCHAIN) in \ + xmingw|xmsvc) $(MAKE) install-batch ;; \ + *) $(MAKE) install-script ;; \ + esac installopt: @if test -d $(INSTALLDIR); then : ; else mkdir $(INSTALLDIR); fi diff --git a/otherlibs/labltk/lib/labltk.bat b/otherlibs/labltk/lib/labltk.bat new file mode 100755 index 0000000000..f760e80006 --- /dev/null +++ b/otherlibs/labltk/lib/labltk.bat @@ -0,0 +1 @@ +@ocaml -I +labltk labltk.cma %1 %2 %3 %4 %5 %6 %7 %8 %9
\ No newline at end of file diff --git a/otherlibs/num/.depend b/otherlibs/num/.depend index bfd028c0ad..1e783ec0f9 100644 --- a/otherlibs/num/.depend +++ b/otherlibs/num/.depend @@ -1,6 +1,6 @@ bng.o: bng.c bng.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/compatibility.h bng_amd64.c \ - bng_digit.c + ../../byterun/../config/s.h ../../byterun/compatibility.h bng_amd64.c \ + bng_digit.c bng_alpha.o: bng_alpha.c bng_amd64.o: bng_amd64.c bng_digit.o: bng_digit.c @@ -9,14 +9,14 @@ bng_mips.o: bng_mips.c bng_ppc.o: bng_ppc.c bng_sparc.o: bng_sparc.c nat_stubs.o: nat_stubs.c ../../byterun/alloc.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/config.h ../../byterun/custom.h ../../byterun/intext.h \ - ../../byterun/io.h ../../byterun/fix_code.h ../../byterun/fail.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h \ - ../../byterun/mlvalues.h bng.h nat.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/config.h ../../byterun/custom.h ../../byterun/intext.h \ + ../../byterun/io.h ../../byterun/fix_code.h ../../byterun/fail.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h \ + ../../byterun/mlvalues.h bng.h nat.h arith_flags.cmi: arith_status.cmi: big_int.cmi: nat.cmi diff --git a/otherlibs/str/.depend b/otherlibs/str/.depend index c9eb99514b..df6eb9af08 100644 --- a/otherlibs/str/.depend +++ b/otherlibs/str/.depend @@ -1,9 +1,9 @@ strstubs.o: strstubs.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/fail.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/fail.h str.cmi: str.cmo: str.cmi str.cmx: str.cmi diff --git a/otherlibs/systhreads/.depend b/otherlibs/systhreads/.depend index dc859aa81f..9c6889b708 100644 --- a/otherlibs/systhreads/.depend +++ b/otherlibs/systhreads/.depend @@ -1,14 +1,14 @@ st_stubs.o: st_stubs.c ../../byterun/alloc.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/backtrace.h ../../byterun/callback.h \ - ../../byterun/custom.h ../../byterun/fail.h ../../byterun/io.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \ - ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \ - ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \ - ../../byterun/sys.h threads.h st_posix.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/backtrace.h ../../byterun/callback.h \ + ../../byterun/custom.h ../../byterun/fail.h ../../byterun/io.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \ + ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \ + ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \ + ../../byterun/sys.h threads.h st_posix.h condition.cmi: mutex.cmi event.cmi: mutex.cmi: diff --git a/otherlibs/threads/.depend b/otherlibs/threads/.depend index 8adb2095fa..7ce4479a41 100644 --- a/otherlibs/threads/.depend +++ b/otherlibs/threads/.depend @@ -1,35 +1,32 @@ scheduler.o: scheduler.c ../../byterun/alloc.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/backtrace.h ../../byterun/callback.h \ - ../../byterun/config.h ../../byterun/fail.h ../../byterun/io.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \ - ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \ - ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \ - ../../byterun/sys.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/backtrace.h ../../byterun/callback.h \ + ../../byterun/config.h ../../byterun/fail.h ../../byterun/io.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/misc.h \ + ../../byterun/mlvalues.h ../../byterun/printexc.h ../../byterun/roots.h \ + ../../byterun/memory.h ../../byterun/signals.h ../../byterun/stacks.h \ + ../../byterun/sys.h condition.cmi: mutex.cmi event.cmi: -marshal.cmi: mutex.cmi: -pervasives.cmi: -thread.cmi: unix.cmi -threadUnix.cmi: unix.cmi -unix.cmi: +thread.cmi: unix.cmo +threadUnix.cmi: unix.cmo condition.cmo: thread.cmi mutex.cmi condition.cmi condition.cmx: thread.cmx mutex.cmx condition.cmi event.cmo: mutex.cmi condition.cmi event.cmi event.cmx: mutex.cmx condition.cmx event.cmi -marshal.cmo: pervasives.cmi marshal.cmi -marshal.cmx: pervasives.cmx marshal.cmi +marshal.cmo: pervasives.cmo +marshal.cmx: pervasives.cmx mutex.cmo: thread.cmi mutex.cmi mutex.cmx: thread.cmx mutex.cmi -pervasives.cmo: unix.cmi pervasives.cmi -pervasives.cmx: unix.cmx pervasives.cmi -thread.cmo: unix.cmi thread.cmi +pervasives.cmo: unix.cmo +pervasives.cmx: unix.cmx +thread.cmo: unix.cmo thread.cmi thread.cmx: unix.cmx thread.cmi -threadUnix.cmo: unix.cmi thread.cmi threadUnix.cmi +threadUnix.cmo: unix.cmo thread.cmi threadUnix.cmi threadUnix.cmx: unix.cmx thread.cmx threadUnix.cmi -unix.cmo: unix.cmi -unix.cmx: unix.cmi +unix.cmo: +unix.cmx: diff --git a/otherlibs/unix/.depend b/otherlibs/unix/.depend index cf80dc6992..42875bdcc8 100644 --- a/otherlibs/unix/.depend +++ b/otherlibs/unix/.depend @@ -1,449 +1,453 @@ accept.o: accept.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h access.o: access.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h unixsupport.h addrofstr.o: addrofstr.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ - unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ + unixsupport.h socketaddr.h ../../byterun/misc.h alarm.o: alarm.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h bind.o: bind.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h socketaddr.h \ + ../../byterun/misc.h chdir.o: chdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h chmod.o: chmod.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h chown.o: chown.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h chroot.o: chroot.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h close.o: close.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h closedir.o: closedir.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h unixsupport.h connect.o: connect.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h cst2constr.o: cst2constr.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ - cst2constr.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ + cst2constr.h cstringv.o: cstringv.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h dup.o: dup.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h dup2.o: dup2.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h envir.o: envir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h errmsg.o: errmsg.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h execv.o: execv.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h execve.o: execve.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h execvp.o: execvp.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h exit.o: exit.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h fchmod.o: fchmod.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h fchown.o: fchown.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h fcntl.o: fcntl.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h fork.o: fork.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h \ - ../../byterun/debugger.h ../../byterun/mlvalues.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h \ + ../../byterun/debugger.h ../../byterun/mlvalues.h unixsupport.h ftruncate.o: ftruncate.c ../../byterun/fail.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h getaddrinfo.o: getaddrinfo.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ - cst2constr.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ + cst2constr.h socketaddr.h ../../byterun/misc.h getcwd.o: getcwd.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h unixsupport.h getegid.o: getegid.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h unixsupport.h geteuid.o: geteuid.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h unixsupport.h getgid.o: getgid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h getgr.o: getgr.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \ - ../../byterun/mlvalues.h ../../byterun/alloc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \ + ../../byterun/mlvalues.h ../../byterun/alloc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h getgroups.o: getgroups.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h gethost.o: gethost.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h gethostname.o: gethostname.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h getlogin.o: getlogin.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + unixsupport.h getnameinfo.o: getnameinfo.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h getpeername.o: getpeername.c ../../byterun/fail.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h socketaddr.h \ + ../../byterun/misc.h getpid.o: getpid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h getppid.o: getppid.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h unixsupport.h getproto.o: getproto.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h getpw.o: getpw.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h getserv.o: getserv.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h getsockname.o: getsockname.c ../../byterun/fail.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h socketaddr.h \ + ../../byterun/misc.h gettimeofday.o: gettimeofday.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h getuid.o: getuid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h gmtime.o: gmtime.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h initgroups.o: initgroups.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h isatty.o: isatty.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h itimer.o: itimer.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h kill.o: kill.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \ - ../../byterun/mlvalues.h unixsupport.h ../../byterun/signals.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/fail.h \ + ../../byterun/mlvalues.h unixsupport.h ../../byterun/signals.h link.o: link.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h listen.o: listen.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h lockf.o: lockf.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h ../../byterun/signals.h unixsupport.h lseek.o: lseek.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/io.h unixsupport.h mkdir.o: mkdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h mkfifo.o: mkfifo.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h nice.o: nice.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h open.o: open.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h opendir.o: opendir.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + unixsupport.h pipe.o: pipe.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h unixsupport.h putenv.o: putenv.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h \ + ../../byterun/mlvalues.h unixsupport.h read.o: read.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h \ - ../../byterun/signals.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h \ + ../../byterun/signals.h unixsupport.h readdir.o: readdir.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ - ../../byterun/alloc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ + ../../byterun/alloc.h unixsupport.h readlink.o: readlink.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h rename.o: rename.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h rewinddir.o: rewinddir.c ../../byterun/fail.h \ - ../../byterun/compatibility.h ../../byterun/misc.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/misc.h \ + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h rmdir.o: rmdir.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h select.o: select.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h sendrecv.o: sendrecv.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h setgid.o: setgid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h setgroups.o: setgroups.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h setsid.o: setsid.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h setuid.o: setuid.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h shutdown.o: shutdown.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h signals.o: signals.c ../../byterun/alloc.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/mlvalues.h \ - ../../byterun/signals.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/mlvalues.h \ + ../../byterun/signals.h unixsupport.h sleep.o: sleep.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/signals.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h \ + ../../byterun/signals.h ../../byterun/mlvalues.h unixsupport.h socket.o: socket.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h socketaddr.o: socketaddr.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h \ - socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/memory.h ../../byterun/gc.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h unixsupport.h \ + socketaddr.h ../../byterun/misc.h socketpair.o: socketpair.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h sockopt.o: sockopt.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \ - ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \ + ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h stat.o: stat.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \ - unixsupport.h cst2constr.h ../../byterun/io.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h ../../byterun/alloc.h \ + unixsupport.h cst2constr.h ../../byterun/io.h strofaddr.o: strofaddr.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h socketaddr.h ../../byterun/misc.h symlink.o: symlink.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h termios.o: termios.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/fail.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/fail.h unixsupport.h time.o: time.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h unixsupport.h times.o: times.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h unixsupport.h truncate.o: truncate.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ - ../../byterun/io.h unixsupport.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/fail.h ../../byterun/mlvalues.h \ + ../../byterun/io.h unixsupport.h umask.o: umask.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h unixsupport.o: unixsupport.c ../../byterun/mlvalues.h \ - ../../byterun/compatibility.h ../../byterun/config.h \ - ../../byterun/../config/m.h ../../byterun/../config/s.h \ - ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ - ../../byterun/callback.h ../../byterun/memory.h ../../byterun/gc.h \ - ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h cst2constr.h + ../../byterun/compatibility.h ../../byterun/config.h \ + ../../byterun/../config/m.h ../../byterun/../config/s.h \ + ../../byterun/misc.h ../../byterun/alloc.h ../../byterun/mlvalues.h \ + ../../byterun/callback.h ../../byterun/memory.h ../../byterun/gc.h \ + ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/fail.h unixsupport.h \ + cst2constr.h unlink.o: unlink.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h unixsupport.h utimes.o: utimes.c ../../byterun/fail.h ../../byterun/compatibility.h \ - ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/mlvalues.h \ - ../../byterun/mlvalues.h unixsupport.h + ../../byterun/misc.h ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/mlvalues.h \ + ../../byterun/mlvalues.h unixsupport.h wait.o: wait.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ - ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ - ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/alloc.h \ + ../../byterun/mlvalues.h ../../byterun/fail.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/major_gc.h ../../byterun/freelist.h \ + ../../byterun/minor_gc.h ../../byterun/signals.h unixsupport.h write.o: write.c ../../byterun/mlvalues.h ../../byterun/compatibility.h \ - ../../byterun/config.h ../../byterun/../config/m.h \ - ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ - ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ - ../../byterun/freelist.h ../../byterun/minor_gc.h \ - ../../byterun/signals.h unixsupport.h + ../../byterun/config.h ../../byterun/../config/m.h \ + ../../byterun/../config/s.h ../../byterun/misc.h ../../byterun/memory.h \ + ../../byterun/gc.h ../../byterun/mlvalues.h ../../byterun/major_gc.h \ + ../../byterun/freelist.h ../../byterun/minor_gc.h \ + ../../byterun/signals.h unixsupport.h unix.cmi: unixLabels.cmi: unix.cmi unix.cmo: unix.cmi diff --git a/stdlib/map.mli b/stdlib/map.mli index 5029c7b363..b025b8c0a6 100644 --- a/stdlib/map.mli +++ b/stdlib/map.mli @@ -147,7 +147,7 @@ module type S = *) val max_binding: 'a t -> (key * 'a) - (** Same as {!Map.S.max_binding}, but returns the largest binding + (** Same as {!Map.S.min_binding}, but returns the largest binding of the given map. @since 3.12.0 *) diff --git a/stdlib/pervasives.ml b/stdlib/pervasives.ml index a6cec7b644..7a1c0aeab8 100644 --- a/stdlib/pervasives.ml +++ b/stdlib/pervasives.ml @@ -52,6 +52,7 @@ external ( || ) : bool -> bool -> bool = "%sequor" external ( ~- ) : int -> int = "%negint" external ( ~+ ) : int -> int = "%identity" +external (~+) : int -> int = "%identity" external succ : int -> int = "%succint" external pred : int -> int = "%predint" external ( + ) : int -> int -> int = "%addint" diff --git a/testsuite/tests/typing-objects-bugs/pr4824_ok.ml b/testsuite/tests/typing-objects-bugs/pr4824_ok.ml new file mode 100644 index 0000000000..906959374b --- /dev/null +++ b/testsuite/tests/typing-objects-bugs/pr4824_ok.ml @@ -0,0 +1,10 @@ +module M : + sig + class x : int -> object method m : int end + end += +struct + class x _ = object + method m = 42 + end +end;; diff --git a/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml b/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml new file mode 100644 index 0000000000..983455b4b4 --- /dev/null +++ b/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml @@ -0,0 +1,6 @@ +module M : sig class c : 'a -> object val x : 'b end end = + struct class c x = object val x = x end end + +class c (x : int) = object inherit M.c x method x : bool = x end + +let r = (new c 2)#x;; diff --git a/testsuite/tests/typing-poly/poly.ml b/testsuite/tests/typing-poly/poly.ml index d1a9ee1698..13c5363697 100644 --- a/testsuite/tests/typing-poly/poly.ml +++ b/testsuite/tests/typing-poly/poly.ml @@ -612,3 +612,13 @@ and transf_alist : 'a. _ -> ('a*t) list -> ('a*t) list = fun f -> function | [] -> [] | (k,v)::tl -> (k, transf f v) :: transf_alist f tl ;; + +(* PR#4862 *) + +type t = {f: 'a. ('a list -> int) Lazy.t} +let l : t = { f = lazy (raise Not_found)};; + +(* variant *) +type t = {f: 'a. 'a -> unit};; +{f=fun ?x y -> ()};; +{f=fun ?x y -> y};; (* fail *) diff --git a/testsuite/tests/typing-poly/poly.ml.principal.reference b/testsuite/tests/typing-poly/poly.ml.principal.reference index 7d9fd321ac..63281ae0db 100644 --- a/testsuite/tests/typing-poly/poly.ml.principal.reference +++ b/testsuite/tests/typing-poly/poly.ml.principal.reference @@ -587,4 +587,13 @@ val neg : int -> bool -> int * bool = <fun> # type t = A of int | B of (int * t) list | C of (string * t) list val transf : (int -> t) -> t -> t = <fun> val transf_alist : (int -> t) -> ('a * t) list -> ('a * t) list = <fun> +# type t = { f : 'a. ('a list -> int) Lazy.t; } +val l : t = {f = <lazy>} +# type t = { f : 'a. 'a -> unit; } +# - : t = {f = <fun>} +# Characters 3-16: + {f=fun ?x y -> y};; (* fail *) + ^^^^^^^^^^^^^ +Error: This field value has type unit -> unit which is less general than + 'a. 'a -> unit # diff --git a/testsuite/tests/typing-poly/poly.ml.reference b/testsuite/tests/typing-poly/poly.ml.reference index 6fb4845513..6e4fce853b 100644 --- a/testsuite/tests/typing-poly/poly.ml.reference +++ b/testsuite/tests/typing-poly/poly.ml.reference @@ -570,4 +570,13 @@ val neg : int -> bool -> int * bool = <fun> # type t = A of int | B of (int * t) list | C of (string * t) list val transf : (int -> t) -> t -> t = <fun> val transf_alist : (int -> t) -> ('a * t) list -> ('a * t) list = <fun> +# type t = { f : 'a. ('a list -> int) Lazy.t; } +val l : t = {f = <lazy>} +# type t = { f : 'a. 'a -> unit; } +# - : t = {f = <fun>} +# Characters 3-16: + {f=fun ?x y -> y};; (* fail *) + ^^^^^^^^^^^^^ +Error: This field value has type unit -> unit which is less general than + 'a. 'a -> unit # diff --git a/tools/.cvsignore b/tools/.cvsignore index 83a5a5c62e..cf3c69515d 100644 --- a/tools/.cvsignore +++ b/tools/.cvsignore @@ -1,5 +1,6 @@ ocamldep ocamldep.opt +ocamldep.bak ocamlprof opnames.ml dumpobj diff --git a/tools/.depend b/tools/.depend index 9a5ab8be13..36c177ed43 100644 --- a/tools/.depend +++ b/tools/.depend @@ -10,10 +10,6 @@ depend.cmo: ../parsing/parsetree.cmi ../parsing/longident.cmi \ ../parsing/location.cmi depend.cmi depend.cmx: ../parsing/parsetree.cmi ../parsing/longident.cmx \ ../parsing/location.cmx depend.cmi -dumpapprox.cmo: ../utils/config.cmi ../asmcomp/compilenv.cmi \ - ../asmcomp/clambda.cmi -dumpapprox.cmx: ../utils/config.cmx ../asmcomp/compilenv.cmx \ - ../asmcomp/clambda.cmx dumpobj.cmo: ../utils/tbl.cmi opnames.cmo ../bytecomp/opcodes.cmo \ ../parsing/location.cmi ../bytecomp/lambda.cmi ../bytecomp/instruct.cmi \ ../typing/ident.cmi ../bytecomp/emitcode.cmi ../utils/config.cmi \ @@ -24,12 +20,14 @@ dumpobj.cmx: ../utils/tbl.cmx opnames.cmx ../bytecomp/opcodes.cmx \ ../typing/ident.cmx ../bytecomp/emitcode.cmx ../utils/config.cmx \ ../bytecomp/cmo_format.cmi ../bytecomp/bytesections.cmx \ ../parsing/asttypes.cmi -lexer301.cmo: ../utils/warnings.cmi ../utils/misc.cmi ../parsing/location.cmi -lexer301.cmx: ../utils/warnings.cmx ../utils/misc.cmx ../parsing/location.cmx myocamlbuild_config.cmo: myocamlbuild_config.cmx: -objinfo.cmo: ../utils/config.cmi ../bytecomp/cmo_format.cmi -objinfo.cmx: ../utils/config.cmx ../bytecomp/cmo_format.cmi +objinfo.cmo: ../utils/misc.cmi ../utils/config.cmi ../asmcomp/cmx_format.cmi \ + ../bytecomp/cmo_format.cmi ../asmcomp/clambda.cmi \ + ../bytecomp/bytesections.cmi +objinfo.cmx: ../utils/misc.cmx ../utils/config.cmx ../asmcomp/cmx_format.cmi \ + ../bytecomp/cmo_format.cmi ../asmcomp/clambda.cmx \ + ../bytecomp/bytesections.cmx ocaml299to3.cmo: ocaml299to3.cmx: ocamlcp.cmo: ../driver/main_args.cmi @@ -60,5 +58,5 @@ primreq.cmo: ../utils/config.cmi ../bytecomp/cmo_format.cmi primreq.cmx: ../utils/config.cmx ../bytecomp/cmo_format.cmi profiling.cmo: profiling.cmi profiling.cmx: profiling.cmi -scrapelabels.cmo: lexer301.cmo -scrapelabels.cmx: lexer301.cmx +scrapelabels.cmo: +scrapelabels.cmx: diff --git a/tools/Makefile.shared b/tools/Makefile.shared index fa32e46134..12bf76f0d0 100644 --- a/tools/Makefile.shared +++ b/tools/Makefile.shared @@ -270,7 +270,7 @@ clean:: $(CAMLOPT) $(COMPFLAGS) -c $< clean:: - rm -f *.cmo *.cmi *.cma + rm -f *.cmo *.cmi *.cma *.dll *.so *.lib *.a depend: beforedepend $(CAMLRUN) ./ocamldep $(INCLUDES) *.mli *.ml > .depend diff --git a/typing/ctype.ml b/typing/ctype.ml index b65de95476..a722522d3c 100644 --- a/typing/ctype.ml +++ b/typing/ctype.ml @@ -126,15 +126,20 @@ let increase_global_level () = let restore_global_level gl = global_level := gl -(* Abbreviations without parameters *) +(**** Whether a path points to an object type (with hidden row variable) ****) +let is_object_type path = + let name = + match path with Path.Pident id -> Ident.name id + | Path.Pdot(_, s,_) -> s + | Path.Papply _ -> assert false + in name.[0] = '#' + +(**** Abbreviations without parameters ****) (* Shall reset after generalizing *) let simple_abbrevs = ref Mnil let proper_abbrevs path tl abbrev = - if !Clflags.principal || tl <> [] then abbrev else - let name = match path with Path.Pident id -> Ident.name id - | Path.Pdot(_, s,_) -> s - | Path.Papply _ -> assert false in - if name.[0] <> '#' then simple_abbrevs else abbrev + if !Clflags.principal || tl <> [] || is_object_type path then abbrev + else simple_abbrevs (**** Some type creators ****) @@ -2291,6 +2296,7 @@ let rec eqtype rename type_pairs subst env t1 t2 = normalize_subst subst; if List.assq t1 !subst != t2 then raise (Unify []) with Not_found -> + if List.exists (fun (_, t) -> t == t2) !subst then raise (Unify []); subst := (t1, t2) :: !subst end | (Tconstr (p1, [], _), Tconstr (p2, [], _)) when Path.same p1 p2 -> @@ -2311,6 +2317,7 @@ let rec eqtype rename type_pairs subst env t1 t2 = normalize_subst subst; if List.assq t1' !subst != t2' then raise (Unify []) with Not_found -> + if List.exists (fun (_, t) -> t == t2') !subst then raise (Unify []); subst := (t1', t2') :: !subst end | (Tarrow (l1, t1, u1, _), Tarrow (l2, t2, u2, _)) when l1 = l2 @@ -2485,10 +2492,10 @@ let rec moregen_clty trace type_pairs env cty1 cty2 = | _ -> raise (Failure []) with - Failure error when trace -> + Failure error when trace || error = [] -> raise (Failure (CM_Class_type_mismatch (cty1, cty2)::error)) -let match_class_types env pat_sch subj_sch = +let match_class_types ?(trace=true) env pat_sch subj_sch = let type_pairs = TypePairs.create 53 in let old_level = !current_level in current_level := generic_level - 1; @@ -2572,7 +2579,7 @@ let match_class_types env pat_sch subj_sch = match error with [] -> begin try - moregen_clty true type_pairs env patt subj; + moregen_clty trace type_pairs env patt subj; [] with Failure r -> r @@ -2614,7 +2621,7 @@ let rec equal_clty trace type_pairs subst env cty1 cty2 = Vars.iter (fun lab (_, _, ty) -> let (_, _, ty') = Vars.find lab sign1.cty_vars in - try eqtype true type_pairs subst env ty ty' with Unify trace -> + try eqtype true type_pairs subst env ty' ty with Unify trace -> raise (Failure [CM_Val_type_mismatch (lab, expand_trace env trace)])) sign2.cty_vars @@ -2626,8 +2633,6 @@ let rec equal_clty trace type_pairs subst env cty1 cty2 = Failure error when trace -> raise (Failure (CM_Class_type_mismatch (cty1, cty2)::error)) -(* XXX On pourrait autoriser l'instantiation du type des parametres... *) -(* XXX Correct ? (variables de type dans parametres et corps de classe *) let match_class_declarations env patt_params patt_type subj_params subj_type = let type_pairs = TypePairs.create 53 in let subst = ref [] in @@ -2714,8 +2719,14 @@ let match_class_declarations env patt_params patt_type subj_params subj_type = raise (Failure [CM_Type_parameter_mismatch (expand_trace env trace)])) patt_params subj_params; - equal_clty false type_pairs subst env patt_type subj_type; - [] + (* old code: equal_clty false type_pairs subst env patt_type subj_type; *) + equal_clty false type_pairs subst env + (Tcty_signature sign1) (Tcty_signature sign2); + (* Use moregeneral for class parameters, need to recheck everything to + keeps relationships (PR#4824) *) + let clty_params = List.fold_right (fun ty cty -> Tcty_fun ("*",ty,cty)) in + match_class_types ~trace:false env + (clty_params patt_params patt_type) (clty_params subj_params subj_type) with Failure r -> r end @@ -3162,15 +3173,6 @@ let unalias ty = | _ -> newty2 ty.level ty.desc -let unroll_abbrev id tl ty = - let ty = repr ty in - if (ty.desc = Tvar) || (List.exists (deep_occur ty) tl) then - ty - else - let ty' = newty2 ty.level ty.desc in - link_type ty (newty2 ty.level (Tconstr (Path.Pident id, tl, ref Mnil))); - ty' - (* Return the arity (as for curried functions) of the given type. *) let rec arity ty = match (repr ty).desc with @@ -3343,6 +3345,16 @@ let nondep_type env id ty = clear_hash (); raise Not_found +let unroll_abbrev id tl ty = + let ty = repr ty and path = Path.Pident id in + if (ty.desc = Tvar) || (List.exists (deep_occur ty) tl) + || is_object_type path then + ty + else + let ty' = newty2 ty.level ty.desc in + link_type ty (newty2 ty.level (Tconstr (path, tl, ref Mnil))); + ty' + (* Preserve sharing inside type declarations. *) let nondep_type_decl env mid id is_covariant decl = try diff --git a/typing/ctype.mli b/typing/ctype.mli index 32b1b16669..af2c7fd0c2 100644 --- a/typing/ctype.mli +++ b/typing/ctype.mli @@ -183,7 +183,7 @@ type class_match_failure = | CM_Private_method of string | CM_Virtual_method of string val match_class_types: - Env.t -> class_type -> class_type -> class_match_failure list + ?trace:bool -> Env.t -> class_type -> class_type -> class_match_failure list (* Check if the first class type is more general than the second. *) val equal: Env.t -> bool -> type_expr list -> type_expr list -> bool (* [equal env [x1...xn] tau [y1...yn] sigma] diff --git a/typing/includeclass.ml b/typing/includeclass.ml index ca860ffc44..0bb47b52ed 100644 --- a/typing/includeclass.ml +++ b/typing/includeclass.ml @@ -36,6 +36,12 @@ let class_declarations env cty1 cty2 = open Format open Ctype +(* +let rec hide_params = function + Tcty_fun ("*", _, cty) -> hide_params cty + | cty -> cty +*) + let include_err ppf = function | CM_Virtual_class -> diff --git a/typing/typecore.ml b/typing/typecore.ml index 5aff9c07eb..486115488a 100644 --- a/typing/typecore.ml +++ b/typing/typecore.ml @@ -690,8 +690,32 @@ let rec is_nonexpansive exp = Vars.fold (fun _ (mut,_,_) b -> decr count; b && mut = Immutable) vars true && !count = 0 + | Texp_pack mexp -> + is_nonexpansive_mod mexp | _ -> false +and is_nonexpansive_mod mexp = + match mexp.mod_desc with + | Tmod_ident _ -> true + | Tmod_functor _ -> true + | Tmod_unpack (e, _) -> is_nonexpansive e + | Tmod_constraint (m, _, _) -> is_nonexpansive_mod m + | Tmod_structure items -> + List.for_all + (function + | Tstr_eval _ | Tstr_primitive _ | Tstr_type _ | Tstr_modtype _ + | Tstr_open _ | Tstr_cltype _ | Tstr_exn_rebind _ -> true + | Tstr_value (_, pat_exp_list) -> + List.for_all (fun (_, exp) -> is_nonexpansive exp) pat_exp_list + | Tstr_module (_, m) | Tstr_include (m, _) -> is_nonexpansive_mod m + | Tstr_recmodule id_mod_list -> + List.for_all (fun (_, m) -> is_nonexpansive_mod m) id_mod_list + | Tstr_exception _ -> false (* true would be unsound *) + | Tstr_class _ -> false (* could be more precise *) + ) + items + | Tmod_apply _ -> false + and is_nonexpansive_opt = function None -> true | Some e -> is_nonexpansive e @@ -1135,31 +1159,9 @@ let rec type_exp env sexp = row_name = None}); exp_env = env } | Pexp_record(lid_sexp_list, opt_sexp) -> - let ty = newvar() in - let num_fields = ref 0 in - let type_label_exp (lid, sarg) = - let label = Typetexp.find_label env loc lid in - begin_def (); - if !Clflags.principal then begin_def (); - let (vars, ty_arg, ty_res) = instance_label true label in - if !Clflags.principal then begin - end_def (); - generalize_structure ty_arg; - generalize_structure ty_res - end; - begin try - unify env (instance ty_res) ty - with Unify trace -> - raise(Error(loc, Label_mismatch(lid, trace))) - end; - let arg = type_argument env sarg ty_arg in - end_def (); - check_univars env (vars <> []) "field value" arg label.lbl_arg vars; - num_fields := Array.length label.lbl_all; - if label.lbl_private = Private then - raise(Error(loc, Private_type ty)); - (label, {arg with exp_type = instance arg.exp_type}) in - let lbl_exp_list = type_label_a_list type_label_exp lid_sexp_list in + let ty = newvar () in + let lbl_exp_list = + type_label_a_list (type_label_exp true env loc ty) lid_sexp_list in let rec check_duplicates seen_pos lid_sexp lbl_exp = match (lid_sexp, lbl_exp) with ((lid, _) :: rem1, (lbl, _) :: rem2) -> @@ -1187,7 +1189,10 @@ let rec type_exp env sexp = Some(type_expect env sexp ty_exp) | _ -> assert false in - if opt_sexp = None && List.length lid_sexp_list <> !num_fields then begin + let num_fields = + match lbl_exp_list with [] -> assert false + | (lbl,_)::_ -> Array.length lbl.lbl_all in + if opt_sexp = None && List.length lid_sexp_list <> num_fields then begin let present_indices = List.map (fun (lbl, _) -> lbl.lbl_pos) lbl_exp_list in let label_names = extract_label_names sexp env ty in @@ -1200,7 +1205,7 @@ let rec type_exp env sexp = let missing = missing_labels 0 label_names in raise(Error(loc, Label_missing missing)) end - else if opt_sexp <> None && List.length lid_sexp_list = !num_fields then + else if opt_sexp <> None && List.length lid_sexp_list = num_fields then Location.prerr_warning loc Warnings.Useless_record_with; re { exp_desc = Texp_record(lbl_exp_list, opt_exp); @@ -1219,17 +1224,10 @@ let rec type_exp env sexp = exp_env = env } | Pexp_setfield(srecord, lid, snewval) -> let record = type_exp env srecord in - let label = Typetexp.find_label env loc lid in + let (label, newval) = + type_label_exp false env loc record.exp_type (lid, snewval) in if label.lbl_mut = Immutable then raise(Error(loc, Label_not_mutable lid)); - begin_def (); - let (vars, ty_arg, ty_res) = instance_label true label in - unify_exp env record ty_res; - let newval = type_expect env snewval ty_arg in - end_def (); - check_univars env (vars <> []) "field value" newval label.lbl_arg vars; - if label.lbl_private = Private then - raise(Error(loc, Private_label(lid, ty_res))); re { exp_desc = Texp_setfield(record, label, newval); exp_loc = loc; @@ -1643,6 +1641,45 @@ let rec type_exp env sexp = | Pexp_open (lid, e) -> type_exp (!type_open env sexp.pexp_loc lid) e +and type_label_exp create env loc ty (lid, sarg) = + let label = Typetexp.find_label env sarg.pexp_loc lid in + begin_def (); + if !Clflags.principal then begin_def (); + let (vars, ty_arg, ty_res) = instance_label true label in + if !Clflags.principal then begin + end_def (); + generalize_structure ty_arg; + generalize_structure ty_res + end; + begin try + unify env (instance ty_res) ty + with Unify trace -> + raise(Error(loc , Label_mismatch(lid, trace))) + end; + if label.lbl_private = Private then + raise(Error(loc, if create then Private_type ty else Private_label (lid, ty))); + let arg = + let snap = if vars = [] then None else Some (Btype.snapshot ()) in + let arg = type_argument env sarg ty_arg in + end_def (); + try + check_univars env (vars <> []) "field value" arg label.lbl_arg vars; + arg + with exn when not (is_nonexpansive arg) -> try + (* Try to retype without propagating ty_arg, cf PR#4862 *) + may Btype.backtrack snap; + begin_def (); + let arg = type_exp env sarg in + end_def (); + generalize_expansive env arg.exp_type; + unify_exp env arg ty_arg; + check_univars env false "field value" arg label.lbl_arg vars; + arg + with Error (_, Less_general _) as e -> raise e + | _ -> raise exn (* In case of failure return the first error *) + in + (label, {arg with exp_type = instance arg.exp_type}) + and type_argument env sarg ty_expected' = (* ty_expected' may be generic *) let no_labels ty = diff --git a/typing/typemod.ml b/typing/typemod.ml index c42315d356..0dcd4aad01 100644 --- a/typing/typemod.ml +++ b/typing/typemod.ml @@ -633,16 +633,17 @@ let check_recmodule_inclusion env bindings = (* Type a module value expression *) -let rec type_module funct_body anchor env smod = +let rec type_module sttn funct_body anchor env smod = match smod.pmod_desc with Pmod_ident lid -> let (path, mty) = Typetexp.find_module env smod.pmod_loc lid in rm { mod_desc = Tmod_ident path; - mod_type = Mtype.strengthen env mty path; + mod_type = if sttn then Mtype.strengthen env mty path else mty; mod_env = env; mod_loc = smod.pmod_loc } | Pmod_structure sstr -> - let (str, sg, finalenv) = type_structure funct_body anchor env sstr smod.pmod_loc in + let (str, sg, finalenv) = + type_structure funct_body anchor env sstr smod.pmod_loc in rm { mod_desc = Tmod_structure str; mod_type = Tmty_signature sg; mod_env = env; @@ -650,14 +651,16 @@ let rec type_module funct_body anchor env smod = | Pmod_functor(name, smty, sbody) -> let mty = transl_modtype env smty in let (id, newenv) = Env.enter_module name mty env in - let body = type_module true None newenv sbody in + let body = type_module sttn true None newenv sbody in rm { mod_desc = Tmod_functor(id, mty, body); mod_type = Tmty_functor(id, mty, body.mod_type); mod_env = env; mod_loc = smod.pmod_loc } | Pmod_apply(sfunct, sarg) -> - let funct = type_module funct_body None env sfunct in - let arg = type_module funct_body None env sarg in + let arg = type_module true funct_body None env sarg in + let path = try Some (path_of_module arg) with Not_a_path -> None in + let funct = + type_module (sttn && path <> None) funct_body None env sfunct in begin match Mtype.scrape env funct.mod_type with Tmty_functor(param, mty_param, mty_res) as mty_functor -> let coercion = @@ -666,17 +669,18 @@ let rec type_module funct_body anchor env smod = with Includemod.Error msg -> raise(Error(sarg.pmod_loc, Not_included msg)) in let mty_appl = - try - let path = path_of_module arg in - Subst.modtype (Subst.add_module param path Subst.identity) - mty_res - with Not_a_path -> - try - Mtype.nondep_supertype - (Env.add_module param arg.mod_type env) param mty_res - with Not_found -> - raise(Error(smod.pmod_loc, - Cannot_eliminate_dependency mty_functor)) in + match path with + Some path -> + Subst.modtype (Subst.add_module param path Subst.identity) + mty_res + | None -> + try + Mtype.nondep_supertype + (Env.add_module param arg.mod_type env) param mty_res + with Not_found -> + raise(Error(smod.pmod_loc, + Cannot_eliminate_dependency mty_functor)) + in rm { mod_desc = Tmod_apply(funct, arg, coercion); mod_type = mty_appl; mod_env = env; @@ -685,7 +689,7 @@ let rec type_module funct_body anchor env smod = raise(Error(sfunct.pmod_loc, Cannot_apply funct.mod_type)) end | Pmod_constraint(sarg, smty) -> - let arg = type_module funct_body anchor env sarg in + let arg = type_module true funct_body anchor env sarg in let mty = transl_modtype env smty in let coercion = try @@ -698,10 +702,12 @@ let rec type_module funct_body anchor env smod = mod_loc = smod.pmod_loc } | Pmod_unpack (sexp, (p, l)) -> - if funct_body then raise (Error (smod.pmod_loc, Not_allowed_in_functor_body)); + if funct_body then + raise (Error (smod.pmod_loc, Not_allowed_in_functor_body)); let l, mty = Typetexp.create_package_mty smod.pmod_loc env (p, l) in let mty = transl_modtype env mty in - let exp = Typecore.type_expect env sexp (Typecore.create_package_type smod.pmod_loc env (p, l)) in + let exp = Typecore.type_expect env sexp + (Typecore.create_package_type smod.pmod_loc env (p, l)) in rm { mod_desc = Tmod_unpack(exp, mty); mod_type = mty; mod_env = env; @@ -775,7 +781,9 @@ and type_structure funct_body anchor env sstr scope = final_env) | {pstr_desc = Pstr_module(name, smodl); pstr_loc = loc} :: srem -> check "module" loc module_names name; - let modl = type_module funct_body (anchor_submodule name anchor) env smodl in + let modl = + type_module true funct_body (anchor_submodule name anchor) env + smodl in let mty = enrich_module_type anchor name modl.mod_type env in let (id, newenv) = Env.enter_module name mty env in let (str_rem, sig_rem, final_env) = type_struct newenv srem in @@ -793,9 +801,11 @@ and type_structure funct_body anchor env sstr scope = List.map2 (fun (id, mty) (name, smty, smodl) -> let modl = - type_module funct_body (anchor_recmodule id anchor) newenv smodl in + type_module true funct_body (anchor_recmodule id anchor) newenv + smodl in let mty' = - enrich_module_type anchor (Ident.name id) modl.mod_type newenv in + enrich_module_type anchor (Ident.name id) modl.mod_type newenv + in (id, mty, modl, mty')) decls sbind in let bindings2 = @@ -863,7 +873,7 @@ and type_structure funct_body anchor env sstr scope = classes [sig_rem]), final_env) | {pstr_desc = Pstr_include smodl; pstr_loc = loc} :: srem -> - let modl = type_module funct_body None env smodl in + let modl = type_module true funct_body None env smodl in (* Rename all identifiers bound by this signature to avoid clashes *) let sg = Subst.signature Subst.identity (extract_sig_open env smodl.pmod_loc modl.mod_type) in @@ -879,7 +889,7 @@ and type_structure funct_body anchor env sstr scope = then List.iter (function {pstr_loc = l} -> Stypes.record_phrase l) sstr; type_struct env sstr -let type_module = type_module false None +let type_module = type_module true false None let type_structure = type_structure false None (* Normalize types in a signature *) diff --git a/typing/typetexp.ml b/typing/typetexp.ml index e3a2e5b7fc..838719b7c4 100644 --- a/typing/typetexp.ml +++ b/typing/typetexp.ml @@ -76,7 +76,8 @@ let find_component lookup make_error env loc lid = | Longident.Ldot (Longident.Lident "*predef*", s) -> lookup (Longident.Lident s) Env.initial | _ -> lookup lid env with Not_found -> - narrow_unbound_lid_error env loc lid make_error; + (narrow_unbound_lid_error env loc lid make_error + : unit (* to avoid a warning *)); assert false let find_type = find_component Env.lookup_type (fun lid -> Unbound_type_constructor lid) |