diff --git a/Makefile b/Makefile index a21fc9174..86852e752 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,6 @@ setup_convenient_bin_links: precompile: cp pkg/META.in pkg/META ocamlbuild -package topkg pkg/build.native - ocamlbuild -package ocaml-migrate-parsetree vendor/ppx_tools_versioned/ppx_metaquot_404.native build_without_utop: compile_error setup_convenient_bin_links precompile ./build.native build --utop false diff --git a/_tags b/_tags index 457b67d90..9348d54a0 100644 --- a/_tags +++ b/_tags @@ -5,10 +5,9 @@ true: warn(@5@8@10@11@12@14@23-24@26@29@40), bin_annot, safe_string, debug <bspacks/**>: -traverse "formatTest": -traverse "src": include -<src/*>: package(menhirLib unix compiler-libs.common ocamlbuild findlib merlin_extend result dynlink findlib.dynload ocaml-migrate-parsetree) +<src/*>: package(menhirLib unix compiler-libs.common ocamlbuild findlib merlin_extend result dynlink findlib.dynload ocaml-migrate-parsetree ppx_tools_versioned.metaquot_404) <src/reason_utop.*>: package(menhirLib utop) -<vendor/ppx_deriving/*>: ppx(./vendor/ppx_tools_versioned/ppx_metaquot_404.native) -<vendor/ppx_deriving/*>|<vendor/ppx_tools_versioned/*>: package(compiler-libs.common findlib result ocaml-migrate-parsetree) +<vendor/ppx_deriving/*>: package(compiler-libs.common findlib result ocaml-migrate-parsetree ppx_tools_versioned.metaquot_404) <src_gen/*>: package(sedlex) diff --git a/opam b/opam index 86094007c..ff8f21d9f 100644 --- a/opam +++ b/opam @@ -14,7 +14,6 @@ substs: [ "pkg/META" ] build: [ [make "compile_error"] ["ocamlbuild" "-package" "topkg" "pkg/build.native"] - ["ocamlbuild" "-package" "ocaml-migrate-parsetree" "vendor/ppx_tools_versioned/ppx_metaquot_404.native"] ["./build.native" "build" "--native" "%{ocaml-native}%" "--native-dynlink" "%{ocaml-native-dynlink}%" @@ -24,13 +23,14 @@ build-test: [ "ocamlbuild" "-classic-display" "-use-ocamlfind" "src_test/test_reason.byte" "--" ] depends: [ - "ocamlfind" {build} - "utop" {>= "1.17"} - "menhir" {>= "20160303"} - "merlin-extend"{>= "0.3"} - "result" {= "1.2"} - "topkg" {= "0.8.1"} + "ocamlfind" {build} + "utop" {>= "1.17"} + "menhir" {>= "20160303"} + "merlin-extend" {>= "0.3"} + "result" {= "1.2"} + "topkg" {= "0.8.1"} "ocaml-migrate-parsetree" + "ppx_tools_versioned" {= "5.0alpha"} ] depopts: [ ] diff --git a/opam.in b/opam.in index 1c9377486..237caa3db 100644 --- a/opam.in +++ b/opam.in @@ -13,7 +13,6 @@ substs: [ "pkg/META" ] build: [ [make "compile_error"] ["ocamlbuild" "-package" "topkg" "pkg/build.native"] - ["ocamlbuild" "-package" "ocaml-migrate-parsetree" "vendor/ppx_tools_versioned/ppx_metaquot_404.native"] ["./build.native" "build" "--native" "%{ocaml-native}%" "--native-dynlink" "%{ocaml-native-dynlink}%" @@ -23,13 +22,14 @@ build-test: [ "ocamlbuild" "-classic-display" "-use-ocamlfind" "src_test/test_reason.byte" "--" ] depends: [ - "ocamlfind" {build} - "utop" {>= "1.17"} - "menhir" {>= "20160303"} - "merlin-extend"{>= "0.3"} - "result" {= "1.2"} - "topkg" {= "0.8.1"} + "ocamlfind" {build} + "utop" {>= "1.17"} + "menhir" {>= "20160303"} + "merlin-extend" {>= "0.3"} + "result" {= "1.2"} + "topkg" {= "0.8.1"} "ocaml-migrate-parsetree" + "ppx_tools_versioned" {= "5.0alpha"} ] depopts: [ ] diff --git a/package.json b/package.json index 8fe7f3274..f1aa65a24 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "@opam-alpha/ocaml-migrate-parsetree": "*", "@opam-alpha/result": "*", "@opam-alpha/topkg": "0.8.1", + "@opam-alpha/ppx_tools_versioned": "5.0.0", "dependency-env": "*", "opam-installer-bin": "https://github.com/yunxing/opam-installer-bin.git", "nopam": "*", diff --git a/package.json.in b/package.json.in index 8b13030a4..0daf10d25 100644 --- a/package.json.in +++ b/package.json.in @@ -54,6 +54,7 @@ "@opam-alpha/ocaml-migrate-parsetree": "*", "@opam-alpha/result": "*", "@opam-alpha/topkg": "0.8.1", + "@opam-alpha/ppx_tools_versioned": "5.0.0", "dependency-env": "*", "opam-installer-bin": "https://github.com/yunxing/opam-installer-bin.git", "nopam": "*", diff --git a/package.ml b/package.ml index 591eeab7d..9eee863e5 100644 --- a/package.ml +++ b/package.ml @@ -1,4 +1,4 @@ let version = "1.10.2" -let git_version = "92b107b4bd08b501b6663d77b41feb8d01ac717d" -let git_short_version = "92b107b" +let git_version = "e3576ae51a73647b7f1e0c73286e91d4d3f35692" +let git_short_version = "e3576ae" diff --git a/pkg/META.in b/pkg/META.in index b53e187a4..e7dbbea85 100644 --- a/pkg/META.in +++ b/pkg/META.in @@ -12,13 +12,16 @@ preprocessor = "ocamlreason_preprocessor_where_does_this_end_up" # Toplevel archive(byte, toploop) = "@compiler-libs/ocamlcommon.cma" archive(byte, toploop) += "@result/result.cmo" -archive(byte, toploop) += "easy_format.cmo ast_convenience_404.cmo ppx_deriving.cmo ppx_deriving_show.cmo reason.cma" +archive(byte, toploop) += "@ppx_tools_versioned/ppx_tools_versioned.cma" +archive(byte, toploop) += "easy_format.cmo ppx_deriving.cmo ppx_deriving_show.cmo reason.cma" archive(byte, toploop) += "@menhirLib/menhirLib.cmo" archive(byte, toploop, -pkg_utop) += "reason_toploop.cmo" archive(byte, toploop, pkg_utop) += "reason_utop.cmo" archive(byte) = "@result/result.cmo" -archive(byte) += "ast_convenience_404.cmo ppx_deriving.cmo ppx_deriving_show.cmo reason.cma" +archive(byte) += "@ppx_tools_versioned/ppx_tools_versioned.cma" +archive(byte) += "ppx_deriving.cmo ppx_deriving_show.cmo reason.cma" + archive(native) = "reason.cmxa" package "lib" ( diff --git a/pkg/build.ml b/pkg/build.ml index 582ef1a7a..73763d1eb 100644 --- a/pkg/build.ml +++ b/pkg/build.ml @@ -23,7 +23,6 @@ let () = % "-I,+ocamldoc" %% (v "-I" % "vendor/cmdliner") %% (v "-I" % "vendor/easy_format") - %% (v "-I" % "vendor/ppx_tools_versioned") %% (v "-I" % "vendor/ppx_deriving") %% of_list files) in @@ -53,10 +52,6 @@ let () = Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"; ".cmxs"]) "src/redoc_html"; Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"]) "vendor/cmdliner/cmdliner"; Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"]) "vendor/easy_format/easy_format"; - (* TODO: clean up all this nonsense when ppx_tools_versioned is released on - opam *) - Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"]) "vendor/ppx_tools_versioned/ast_convenience_404"; - Pkg.bin ~auto:true "vendor/ppx_tools_versioned/ppx_metaquot_404" ~dst:"metaquot"; Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"]) "vendor/ppx_deriving/ppx_deriving"; Pkg.lib ~exts:(Exts.exts [".cmo"; ".cmx";".cmi"; ".cmt"]) "vendor/ppx_deriving/ppx_deriving_show"; Pkg.lib ~exts:Exts.library "src/reasondoc"; diff --git a/vendor/ppx_tools_versioned/.depend b/vendor/ppx_tools_versioned/.depend deleted file mode 100644 index 7c69d4244..000000000 --- a/vendor/ppx_tools_versioned/.depend +++ /dev/null @@ -1,48 +0,0 @@ -ast_convenience_402.cmo : ast_convenience_402.cmi -ast_convenience_402.cmx : ast_convenience_402.cmi -ast_convenience_402.cmi : -ast_convenience_403.cmo : ast_convenience_403.cmi -ast_convenience_403.cmx : ast_convenience_403.cmi -ast_convenience_403.cmi : -ast_convenience_404.cmo : ast_convenience_404.cmi -ast_convenience_404.cmx : ast_convenience_404.cmi -ast_convenience_404.cmi : -ast_convenience_405.cmo : ast_convenience_405.cmi -ast_convenience_405.cmx : ast_convenience_405.cmi -ast_convenience_405.cmi : -ast_lifter_402.cmo : -ast_lifter_402.cmx : -ast_lifter_403.cmo : -ast_lifter_403.cmx : -ast_lifter_404.cmo : -ast_lifter_404.cmx : -ast_lifter_405.cmo : -ast_lifter_405.cmx : -ast_mapper_class_402.cmo : ast_mapper_class_402.cmi -ast_mapper_class_402.cmx : ast_mapper_class_402.cmi -ast_mapper_class_402.cmi : -ast_mapper_class_403.cmo : ast_mapper_class_403.cmi -ast_mapper_class_403.cmx : ast_mapper_class_403.cmi -ast_mapper_class_403.cmi : -ast_mapper_class_404.cmo : ast_mapper_class_404.cmi -ast_mapper_class_404.cmx : ast_mapper_class_404.cmi -ast_mapper_class_404.cmi : -ast_mapper_class_405.cmo : ast_mapper_class_405.cmi -ast_mapper_class_405.cmx : ast_mapper_class_405.cmi -ast_mapper_class_405.cmi : -ppx_metaquot_402.cmo : ast_lifter_402.cmo ast_convenience_402.cmi -ppx_metaquot_402.cmx : ast_lifter_402.cmx ast_convenience_402.cmx -ppx_metaquot_403.cmo : ast_lifter_403.cmo ast_convenience_403.cmi -ppx_metaquot_403.cmx : ast_lifter_403.cmx ast_convenience_403.cmx -ppx_metaquot_404.cmo : ast_lifter_404.cmo ast_convenience_404.cmi -ppx_metaquot_404.cmx : ast_lifter_404.cmx ast_convenience_404.cmx -ppx_metaquot_405.cmo : ast_lifter_405.cmo ast_convenience_405.cmi -ppx_metaquot_405.cmx : ast_lifter_405.cmx ast_convenience_405.cmx -ppx_tools_402.cmo : ast_mapper_class_402.cmi ast_convenience_402.cmi -ppx_tools_402.cmx : ast_mapper_class_402.cmx ast_convenience_402.cmx -ppx_tools_403.cmo : ast_mapper_class_403.cmi ast_convenience_403.cmi -ppx_tools_403.cmx : ast_mapper_class_403.cmx ast_convenience_403.cmx -ppx_tools_404.cmo : ast_mapper_class_404.cmi ast_convenience_404.cmi -ppx_tools_404.cmx : ast_mapper_class_404.cmx ast_convenience_404.cmx -ppx_tools_405.cmo : ast_mapper_class_405.cmi ast_convenience_405.cmi -ppx_tools_405.cmx : ast_mapper_class_405.cmx ast_convenience_405.cmx diff --git a/vendor/ppx_tools_versioned/.gitignore b/vendor/ppx_tools_versioned/.gitignore deleted file mode 100644 index c0c03121d..000000000 --- a/vendor/ppx_tools_versioned/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -*.annot -*.cmo -*.cma -*.cmi -*.a -*.o -*.cmx -*.cmxs -*.cmxa -*.exe -*.cmt -*.cmti -dumpast -genlifter -ppx_metaquot -rewriter -ast_lifter.ml diff --git a/vendor/ppx_tools_versioned/.merlin b/vendor/ppx_tools_versioned/.merlin deleted file mode 100644 index ceeeabc99..000000000 --- a/vendor/ppx_tools_versioned/.merlin +++ /dev/null @@ -1,3 +0,0 @@ -PKG compiler-libs ocaml-migrate-parsetree - -FLG -safe-string diff --git a/vendor/ppx_tools_versioned/.ocp-indent b/vendor/ppx_tools_versioned/.ocp-indent deleted file mode 100644 index 324a38276..000000000 --- a/vendor/ppx_tools_versioned/.ocp-indent +++ /dev/null @@ -1,2 +0,0 @@ -match_clause=4 -strict_with=auto diff --git a/vendor/ppx_tools_versioned/.travis.yml b/vendor/ppx_tools_versioned/.travis.yml deleted file mode 100644 index 6464693d3..000000000 --- a/vendor/ppx_tools_versioned/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: c -install: wget https://raw.githubusercontent.com/ocaml/ocaml-travisci-skeleton/master/.travis-docker.sh -script: bash -ex .travis-docker.sh -services: - - docker -sudo: false -env: - global: - - PACKAGE="ppx_tools_versioned" - - PRE_INSTALL_HOOK="cd /home/opam/opam-repository && git pull origin master && opam update -u -y" - matrix: - - DISTRO=debian-stable OCAML_VERSION=4.03.0 - - DISTRO=debian-testing OCAML_VERSION=4.02.3 - - DISTRO=debian-unstable OCAML_VERSION=4.04.0 - - DISTRO=ubuntu-16.04 OCAML_VERSION=4.03.0 - - DISTRO=alpine OCAML_VERSION=4.04.0 - #- DISTRO=alpine OCAML_VERSION=4.05.0+trunk diff --git a/vendor/ppx_tools_versioned/LICENSE b/vendor/ppx_tools_versioned/LICENSE deleted file mode 100644 index cb4dd0952..000000000 --- a/vendor/ppx_tools_versioned/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Alain Frisch and LexiFi - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/ppx_tools_versioned/META b/vendor/ppx_tools_versioned/META deleted file mode 100644 index f8454c8ca..000000000 --- a/vendor/ppx_tools_versioned/META +++ /dev/null @@ -1,33 +0,0 @@ -version = "5.0" -description = "Tools for authors of ppx rewriters and other syntactic tools (with ocaml-migrate-parsetree support)" -archive(byte) = "ppx_tools_versioned.cma" -archive(native) = "ppx_tools_versioned.cmxa" -requires = "compiler-libs.common" - -package "metaquot_402" ( - version = "5.0" - description = "Meta-quotation: 4.02 parsetree quotation" - requires = "ppx_tools_versioned" - ppx = "./ppx_metaquot_402" -) - -package "metaquot_403" ( - version = "5.0" - description = "Meta-quotation: 4.03 parsetree quotation" - requires = "ppx_tools_versioned" - ppx = "./ppx_metaquot_403" -) - -package "metaquot_404" ( - version = "5.0" - description = "Meta-quotation: 4.04 parsetree quotation" - requires = "ppx_tools_versioned" - ppx = "./ppx_metaquot_404" -) - -package "metaquot_405" ( - version = "5.0" - description = "Meta-quotation: 4.05 parsetree quotation" - requires = "ppx_tools_versioned" - ppx = "./ppx_metaquot_405" -) diff --git a/vendor/ppx_tools_versioned/Makefile b/vendor/ppx_tools_versioned/Makefile deleted file mode 100644 index 5b8716d1b..000000000 --- a/vendor/ppx_tools_versioned/Makefile +++ /dev/null @@ -1,98 +0,0 @@ -# This file is part of the ppx_tools_versioned package. It is released under -# the terms of the LGPL 2.1 license (see LICENSE file). -# Copyright 2017 Frédéric Bour. -# -# It is forked from ppx_tools package, which is copyright 2013 -# Alain Frisch and LexiFi. - -# Don't forget to change META file as well -PACKAGE = ppx_tools_versioned -VERSION = 5.0 - -# Config -include $(shell ocamlc -where)/Makefile.config -OCAML_VERSION=$(shell ./ast_version.sh ocamlc) - -PACKS = ocaml-migrate-parsetree -OCAMLC = ocamlfind c -package $(PACKS) -OCAMLOPT = ocamlfind opt -package $(PACKS) -COMPFLAGS = -bin-annot -w +A-4-17-44-45-105-42 -safe-string - -MODULES = ast_convenience ast_mapper_class ppx_tools -VERSIONS = 402 403 404 405 - -# Files -OBJECTS= $(foreach version,$(VERSIONS), \ - $(foreach module,$(MODULES), $(module)_$(version).cmo)) - -METAQUOTS= $(foreach version,$(VERSIONS),ppx_metaquot_$(version)) -.PHONY: all -all: ppx_tools_versioned.cma ppx_tools_versioned.cmxa $(METAQUOTS) - -$(METAQUOTS): - -ppx_metaquots: $(METAQUOTS) - -ifeq ($(NATDYNLINK),true) -all: ppx_tools_versioned.cmxs -endif - -.PHONY: clean -clean: - rm -f *.cm* *.o *.obj *.a *.lib $(METAQUOTS) - -# Default rules - -.SUFFIXES: .ml .mli .cmo .cmi .cmx .native - -%.cmo: %.ml - $(OCAMLC) $(COMPFLAGS) -c $< - -%.cmi: %.mli - $(OCAMLC) $(COMPFLAGS) -c $< - -%.cmx: %.ml - $(OCAMLOPT) $(COMPFLAGS) -c $< - -# Install/uninstall - -targets = $(1).mli $(1).cmi $(1).cmt $(1).cmti $(wildcard $(1).cmx) -INSTALL = META \ - $(wildcard ppx_tools_versioned.*) \ - $(OBJECTS:.cmo=.cmi) $(wildcard $(OBJECTS:.cmo=.cmx)) \ - $(wildcard $(OBJECTS:.cmo=.cmt) $(OBJECTS:.cmo=.cmti)) \ - $(METAQUOTS) - -.PHONY: reinstall install uninstall - -install: - ocamlfind install $(PACKAGE) $(INSTALL) - -uninstall: - ocamlfind remove $(PACKAGE) - -reinstall: - $(MAKE) uninstall - $(MAKE) install - -# Ast selection - -ppx_tools_versioned.cma: $(OBJECTS) - $(OCAMLC) -a -o $@ $^ - -ppx_tools_versioned.cmxa: $(OBJECTS:.cmo=.cmx) - $(OCAMLOPT) -a -o $@ $^ - -ppx_tools_versioned.cmxs: $(OBJECTS:.cmo=.cmx) - $(OCAMLOPT) -shared -o $@ $^ - -# Metaquot - -ppx_metaquot_%: ppx_tools_versioned.cmxa ast_lifter_%.ml ppx_metaquot_%.ml - $(OCAMLOPT) -o $@ $(COMPFLAGS) -linkpkg $^ - -.PHONY: depend -depend: - ocamldep *.ml *.mli > .depend - dos2unix .depend --include .depend diff --git a/vendor/ppx_tools_versioned/README.md b/vendor/ppx_tools_versioned/README.md deleted file mode 100644 index 1c88d45fc..000000000 --- a/vendor/ppx_tools_versioned/README.md +++ /dev/null @@ -1,138 +0,0 @@ -ppx_tools -========= - -Tools for authors of syntactic tools (such as ppx rewriters). - -This package is licensed by LexiFi under the terms of the MIT license. - -The tools are installed as a findlib package called 'ppx_tools'. -Executables are thus accessible through the ocamlfind driver (e.g.: -ocamlfind ppx_tools/dumpast). - -Main contributors: - - - Alain Frisch - - Peter Zotov (whitequark) - - Gabriel Radanne (Drup) - -Master : [](https://travis-ci.org/alainfrisch/ppx_tools) - -4.05 : [](https://travis-ci.org/alainfrisch/ppx_tools) - -4.04 : [](https://travis-ci.org/alainfrisch/ppx_tools) - -4.03 : [](https://travis-ci.org/alainfrisch/ppx_tools) - -4.02 : [](https://travis-ci.org/alainfrisch/ppx_tools) - -ppx_metaquot ------------- - -A ppx filter to help writing programs which manipulate the Parsetree, -by allowing the programmer to use concrete syntax for expressions -creating Parsetree fragments and patterns deconstructing Parsetree -fragments. See the top of ppx_metaquot.ml for a description of the -supported extensions. - -Usage: - - ocamlfind ocamlc -c -package ppx_tools.metaquot my_ppx_code.ml - - -rewriter --------- - -An utility to help testing ppx rewriters that runs the rewriter on -user-provided code and returns the result. - -Usage: - - ocamlfind ppx_tools/rewriter ./my_ppx_rewriter sample.ml - -See the integrated help message for more details: - - ocamlfind ppx_tools/rewriter -help - - -Ast_mapper_class ----------------- - -This module implements an API similar to Ast_mapper from the -compiler-libs, i.e. a generic mapper from Parsetree to Parsetree -implemeting a deep identity copy, which can be customized with a -custom behavior for each syntactic category. The difference with -Ast_mapper is that Ast_mapper_class implements the open recursion -using a class. - - -dumpast -------- - -This tool parses fragments of OCaml code (or entire source files) and -dump the resulting internal Parsetree representation. Intended uses: - - - Help to learn about the OCaml Parsetree structure and how it - corresponds to OCaml source syntax. - - - Create fragments of Parsetree to be copy-pasted into the source - code of syntax-manipulating programs (such as ppx rewriters). - -Usage: - - ocamlfind ppx_tools/dumpast -e "1 + 2" - -The tool can be used to show the Parsetree representation of small -fragments of syntax passed on the command line (-e for expressions, -p -for patterns, -t for type expressions) or for entire .ml/mli files. -The standard -pp and -ppx options are supported, but only applied on -whole files. The tool has further option to control how location and -attribute fields in the Parsetree should be displayed. - - -genlifter ---------- - -This tool generates a virtual "lifter" class for one or several OCaml -type constructors. It does so by loading the .cmi files which define -those types. The generated lifter class exposes one method to "reify" -type constructors passed on the command-line and other type -constructors accessible from them. The class is parametrized over the -target type of the reification, and it must provide method to deal -with basic types (int, string, char, int32, int64, nativeint) and data -type builders (record, constr, tuple, list, array). As an example, -calling: - - ocamlfind ppx_tools/genlifter -I +compiler-libs Location.t - -produces the following class: - - class virtual ['res] lifter = - object (this) - method lift_Location_t : Location.t -> 'res= - fun - { Location.loc_start = loc_start; Location.loc_end = loc_end; - Location.loc_ghost = loc_ghost } - -> - this#record "Location.t" - [("loc_start", (this#lift_Lexing_position loc_start)); - ("loc_end", (this#lift_Lexing_position loc_end)); - ("loc_ghost", (this#lift_bool loc_ghost))] - method lift_bool : bool -> 'res= - function - | false -> this#constr "bool" ("false", []) - | true -> this#constr "bool" ("true", []) - method lift_Lexing_position : Lexing.position -> 'res= - fun - { Lexing.pos_fname = pos_fname; Lexing.pos_lnum = pos_lnum; - Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum } - -> - this#record "Lexing.position" - [("pos_fname", (this#string pos_fname)); - ("pos_lnum", (this#int pos_lnum)); - ("pos_bol", (this#int pos_bol)); - ("pos_cnum", (this#int pos_cnum))] - end - -_dumpast_ is a direct example of using _genlifter_ applied on the -OCaml Parsetree definition itself. ppx_metaquot is another -similar example. diff --git a/vendor/ppx_tools_versioned/VERSION b/vendor/ppx_tools_versioned/VERSION deleted file mode 100644 index 4ae195faa..000000000 --- a/vendor/ppx_tools_versioned/VERSION +++ /dev/null @@ -1 +0,0 @@ -8d0326cbcf80a77325f09d63a216c210147a9b86 diff --git a/vendor/ppx_tools_versioned/ast_convenience_402.ml b/vendor/ppx_tools_versioned/ast_convenience_402.ml deleted file mode 100644 index 1c6538030..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_402.ml +++ /dev/null @@ -1,155 +0,0 @@ -open Ast_402 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -open Parsetree -open Asttypes -open Location -open Ast_helper - - -module Label = struct - - type t = string - - type desc = - Nolabel - | Labelled of string - | Optional of string - - let explode s = - if s = "" then Nolabel - else if s.[0] = '?' then Optional (String.sub s 1 (String.length s - 1)) - else Labelled s - - let nolabel = "" - let labelled s = s - let optional s = "?"^s - -end - -module Constant = struct - type t = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - exception Unknown_literal of string * char - - (** Backport Int_literal_converter from ocaml 4.03 - - * https://github.com/ocaml/ocaml/blob/trunk/utils/misc.ml#L298 *) - module Int_literal_converter = struct - let cvt_int_aux str neg of_string = - if String.length str = 0 || str.[0] = '-' - then of_string str - else neg (of_string ("-" ^ str)) - let int s = cvt_int_aux s (~-) int_of_string - let int32 s = cvt_int_aux s Int32.neg Int32.of_string - let int64 s = cvt_int_aux s Int64.neg Int64.of_string - let nativeint s = cvt_int_aux s Nativeint.neg Nativeint.of_string - end - - let of_constant = function - | Asttypes.Const_int32(i) -> Pconst_integer(Int32.to_string i, Some 'l') - | Asttypes.Const_int64(i) -> Pconst_integer(Int64.to_string i, Some 'L') - | Asttypes.Const_nativeint(i) -> Pconst_integer(Nativeint.to_string i, Some 'n') - | Asttypes.Const_int(i) -> Pconst_integer(string_of_int i, None) - | Asttypes.Const_char c -> Pconst_char c - | Asttypes.Const_string(s, s_opt) -> Pconst_string(s, s_opt) - | Asttypes.Const_float f -> Pconst_float(f, None) - - let to_constant = function - | Pconst_integer(i,Some 'l') -> Asttypes.Const_int32 (Int_literal_converter.int32 i) - | Pconst_integer(i,Some 'L') -> Asttypes.Const_int64 (Int_literal_converter.int64 i) - | Pconst_integer(i,Some 'n') -> Asttypes.Const_nativeint (Int_literal_converter.nativeint i) - | Pconst_integer(i,None) -> Asttypes.Const_int (Int_literal_converter.int i) - | Pconst_integer(i,Some c) -> raise (Unknown_literal (i, c)) - | Pconst_char c -> Asttypes.Const_char c - | Pconst_string(s,d) -> Asttypes.Const_string(s, d) - | Pconst_float(f,None) -> Asttypes.Const_float f - | Pconst_float(f,Some c) -> raise (Unknown_literal (f, c)) -end - -let may_tuple ?loc tup = function - | [] -> None - | [x] -> Some x - | l -> Some (tup ?loc ?attrs:None l) - -let lid ?(loc = !default_loc) s = mkloc (Longident.parse s) loc -let constr ?loc ?attrs s args = Exp.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Exp.tuple args) -let nil ?loc ?attrs () = constr ?loc ?attrs "[]" [] -let unit ?loc ?attrs () = constr ?loc ?attrs "()" [] -let tuple ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | [x] -> x - | xs -> Exp.tuple ?loc ?attrs xs -let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] -let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) -let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Const_string (s, None)) -let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Const_int x) -let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Const_char x) -let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Const_float (string_of_float x)) -let record ?loc ?attrs ?over l = - Exp.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.pexp_loc s, e)) l) over -let func ?loc ?attrs l = Exp.function_ ?loc ?attrs (List.map (fun (p, e) -> Exp.case p e) l) -let lam ?loc ?attrs ?(label = Label.nolabel) ?default pat exp = Exp.fun_ ?loc ?attrs label default pat exp -let app ?loc ?attrs f l = if l = [] then f else Exp.apply ?loc ?attrs f (List.map (fun a -> Label.nolabel, a) l) -let evar ?loc ?attrs s = Exp.ident ?loc ?attrs (lid ?loc s) -let let_in ?loc ?attrs ?(recursive = false) b body = - Exp.let_ ?loc ?attrs (if recursive then Recursive else Nonrecursive) b body - -let sequence ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | hd :: tl -> List.fold_left (fun e1 e2 -> Exp.sequence ?loc ?attrs e1 e2) hd tl - -let pvar ?(loc = !default_loc) ?attrs s = Pat.var ~loc ?attrs (mkloc s loc) -let pconstr ?loc ?attrs s args = Pat.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Pat.tuple args) -let precord ?loc ?attrs ?(closed = Open) l = - Pat.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.ppat_loc s, e)) l) closed -let pnil ?loc ?attrs () = pconstr ?loc ?attrs "[]" [] -let pcons ?loc ?attrs hd tl = pconstr ?loc ?attrs "::" [hd; tl] -let punit ?loc ?attrs () = pconstr ?loc ?attrs "()" [] -let ptuple ?loc ?attrs = function - | [] -> punit ?loc ?attrs () - | [x] -> x - | xs -> Pat.tuple ?loc ?attrs xs -let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) - -let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Const_string (s, None)) -let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Const_int x) -let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Const_char x) -let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Const_float (string_of_float x)) - -let tconstr ?loc ?attrs c l = Typ.constr ?loc ?attrs (lid ?loc c) l - -let get_str = function - | {pexp_desc=Pexp_constant (Const_string (s, _)); _} -> Some s - | _ -> None - -let get_str_with_quotation_delimiter = function - | {pexp_desc=Pexp_constant (Const_string (s, d)); _} -> Some (s, d) - | _ -> None - -let get_lid = function - | {pexp_desc=Pexp_ident{txt=id;_};_} -> - Some (String.concat "." (Longident.flatten id)) - | _ -> None - -let find_attr s attrs = - try Some (snd (List.find (fun (x, _) -> x.txt = s) attrs)) - with Not_found -> None - -let expr_of_payload = function - | PStr [{pstr_desc=Pstr_eval(e, _); _}] -> Some e - | _ -> None - -let find_attr_expr s attrs = - match find_attr s attrs with - | Some e -> expr_of_payload e - | None -> None - -let has_attr s attrs = - find_attr s attrs <> None diff --git a/vendor/ppx_tools_versioned/ast_convenience_402.mli b/vendor/ppx_tools_versioned/ast_convenience_402.mli deleted file mode 100644 index a07b92db2..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_402.mli +++ /dev/null @@ -1,110 +0,0 @@ -open Ast_402 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** {1 Convenience functions to help build and deconstruct AST fragments.} *) - -open Parsetree -open Asttypes -open Ast_helper - -(** {2 Compatibility modules} *) - -module Label : sig - type t = string - - type desc = - Nolabel - | Labelled of string - | Optional of string - - val explode : t -> desc - - val nolabel : t - val labelled : string -> t - val optional : string -> t - -end - -(** {2 Provides abstraction over Asttypes.constant type }*) -module Constant : sig - type t = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - exception Unknown_literal of string * char - - (** Converts Asttypes.constant to Constant.t *) - val of_constant : constant -> t - - (** Converts Constant.t to Asttypes.constant. Raises Unknown_literal if conversion fails *) - val to_constant : t -> constant -end - -(** {2 Misc} *) - -val lid: ?loc:loc -> string -> lid - -(** {2 Expressions} *) - -val evar: ?loc:loc -> ?attrs:attrs -> string -> expression -val let_in: ?loc:loc -> ?attrs:attrs -> ?recursive:bool -> value_binding list -> expression -> expression - -val constr: ?loc:loc -> ?attrs:attrs -> string -> expression list -> expression -val record: ?loc:loc -> ?attrs:attrs -> ?over:expression -> (string * expression) list -> expression -val tuple: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val nil: ?loc:loc -> ?attrs:attrs -> unit -> expression -val cons: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression -val list: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val unit: ?loc:loc -> ?attrs:attrs -> unit -> expression - -val func: ?loc:loc -> ?attrs:attrs -> (pattern * expression) list -> expression -val lam: ?loc:loc -> ?attrs:attrs -> ?label:Label.t -> ?default:expression -> pattern -> expression -> expression -val app: ?loc:loc -> ?attrs:attrs -> expression -> expression list -> expression - -val str: ?loc:loc -> ?attrs:attrs -> string -> expression -val int: ?loc:loc -> ?attrs:attrs -> int -> expression -val char: ?loc:loc -> ?attrs:attrs -> char -> expression -val float: ?loc:loc -> ?attrs:attrs -> float -> expression - -val sequence: ?loc:loc -> ?attrs:attrs -> expression list -> expression -(** Return [()] if the list is empty. Tail rec. *) - -(** {2 Patterns} *) - -val pvar: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pconstr: ?loc:loc -> ?attrs:attrs -> string -> pattern list -> pattern -val precord: ?loc:loc -> ?attrs:attrs -> ?closed:closed_flag -> (string * pattern) list -> pattern -val ptuple: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pnil: ?loc:loc -> ?attrs:attrs -> unit -> pattern -val pcons: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern -val plist: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pstr: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pint: ?loc:loc -> ?attrs:attrs -> int -> pattern -val pchar: ?loc:loc -> ?attrs:attrs -> char -> pattern -val pfloat: ?loc:loc -> ?attrs:attrs -> float -> pattern - -val punit: ?loc:loc -> ?attrs:attrs -> unit -> pattern - - -(** {2 Types} *) - -val tconstr: ?loc:loc -> ?attrs:attrs -> string -> core_type list -> core_type - -(** {2 AST deconstruction} *) - -val get_str: expression -> string option -val get_str_with_quotation_delimiter: expression -> (string * string option) option -val get_lid: expression -> string option - -val has_attr: string -> attributes -> bool -val find_attr: string -> attributes -> payload option -val find_attr_expr: string -> attributes -> expression option diff --git a/vendor/ppx_tools_versioned/ast_convenience_403.ml b/vendor/ppx_tools_versioned/ast_convenience_403.ml deleted file mode 100644 index 3187cb497..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_403.ml +++ /dev/null @@ -1,122 +0,0 @@ -open Ast_403 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -open Parsetree -open Asttypes -open Location -open Ast_helper - - -module Label = struct - - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - let explode x = x - - let nolabel = Nolabel - let labelled x = Labelled x - let optional x = Optional x - -end - -module Constant = struct - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - let of_constant x = x - - let to_constant x = x - -end - -let may_tuple ?loc tup = function - | [] -> None - | [x] -> Some x - | l -> Some (tup ?loc ?attrs:None l) - -let lid ?(loc = !default_loc) s = mkloc (Longident.parse s) loc -let constr ?loc ?attrs s args = Exp.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Exp.tuple args) -let nil ?loc ?attrs () = constr ?loc ?attrs "[]" [] -let unit ?loc ?attrs () = constr ?loc ?attrs "()" [] -let tuple ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | [x] -> x - | xs -> Exp.tuple ?loc ?attrs xs -let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] -let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) -let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Pconst_string (s, None)) -let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_char x) -let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) -let record ?loc ?attrs ?over l = - Exp.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.pexp_loc s, e)) l) over -let func ?loc ?attrs l = Exp.function_ ?loc ?attrs (List.map (fun (p, e) -> Exp.case p e) l) -let lam ?loc ?attrs ?(label = Label.nolabel) ?default pat exp = Exp.fun_ ?loc ?attrs label default pat exp -let app ?loc ?attrs f l = if l = [] then f else Exp.apply ?loc ?attrs f (List.map (fun a -> Label.nolabel, a) l) -let evar ?loc ?attrs s = Exp.ident ?loc ?attrs (lid ?loc s) -let let_in ?loc ?attrs ?(recursive = false) b body = - Exp.let_ ?loc ?attrs (if recursive then Recursive else Nonrecursive) b body - -let sequence ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | hd :: tl -> List.fold_left (fun e1 e2 -> Exp.sequence ?loc ?attrs e1 e2) hd tl - -let pvar ?(loc = !default_loc) ?attrs s = Pat.var ~loc ?attrs (mkloc s loc) -let pconstr ?loc ?attrs s args = Pat.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Pat.tuple args) -let precord ?loc ?attrs ?(closed = Open) l = - Pat.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.ppat_loc s, e)) l) closed -let pnil ?loc ?attrs () = pconstr ?loc ?attrs "[]" [] -let pcons ?loc ?attrs hd tl = pconstr ?loc ?attrs "::" [hd; tl] -let punit ?loc ?attrs () = pconstr ?loc ?attrs "()" [] -let ptuple ?loc ?attrs = function - | [] -> punit ?loc ?attrs () - | [x] -> x - | xs -> Pat.tuple ?loc ?attrs xs -let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) - -let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Pconst_string (s, None)) -let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_char x) -let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) - -let tconstr ?loc ?attrs c l = Typ.constr ?loc ?attrs (lid ?loc c) l - -let get_str = function - | {pexp_desc=Pexp_constant (Pconst_string (s, _)); _} -> Some s - | _ -> None - -let get_str_with_quotation_delimiter = function - | {pexp_desc=Pexp_constant (Pconst_string (s, d)); _} -> Some (s, d) - | _ -> None - -let get_lid = function - | {pexp_desc=Pexp_ident{txt=id;_};_} -> - Some (String.concat "." (Longident.flatten id)) - | _ -> None - -let find_attr s attrs = - try Some (snd (List.find (fun (x, _) -> x.txt = s) attrs)) - with Not_found -> None - -let expr_of_payload = function - | PStr [{pstr_desc=Pstr_eval(e, _); _}] -> Some e - | _ -> None - -let find_attr_expr s attrs = - match find_attr s attrs with - | Some e -> expr_of_payload e - | None -> None - -let has_attr s attrs = - find_attr s attrs <> None diff --git a/vendor/ppx_tools_versioned/ast_convenience_403.mli b/vendor/ppx_tools_versioned/ast_convenience_403.mli deleted file mode 100644 index 4e9690a80..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_403.mli +++ /dev/null @@ -1,110 +0,0 @@ -open Ast_403 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** {1 Convenience functions to help build and deconstruct AST fragments.} *) - -open Asttypes -open Ast_helper -open Parsetree - -(** {2 Compatibility modules} *) - -module Label : sig - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - val explode : t -> desc - - val nolabel : t - val labelled : string -> t - val optional : string -> t - -end - -(** {2 Provides a unified abstraction over differences in Parsetree.constant and Asttypes.constant - * types defined in ocaml 4.03 and 4.02 respectively}*) -module Constant : sig - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - (** Convert Asttypes.constant to Constant.t *) - val of_constant : Parsetree.constant -> t - - (** Convert Constant.t to Asttypes.constant *) - val to_constant : t -> Parsetree.constant - -end - -(** {2 Misc} *) - -val lid: ?loc:loc -> string -> lid - -(** {2 Expressions} *) - -val evar: ?loc:loc -> ?attrs:attrs -> string -> expression -val let_in: ?loc:loc -> ?attrs:attrs -> ?recursive:bool -> value_binding list -> expression -> expression - -val constr: ?loc:loc -> ?attrs:attrs -> string -> expression list -> expression -val record: ?loc:loc -> ?attrs:attrs -> ?over:expression -> (string * expression) list -> expression -val tuple: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val nil: ?loc:loc -> ?attrs:attrs -> unit -> expression -val cons: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression -val list: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val unit: ?loc:loc -> ?attrs:attrs -> unit -> expression - -val func: ?loc:loc -> ?attrs:attrs -> (pattern * expression) list -> expression -val lam: ?loc:loc -> ?attrs:attrs -> ?label:Label.t -> ?default:expression -> pattern -> expression -> expression -val app: ?loc:loc -> ?attrs:attrs -> expression -> expression list -> expression - -val str: ?loc:loc -> ?attrs:attrs -> string -> expression -val int: ?loc:loc -> ?attrs:attrs -> int -> expression -val char: ?loc:loc -> ?attrs:attrs -> char -> expression -val float: ?loc:loc -> ?attrs:attrs -> float -> expression - -val sequence: ?loc:loc -> ?attrs:attrs -> expression list -> expression -(** Return [()] if the list is empty. Tail rec. *) - -(** {2 Patterns} *) - -val pvar: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pconstr: ?loc:loc -> ?attrs:attrs -> string -> pattern list -> pattern -val precord: ?loc:loc -> ?attrs:attrs -> ?closed:closed_flag -> (string * pattern) list -> pattern -val ptuple: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pnil: ?loc:loc -> ?attrs:attrs -> unit -> pattern -val pcons: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern -val plist: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pstr: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pint: ?loc:loc -> ?attrs:attrs -> int -> pattern -val pchar: ?loc:loc -> ?attrs:attrs -> char -> pattern -val pfloat: ?loc:loc -> ?attrs:attrs -> float -> pattern - -val punit: ?loc:loc -> ?attrs:attrs -> unit -> pattern - - -(** {2 Types} *) - -val tconstr: ?loc:loc -> ?attrs:attrs -> string -> core_type list -> core_type - -(** {2 AST deconstruction} *) - -val get_str: expression -> string option -val get_str_with_quotation_delimiter: expression -> (string * string option) option -val get_lid: expression -> string option - -val has_attr: string -> attributes -> bool -val find_attr: string -> attributes -> payload option -val find_attr_expr: string -> attributes -> expression option diff --git a/vendor/ppx_tools_versioned/ast_convenience_404.ml b/vendor/ppx_tools_versioned/ast_convenience_404.ml deleted file mode 100644 index 1af2660d5..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_404.ml +++ /dev/null @@ -1,124 +0,0 @@ -open Ast_404 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -open Parsetree -open Asttypes -open Location -open Ast_helper - - -module Label = struct - - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - let explode x = x - - let nolabel = Nolabel - let labelled x = Labelled x - let optional x = Optional x - -end - -module Constant = struct - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - let of_constant x = x - - let to_constant x = x - -end - -let may_tuple ?loc tup = function - | [] -> None - | [x] -> Some x - | l -> Some (tup ?loc ?attrs:None l) - -let lid ?(loc = !default_loc) s = mkloc (Longident.parse s) loc -let constr ?loc ?attrs s args = Exp.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Exp.tuple args) -let nil ?loc ?attrs () = constr ?loc ?attrs "[]" [] -let unit ?loc ?attrs () = constr ?loc ?attrs "()" [] -let tuple ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | [x] -> x - | xs -> Exp.tuple ?loc ?attrs xs -let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] -let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) -let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Pconst_string (s, None)) -let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let int32 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int32.to_string x, Some 'l')) -let int64 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int64.to_string x, Some 'L')) -let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_char x) -let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) -let record ?loc ?attrs ?over l = - Exp.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.pexp_loc s, e)) l) over -let func ?loc ?attrs l = Exp.function_ ?loc ?attrs (List.map (fun (p, e) -> Exp.case p e) l) -let lam ?loc ?attrs ?(label = Label.nolabel) ?default pat exp = Exp.fun_ ?loc ?attrs label default pat exp -let app ?loc ?attrs f l = if l = [] then f else Exp.apply ?loc ?attrs f (List.map (fun a -> Label.nolabel, a) l) -let evar ?loc ?attrs s = Exp.ident ?loc ?attrs (lid ?loc s) -let let_in ?loc ?attrs ?(recursive = false) b body = - Exp.let_ ?loc ?attrs (if recursive then Recursive else Nonrecursive) b body - -let sequence ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | hd :: tl -> List.fold_left (fun e1 e2 -> Exp.sequence ?loc ?attrs e1 e2) hd tl - -let pvar ?(loc = !default_loc) ?attrs s = Pat.var ~loc ?attrs (mkloc s loc) -let pconstr ?loc ?attrs s args = Pat.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Pat.tuple args) -let precord ?loc ?attrs ?(closed = Open) l = - Pat.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.ppat_loc s, e)) l) closed -let pnil ?loc ?attrs () = pconstr ?loc ?attrs "[]" [] -let pcons ?loc ?attrs hd tl = pconstr ?loc ?attrs "::" [hd; tl] -let punit ?loc ?attrs () = pconstr ?loc ?attrs "()" [] -let ptuple ?loc ?attrs = function - | [] -> punit ?loc ?attrs () - | [x] -> x - | xs -> Pat.tuple ?loc ?attrs xs -let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) - -let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Pconst_string (s, None)) -let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_char x) -let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) - -let tconstr ?loc ?attrs c l = Typ.constr ?loc ?attrs (lid ?loc c) l - -let get_str = function - | {pexp_desc=Pexp_constant (Pconst_string (s, _)); _} -> Some s - | _ -> None - -let get_str_with_quotation_delimiter = function - | {pexp_desc=Pexp_constant (Pconst_string (s, d)); _} -> Some (s, d) - | _ -> None - -let get_lid = function - | {pexp_desc=Pexp_ident{txt=id;_};_} -> - Some (String.concat "." (Longident.flatten id)) - | _ -> None - -let find_attr s attrs = - try Some (snd (List.find (fun (x, _) -> x.txt = s) attrs)) - with Not_found -> None - -let expr_of_payload = function - | PStr [{pstr_desc=Pstr_eval(e, _); _}] -> Some e - | _ -> None - -let find_attr_expr s attrs = - match find_attr s attrs with - | Some e -> expr_of_payload e - | None -> None - -let has_attr s attrs = - find_attr s attrs <> None diff --git a/vendor/ppx_tools_versioned/ast_convenience_404.mli b/vendor/ppx_tools_versioned/ast_convenience_404.mli deleted file mode 100644 index 75fdf734b..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_404.mli +++ /dev/null @@ -1,112 +0,0 @@ -open Ast_404 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** {1 Convenience functions to help build and deconstruct AST fragments.} *) - -open Asttypes -open Ast_helper -open Parsetree - -(** {2 Compatibility modules} *) - -module Label : sig - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - val explode : t -> desc - - val nolabel : t - val labelled : string -> t - val optional : string -> t - -end - -(** {2 Provides a unified abstraction over differences in Parsetree.constant and Asttypes.constant - * types defined in ocaml 4.03 and 4.02 respectively}*) -module Constant : sig - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - (** Convert Asttypes.constant to Constant.t *) - val of_constant : Parsetree.constant -> t - - (** Convert Constant.t to Asttypes.constant *) - val to_constant : t -> Parsetree.constant - -end - -(** {2 Misc} *) - -val lid: ?loc:loc -> string -> lid - -(** {2 Expressions} *) - -val evar: ?loc:loc -> ?attrs:attrs -> string -> expression -val let_in: ?loc:loc -> ?attrs:attrs -> ?recursive:bool -> value_binding list -> expression -> expression - -val constr: ?loc:loc -> ?attrs:attrs -> string -> expression list -> expression -val record: ?loc:loc -> ?attrs:attrs -> ?over:expression -> (string * expression) list -> expression -val tuple: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val nil: ?loc:loc -> ?attrs:attrs -> unit -> expression -val cons: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression -val list: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val unit: ?loc:loc -> ?attrs:attrs -> unit -> expression - -val func: ?loc:loc -> ?attrs:attrs -> (pattern * expression) list -> expression -val lam: ?loc:loc -> ?attrs:attrs -> ?label:Label.t -> ?default:expression -> pattern -> expression -> expression -val app: ?loc:loc -> ?attrs:attrs -> expression -> expression list -> expression - -val str: ?loc:loc -> ?attrs:attrs -> string -> expression -val int: ?loc:loc -> ?attrs:attrs -> int -> expression -val int32: ?loc:loc -> ?attrs:attrs -> int32 -> expression -val int64: ?loc:loc -> ?attrs:attrs -> int64 -> expression -val char: ?loc:loc -> ?attrs:attrs -> char -> expression -val float: ?loc:loc -> ?attrs:attrs -> float -> expression - -val sequence: ?loc:loc -> ?attrs:attrs -> expression list -> expression -(** Return [()] if the list is empty. Tail rec. *) - -(** {2 Patterns} *) - -val pvar: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pconstr: ?loc:loc -> ?attrs:attrs -> string -> pattern list -> pattern -val precord: ?loc:loc -> ?attrs:attrs -> ?closed:closed_flag -> (string * pattern) list -> pattern -val ptuple: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pnil: ?loc:loc -> ?attrs:attrs -> unit -> pattern -val pcons: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern -val plist: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pstr: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pint: ?loc:loc -> ?attrs:attrs -> int -> pattern -val pchar: ?loc:loc -> ?attrs:attrs -> char -> pattern -val pfloat: ?loc:loc -> ?attrs:attrs -> float -> pattern - -val punit: ?loc:loc -> ?attrs:attrs -> unit -> pattern - - -(** {2 Types} *) - -val tconstr: ?loc:loc -> ?attrs:attrs -> string -> core_type list -> core_type - -(** {2 AST deconstruction} *) - -val get_str: expression -> string option -val get_str_with_quotation_delimiter: expression -> (string * string option) option -val get_lid: expression -> string option - -val has_attr: string -> attributes -> bool -val find_attr: string -> attributes -> payload option -val find_attr_expr: string -> attributes -> expression option diff --git a/vendor/ppx_tools_versioned/ast_convenience_405.ml b/vendor/ppx_tools_versioned/ast_convenience_405.ml deleted file mode 100644 index a99b7123e..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_405.ml +++ /dev/null @@ -1,124 +0,0 @@ -open Ast_405 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -open Parsetree -open Asttypes -open Location -open Ast_helper - - -module Label = struct - - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - let explode x = x - - let nolabel = Nolabel - let labelled x = Labelled x - let optional x = Optional x - -end - -module Constant = struct - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - let of_constant x = x - - let to_constant x = x - -end - -let may_tuple ?loc tup = function - | [] -> None - | [x] -> Some x - | l -> Some (tup ?loc ?attrs:None l) - -let lid ?(loc = !default_loc) s = mkloc (Longident.parse s) loc -let constr ?loc ?attrs s args = Exp.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Exp.tuple args) -let nil ?loc ?attrs () = constr ?loc ?attrs "[]" [] -let unit ?loc ?attrs () = constr ?loc ?attrs "()" [] -let tuple ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | [x] -> x - | xs -> Exp.tuple ?loc ?attrs xs -let cons ?loc ?attrs hd tl = constr ?loc ?attrs "::" [hd; tl] -let list ?loc ?attrs l = List.fold_right (cons ?loc ?attrs) l (nil ?loc ?attrs ()) -let str ?loc ?attrs s = Exp.constant ?loc ?attrs (Pconst_string (s, None)) -let int ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let int32 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int32.to_string x, Some 'l')) -let int64 ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_integer (Int64.to_string x, Some 'L')) -let char ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_char x) -let float ?loc ?attrs x = Exp.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) -let record ?loc ?attrs ?over l = - Exp.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.pexp_loc s, e)) l) over -let func ?loc ?attrs l = Exp.function_ ?loc ?attrs (List.map (fun (p, e) -> Exp.case p e) l) -let lam ?loc ?attrs ?(label = Label.nolabel) ?default pat exp = Exp.fun_ ?loc ?attrs label default pat exp -let app ?loc ?attrs f l = if l = [] then f else Exp.apply ?loc ?attrs f (List.map (fun a -> Label.nolabel, a) l) -let evar ?loc ?attrs s = Exp.ident ?loc ?attrs (lid ?loc s) -let let_in ?loc ?attrs ?(recursive = false) b body = - Exp.let_ ?loc ?attrs (if recursive then Recursive else Nonrecursive) b body - -let sequence ?loc ?attrs = function - | [] -> unit ?loc ?attrs () - | hd :: tl -> List.fold_left (fun e1 e2 -> Exp.sequence ?loc ?attrs e1 e2) hd tl - -let pvar ?(loc = !default_loc) ?attrs s = Pat.var ~loc ?attrs (mkloc s loc) -let pconstr ?loc ?attrs s args = Pat.construct ?loc ?attrs (lid ?loc s) (may_tuple ?loc Pat.tuple args) -let precord ?loc ?attrs ?(closed = Open) l = - Pat.record ?loc ?attrs (List.map (fun (s, e) -> (lid ~loc:e.ppat_loc s, e)) l) closed -let pnil ?loc ?attrs () = pconstr ?loc ?attrs "[]" [] -let pcons ?loc ?attrs hd tl = pconstr ?loc ?attrs "::" [hd; tl] -let punit ?loc ?attrs () = pconstr ?loc ?attrs "()" [] -let ptuple ?loc ?attrs = function - | [] -> punit ?loc ?attrs () - | [x] -> x - | xs -> Pat.tuple ?loc ?attrs xs -let plist ?loc ?attrs l = List.fold_right (pcons ?loc ?attrs) l (pnil ?loc ?attrs ()) - -let pstr ?loc ?attrs s = Pat.constant ?loc ?attrs (Pconst_string (s, None)) -let pint ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_integer (string_of_int x, None)) -let pchar ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_char x) -let pfloat ?loc ?attrs x = Pat.constant ?loc ?attrs (Pconst_float (string_of_float x, None)) - -let tconstr ?loc ?attrs c l = Typ.constr ?loc ?attrs (lid ?loc c) l - -let get_str = function - | {pexp_desc=Pexp_constant (Pconst_string (s, _)); _} -> Some s - | _ -> None - -let get_str_with_quotation_delimiter = function - | {pexp_desc=Pexp_constant (Pconst_string (s, d)); _} -> Some (s, d) - | _ -> None - -let get_lid = function - | {pexp_desc=Pexp_ident{txt=id;_};_} -> - Some (String.concat "." (Longident.flatten id)) - | _ -> None - -let find_attr s attrs = - try Some (snd (List.find (fun (x, _) -> x.txt = s) attrs)) - with Not_found -> None - -let expr_of_payload = function - | PStr [{pstr_desc=Pstr_eval(e, _); _}] -> Some e - | _ -> None - -let find_attr_expr s attrs = - match find_attr s attrs with - | Some e -> expr_of_payload e - | None -> None - -let has_attr s attrs = - find_attr s attrs <> None diff --git a/vendor/ppx_tools_versioned/ast_convenience_405.mli b/vendor/ppx_tools_versioned/ast_convenience_405.mli deleted file mode 100644 index 4e2b6ba46..000000000 --- a/vendor/ppx_tools_versioned/ast_convenience_405.mli +++ /dev/null @@ -1,112 +0,0 @@ -open Ast_405 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** {1 Convenience functions to help build and deconstruct AST fragments.} *) - -open Asttypes -open Ast_helper -open Parsetree - -(** {2 Compatibility modules} *) - -module Label : sig - type t = Asttypes.arg_label - - type desc = Asttypes.arg_label = - Nolabel - | Labelled of string - | Optional of string - - val explode : t -> desc - - val nolabel : t - val labelled : string -> t - val optional : string -> t - -end - -(** {2 Provides a unified abstraction over differences in Parsetree.constant and Asttypes.constant - * types defined in ocaml 4.03 and 4.02 respectively}*) -module Constant : sig - type t = Parsetree.constant = - Pconst_integer of string * char option - | Pconst_char of char - | Pconst_string of string * string option - | Pconst_float of string * char option - - (** Convert Asttypes.constant to Constant.t *) - val of_constant : Parsetree.constant -> t - - (** Convert Constant.t to Asttypes.constant *) - val to_constant : t -> Parsetree.constant - -end - -(** {2 Misc} *) - -val lid: ?loc:loc -> string -> lid - -(** {2 Expressions} *) - -val evar: ?loc:loc -> ?attrs:attrs -> string -> expression -val let_in: ?loc:loc -> ?attrs:attrs -> ?recursive:bool -> value_binding list -> expression -> expression - -val constr: ?loc:loc -> ?attrs:attrs -> string -> expression list -> expression -val record: ?loc:loc -> ?attrs:attrs -> ?over:expression -> (string * expression) list -> expression -val tuple: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val nil: ?loc:loc -> ?attrs:attrs -> unit -> expression -val cons: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression -val list: ?loc:loc -> ?attrs:attrs -> expression list -> expression - -val unit: ?loc:loc -> ?attrs:attrs -> unit -> expression - -val func: ?loc:loc -> ?attrs:attrs -> (pattern * expression) list -> expression -val lam: ?loc:loc -> ?attrs:attrs -> ?label:Label.t -> ?default:expression -> pattern -> expression -> expression -val app: ?loc:loc -> ?attrs:attrs -> expression -> expression list -> expression - -val str: ?loc:loc -> ?attrs:attrs -> string -> expression -val int: ?loc:loc -> ?attrs:attrs -> int -> expression -val int32: ?loc:loc -> ?attrs:attrs -> int32 -> expression -val int64: ?loc:loc -> ?attrs:attrs -> int64 -> expression -val char: ?loc:loc -> ?attrs:attrs -> char -> expression -val float: ?loc:loc -> ?attrs:attrs -> float -> expression - -val sequence: ?loc:loc -> ?attrs:attrs -> expression list -> expression -(** Return [()] if the list is empty. Tail rec. *) - -(** {2 Patterns} *) - -val pvar: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pconstr: ?loc:loc -> ?attrs:attrs -> string -> pattern list -> pattern -val precord: ?loc:loc -> ?attrs:attrs -> ?closed:closed_flag -> (string * pattern) list -> pattern -val ptuple: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pnil: ?loc:loc -> ?attrs:attrs -> unit -> pattern -val pcons: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern -val plist: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern - -val pstr: ?loc:loc -> ?attrs:attrs -> string -> pattern -val pint: ?loc:loc -> ?attrs:attrs -> int -> pattern -val pchar: ?loc:loc -> ?attrs:attrs -> char -> pattern -val pfloat: ?loc:loc -> ?attrs:attrs -> float -> pattern - -val punit: ?loc:loc -> ?attrs:attrs -> unit -> pattern - - -(** {2 Types} *) - -val tconstr: ?loc:loc -> ?attrs:attrs -> string -> core_type list -> core_type - -(** {2 AST deconstruction} *) - -val get_str: expression -> string option -val get_str_with_quotation_delimiter: expression -> (string * string option) option -val get_lid: expression -> string option - -val has_attr: string -> attributes -> bool -val find_attr: string -> attributes -> payload option -val find_attr_expr: string -> attributes -> expression option diff --git a/vendor/ppx_tools_versioned/ast_lifter_402.ml b/vendor/ppx_tools_versioned/ast_lifter_402.ml deleted file mode 100644 index c1ebdca7e..000000000 --- a/vendor/ppx_tools_versioned/ast_lifter_402.ml +++ /dev/null @@ -1,1353 +0,0 @@ -open Ast_402 - -class virtual ['res] lifter = - object (this) - method lift_Parsetree_expression : Parsetree.expression -> 'res= - (fun - { Parsetree.pexp_desc = pexp_desc; Parsetree.pexp_loc = pexp_loc; - Parsetree.pexp_attributes = pexp_attributes } - -> - this#record "Ast_402.Parsetree.expression" - [("pexp_desc", (this#lift_Parsetree_expression_desc pexp_desc)); - ("pexp_loc", (this#lift_Location_t pexp_loc)); - ("pexp_attributes", - (this#lift_Parsetree_attributes pexp_attributes))] : Parsetree.expression - -> - 'res) - method lift_Parsetree_expression_desc : - Parsetree.expression_desc -> 'res= - (function - | Parsetree.Pexp_ident x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_constant x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_constant", [this#lift_Asttypes_constant x0]) - | Parsetree.Pexp_let (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_function x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_function", - [this#list (List.map this#lift_Parsetree_case x0)]) - | Parsetree.Pexp_fun (x0,x1,x2,x3) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_fun", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_expression x3]) - | Parsetree.Pexp_apply (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_apply", - [this#lift_Parsetree_expression x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pexp_match (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_match", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_try (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_try", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_tuple x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_tuple", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_construct (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_variant (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_record (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_expression x1]) x0); - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_field (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_field", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pexp_setfield (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_setfield", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_array x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_array", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_ifthenelse (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_ifthenelse", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1; - this#lift_option this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_sequence (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_sequence", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_while (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_while", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_for (x0,x1,x2,x3,x4) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_for", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_expression x1; - this#lift_Parsetree_expression x2; - this#lift_Asttypes_direction_flag x3; - this#lift_Parsetree_expression x4]) - | Parsetree.Pexp_constraint (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_constraint", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_coerce (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_coerce", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Pexp_send (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_send", - [this#lift_Parsetree_expression x0; this#string x1]) - | Parsetree.Pexp_new x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_new", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_setinstvar (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_setinstvar", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_override x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_override", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) x0)]) - | Parsetree.Pexp_letmodule (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_letmodule", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_module_expr x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_assert x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_assert", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_lazy x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_lazy", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_poly (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_poly", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_object x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_object", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pexp_newtype (x0,x1) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_newtype", - [this#string x0; this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_pack x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_pack", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pexp_open (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_open", - [this#lift_Asttypes_override_flag x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_extension x0 -> - this#constr "Ast_402.Parsetree.expression_desc" - ("Pexp_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.expression_desc -> 'res) - method lift_Asttypes_direction_flag : Asttypes.direction_flag -> 'res= - (function - | Asttypes.Upto -> this#constr "Ast_402.Asttypes.direction_flag" ("Upto", []) - | Asttypes.Downto -> - this#constr "Ast_402.Asttypes.direction_flag" ("Downto", []) : Asttypes.direction_flag - -> - 'res) - method lift_Parsetree_case : Parsetree.case -> 'res= - (fun - { Parsetree.pc_lhs = pc_lhs; Parsetree.pc_guard = pc_guard; - Parsetree.pc_rhs = pc_rhs } - -> - this#record "Ast_402.Parsetree.case" - [("pc_lhs", (this#lift_Parsetree_pattern pc_lhs)); - ("pc_guard", - (this#lift_option this#lift_Parsetree_expression pc_guard)); - ("pc_rhs", (this#lift_Parsetree_expression pc_rhs))] : Parsetree.case - -> - 'res) - method lift_Parsetree_value_binding : Parsetree.value_binding -> 'res= - (fun - { Parsetree.pvb_pat = pvb_pat; Parsetree.pvb_expr = pvb_expr; - Parsetree.pvb_attributes = pvb_attributes; - Parsetree.pvb_loc = pvb_loc } - -> - this#record "Ast_402.Parsetree.value_binding" - [("pvb_pat", (this#lift_Parsetree_pattern pvb_pat)); - ("pvb_expr", (this#lift_Parsetree_expression pvb_expr)); - ("pvb_attributes", - (this#lift_Parsetree_attributes pvb_attributes)); - ("pvb_loc", (this#lift_Location_t pvb_loc))] : Parsetree.value_binding - -> 'res) - method lift_Parsetree_pattern : Parsetree.pattern -> 'res= - (fun - { Parsetree.ppat_desc = ppat_desc; Parsetree.ppat_loc = ppat_loc; - Parsetree.ppat_attributes = ppat_attributes } - -> - this#record "Ast_402.Parsetree.pattern" - [("ppat_desc", (this#lift_Parsetree_pattern_desc ppat_desc)); - ("ppat_loc", (this#lift_Location_t ppat_loc)); - ("ppat_attributes", - (this#lift_Parsetree_attributes ppat_attributes))] : Parsetree.pattern - -> - 'res) - method lift_Parsetree_pattern_desc : Parsetree.pattern_desc -> 'res= - (function - | Parsetree.Ppat_any -> - this#constr "Ast_402.Parsetree.pattern_desc" ("Ppat_any", []) - | Parsetree.Ppat_var x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_var", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_alias (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_alias", - [this#lift_Parsetree_pattern x0; - this#lift_Asttypes_loc this#string x1]) - | Parsetree.Ppat_constant x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_constant", [this#lift_Asttypes_constant x0]) - | Parsetree.Ppat_interval (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_interval", - [this#lift_Asttypes_constant x0; - this#lift_Asttypes_constant x1]) - | Parsetree.Ppat_tuple x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_tuple", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_construct (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_variant (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_record (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ppat_array x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_array", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_or (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_or", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_constraint (x0,x1) -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_constraint", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Ppat_type x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_type", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Ppat_lazy x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_lazy", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_unpack x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_unpack", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_exception x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_exception", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_extension x0 -> - this#constr "Ast_402.Parsetree.pattern_desc" - ("Ppat_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.pattern_desc -> 'res) - method lift_Parsetree_core_type : Parsetree.core_type -> 'res= - (fun - { Parsetree.ptyp_desc = ptyp_desc; Parsetree.ptyp_loc = ptyp_loc; - Parsetree.ptyp_attributes = ptyp_attributes } - -> - this#record "Ast_402.Parsetree.core_type" - [("ptyp_desc", (this#lift_Parsetree_core_type_desc ptyp_desc)); - ("ptyp_loc", (this#lift_Location_t ptyp_loc)); - ("ptyp_attributes", - (this#lift_Parsetree_attributes ptyp_attributes))] : Parsetree.core_type - -> - 'res) - method lift_Parsetree_core_type_desc : Parsetree.core_type_desc -> 'res= - (function - | Parsetree.Ptyp_any -> - this#constr "Ast_402.Parsetree.core_type_desc" ("Ptyp_any", []) - | Parsetree.Ptyp_var x0 -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_var", [this#string x0]) - | Parsetree.Ptyp_arrow (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_arrow", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Ptyp_tuple x0 -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Ptyp_constr (x0,x1) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_object (x0,x1) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_object", - [this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#string x0; - this#lift_Parsetree_attributes x1; - this#lift_Parsetree_core_type x2]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ptyp_class (x0,x1) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_class", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_alias (x0,x1) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_alias", - [this#lift_Parsetree_core_type x0; this#string x1]) - | Parsetree.Ptyp_variant (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_variant", - [this#list (List.map this#lift_Parsetree_row_field x0); - this#lift_Asttypes_closed_flag x1; - this#lift_option - (fun x -> this#list (List.map this#lift_Asttypes_label x)) - x2]) - | Parsetree.Ptyp_poly (x0,x1) -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_poly", - [this#list (List.map this#string x0); - this#lift_Parsetree_core_type x1]) - | Parsetree.Ptyp_package x0 -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_package", [this#lift_Parsetree_package_type x0]) - | Parsetree.Ptyp_extension x0 -> - this#constr "Ast_402.Parsetree.core_type_desc" - ("Ptyp_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.core_type_desc -> 'res) - method lift_Parsetree_package_type : Parsetree.package_type -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_core_type x1]) x1)] : Parsetree.package_type - -> 'res) - method lift_Parsetree_row_field : Parsetree.row_field -> 'res= - (function - | Parsetree.Rtag (x0,x1,x2,x3) -> - this#constr "Ast_402.Parsetree.row_field" - ("Rtag", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_attributes x1; - this#lift_bool x2; - this#list (List.map this#lift_Parsetree_core_type x3)]) - | Parsetree.Rinherit x0 -> - this#constr "Ast_402.Parsetree.row_field" - ("Rinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.row_field - -> - 'res) - method lift_Parsetree_attributes : Parsetree.attributes -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_attribute x) : - Parsetree.attributes -> 'res) - method lift_Parsetree_attribute : Parsetree.attribute -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.attribute -> 'res) - method lift_Parsetree_payload : Parsetree.payload -> 'res= - (function - | Parsetree.PStr x0 -> - this#constr "Ast_402.Parsetree.payload" - ("PStr", [this#lift_Parsetree_structure x0]) - | Parsetree.PTyp x0 -> - this#constr "Ast_402.Parsetree.payload" - ("PTyp", [this#lift_Parsetree_core_type x0]) - | Parsetree.PPat (x0,x1) -> - this#constr "Ast_402.Parsetree.payload" - ("PPat", - [this#lift_Parsetree_pattern x0; - this#lift_option this#lift_Parsetree_expression x1]) : - Parsetree.payload -> 'res) - method lift_Parsetree_structure : Parsetree.structure -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_structure_item x) : - Parsetree.structure -> 'res) - method lift_Parsetree_structure_item : Parsetree.structure_item -> 'res= - (fun { Parsetree.pstr_desc = pstr_desc; Parsetree.pstr_loc = pstr_loc } - -> - this#record "Ast_402.Parsetree.structure_item" - [("pstr_desc", - (this#lift_Parsetree_structure_item_desc pstr_desc)); - ("pstr_loc", (this#lift_Location_t pstr_loc))] : Parsetree.structure_item - -> 'res) - method lift_Parsetree_structure_item_desc : - Parsetree.structure_item_desc -> 'res= - (function - | Parsetree.Pstr_eval (x0,x1) -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_eval", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_attributes x1]) - | Parsetree.Pstr_value (x0,x1) -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_value", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1)]) - | Parsetree.Pstr_primitive x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_primitive", [this#lift_Parsetree_value_description x0]) - | Parsetree.Pstr_type x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_type", - [this#list (List.map this#lift_Parsetree_type_declaration x0)]) - | Parsetree.Pstr_typext x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Pstr_exception x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Pstr_module x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_module", [this#lift_Parsetree_module_binding x0]) - | Parsetree.Pstr_recmodule x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_recmodule", - [this#list (List.map this#lift_Parsetree_module_binding x0)]) - | Parsetree.Pstr_modtype x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Pstr_open x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Pstr_class x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_class", - [this#list (List.map this#lift_Parsetree_class_declaration x0)]) - | Parsetree.Pstr_class_type x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Pstr_include x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_include", [this#lift_Parsetree_include_declaration x0]) - | Parsetree.Pstr_attribute x0 -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pstr_extension (x0,x1) -> - this#constr "Ast_402.Parsetree.structure_item_desc" - ("Pstr_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.structure_item_desc - -> 'res) - method lift_Parsetree_include_declaration : - Parsetree.include_declaration -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_expr x : - Parsetree.include_declaration -> 'res) - method lift_Parsetree_class_declaration : - Parsetree.class_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_expr x : - Parsetree.class_declaration -> 'res) - method lift_Parsetree_class_expr : Parsetree.class_expr -> 'res= - (fun - { Parsetree.pcl_desc = pcl_desc; Parsetree.pcl_loc = pcl_loc; - Parsetree.pcl_attributes = pcl_attributes } - -> - this#record "Ast_402.Parsetree.class_expr" - [("pcl_desc", (this#lift_Parsetree_class_expr_desc pcl_desc)); - ("pcl_loc", (this#lift_Location_t pcl_loc)); - ("pcl_attributes", - (this#lift_Parsetree_attributes pcl_attributes))] : Parsetree.class_expr - -> - 'res) - method lift_Parsetree_class_expr_desc : - Parsetree.class_expr_desc -> 'res= - (function - | Parsetree.Pcl_constr (x0,x1) -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcl_structure x0 -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_structure", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pcl_fun (x0,x1,x2,x3) -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_fun", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_class_expr x3]) - | Parsetree.Pcl_apply (x0,x1) -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_apply", - [this#lift_Parsetree_class_expr x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pcl_let (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_class_expr x2]) - | Parsetree.Pcl_constraint (x0,x1) -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_constraint", - [this#lift_Parsetree_class_expr x0; - this#lift_Parsetree_class_type x1]) - | Parsetree.Pcl_extension x0 -> - this#constr "Ast_402.Parsetree.class_expr_desc" - ("Pcl_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_expr_desc -> 'res) - method lift_Parsetree_class_structure : - Parsetree.class_structure -> 'res= - (fun - { Parsetree.pcstr_self = pcstr_self; - Parsetree.pcstr_fields = pcstr_fields } - -> - this#record "Ast_402.Parsetree.class_structure" - [("pcstr_self", (this#lift_Parsetree_pattern pcstr_self)); - ("pcstr_fields", - (this#list - (List.map this#lift_Parsetree_class_field pcstr_fields)))] : - Parsetree.class_structure -> 'res) - method lift_Parsetree_class_field : Parsetree.class_field -> 'res= - (fun - { Parsetree.pcf_desc = pcf_desc; Parsetree.pcf_loc = pcf_loc; - Parsetree.pcf_attributes = pcf_attributes } - -> - this#record "Ast_402.Parsetree.class_field" - [("pcf_desc", (this#lift_Parsetree_class_field_desc pcf_desc)); - ("pcf_loc", (this#lift_Location_t pcf_loc)); - ("pcf_attributes", - (this#lift_Parsetree_attributes pcf_attributes))] : Parsetree.class_field - -> - 'res) - method lift_Parsetree_class_field_desc : - Parsetree.class_field_desc -> 'res= - (function - | Parsetree.Pcf_inherit (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_inherit", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_class_expr x1; - this#lift_option this#string x2]) - | Parsetree.Pcf_val x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_val", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_method x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_method", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_constraint x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pcf_initializer x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_initializer", [this#lift_Parsetree_expression x0]) - | Parsetree.Pcf_attribute x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pcf_extension x0 -> - this#constr "Ast_402.Parsetree.class_field_desc" - ("Pcf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_field_desc -> 'res) - method lift_Parsetree_class_field_kind : - Parsetree.class_field_kind -> 'res= - (function - | Parsetree.Cfk_virtual x0 -> - this#constr "Ast_402.Parsetree.class_field_kind" - ("Cfk_virtual", [this#lift_Parsetree_core_type x0]) - | Parsetree.Cfk_concrete (x0,x1) -> - this#constr "Ast_402.Parsetree.class_field_kind" - ("Cfk_concrete", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_expression x1]) : Parsetree.class_field_kind - -> 'res) - method lift_Parsetree_module_binding : Parsetree.module_binding -> 'res= - (fun - { Parsetree.pmb_name = pmb_name; Parsetree.pmb_expr = pmb_expr; - Parsetree.pmb_attributes = pmb_attributes; - Parsetree.pmb_loc = pmb_loc } - -> - this#record "Ast_402.Parsetree.module_binding" - [("pmb_name", (this#lift_Asttypes_loc this#string pmb_name)); - ("pmb_expr", (this#lift_Parsetree_module_expr pmb_expr)); - ("pmb_attributes", - (this#lift_Parsetree_attributes pmb_attributes)); - ("pmb_loc", (this#lift_Location_t pmb_loc))] : Parsetree.module_binding - -> 'res) - method lift_Parsetree_module_expr : Parsetree.module_expr -> 'res= - (fun - { Parsetree.pmod_desc = pmod_desc; Parsetree.pmod_loc = pmod_loc; - Parsetree.pmod_attributes = pmod_attributes } - -> - this#record "Ast_402.Parsetree.module_expr" - [("pmod_desc", (this#lift_Parsetree_module_expr_desc pmod_desc)); - ("pmod_loc", (this#lift_Location_t pmod_loc)); - ("pmod_attributes", - (this#lift_Parsetree_attributes pmod_attributes))] : Parsetree.module_expr - -> - 'res) - method lift_Parsetree_module_expr_desc : - Parsetree.module_expr_desc -> 'res= - (function - | Parsetree.Pmod_ident x0 -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmod_structure x0 -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_structure", [this#lift_Parsetree_structure x0]) - | Parsetree.Pmod_functor (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_expr x2]) - | Parsetree.Pmod_apply (x0,x1) -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_apply", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_expr x1]) - | Parsetree.Pmod_constraint (x0,x1) -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_constraint", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_type x1]) - | Parsetree.Pmod_unpack x0 -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_unpack", [this#lift_Parsetree_expression x0]) - | Parsetree.Pmod_extension x0 -> - this#constr "Ast_402.Parsetree.module_expr_desc" - ("Pmod_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.module_expr_desc -> 'res) - method lift_Parsetree_module_type : Parsetree.module_type -> 'res= - (fun - { Parsetree.pmty_desc = pmty_desc; Parsetree.pmty_loc = pmty_loc; - Parsetree.pmty_attributes = pmty_attributes } - -> - this#record "Ast_402.Parsetree.module_type" - [("pmty_desc", (this#lift_Parsetree_module_type_desc pmty_desc)); - ("pmty_loc", (this#lift_Location_t pmty_loc)); - ("pmty_attributes", - (this#lift_Parsetree_attributes pmty_attributes))] : Parsetree.module_type - -> - 'res) - method lift_Parsetree_module_type_desc : - Parsetree.module_type_desc -> 'res= - (function - | Parsetree.Pmty_ident x0 -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmty_signature x0 -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_signature", [this#lift_Parsetree_signature x0]) - | Parsetree.Pmty_functor (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_type x2]) - | Parsetree.Pmty_with (x0,x1) -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_with", - [this#lift_Parsetree_module_type x0; - this#list (List.map this#lift_Parsetree_with_constraint x1)]) - | Parsetree.Pmty_typeof x0 -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_typeof", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pmty_extension x0 -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pmty_alias x0 -> - this#constr "Ast_402.Parsetree.module_type_desc" - ("Pmty_alias", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.module_type_desc - -> - 'res) - method lift_Parsetree_with_constraint : - Parsetree.with_constraint -> 'res= - (function - | Parsetree.Pwith_type (x0,x1) -> - this#constr "Ast_402.Parsetree.with_constraint" - ("Pwith_type", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_type_declaration x1]) - | Parsetree.Pwith_module (x0,x1) -> - this#constr "Ast_402.Parsetree.with_constraint" - ("Pwith_module", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pwith_typesubst x0 -> - this#constr "Ast_402.Parsetree.with_constraint" - ("Pwith_typesubst", [this#lift_Parsetree_type_declaration x0]) - | Parsetree.Pwith_modsubst (x0,x1) -> - this#constr "Ast_402.Parsetree.with_constraint" - ("Pwith_modsubst", - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) : Parsetree.with_constraint - -> - 'res) - method lift_Parsetree_signature : Parsetree.signature -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_signature_item x) : - Parsetree.signature -> 'res) - method lift_Parsetree_signature_item : Parsetree.signature_item -> 'res= - (fun { Parsetree.psig_desc = psig_desc; Parsetree.psig_loc = psig_loc } - -> - this#record "Ast_402.Parsetree.signature_item" - [("psig_desc", - (this#lift_Parsetree_signature_item_desc psig_desc)); - ("psig_loc", (this#lift_Location_t psig_loc))] : Parsetree.signature_item - -> 'res) - method lift_Parsetree_signature_item_desc : - Parsetree.signature_item_desc -> 'res= - (function - | Parsetree.Psig_value x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_value", [this#lift_Parsetree_value_description x0]) - | Parsetree.Psig_type x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_type", - [this#list (List.map this#lift_Parsetree_type_declaration x0)]) - | Parsetree.Psig_typext x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Psig_exception x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Psig_module x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_module", [this#lift_Parsetree_module_declaration x0]) - | Parsetree.Psig_recmodule x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_recmodule", - [this#list - (List.map this#lift_Parsetree_module_declaration x0)]) - | Parsetree.Psig_modtype x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Psig_open x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Psig_include x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_include", [this#lift_Parsetree_include_description x0]) - | Parsetree.Psig_class x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_class", - [this#list (List.map this#lift_Parsetree_class_description x0)]) - | Parsetree.Psig_class_type x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Psig_attribute x0 -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Psig_extension (x0,x1) -> - this#constr "Ast_402.Parsetree.signature_item_desc" - ("Psig_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.signature_item_desc - -> 'res) - method lift_Parsetree_class_type_declaration : - Parsetree.class_type_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_type_declaration -> 'res) - method lift_Parsetree_class_description : - Parsetree.class_description -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_description -> 'res) - method lift_Parsetree_class_type : Parsetree.class_type -> 'res= - (fun - { Parsetree.pcty_desc = pcty_desc; Parsetree.pcty_loc = pcty_loc; - Parsetree.pcty_attributes = pcty_attributes } - -> - this#record "Ast_402.Parsetree.class_type" - [("pcty_desc", (this#lift_Parsetree_class_type_desc pcty_desc)); - ("pcty_loc", (this#lift_Location_t pcty_loc)); - ("pcty_attributes", - (this#lift_Parsetree_attributes pcty_attributes))] : Parsetree.class_type - -> - 'res) - method lift_Parsetree_class_type_desc : - Parsetree.class_type_desc -> 'res= - (function - | Parsetree.Pcty_constr (x0,x1) -> - this#constr "Ast_402.Parsetree.class_type_desc" - ("Pcty_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcty_signature x0 -> - this#constr "Ast_402.Parsetree.class_type_desc" - ("Pcty_signature", [this#lift_Parsetree_class_signature x0]) - | Parsetree.Pcty_arrow (x0,x1,x2) -> - this#constr "Ast_402.Parsetree.class_type_desc" - ("Pcty_arrow", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_class_type x2]) - | Parsetree.Pcty_extension x0 -> - this#constr "Ast_402.Parsetree.class_type_desc" - ("Pcty_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_desc -> 'res) - method lift_Parsetree_class_signature : - Parsetree.class_signature -> 'res= - (fun - { Parsetree.pcsig_self = pcsig_self; - Parsetree.pcsig_fields = pcsig_fields } - -> - this#record "Ast_402.Parsetree.class_signature" - [("pcsig_self", (this#lift_Parsetree_core_type pcsig_self)); - ("pcsig_fields", - (this#list - (List.map this#lift_Parsetree_class_type_field pcsig_fields)))] : - Parsetree.class_signature -> 'res) - method lift_Parsetree_class_type_field : - Parsetree.class_type_field -> 'res= - (fun - { Parsetree.pctf_desc = pctf_desc; Parsetree.pctf_loc = pctf_loc; - Parsetree.pctf_attributes = pctf_attributes } - -> - this#record "Ast_402.Parsetree.class_type_field" - [("pctf_desc", - (this#lift_Parsetree_class_type_field_desc pctf_desc)); - ("pctf_loc", (this#lift_Location_t pctf_loc)); - ("pctf_attributes", - (this#lift_Parsetree_attributes pctf_attributes))] : Parsetree.class_type_field - -> - 'res) - method lift_Parsetree_class_type_field_desc : - Parsetree.class_type_field_desc -> 'res= - (function - | Parsetree.Pctf_inherit x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_inherit", [this#lift_Parsetree_class_type x0]) - | Parsetree.Pctf_val x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_val", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_method x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_method", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_constraint x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pctf_attribute x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pctf_extension x0 -> - this#constr "Ast_402.Parsetree.class_type_field_desc" - ("Pctf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_field_desc -> 'res) - method lift_Parsetree_extension : Parsetree.extension -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.extension -> 'res) - method lift_Parsetree_class_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.class_infos -> 'res= fun (type f0) - -> - (fun f0 -> - fun - { Parsetree.pci_virt = pci_virt; - Parsetree.pci_params = pci_params; - Parsetree.pci_name = pci_name; Parsetree.pci_expr = pci_expr; - Parsetree.pci_loc = pci_loc; - Parsetree.pci_attributes = pci_attributes } - -> - this#record "Ast_402.Parsetree.class_infos" - [("pci_virt", (this#lift_Asttypes_virtual_flag pci_virt)); - ("pci_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) pci_params))); - ("pci_name", (this#lift_Asttypes_loc this#string pci_name)); - ("pci_expr", (f0 pci_expr)); - ("pci_loc", (this#lift_Location_t pci_loc)); - ("pci_attributes", - (this#lift_Parsetree_attributes pci_attributes))] : (f0 -> - 'res) -> - f0 - Parsetree.class_infos - -> - 'res) - method lift_Asttypes_virtual_flag : Asttypes.virtual_flag -> 'res= - (function - | Asttypes.Virtual -> - this#constr "Ast_402.Asttypes.virtual_flag" ("Virtual", []) - | Asttypes.Concrete -> - this#constr "Ast_402.Asttypes.virtual_flag" ("Concrete", []) : Asttypes.virtual_flag - -> - 'res) - method lift_Parsetree_include_description : - Parsetree.include_description -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_type x : - Parsetree.include_description -> 'res) - method lift_Parsetree_include_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.include_infos -> 'res= fun (type - f0) -> - (fun f0 -> - fun - { Parsetree.pincl_mod = pincl_mod; - Parsetree.pincl_loc = pincl_loc; - Parsetree.pincl_attributes = pincl_attributes } - -> - this#record "Ast_402.Parsetree.include_infos" - [("pincl_mod", (f0 pincl_mod)); - ("pincl_loc", (this#lift_Location_t pincl_loc)); - ("pincl_attributes", - (this#lift_Parsetree_attributes pincl_attributes))] : - (f0 -> 'res) -> f0 Parsetree.include_infos -> 'res) - method lift_Parsetree_open_description : - Parsetree.open_description -> 'res= - (fun - { Parsetree.popen_lid = popen_lid; - Parsetree.popen_override = popen_override; - Parsetree.popen_loc = popen_loc; - Parsetree.popen_attributes = popen_attributes } - -> - this#record "Ast_402.Parsetree.open_description" - [("popen_lid", - (this#lift_Asttypes_loc this#lift_Longident_t popen_lid)); - ("popen_override", - (this#lift_Asttypes_override_flag popen_override)); - ("popen_loc", (this#lift_Location_t popen_loc)); - ("popen_attributes", - (this#lift_Parsetree_attributes popen_attributes))] : Parsetree.open_description - -> - 'res) - method lift_Asttypes_override_flag : Asttypes.override_flag -> 'res= - (function - | Asttypes.Override -> - this#constr "Ast_402.Asttypes.override_flag" ("Override", []) - | Asttypes.Fresh -> - this#constr "Ast_402.Asttypes.override_flag" ("Fresh", []) : Asttypes.override_flag - -> - 'res) - method lift_Parsetree_module_type_declaration : - Parsetree.module_type_declaration -> 'res= - (fun - { Parsetree.pmtd_name = pmtd_name; Parsetree.pmtd_type = pmtd_type; - Parsetree.pmtd_attributes = pmtd_attributes; - Parsetree.pmtd_loc = pmtd_loc } - -> - this#record "Ast_402.Parsetree.module_type_declaration" - [("pmtd_name", (this#lift_Asttypes_loc this#string pmtd_name)); - ("pmtd_type", - (this#lift_option this#lift_Parsetree_module_type pmtd_type)); - ("pmtd_attributes", - (this#lift_Parsetree_attributes pmtd_attributes)); - ("pmtd_loc", (this#lift_Location_t pmtd_loc))] : Parsetree.module_type_declaration - -> 'res) - method lift_Parsetree_module_declaration : - Parsetree.module_declaration -> 'res= - (fun - { Parsetree.pmd_name = pmd_name; Parsetree.pmd_type = pmd_type; - Parsetree.pmd_attributes = pmd_attributes; - Parsetree.pmd_loc = pmd_loc } - -> - this#record "Ast_402.Parsetree.module_declaration" - [("pmd_name", (this#lift_Asttypes_loc this#string pmd_name)); - ("pmd_type", (this#lift_Parsetree_module_type pmd_type)); - ("pmd_attributes", - (this#lift_Parsetree_attributes pmd_attributes)); - ("pmd_loc", (this#lift_Location_t pmd_loc))] : Parsetree.module_declaration - -> 'res) - method lift_Parsetree_type_extension : Parsetree.type_extension -> 'res= - (fun - { Parsetree.ptyext_path = ptyext_path; - Parsetree.ptyext_params = ptyext_params; - Parsetree.ptyext_constructors = ptyext_constructors; - Parsetree.ptyext_private = ptyext_private; - Parsetree.ptyext_attributes = ptyext_attributes } - -> - this#record "Ast_402.Parsetree.type_extension" - [("ptyext_path", - (this#lift_Asttypes_loc this#lift_Longident_t ptyext_path)); - ("ptyext_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptyext_params))); - ("ptyext_constructors", - (this#list - (List.map this#lift_Parsetree_extension_constructor - ptyext_constructors))); - ("ptyext_private", - (this#lift_Asttypes_private_flag ptyext_private)); - ("ptyext_attributes", - (this#lift_Parsetree_attributes ptyext_attributes))] : Parsetree.type_extension - -> - 'res) - method lift_Parsetree_extension_constructor : - Parsetree.extension_constructor -> 'res= - (fun - { Parsetree.pext_name = pext_name; Parsetree.pext_kind = pext_kind; - Parsetree.pext_loc = pext_loc; - Parsetree.pext_attributes = pext_attributes } - -> - this#record "Ast_402.Parsetree.extension_constructor" - [("pext_name", (this#lift_Asttypes_loc this#string pext_name)); - ("pext_kind", - (this#lift_Parsetree_extension_constructor_kind pext_kind)); - ("pext_loc", (this#lift_Location_t pext_loc)); - ("pext_attributes", - (this#lift_Parsetree_attributes pext_attributes))] : Parsetree.extension_constructor - -> - 'res) - method lift_Parsetree_extension_constructor_kind : - Parsetree.extension_constructor_kind -> 'res= - (function - | Parsetree.Pext_decl (x0,x1) -> - this#constr "Ast_402.Parsetree.extension_constructor_kind" - ("Pext_decl", - [this#list (List.map this#lift_Parsetree_core_type x0); - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pext_rebind x0 -> - this#constr "Ast_402.Parsetree.extension_constructor_kind" - ("Pext_rebind", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.extension_constructor_kind - -> - 'res) - method lift_Parsetree_type_declaration : - Parsetree.type_declaration -> 'res= - (fun - { Parsetree.ptype_name = ptype_name; - Parsetree.ptype_params = ptype_params; - Parsetree.ptype_cstrs = ptype_cstrs; - Parsetree.ptype_kind = ptype_kind; - Parsetree.ptype_private = ptype_private; - Parsetree.ptype_manifest = ptype_manifest; - Parsetree.ptype_attributes = ptype_attributes; - Parsetree.ptype_loc = ptype_loc } - -> - this#record "Ast_402.Parsetree.type_declaration" - [("ptype_name", (this#lift_Asttypes_loc this#string ptype_name)); - ("ptype_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptype_params))); - ("ptype_cstrs", - (this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1; - this#lift_Location_t x2]) ptype_cstrs))); - ("ptype_kind", (this#lift_Parsetree_type_kind ptype_kind)); - ("ptype_private", (this#lift_Asttypes_private_flag ptype_private)); - ("ptype_manifest", - (this#lift_option this#lift_Parsetree_core_type ptype_manifest)); - ("ptype_attributes", - (this#lift_Parsetree_attributes ptype_attributes)); - ("ptype_loc", (this#lift_Location_t ptype_loc))] : Parsetree.type_declaration - -> 'res) - method lift_Asttypes_private_flag : Asttypes.private_flag -> 'res= - (function - | Asttypes.Private -> - this#constr "Ast_402.Asttypes.private_flag" ("Private", []) - | Asttypes.Public -> - this#constr "Ast_402.Asttypes.private_flag" ("Public", []) : Asttypes.private_flag - -> - 'res) - method lift_Parsetree_type_kind : Parsetree.type_kind -> 'res= - (function - | Parsetree.Ptype_abstract -> - this#constr "Ast_402.Parsetree.type_kind" ("Ptype_abstract", []) - | Parsetree.Ptype_variant x0 -> - this#constr "Ast_402.Parsetree.type_kind" - ("Ptype_variant", - [this#list - (List.map this#lift_Parsetree_constructor_declaration x0)]) - | Parsetree.Ptype_record x0 -> - this#constr "Ast_402.Parsetree.type_kind" - ("Ptype_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) - | Parsetree.Ptype_open -> - this#constr "Ast_402.Parsetree.type_kind" ("Ptype_open", []) : Parsetree.type_kind - -> - 'res) - method lift_Parsetree_label_declaration : - Parsetree.label_declaration -> 'res= - (fun - { Parsetree.pld_name = pld_name; - Parsetree.pld_mutable = pld_mutable; - Parsetree.pld_type = pld_type; Parsetree.pld_loc = pld_loc; - Parsetree.pld_attributes = pld_attributes } - -> - this#record "Ast_402.Parsetree.label_declaration" - [("pld_name", (this#lift_Asttypes_loc this#string pld_name)); - ("pld_mutable", (this#lift_Asttypes_mutable_flag pld_mutable)); - ("pld_type", (this#lift_Parsetree_core_type pld_type)); - ("pld_loc", (this#lift_Location_t pld_loc)); - ("pld_attributes", - (this#lift_Parsetree_attributes pld_attributes))] : Parsetree.label_declaration - -> - 'res) - method lift_Asttypes_mutable_flag : Asttypes.mutable_flag -> 'res= - (function - | Asttypes.Immutable -> - this#constr "Ast_402.Asttypes.mutable_flag" ("Immutable", []) - | Asttypes.Mutable -> - this#constr "Ast_402.Asttypes.mutable_flag" ("Mutable", []) : Asttypes.mutable_flag - -> - 'res) - method lift_Parsetree_constructor_declaration : - Parsetree.constructor_declaration -> 'res= - (fun - { Parsetree.pcd_name = pcd_name; Parsetree.pcd_args = pcd_args; - Parsetree.pcd_res = pcd_res; Parsetree.pcd_loc = pcd_loc; - Parsetree.pcd_attributes = pcd_attributes } - -> - this#record "Ast_402.Parsetree.constructor_declaration" - [("pcd_name", (this#lift_Asttypes_loc this#string pcd_name)); - ("pcd_args", - (this#list (List.map this#lift_Parsetree_core_type pcd_args))); - ("pcd_res", - (this#lift_option this#lift_Parsetree_core_type pcd_res)); - ("pcd_loc", (this#lift_Location_t pcd_loc)); - ("pcd_attributes", - (this#lift_Parsetree_attributes pcd_attributes))] : Parsetree.constructor_declaration - -> - 'res) - method lift_Asttypes_variance : Asttypes.variance -> 'res= - (function - | Asttypes.Covariant -> - this#constr "Ast_402.Asttypes.variance" ("Covariant", []) - | Asttypes.Contravariant -> - this#constr "Ast_402.Asttypes.variance" ("Contravariant", []) - | Asttypes.Invariant -> - this#constr "Ast_402.Asttypes.variance" ("Invariant", []) : Asttypes.variance - -> 'res) - method lift_Parsetree_value_description : - Parsetree.value_description -> 'res= - (fun - { Parsetree.pval_name = pval_name; Parsetree.pval_type = pval_type; - Parsetree.pval_prim = pval_prim; - Parsetree.pval_attributes = pval_attributes; - Parsetree.pval_loc = pval_loc } - -> - this#record "Ast_402.Parsetree.value_description" - [("pval_name", (this#lift_Asttypes_loc this#string pval_name)); - ("pval_type", (this#lift_Parsetree_core_type pval_type)); - ("pval_prim", (this#list (List.map this#string pval_prim))); - ("pval_attributes", - (this#lift_Parsetree_attributes pval_attributes)); - ("pval_loc", (this#lift_Location_t pval_loc))] : Parsetree.value_description - -> 'res) - method lift_Asttypes_closed_flag : Asttypes.closed_flag -> 'res= - (function - | Asttypes.Closed -> - this#constr "Ast_402.Asttypes.closed_flag" ("Closed", []) - | Asttypes.Open -> this#constr "Ast_402.Asttypes.closed_flag" ("Open", []) : - Asttypes.closed_flag -> 'res) - method lift_Asttypes_label : Asttypes.label -> 'res= - (this#string : Asttypes.label -> 'res) - method lift_Asttypes_rec_flag : Asttypes.rec_flag -> 'res= - (function - | Asttypes.Nonrecursive -> - this#constr "Ast_402.Asttypes.rec_flag" ("Nonrecursive", []) - | Asttypes.Recursive -> - this#constr "Ast_402.Asttypes.rec_flag" ("Recursive", []) : Asttypes.rec_flag - -> 'res) - method lift_Asttypes_constant : Asttypes.constant -> 'res= - (function - | Asttypes.Const_int x0 -> - this#constr "Ast_402.Asttypes.constant" ("Const_int", [this#int x0]) - | Asttypes.Const_char x0 -> - this#constr "Ast_402.Asttypes.constant" ("Const_char", [this#char x0]) - | Asttypes.Const_string (x0,x1) -> - this#constr "Ast_402.Asttypes.constant" - ("Const_string", - [this#string x0; this#lift_option this#string x1]) - | Asttypes.Const_float x0 -> - this#constr "Ast_402.Asttypes.constant" ("Const_float", [this#string x0]) - | Asttypes.Const_int32 x0 -> - this#constr "Ast_402.Asttypes.constant" ("Const_int32", [this#int32 x0]) - | Asttypes.Const_int64 x0 -> - this#constr "Ast_402.Asttypes.constant" ("Const_int64", [this#int64 x0]) - | Asttypes.Const_nativeint x0 -> - this#constr "Ast_402.Asttypes.constant" - ("Const_nativeint", [this#nativeint x0]) : Asttypes.constant -> - 'res) - method lift_option : 'f0 . ('f0 -> 'res) -> 'f0 option -> 'res= fun (type - f0) -> - (fun f0 -> - function - | None -> this#constr "option" ("None", []) - | Some x0 -> this#constr "option" ("Some", [f0 x0]) : (f0 -> 'res) - -> - f0 option -> - 'res) - method lift_Longident_t : Longident.t -> 'res= - (function - | Longident.Lident x0 -> - this#constr "Ast_402.Longident.t" ("Lident", [this#string x0]) - | Longident.Ldot (x0,x1) -> - this#constr "Ast_402.Longident.t" - ("Ldot", [this#lift_Longident_t x0; this#string x1]) - | Longident.Lapply (x0,x1) -> - this#constr "Ast_402.Longident.t" - ("Lapply", [this#lift_Longident_t x0; this#lift_Longident_t x1]) : - Longident.t -> 'res) - method lift_Asttypes_loc : - 'f0 . ('f0 -> 'res) -> 'f0 Asttypes.loc -> 'res= fun (type f0) -> - (fun f0 -> - fun { Asttypes.txt = txt; Asttypes.loc = loc } -> - this#record "Ast_402.Asttypes.loc" - [("txt", (f0 txt)); ("loc", (this#lift_Location_t loc))] : - (f0 -> 'res) -> f0 Asttypes.loc -> 'res) - method lift_Location_t : Location.t -> 'res= - (fun - { Location.loc_start = loc_start; Location.loc_end = loc_end; - Location.loc_ghost = loc_ghost } - -> - this#record "Ast_402.Location.t" - [("loc_start", (this#lift_Lexing_position loc_start)); - ("loc_end", (this#lift_Lexing_position loc_end)); - ("loc_ghost", (this#lift_bool loc_ghost))] : Location.t -> 'res) - method lift_bool : bool -> 'res= - (function - | false -> this#constr "bool" ("false", []) - | true -> this#constr "bool" ("true", []) : bool -> 'res) - method lift_Lexing_position : Lexing.position -> 'res= - (fun - { Lexing.pos_fname = pos_fname; Lexing.pos_lnum = pos_lnum; - Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum } - -> - this#record "Ast_402.Lexing.position" - [("pos_fname", (this#string pos_fname)); - ("pos_lnum", (this#int pos_lnum)); - ("pos_bol", (this#int pos_bol)); - ("pos_cnum", (this#int pos_cnum))] : Lexing.position -> 'res) - end diff --git a/vendor/ppx_tools_versioned/ast_lifter_403.ml b/vendor/ppx_tools_versioned/ast_lifter_403.ml deleted file mode 100644 index c5515b718..000000000 --- a/vendor/ppx_tools_versioned/ast_lifter_403.ml +++ /dev/null @@ -1,1378 +0,0 @@ -open Ast_403 - -class virtual ['res] lifter = - object (this) - method lift_Parsetree_expression : Parsetree.expression -> 'res= - (fun - { Parsetree.pexp_desc = pexp_desc; Parsetree.pexp_loc = pexp_loc; - Parsetree.pexp_attributes = pexp_attributes } - -> - this#record "Ast_403.Parsetree.expression" - [("pexp_desc", (this#lift_Parsetree_expression_desc pexp_desc)); - ("pexp_loc", (this#lift_Location_t pexp_loc)); - ("pexp_attributes", - (this#lift_Parsetree_attributes pexp_attributes))] : Parsetree.expression - -> - 'res) - method lift_Parsetree_expression_desc : - Parsetree.expression_desc -> 'res= - (function - | Parsetree.Pexp_ident x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_constant x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Pexp_let (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_function x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_function", - [this#list (List.map this#lift_Parsetree_case x0)]) - | Parsetree.Pexp_fun (x0,x1,x2,x3) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_expression x3]) - | Parsetree.Pexp_apply (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_apply", - [this#lift_Parsetree_expression x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pexp_match (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_match", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_try (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_try", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_tuple x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_tuple", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_construct (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_variant (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_record (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_expression x1]) x0); - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_field (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_field", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pexp_setfield (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_setfield", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_array x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_array", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_ifthenelse (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_ifthenelse", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1; - this#lift_option this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_sequence (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_sequence", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_while (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_while", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_for (x0,x1,x2,x3,x4) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_for", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_expression x1; - this#lift_Parsetree_expression x2; - this#lift_Asttypes_direction_flag x3; - this#lift_Parsetree_expression x4]) - | Parsetree.Pexp_constraint (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_constraint", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_coerce (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_coerce", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Pexp_send (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_send", - [this#lift_Parsetree_expression x0; this#string x1]) - | Parsetree.Pexp_new x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_new", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_setinstvar (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_setinstvar", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_override x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_override", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) x0)]) - | Parsetree.Pexp_letmodule (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_letmodule", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_module_expr x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_assert x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_assert", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_lazy x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_lazy", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_poly (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_poly", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_object x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_object", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pexp_newtype (x0,x1) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_newtype", - [this#string x0; this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_pack x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_pack", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pexp_open (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_open", - [this#lift_Asttypes_override_flag x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_extension x0 -> - this#constr "Ast_403.Parsetree.expression_desc" - ("Pexp_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pexp_unreachable -> - this#constr "Ast_403.Parsetree.expression_desc" ("Pexp_unreachable", []) : - Parsetree.expression_desc -> 'res) - method lift_Asttypes_direction_flag : Asttypes.direction_flag -> 'res= - (function - | Asttypes.Upto -> this#constr "Ast_403.Asttypes.direction_flag" ("Upto", []) - | Asttypes.Downto -> - this#constr "Ast_403.Asttypes.direction_flag" ("Downto", []) : Asttypes.direction_flag - -> - 'res) - method lift_Parsetree_case : Parsetree.case -> 'res= - (fun - { Parsetree.pc_lhs = pc_lhs; Parsetree.pc_guard = pc_guard; - Parsetree.pc_rhs = pc_rhs } - -> - this#record "Ast_403.Parsetree.case" - [("pc_lhs", (this#lift_Parsetree_pattern pc_lhs)); - ("pc_guard", - (this#lift_option this#lift_Parsetree_expression pc_guard)); - ("pc_rhs", (this#lift_Parsetree_expression pc_rhs))] : Parsetree.case - -> - 'res) - method lift_Parsetree_value_binding : Parsetree.value_binding -> 'res= - (fun - { Parsetree.pvb_pat = pvb_pat; Parsetree.pvb_expr = pvb_expr; - Parsetree.pvb_attributes = pvb_attributes; - Parsetree.pvb_loc = pvb_loc } - -> - this#record "Ast_403.Parsetree.value_binding" - [("pvb_pat", (this#lift_Parsetree_pattern pvb_pat)); - ("pvb_expr", (this#lift_Parsetree_expression pvb_expr)); - ("pvb_attributes", - (this#lift_Parsetree_attributes pvb_attributes)); - ("pvb_loc", (this#lift_Location_t pvb_loc))] : Parsetree.value_binding - -> 'res) - method lift_Parsetree_pattern : Parsetree.pattern -> 'res= - (fun - { Parsetree.ppat_desc = ppat_desc; Parsetree.ppat_loc = ppat_loc; - Parsetree.ppat_attributes = ppat_attributes } - -> - this#record "Ast_403.Parsetree.pattern" - [("ppat_desc", (this#lift_Parsetree_pattern_desc ppat_desc)); - ("ppat_loc", (this#lift_Location_t ppat_loc)); - ("ppat_attributes", - (this#lift_Parsetree_attributes ppat_attributes))] : Parsetree.pattern - -> - 'res) - method lift_Parsetree_pattern_desc : Parsetree.pattern_desc -> 'res= - (function - | Parsetree.Ppat_any -> - this#constr "Ast_403.Parsetree.pattern_desc" ("Ppat_any", []) - | Parsetree.Ppat_var x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_var", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_alias (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_alias", - [this#lift_Parsetree_pattern x0; - this#lift_Asttypes_loc this#string x1]) - | Parsetree.Ppat_constant x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Ppat_interval (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_interval", - [this#lift_Parsetree_constant x0; - this#lift_Parsetree_constant x1]) - | Parsetree.Ppat_tuple x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_tuple", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_construct (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_variant (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_record (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ppat_array x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_array", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_or (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_or", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_constraint (x0,x1) -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_constraint", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Ppat_type x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_type", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Ppat_lazy x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_lazy", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_unpack x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_unpack", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_exception x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_exception", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_extension x0 -> - this#constr "Ast_403.Parsetree.pattern_desc" - ("Ppat_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.pattern_desc -> 'res) - method lift_Parsetree_core_type : Parsetree.core_type -> 'res= - (fun - { Parsetree.ptyp_desc = ptyp_desc; Parsetree.ptyp_loc = ptyp_loc; - Parsetree.ptyp_attributes = ptyp_attributes } - -> - this#record "Ast_403.Parsetree.core_type" - [("ptyp_desc", (this#lift_Parsetree_core_type_desc ptyp_desc)); - ("ptyp_loc", (this#lift_Location_t ptyp_loc)); - ("ptyp_attributes", - (this#lift_Parsetree_attributes ptyp_attributes))] : Parsetree.core_type - -> - 'res) - method lift_Parsetree_core_type_desc : Parsetree.core_type_desc -> 'res= - (function - | Parsetree.Ptyp_any -> - this#constr "Ast_403.Parsetree.core_type_desc" ("Ptyp_any", []) - | Parsetree.Ptyp_var x0 -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_var", [this#string x0]) - | Parsetree.Ptyp_arrow (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Ptyp_tuple x0 -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Ptyp_constr (x0,x1) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_object (x0,x1) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_object", - [this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#string x0; - this#lift_Parsetree_attributes x1; - this#lift_Parsetree_core_type x2]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ptyp_class (x0,x1) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_class", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_alias (x0,x1) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_alias", - [this#lift_Parsetree_core_type x0; this#string x1]) - | Parsetree.Ptyp_variant (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_variant", - [this#list (List.map this#lift_Parsetree_row_field x0); - this#lift_Asttypes_closed_flag x1; - this#lift_option - (fun x -> this#list (List.map this#lift_Asttypes_label x)) - x2]) - | Parsetree.Ptyp_poly (x0,x1) -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_poly", - [this#list (List.map this#string x0); - this#lift_Parsetree_core_type x1]) - | Parsetree.Ptyp_package x0 -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_package", [this#lift_Parsetree_package_type x0]) - | Parsetree.Ptyp_extension x0 -> - this#constr "Ast_403.Parsetree.core_type_desc" - ("Ptyp_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.core_type_desc -> 'res) - method lift_Parsetree_package_type : Parsetree.package_type -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_core_type x1]) x1)] : Parsetree.package_type - -> 'res) - method lift_Parsetree_row_field : Parsetree.row_field -> 'res= - (function - | Parsetree.Rtag (x0,x1,x2,x3) -> - this#constr "Ast_403.Parsetree.row_field" - ("Rtag", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_attributes x1; - this#lift_bool x2; - this#list (List.map this#lift_Parsetree_core_type x3)]) - | Parsetree.Rinherit x0 -> - this#constr "Ast_403.Parsetree.row_field" - ("Rinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.row_field - -> - 'res) - method lift_Parsetree_attributes : Parsetree.attributes -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_attribute x) : - Parsetree.attributes -> 'res) - method lift_Parsetree_attribute : Parsetree.attribute -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.attribute -> 'res) - method lift_Parsetree_payload : Parsetree.payload -> 'res= - (function - | Parsetree.PStr x0 -> - this#constr "Ast_403.Parsetree.payload" - ("PStr", [this#lift_Parsetree_structure x0]) - | Parsetree.PSig x0 -> - this#constr "Ast_403.Parsetree.payload" - ("PSig", [this#lift_Parsetree_signature x0]) - | Parsetree.PTyp x0 -> - this#constr "Ast_403.Parsetree.payload" - ("PTyp", [this#lift_Parsetree_core_type x0]) - | Parsetree.PPat (x0,x1) -> - this#constr "Ast_403.Parsetree.payload" - ("PPat", - [this#lift_Parsetree_pattern x0; - this#lift_option this#lift_Parsetree_expression x1]) : - Parsetree.payload -> 'res) - method lift_Parsetree_structure : Parsetree.structure -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_structure_item x) : - Parsetree.structure -> 'res) - method lift_Parsetree_structure_item : Parsetree.structure_item -> 'res= - (fun { Parsetree.pstr_desc = pstr_desc; Parsetree.pstr_loc = pstr_loc } - -> - this#record "Ast_403.Parsetree.structure_item" - [("pstr_desc", - (this#lift_Parsetree_structure_item_desc pstr_desc)); - ("pstr_loc", (this#lift_Location_t pstr_loc))] : Parsetree.structure_item - -> 'res) - method lift_Parsetree_structure_item_desc : - Parsetree.structure_item_desc -> 'res= - (function - | Parsetree.Pstr_eval (x0,x1) -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_eval", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_attributes x1]) - | Parsetree.Pstr_value (x0,x1) -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_value", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1)]) - | Parsetree.Pstr_primitive x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_primitive", [this#lift_Parsetree_value_description x0]) - | Parsetree.Pstr_type (x0,x1) -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Pstr_typext x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Pstr_exception x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Pstr_module x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_module", [this#lift_Parsetree_module_binding x0]) - | Parsetree.Pstr_recmodule x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_recmodule", - [this#list (List.map this#lift_Parsetree_module_binding x0)]) - | Parsetree.Pstr_modtype x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Pstr_open x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Pstr_class x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_class", - [this#list (List.map this#lift_Parsetree_class_declaration x0)]) - | Parsetree.Pstr_class_type x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Pstr_include x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_include", [this#lift_Parsetree_include_declaration x0]) - | Parsetree.Pstr_attribute x0 -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pstr_extension (x0,x1) -> - this#constr "Ast_403.Parsetree.structure_item_desc" - ("Pstr_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.structure_item_desc - -> 'res) - method lift_Parsetree_include_declaration : - Parsetree.include_declaration -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_expr x : - Parsetree.include_declaration -> 'res) - method lift_Parsetree_class_declaration : - Parsetree.class_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_expr x : - Parsetree.class_declaration -> 'res) - method lift_Parsetree_class_expr : Parsetree.class_expr -> 'res= - (fun - { Parsetree.pcl_desc = pcl_desc; Parsetree.pcl_loc = pcl_loc; - Parsetree.pcl_attributes = pcl_attributes } - -> - this#record "Ast_403.Parsetree.class_expr" - [("pcl_desc", (this#lift_Parsetree_class_expr_desc pcl_desc)); - ("pcl_loc", (this#lift_Location_t pcl_loc)); - ("pcl_attributes", - (this#lift_Parsetree_attributes pcl_attributes))] : Parsetree.class_expr - -> - 'res) - method lift_Parsetree_class_expr_desc : - Parsetree.class_expr_desc -> 'res= - (function - | Parsetree.Pcl_constr (x0,x1) -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcl_structure x0 -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_structure", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pcl_fun (x0,x1,x2,x3) -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_class_expr x3]) - | Parsetree.Pcl_apply (x0,x1) -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_apply", - [this#lift_Parsetree_class_expr x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pcl_let (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_class_expr x2]) - | Parsetree.Pcl_constraint (x0,x1) -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_constraint", - [this#lift_Parsetree_class_expr x0; - this#lift_Parsetree_class_type x1]) - | Parsetree.Pcl_extension x0 -> - this#constr "Ast_403.Parsetree.class_expr_desc" - ("Pcl_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_expr_desc -> 'res) - method lift_Parsetree_class_structure : - Parsetree.class_structure -> 'res= - (fun - { Parsetree.pcstr_self = pcstr_self; - Parsetree.pcstr_fields = pcstr_fields } - -> - this#record "Ast_403.Parsetree.class_structure" - [("pcstr_self", (this#lift_Parsetree_pattern pcstr_self)); - ("pcstr_fields", - (this#list - (List.map this#lift_Parsetree_class_field pcstr_fields)))] : - Parsetree.class_structure -> 'res) - method lift_Parsetree_class_field : Parsetree.class_field -> 'res= - (fun - { Parsetree.pcf_desc = pcf_desc; Parsetree.pcf_loc = pcf_loc; - Parsetree.pcf_attributes = pcf_attributes } - -> - this#record "Ast_403.Parsetree.class_field" - [("pcf_desc", (this#lift_Parsetree_class_field_desc pcf_desc)); - ("pcf_loc", (this#lift_Location_t pcf_loc)); - ("pcf_attributes", - (this#lift_Parsetree_attributes pcf_attributes))] : Parsetree.class_field - -> - 'res) - method lift_Parsetree_class_field_desc : - Parsetree.class_field_desc -> 'res= - (function - | Parsetree.Pcf_inherit (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_inherit", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_class_expr x1; - this#lift_option this#string x2]) - | Parsetree.Pcf_val x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_val", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_method x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_method", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_constraint x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pcf_initializer x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_initializer", [this#lift_Parsetree_expression x0]) - | Parsetree.Pcf_attribute x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pcf_extension x0 -> - this#constr "Ast_403.Parsetree.class_field_desc" - ("Pcf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_field_desc -> 'res) - method lift_Parsetree_class_field_kind : - Parsetree.class_field_kind -> 'res= - (function - | Parsetree.Cfk_virtual x0 -> - this#constr "Ast_403.Parsetree.class_field_kind" - ("Cfk_virtual", [this#lift_Parsetree_core_type x0]) - | Parsetree.Cfk_concrete (x0,x1) -> - this#constr "Ast_403.Parsetree.class_field_kind" - ("Cfk_concrete", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_expression x1]) : Parsetree.class_field_kind - -> 'res) - method lift_Parsetree_module_binding : Parsetree.module_binding -> 'res= - (fun - { Parsetree.pmb_name = pmb_name; Parsetree.pmb_expr = pmb_expr; - Parsetree.pmb_attributes = pmb_attributes; - Parsetree.pmb_loc = pmb_loc } - -> - this#record "Ast_403.Parsetree.module_binding" - [("pmb_name", (this#lift_Asttypes_loc this#string pmb_name)); - ("pmb_expr", (this#lift_Parsetree_module_expr pmb_expr)); - ("pmb_attributes", - (this#lift_Parsetree_attributes pmb_attributes)); - ("pmb_loc", (this#lift_Location_t pmb_loc))] : Parsetree.module_binding - -> 'res) - method lift_Parsetree_module_expr : Parsetree.module_expr -> 'res= - (fun - { Parsetree.pmod_desc = pmod_desc; Parsetree.pmod_loc = pmod_loc; - Parsetree.pmod_attributes = pmod_attributes } - -> - this#record "Ast_403.Parsetree.module_expr" - [("pmod_desc", (this#lift_Parsetree_module_expr_desc pmod_desc)); - ("pmod_loc", (this#lift_Location_t pmod_loc)); - ("pmod_attributes", - (this#lift_Parsetree_attributes pmod_attributes))] : Parsetree.module_expr - -> - 'res) - method lift_Parsetree_module_expr_desc : - Parsetree.module_expr_desc -> 'res= - (function - | Parsetree.Pmod_ident x0 -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmod_structure x0 -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_structure", [this#lift_Parsetree_structure x0]) - | Parsetree.Pmod_functor (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_expr x2]) - | Parsetree.Pmod_apply (x0,x1) -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_apply", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_expr x1]) - | Parsetree.Pmod_constraint (x0,x1) -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_constraint", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_type x1]) - | Parsetree.Pmod_unpack x0 -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_unpack", [this#lift_Parsetree_expression x0]) - | Parsetree.Pmod_extension x0 -> - this#constr "Ast_403.Parsetree.module_expr_desc" - ("Pmod_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.module_expr_desc -> 'res) - method lift_Parsetree_module_type : Parsetree.module_type -> 'res= - (fun - { Parsetree.pmty_desc = pmty_desc; Parsetree.pmty_loc = pmty_loc; - Parsetree.pmty_attributes = pmty_attributes } - -> - this#record "Ast_403.Parsetree.module_type" - [("pmty_desc", (this#lift_Parsetree_module_type_desc pmty_desc)); - ("pmty_loc", (this#lift_Location_t pmty_loc)); - ("pmty_attributes", - (this#lift_Parsetree_attributes pmty_attributes))] : Parsetree.module_type - -> - 'res) - method lift_Parsetree_module_type_desc : - Parsetree.module_type_desc -> 'res= - (function - | Parsetree.Pmty_ident x0 -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmty_signature x0 -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_signature", [this#lift_Parsetree_signature x0]) - | Parsetree.Pmty_functor (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_type x2]) - | Parsetree.Pmty_with (x0,x1) -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_with", - [this#lift_Parsetree_module_type x0; - this#list (List.map this#lift_Parsetree_with_constraint x1)]) - | Parsetree.Pmty_typeof x0 -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_typeof", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pmty_extension x0 -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pmty_alias x0 -> - this#constr "Ast_403.Parsetree.module_type_desc" - ("Pmty_alias", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.module_type_desc - -> - 'res) - method lift_Parsetree_with_constraint : - Parsetree.with_constraint -> 'res= - (function - | Parsetree.Pwith_type (x0,x1) -> - this#constr "Ast_403.Parsetree.with_constraint" - ("Pwith_type", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_type_declaration x1]) - | Parsetree.Pwith_module (x0,x1) -> - this#constr "Ast_403.Parsetree.with_constraint" - ("Pwith_module", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pwith_typesubst x0 -> - this#constr "Ast_403.Parsetree.with_constraint" - ("Pwith_typesubst", [this#lift_Parsetree_type_declaration x0]) - | Parsetree.Pwith_modsubst (x0,x1) -> - this#constr "Ast_403.Parsetree.with_constraint" - ("Pwith_modsubst", - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) : Parsetree.with_constraint - -> - 'res) - method lift_Parsetree_signature : Parsetree.signature -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_signature_item x) : - Parsetree.signature -> 'res) - method lift_Parsetree_signature_item : Parsetree.signature_item -> 'res= - (fun { Parsetree.psig_desc = psig_desc; Parsetree.psig_loc = psig_loc } - -> - this#record "Ast_403.Parsetree.signature_item" - [("psig_desc", - (this#lift_Parsetree_signature_item_desc psig_desc)); - ("psig_loc", (this#lift_Location_t psig_loc))] : Parsetree.signature_item - -> 'res) - method lift_Parsetree_signature_item_desc : - Parsetree.signature_item_desc -> 'res= - (function - | Parsetree.Psig_value x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_value", [this#lift_Parsetree_value_description x0]) - | Parsetree.Psig_type (x0,x1) -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Psig_typext x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Psig_exception x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Psig_module x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_module", [this#lift_Parsetree_module_declaration x0]) - | Parsetree.Psig_recmodule x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_recmodule", - [this#list - (List.map this#lift_Parsetree_module_declaration x0)]) - | Parsetree.Psig_modtype x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Psig_open x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Psig_include x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_include", [this#lift_Parsetree_include_description x0]) - | Parsetree.Psig_class x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_class", - [this#list (List.map this#lift_Parsetree_class_description x0)]) - | Parsetree.Psig_class_type x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Psig_attribute x0 -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Psig_extension (x0,x1) -> - this#constr "Ast_403.Parsetree.signature_item_desc" - ("Psig_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.signature_item_desc - -> 'res) - method lift_Parsetree_class_type_declaration : - Parsetree.class_type_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_type_declaration -> 'res) - method lift_Parsetree_class_description : - Parsetree.class_description -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_description -> 'res) - method lift_Parsetree_class_type : Parsetree.class_type -> 'res= - (fun - { Parsetree.pcty_desc = pcty_desc; Parsetree.pcty_loc = pcty_loc; - Parsetree.pcty_attributes = pcty_attributes } - -> - this#record "Ast_403.Parsetree.class_type" - [("pcty_desc", (this#lift_Parsetree_class_type_desc pcty_desc)); - ("pcty_loc", (this#lift_Location_t pcty_loc)); - ("pcty_attributes", - (this#lift_Parsetree_attributes pcty_attributes))] : Parsetree.class_type - -> - 'res) - method lift_Parsetree_class_type_desc : - Parsetree.class_type_desc -> 'res= - (function - | Parsetree.Pcty_constr (x0,x1) -> - this#constr "Ast_403.Parsetree.class_type_desc" - ("Pcty_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcty_signature x0 -> - this#constr "Ast_403.Parsetree.class_type_desc" - ("Pcty_signature", [this#lift_Parsetree_class_signature x0]) - | Parsetree.Pcty_arrow (x0,x1,x2) -> - this#constr "Ast_403.Parsetree.class_type_desc" - ("Pcty_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_class_type x2]) - | Parsetree.Pcty_extension x0 -> - this#constr "Ast_403.Parsetree.class_type_desc" - ("Pcty_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_desc -> 'res) - method lift_Parsetree_class_signature : - Parsetree.class_signature -> 'res= - (fun - { Parsetree.pcsig_self = pcsig_self; - Parsetree.pcsig_fields = pcsig_fields } - -> - this#record "Ast_403.Parsetree.class_signature" - [("pcsig_self", (this#lift_Parsetree_core_type pcsig_self)); - ("pcsig_fields", - (this#list - (List.map this#lift_Parsetree_class_type_field pcsig_fields)))] : - Parsetree.class_signature -> 'res) - method lift_Parsetree_class_type_field : - Parsetree.class_type_field -> 'res= - (fun - { Parsetree.pctf_desc = pctf_desc; Parsetree.pctf_loc = pctf_loc; - Parsetree.pctf_attributes = pctf_attributes } - -> - this#record "Ast_403.Parsetree.class_type_field" - [("pctf_desc", - (this#lift_Parsetree_class_type_field_desc pctf_desc)); - ("pctf_loc", (this#lift_Location_t pctf_loc)); - ("pctf_attributes", - (this#lift_Parsetree_attributes pctf_attributes))] : Parsetree.class_type_field - -> - 'res) - method lift_Parsetree_class_type_field_desc : - Parsetree.class_type_field_desc -> 'res= - (function - | Parsetree.Pctf_inherit x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_inherit", [this#lift_Parsetree_class_type x0]) - | Parsetree.Pctf_val x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_val", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_method x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_method", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_constraint x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pctf_attribute x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pctf_extension x0 -> - this#constr "Ast_403.Parsetree.class_type_field_desc" - ("Pctf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_field_desc -> 'res) - method lift_Parsetree_extension : Parsetree.extension -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.extension -> 'res) - method lift_Parsetree_class_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.class_infos -> 'res= fun (type f0) - -> - (fun f0 -> - fun - { Parsetree.pci_virt = pci_virt; - Parsetree.pci_params = pci_params; - Parsetree.pci_name = pci_name; Parsetree.pci_expr = pci_expr; - Parsetree.pci_loc = pci_loc; - Parsetree.pci_attributes = pci_attributes } - -> - this#record "Ast_403.Parsetree.class_infos" - [("pci_virt", (this#lift_Asttypes_virtual_flag pci_virt)); - ("pci_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) pci_params))); - ("pci_name", (this#lift_Asttypes_loc this#string pci_name)); - ("pci_expr", (f0 pci_expr)); - ("pci_loc", (this#lift_Location_t pci_loc)); - ("pci_attributes", - (this#lift_Parsetree_attributes pci_attributes))] : (f0 -> - 'res) -> - f0 - Parsetree.class_infos - -> - 'res) - method lift_Asttypes_virtual_flag : Asttypes.virtual_flag -> 'res= - (function - | Asttypes.Virtual -> - this#constr "Ast_403.Asttypes.virtual_flag" ("Virtual", []) - | Asttypes.Concrete -> - this#constr "Ast_403.Asttypes.virtual_flag" ("Concrete", []) : Asttypes.virtual_flag - -> - 'res) - method lift_Parsetree_include_description : - Parsetree.include_description -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_type x : - Parsetree.include_description -> 'res) - method lift_Parsetree_include_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.include_infos -> 'res= fun (type - f0) -> - (fun f0 -> - fun - { Parsetree.pincl_mod = pincl_mod; - Parsetree.pincl_loc = pincl_loc; - Parsetree.pincl_attributes = pincl_attributes } - -> - this#record "Ast_403.Parsetree.include_infos" - [("pincl_mod", (f0 pincl_mod)); - ("pincl_loc", (this#lift_Location_t pincl_loc)); - ("pincl_attributes", - (this#lift_Parsetree_attributes pincl_attributes))] : - (f0 -> 'res) -> f0 Parsetree.include_infos -> 'res) - method lift_Parsetree_open_description : - Parsetree.open_description -> 'res= - (fun - { Parsetree.popen_lid = popen_lid; - Parsetree.popen_override = popen_override; - Parsetree.popen_loc = popen_loc; - Parsetree.popen_attributes = popen_attributes } - -> - this#record "Ast_403.Parsetree.open_description" - [("popen_lid", - (this#lift_Asttypes_loc this#lift_Longident_t popen_lid)); - ("popen_override", - (this#lift_Asttypes_override_flag popen_override)); - ("popen_loc", (this#lift_Location_t popen_loc)); - ("popen_attributes", - (this#lift_Parsetree_attributes popen_attributes))] : Parsetree.open_description - -> - 'res) - method lift_Asttypes_override_flag : Asttypes.override_flag -> 'res= - (function - | Asttypes.Override -> - this#constr "Ast_403.Asttypes.override_flag" ("Override", []) - | Asttypes.Fresh -> - this#constr "Ast_403.Asttypes.override_flag" ("Fresh", []) : Asttypes.override_flag - -> - 'res) - method lift_Parsetree_module_type_declaration : - Parsetree.module_type_declaration -> 'res= - (fun - { Parsetree.pmtd_name = pmtd_name; Parsetree.pmtd_type = pmtd_type; - Parsetree.pmtd_attributes = pmtd_attributes; - Parsetree.pmtd_loc = pmtd_loc } - -> - this#record "Ast_403.Parsetree.module_type_declaration" - [("pmtd_name", (this#lift_Asttypes_loc this#string pmtd_name)); - ("pmtd_type", - (this#lift_option this#lift_Parsetree_module_type pmtd_type)); - ("pmtd_attributes", - (this#lift_Parsetree_attributes pmtd_attributes)); - ("pmtd_loc", (this#lift_Location_t pmtd_loc))] : Parsetree.module_type_declaration - -> 'res) - method lift_Parsetree_module_declaration : - Parsetree.module_declaration -> 'res= - (fun - { Parsetree.pmd_name = pmd_name; Parsetree.pmd_type = pmd_type; - Parsetree.pmd_attributes = pmd_attributes; - Parsetree.pmd_loc = pmd_loc } - -> - this#record "Ast_403.Parsetree.module_declaration" - [("pmd_name", (this#lift_Asttypes_loc this#string pmd_name)); - ("pmd_type", (this#lift_Parsetree_module_type pmd_type)); - ("pmd_attributes", - (this#lift_Parsetree_attributes pmd_attributes)); - ("pmd_loc", (this#lift_Location_t pmd_loc))] : Parsetree.module_declaration - -> 'res) - method lift_Parsetree_type_extension : Parsetree.type_extension -> 'res= - (fun - { Parsetree.ptyext_path = ptyext_path; - Parsetree.ptyext_params = ptyext_params; - Parsetree.ptyext_constructors = ptyext_constructors; - Parsetree.ptyext_private = ptyext_private; - Parsetree.ptyext_attributes = ptyext_attributes } - -> - this#record "Ast_403.Parsetree.type_extension" - [("ptyext_path", - (this#lift_Asttypes_loc this#lift_Longident_t ptyext_path)); - ("ptyext_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptyext_params))); - ("ptyext_constructors", - (this#list - (List.map this#lift_Parsetree_extension_constructor - ptyext_constructors))); - ("ptyext_private", - (this#lift_Asttypes_private_flag ptyext_private)); - ("ptyext_attributes", - (this#lift_Parsetree_attributes ptyext_attributes))] : Parsetree.type_extension - -> - 'res) - method lift_Parsetree_extension_constructor : - Parsetree.extension_constructor -> 'res= - (fun - { Parsetree.pext_name = pext_name; Parsetree.pext_kind = pext_kind; - Parsetree.pext_loc = pext_loc; - Parsetree.pext_attributes = pext_attributes } - -> - this#record "Ast_403.Parsetree.extension_constructor" - [("pext_name", (this#lift_Asttypes_loc this#string pext_name)); - ("pext_kind", - (this#lift_Parsetree_extension_constructor_kind pext_kind)); - ("pext_loc", (this#lift_Location_t pext_loc)); - ("pext_attributes", - (this#lift_Parsetree_attributes pext_attributes))] : Parsetree.extension_constructor - -> - 'res) - method lift_Parsetree_extension_constructor_kind : - Parsetree.extension_constructor_kind -> 'res= - (function - | Parsetree.Pext_decl (x0,x1) -> - this#constr "Ast_403.Parsetree.extension_constructor_kind" - ("Pext_decl", - [this#lift_Parsetree_constructor_arguments x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pext_rebind x0 -> - this#constr "Ast_403.Parsetree.extension_constructor_kind" - ("Pext_rebind", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.extension_constructor_kind - -> - 'res) - method lift_Parsetree_type_declaration : - Parsetree.type_declaration -> 'res= - (fun - { Parsetree.ptype_name = ptype_name; - Parsetree.ptype_params = ptype_params; - Parsetree.ptype_cstrs = ptype_cstrs; - Parsetree.ptype_kind = ptype_kind; - Parsetree.ptype_private = ptype_private; - Parsetree.ptype_manifest = ptype_manifest; - Parsetree.ptype_attributes = ptype_attributes; - Parsetree.ptype_loc = ptype_loc } - -> - this#record "Ast_403.Parsetree.type_declaration" - [("ptype_name", (this#lift_Asttypes_loc this#string ptype_name)); - ("ptype_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptype_params))); - ("ptype_cstrs", - (this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1; - this#lift_Location_t x2]) ptype_cstrs))); - ("ptype_kind", (this#lift_Parsetree_type_kind ptype_kind)); - ("ptype_private", (this#lift_Asttypes_private_flag ptype_private)); - ("ptype_manifest", - (this#lift_option this#lift_Parsetree_core_type ptype_manifest)); - ("ptype_attributes", - (this#lift_Parsetree_attributes ptype_attributes)); - ("ptype_loc", (this#lift_Location_t ptype_loc))] : Parsetree.type_declaration - -> 'res) - method lift_Asttypes_private_flag : Asttypes.private_flag -> 'res= - (function - | Asttypes.Private -> - this#constr "Ast_403.Asttypes.private_flag" ("Private", []) - | Asttypes.Public -> - this#constr "Ast_403.Asttypes.private_flag" ("Public", []) : Asttypes.private_flag - -> - 'res) - method lift_Parsetree_type_kind : Parsetree.type_kind -> 'res= - (function - | Parsetree.Ptype_abstract -> - this#constr "Ast_403.Parsetree.type_kind" ("Ptype_abstract", []) - | Parsetree.Ptype_variant x0 -> - this#constr "Ast_403.Parsetree.type_kind" - ("Ptype_variant", - [this#list - (List.map this#lift_Parsetree_constructor_declaration x0)]) - | Parsetree.Ptype_record x0 -> - this#constr "Ast_403.Parsetree.type_kind" - ("Ptype_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) - | Parsetree.Ptype_open -> - this#constr "Ast_403.Parsetree.type_kind" ("Ptype_open", []) : Parsetree.type_kind - -> - 'res) - method lift_Parsetree_constructor_declaration : - Parsetree.constructor_declaration -> 'res= - (fun - { Parsetree.pcd_name = pcd_name; Parsetree.pcd_args = pcd_args; - Parsetree.pcd_res = pcd_res; Parsetree.pcd_loc = pcd_loc; - Parsetree.pcd_attributes = pcd_attributes } - -> - this#record "Ast_403.Parsetree.constructor_declaration" - [("pcd_name", (this#lift_Asttypes_loc this#string pcd_name)); - ("pcd_args", (this#lift_Parsetree_constructor_arguments pcd_args)); - ("pcd_res", - (this#lift_option this#lift_Parsetree_core_type pcd_res)); - ("pcd_loc", (this#lift_Location_t pcd_loc)); - ("pcd_attributes", - (this#lift_Parsetree_attributes pcd_attributes))] : Parsetree.constructor_declaration - -> - 'res) - method lift_Parsetree_constructor_arguments : - Parsetree.constructor_arguments -> 'res= - (function - | Parsetree.Pcstr_tuple x0 -> - this#constr "Ast_403.Parsetree.constructor_arguments" - ("Pcstr_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Pcstr_record x0 -> - this#constr "Ast_403.Parsetree.constructor_arguments" - ("Pcstr_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) : - Parsetree.constructor_arguments -> 'res) - method lift_Parsetree_label_declaration : - Parsetree.label_declaration -> 'res= - (fun - { Parsetree.pld_name = pld_name; - Parsetree.pld_mutable = pld_mutable; - Parsetree.pld_type = pld_type; Parsetree.pld_loc = pld_loc; - Parsetree.pld_attributes = pld_attributes } - -> - this#record "Ast_403.Parsetree.label_declaration" - [("pld_name", (this#lift_Asttypes_loc this#string pld_name)); - ("pld_mutable", (this#lift_Asttypes_mutable_flag pld_mutable)); - ("pld_type", (this#lift_Parsetree_core_type pld_type)); - ("pld_loc", (this#lift_Location_t pld_loc)); - ("pld_attributes", - (this#lift_Parsetree_attributes pld_attributes))] : Parsetree.label_declaration - -> - 'res) - method lift_Asttypes_mutable_flag : Asttypes.mutable_flag -> 'res= - (function - | Asttypes.Immutable -> - this#constr "Ast_403.Asttypes.mutable_flag" ("Immutable", []) - | Asttypes.Mutable -> - this#constr "Ast_403.Asttypes.mutable_flag" ("Mutable", []) : Asttypes.mutable_flag - -> - 'res) - method lift_Asttypes_variance : Asttypes.variance -> 'res= - (function - | Asttypes.Covariant -> - this#constr "Ast_403.Asttypes.variance" ("Covariant", []) - | Asttypes.Contravariant -> - this#constr "Ast_403.Asttypes.variance" ("Contravariant", []) - | Asttypes.Invariant -> - this#constr "Ast_403.Asttypes.variance" ("Invariant", []) : Asttypes.variance - -> 'res) - method lift_Parsetree_value_description : - Parsetree.value_description -> 'res= - (fun - { Parsetree.pval_name = pval_name; Parsetree.pval_type = pval_type; - Parsetree.pval_prim = pval_prim; - Parsetree.pval_attributes = pval_attributes; - Parsetree.pval_loc = pval_loc } - -> - this#record "Ast_403.Parsetree.value_description" - [("pval_name", (this#lift_Asttypes_loc this#string pval_name)); - ("pval_type", (this#lift_Parsetree_core_type pval_type)); - ("pval_prim", (this#list (List.map this#string pval_prim))); - ("pval_attributes", - (this#lift_Parsetree_attributes pval_attributes)); - ("pval_loc", (this#lift_Location_t pval_loc))] : Parsetree.value_description - -> 'res) - method lift_Asttypes_arg_label : Asttypes.arg_label -> 'res= - (function - | Asttypes.Nolabel -> - this#constr "Ast_403.Asttypes.arg_label" ("Nolabel", []) - | Asttypes.Labelled x0 -> - this#constr "Ast_403.Asttypes.arg_label" ("Labelled", [this#string x0]) - | Asttypes.Optional x0 -> - this#constr "Ast_403.Asttypes.arg_label" ("Optional", [this#string x0]) : - Asttypes.arg_label -> 'res) - method lift_Asttypes_closed_flag : Asttypes.closed_flag -> 'res= - (function - | Asttypes.Closed -> - this#constr "Ast_403.Asttypes.closed_flag" ("Closed", []) - | Asttypes.Open -> this#constr "Ast_403.Asttypes.closed_flag" ("Open", []) : - Asttypes.closed_flag -> 'res) - method lift_Asttypes_label : Asttypes.label -> 'res= - (this#string : Asttypes.label -> 'res) - method lift_Asttypes_rec_flag : Asttypes.rec_flag -> 'res= - (function - | Asttypes.Nonrecursive -> - this#constr "Ast_403.Asttypes.rec_flag" ("Nonrecursive", []) - | Asttypes.Recursive -> - this#constr "Ast_403.Asttypes.rec_flag" ("Recursive", []) : Asttypes.rec_flag - -> 'res) - method lift_Parsetree_constant : Parsetree.constant -> 'res= - (function - | Parsetree.Pconst_integer (x0,x1) -> - this#constr "Ast_403.Parsetree.constant" - ("Pconst_integer", - [this#string x0; this#lift_option this#char x1]) - | Parsetree.Pconst_char x0 -> - this#constr "Ast_403.Parsetree.constant" ("Pconst_char", [this#char x0]) - | Parsetree.Pconst_string (x0,x1) -> - this#constr "Ast_403.Parsetree.constant" - ("Pconst_string", - [this#string x0; this#lift_option this#string x1]) - | Parsetree.Pconst_float (x0,x1) -> - this#constr "Ast_403.Parsetree.constant" - ("Pconst_float", - [this#string x0; this#lift_option this#char x1]) : Parsetree.constant - -> - 'res) - method lift_option : 'f0 . ('f0 -> 'res) -> 'f0 option -> 'res= fun (type - f0) -> - (fun f0 -> - function - | None -> this#constr "option" ("None", []) - | Some x0 -> this#constr "option" ("Some", [f0 x0]) : (f0 -> 'res) - -> - f0 option -> - 'res) - method lift_Longident_t : Longident.t -> 'res= - (function - | Longident.Lident x0 -> - this#constr "Ast_403.Longident.t" ("Lident", [this#string x0]) - | Longident.Ldot (x0,x1) -> - this#constr "Ast_403.Longident.t" - ("Ldot", [this#lift_Longident_t x0; this#string x1]) - | Longident.Lapply (x0,x1) -> - this#constr "Ast_403.Longident.t" - ("Lapply", [this#lift_Longident_t x0; this#lift_Longident_t x1]) : - Longident.t -> 'res) - method lift_Asttypes_loc : - 'f0 . ('f0 -> 'res) -> 'f0 Asttypes.loc -> 'res= fun (type f0) -> - (fun f0 -> - fun { Asttypes.txt = txt; Asttypes.loc = loc } -> - this#record "Ast_403.Asttypes.loc" - [("txt", (f0 txt)); ("loc", (this#lift_Location_t loc))] : - (f0 -> 'res) -> f0 Asttypes.loc -> 'res) - method lift_Location_t : Location.t -> 'res= - (fun - { Location.loc_start = loc_start; Location.loc_end = loc_end; - Location.loc_ghost = loc_ghost } - -> - this#record "Ast_403.Location.t" - [("loc_start", (this#lift_Lexing_position loc_start)); - ("loc_end", (this#lift_Lexing_position loc_end)); - ("loc_ghost", (this#lift_bool loc_ghost))] : Location.t -> 'res) - method lift_bool : bool -> 'res= - (function - | false -> this#constr "bool" ("false", []) - | true -> this#constr "bool" ("true", []) : bool -> 'res) - method lift_Lexing_position : Lexing.position -> 'res= - (fun - { Lexing.pos_fname = pos_fname; Lexing.pos_lnum = pos_lnum; - Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum } - -> - this#record "Ast_403.Lexing.position" - [("pos_fname", (this#string pos_fname)); - ("pos_lnum", (this#int pos_lnum)); - ("pos_bol", (this#int pos_bol)); - ("pos_cnum", (this#int pos_cnum))] : Lexing.position -> 'res) - end diff --git a/vendor/ppx_tools_versioned/ast_lifter_404.ml b/vendor/ppx_tools_versioned/ast_lifter_404.ml deleted file mode 100644 index ef1d51d19..000000000 --- a/vendor/ppx_tools_versioned/ast_lifter_404.ml +++ /dev/null @@ -1,1388 +0,0 @@ -open Ast_404 - -class virtual ['res] lifter = - object (this) - method lift_Parsetree_expression : Parsetree.expression -> 'res= - (fun - { Parsetree.pexp_desc = pexp_desc; Parsetree.pexp_loc = pexp_loc; - Parsetree.pexp_attributes = pexp_attributes } - -> - this#record "Ast_404.Parsetree.expression" - [("pexp_desc", (this#lift_Parsetree_expression_desc pexp_desc)); - ("pexp_loc", (this#lift_Location_t pexp_loc)); - ("pexp_attributes", - (this#lift_Parsetree_attributes pexp_attributes))] : Parsetree.expression - -> - 'res) - method lift_Parsetree_expression_desc : - Parsetree.expression_desc -> 'res= - (function - | Parsetree.Pexp_ident x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_constant x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Pexp_let (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_function x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_function", - [this#list (List.map this#lift_Parsetree_case x0)]) - | Parsetree.Pexp_fun (x0,x1,x2,x3) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_expression x3]) - | Parsetree.Pexp_apply (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_apply", - [this#lift_Parsetree_expression x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pexp_match (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_match", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_try (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_try", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_tuple x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_tuple", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_construct (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_variant (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_record (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_expression x1]) x0); - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_field (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_field", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pexp_setfield (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_setfield", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_array x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_array", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_ifthenelse (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_ifthenelse", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1; - this#lift_option this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_sequence (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_sequence", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_while (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_while", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_for (x0,x1,x2,x3,x4) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_for", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_expression x1; - this#lift_Parsetree_expression x2; - this#lift_Asttypes_direction_flag x3; - this#lift_Parsetree_expression x4]) - | Parsetree.Pexp_constraint (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_constraint", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_coerce (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_coerce", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Pexp_send (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_send", - [this#lift_Parsetree_expression x0; this#string x1]) - | Parsetree.Pexp_new x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_new", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_setinstvar (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_setinstvar", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_override x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_override", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) x0)]) - | Parsetree.Pexp_letmodule (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_letmodule", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_module_expr x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_letexception (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_letexception", - [this#lift_Parsetree_extension_constructor x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_assert x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_assert", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_lazy x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_lazy", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_poly (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_poly", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_object x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_object", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pexp_newtype (x0,x1) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_newtype", - [this#string x0; this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_pack x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_pack", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pexp_open (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_open", - [this#lift_Asttypes_override_flag x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_extension x0 -> - this#constr "Ast_404.Parsetree.expression_desc" - ("Pexp_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pexp_unreachable -> - this#constr "Ast_404.Parsetree.expression_desc" ("Pexp_unreachable", []) : - Parsetree.expression_desc -> 'res) - method lift_Asttypes_direction_flag : Asttypes.direction_flag -> 'res= - (function - | Asttypes.Upto -> this#constr "Ast_404.Asttypes.direction_flag" ("Upto", []) - | Asttypes.Downto -> - this#constr "Ast_404.Asttypes.direction_flag" ("Downto", []) : Asttypes.direction_flag - -> - 'res) - method lift_Parsetree_case : Parsetree.case -> 'res= - (fun - { Parsetree.pc_lhs = pc_lhs; Parsetree.pc_guard = pc_guard; - Parsetree.pc_rhs = pc_rhs } - -> - this#record "Ast_404.Parsetree.case" - [("pc_lhs", (this#lift_Parsetree_pattern pc_lhs)); - ("pc_guard", - (this#lift_option this#lift_Parsetree_expression pc_guard)); - ("pc_rhs", (this#lift_Parsetree_expression pc_rhs))] : Parsetree.case - -> - 'res) - method lift_Parsetree_value_binding : Parsetree.value_binding -> 'res= - (fun - { Parsetree.pvb_pat = pvb_pat; Parsetree.pvb_expr = pvb_expr; - Parsetree.pvb_attributes = pvb_attributes; - Parsetree.pvb_loc = pvb_loc } - -> - this#record "Ast_404.Parsetree.value_binding" - [("pvb_pat", (this#lift_Parsetree_pattern pvb_pat)); - ("pvb_expr", (this#lift_Parsetree_expression pvb_expr)); - ("pvb_attributes", - (this#lift_Parsetree_attributes pvb_attributes)); - ("pvb_loc", (this#lift_Location_t pvb_loc))] : Parsetree.value_binding - -> 'res) - method lift_Parsetree_pattern : Parsetree.pattern -> 'res= - (fun - { Parsetree.ppat_desc = ppat_desc; Parsetree.ppat_loc = ppat_loc; - Parsetree.ppat_attributes = ppat_attributes } - -> - this#record "Ast_404.Parsetree.pattern" - [("ppat_desc", (this#lift_Parsetree_pattern_desc ppat_desc)); - ("ppat_loc", (this#lift_Location_t ppat_loc)); - ("ppat_attributes", - (this#lift_Parsetree_attributes ppat_attributes))] : Parsetree.pattern - -> - 'res) - method lift_Parsetree_pattern_desc : Parsetree.pattern_desc -> 'res= - (function - | Parsetree.Ppat_any -> - this#constr "Ast_404.Parsetree.pattern_desc" ("Ppat_any", []) - | Parsetree.Ppat_var x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_var", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_alias (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_alias", - [this#lift_Parsetree_pattern x0; - this#lift_Asttypes_loc this#string x1]) - | Parsetree.Ppat_constant x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Ppat_interval (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_interval", - [this#lift_Parsetree_constant x0; - this#lift_Parsetree_constant x1]) - | Parsetree.Ppat_tuple x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_tuple", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_construct (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_variant (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_record (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ppat_array x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_array", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_or (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_or", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_constraint (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_constraint", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Ppat_type x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_type", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Ppat_lazy x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_lazy", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_unpack x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_unpack", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_exception x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_exception", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_extension x0 -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Ppat_open (x0,x1) -> - this#constr "Ast_404.Parsetree.pattern_desc" - ("Ppat_open", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) : Parsetree.pattern_desc -> - 'res) - method lift_Parsetree_core_type : Parsetree.core_type -> 'res= - (fun - { Parsetree.ptyp_desc = ptyp_desc; Parsetree.ptyp_loc = ptyp_loc; - Parsetree.ptyp_attributes = ptyp_attributes } - -> - this#record "Ast_404.Parsetree.core_type" - [("ptyp_desc", (this#lift_Parsetree_core_type_desc ptyp_desc)); - ("ptyp_loc", (this#lift_Location_t ptyp_loc)); - ("ptyp_attributes", - (this#lift_Parsetree_attributes ptyp_attributes))] : Parsetree.core_type - -> - 'res) - method lift_Parsetree_core_type_desc : Parsetree.core_type_desc -> 'res= - (function - | Parsetree.Ptyp_any -> - this#constr "Ast_404.Parsetree.core_type_desc" ("Ptyp_any", []) - | Parsetree.Ptyp_var x0 -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_var", [this#string x0]) - | Parsetree.Ptyp_arrow (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Ptyp_tuple x0 -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Ptyp_constr (x0,x1) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_object (x0,x1) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_object", - [this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#string x0; - this#lift_Parsetree_attributes x1; - this#lift_Parsetree_core_type x2]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ptyp_class (x0,x1) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_class", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_alias (x0,x1) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_alias", - [this#lift_Parsetree_core_type x0; this#string x1]) - | Parsetree.Ptyp_variant (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_variant", - [this#list (List.map this#lift_Parsetree_row_field x0); - this#lift_Asttypes_closed_flag x1; - this#lift_option - (fun x -> this#list (List.map this#lift_Asttypes_label x)) - x2]) - | Parsetree.Ptyp_poly (x0,x1) -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_poly", - [this#list (List.map this#string x0); - this#lift_Parsetree_core_type x1]) - | Parsetree.Ptyp_package x0 -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_package", [this#lift_Parsetree_package_type x0]) - | Parsetree.Ptyp_extension x0 -> - this#constr "Ast_404.Parsetree.core_type_desc" - ("Ptyp_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.core_type_desc -> 'res) - method lift_Parsetree_package_type : Parsetree.package_type -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_core_type x1]) x1)] : Parsetree.package_type - -> 'res) - method lift_Parsetree_row_field : Parsetree.row_field -> 'res= - (function - | Parsetree.Rtag (x0,x1,x2,x3) -> - this#constr "Ast_404.Parsetree.row_field" - ("Rtag", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_attributes x1; - this#lift_bool x2; - this#list (List.map this#lift_Parsetree_core_type x3)]) - | Parsetree.Rinherit x0 -> - this#constr "Ast_404.Parsetree.row_field" - ("Rinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.row_field - -> - 'res) - method lift_Parsetree_attributes : Parsetree.attributes -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_attribute x) : - Parsetree.attributes -> 'res) - method lift_Parsetree_attribute : Parsetree.attribute -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.attribute -> 'res) - method lift_Parsetree_payload : Parsetree.payload -> 'res= - (function - | Parsetree.PStr x0 -> - this#constr "Ast_404.Parsetree.payload" - ("PStr", [this#lift_Parsetree_structure x0]) - | Parsetree.PSig x0 -> - this#constr "Ast_404.Parsetree.payload" - ("PSig", [this#lift_Parsetree_signature x0]) - | Parsetree.PTyp x0 -> - this#constr "Ast_404.Parsetree.payload" - ("PTyp", [this#lift_Parsetree_core_type x0]) - | Parsetree.PPat (x0,x1) -> - this#constr "Ast_404.Parsetree.payload" - ("PPat", - [this#lift_Parsetree_pattern x0; - this#lift_option this#lift_Parsetree_expression x1]) : - Parsetree.payload -> 'res) - method lift_Parsetree_structure : Parsetree.structure -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_structure_item x) : - Parsetree.structure -> 'res) - method lift_Parsetree_structure_item : Parsetree.structure_item -> 'res= - (fun { Parsetree.pstr_desc = pstr_desc; Parsetree.pstr_loc = pstr_loc } - -> - this#record "Ast_404.Parsetree.structure_item" - [("pstr_desc", - (this#lift_Parsetree_structure_item_desc pstr_desc)); - ("pstr_loc", (this#lift_Location_t pstr_loc))] : Parsetree.structure_item - -> 'res) - method lift_Parsetree_structure_item_desc : - Parsetree.structure_item_desc -> 'res= - (function - | Parsetree.Pstr_eval (x0,x1) -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_eval", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_attributes x1]) - | Parsetree.Pstr_value (x0,x1) -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_value", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1)]) - | Parsetree.Pstr_primitive x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_primitive", [this#lift_Parsetree_value_description x0]) - | Parsetree.Pstr_type (x0,x1) -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Pstr_typext x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Pstr_exception x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Pstr_module x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_module", [this#lift_Parsetree_module_binding x0]) - | Parsetree.Pstr_recmodule x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_recmodule", - [this#list (List.map this#lift_Parsetree_module_binding x0)]) - | Parsetree.Pstr_modtype x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Pstr_open x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Pstr_class x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_class", - [this#list (List.map this#lift_Parsetree_class_declaration x0)]) - | Parsetree.Pstr_class_type x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Pstr_include x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_include", [this#lift_Parsetree_include_declaration x0]) - | Parsetree.Pstr_attribute x0 -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pstr_extension (x0,x1) -> - this#constr "Ast_404.Parsetree.structure_item_desc" - ("Pstr_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.structure_item_desc - -> 'res) - method lift_Parsetree_include_declaration : - Parsetree.include_declaration -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_expr x : - Parsetree.include_declaration -> 'res) - method lift_Parsetree_class_declaration : - Parsetree.class_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_expr x : - Parsetree.class_declaration -> 'res) - method lift_Parsetree_class_expr : Parsetree.class_expr -> 'res= - (fun - { Parsetree.pcl_desc = pcl_desc; Parsetree.pcl_loc = pcl_loc; - Parsetree.pcl_attributes = pcl_attributes } - -> - this#record "Ast_404.Parsetree.class_expr" - [("pcl_desc", (this#lift_Parsetree_class_expr_desc pcl_desc)); - ("pcl_loc", (this#lift_Location_t pcl_loc)); - ("pcl_attributes", - (this#lift_Parsetree_attributes pcl_attributes))] : Parsetree.class_expr - -> - 'res) - method lift_Parsetree_class_expr_desc : - Parsetree.class_expr_desc -> 'res= - (function - | Parsetree.Pcl_constr (x0,x1) -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcl_structure x0 -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_structure", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pcl_fun (x0,x1,x2,x3) -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_class_expr x3]) - | Parsetree.Pcl_apply (x0,x1) -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_apply", - [this#lift_Parsetree_class_expr x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pcl_let (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_class_expr x2]) - | Parsetree.Pcl_constraint (x0,x1) -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_constraint", - [this#lift_Parsetree_class_expr x0; - this#lift_Parsetree_class_type x1]) - | Parsetree.Pcl_extension x0 -> - this#constr "Ast_404.Parsetree.class_expr_desc" - ("Pcl_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_expr_desc -> 'res) - method lift_Parsetree_class_structure : - Parsetree.class_structure -> 'res= - (fun - { Parsetree.pcstr_self = pcstr_self; - Parsetree.pcstr_fields = pcstr_fields } - -> - this#record "Ast_404.Parsetree.class_structure" - [("pcstr_self", (this#lift_Parsetree_pattern pcstr_self)); - ("pcstr_fields", - (this#list - (List.map this#lift_Parsetree_class_field pcstr_fields)))] : - Parsetree.class_structure -> 'res) - method lift_Parsetree_class_field : Parsetree.class_field -> 'res= - (fun - { Parsetree.pcf_desc = pcf_desc; Parsetree.pcf_loc = pcf_loc; - Parsetree.pcf_attributes = pcf_attributes } - -> - this#record "Ast_404.Parsetree.class_field" - [("pcf_desc", (this#lift_Parsetree_class_field_desc pcf_desc)); - ("pcf_loc", (this#lift_Location_t pcf_loc)); - ("pcf_attributes", - (this#lift_Parsetree_attributes pcf_attributes))] : Parsetree.class_field - -> - 'res) - method lift_Parsetree_class_field_desc : - Parsetree.class_field_desc -> 'res= - (function - | Parsetree.Pcf_inherit (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_inherit", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_class_expr x1; - this#lift_option this#string x2]) - | Parsetree.Pcf_val x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_val", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_method x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_method", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_constraint x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pcf_initializer x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_initializer", [this#lift_Parsetree_expression x0]) - | Parsetree.Pcf_attribute x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pcf_extension x0 -> - this#constr "Ast_404.Parsetree.class_field_desc" - ("Pcf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_field_desc -> 'res) - method lift_Parsetree_class_field_kind : - Parsetree.class_field_kind -> 'res= - (function - | Parsetree.Cfk_virtual x0 -> - this#constr "Ast_404.Parsetree.class_field_kind" - ("Cfk_virtual", [this#lift_Parsetree_core_type x0]) - | Parsetree.Cfk_concrete (x0,x1) -> - this#constr "Ast_404.Parsetree.class_field_kind" - ("Cfk_concrete", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_expression x1]) : Parsetree.class_field_kind - -> 'res) - method lift_Parsetree_module_binding : Parsetree.module_binding -> 'res= - (fun - { Parsetree.pmb_name = pmb_name; Parsetree.pmb_expr = pmb_expr; - Parsetree.pmb_attributes = pmb_attributes; - Parsetree.pmb_loc = pmb_loc } - -> - this#record "Ast_404.Parsetree.module_binding" - [("pmb_name", (this#lift_Asttypes_loc this#string pmb_name)); - ("pmb_expr", (this#lift_Parsetree_module_expr pmb_expr)); - ("pmb_attributes", - (this#lift_Parsetree_attributes pmb_attributes)); - ("pmb_loc", (this#lift_Location_t pmb_loc))] : Parsetree.module_binding - -> 'res) - method lift_Parsetree_module_expr : Parsetree.module_expr -> 'res= - (fun - { Parsetree.pmod_desc = pmod_desc; Parsetree.pmod_loc = pmod_loc; - Parsetree.pmod_attributes = pmod_attributes } - -> - this#record "Ast_404.Parsetree.module_expr" - [("pmod_desc", (this#lift_Parsetree_module_expr_desc pmod_desc)); - ("pmod_loc", (this#lift_Location_t pmod_loc)); - ("pmod_attributes", - (this#lift_Parsetree_attributes pmod_attributes))] : Parsetree.module_expr - -> - 'res) - method lift_Parsetree_module_expr_desc : - Parsetree.module_expr_desc -> 'res= - (function - | Parsetree.Pmod_ident x0 -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmod_structure x0 -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_structure", [this#lift_Parsetree_structure x0]) - | Parsetree.Pmod_functor (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_expr x2]) - | Parsetree.Pmod_apply (x0,x1) -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_apply", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_expr x1]) - | Parsetree.Pmod_constraint (x0,x1) -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_constraint", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_type x1]) - | Parsetree.Pmod_unpack x0 -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_unpack", [this#lift_Parsetree_expression x0]) - | Parsetree.Pmod_extension x0 -> - this#constr "Ast_404.Parsetree.module_expr_desc" - ("Pmod_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.module_expr_desc -> 'res) - method lift_Parsetree_module_type : Parsetree.module_type -> 'res= - (fun - { Parsetree.pmty_desc = pmty_desc; Parsetree.pmty_loc = pmty_loc; - Parsetree.pmty_attributes = pmty_attributes } - -> - this#record "Ast_404.Parsetree.module_type" - [("pmty_desc", (this#lift_Parsetree_module_type_desc pmty_desc)); - ("pmty_loc", (this#lift_Location_t pmty_loc)); - ("pmty_attributes", - (this#lift_Parsetree_attributes pmty_attributes))] : Parsetree.module_type - -> - 'res) - method lift_Parsetree_module_type_desc : - Parsetree.module_type_desc -> 'res= - (function - | Parsetree.Pmty_ident x0 -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmty_signature x0 -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_signature", [this#lift_Parsetree_signature x0]) - | Parsetree.Pmty_functor (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_type x2]) - | Parsetree.Pmty_with (x0,x1) -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_with", - [this#lift_Parsetree_module_type x0; - this#list (List.map this#lift_Parsetree_with_constraint x1)]) - | Parsetree.Pmty_typeof x0 -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_typeof", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pmty_extension x0 -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pmty_alias x0 -> - this#constr "Ast_404.Parsetree.module_type_desc" - ("Pmty_alias", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.module_type_desc - -> - 'res) - method lift_Parsetree_with_constraint : - Parsetree.with_constraint -> 'res= - (function - | Parsetree.Pwith_type (x0,x1) -> - this#constr "Ast_404.Parsetree.with_constraint" - ("Pwith_type", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_type_declaration x1]) - | Parsetree.Pwith_module (x0,x1) -> - this#constr "Ast_404.Parsetree.with_constraint" - ("Pwith_module", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pwith_typesubst x0 -> - this#constr "Ast_404.Parsetree.with_constraint" - ("Pwith_typesubst", [this#lift_Parsetree_type_declaration x0]) - | Parsetree.Pwith_modsubst (x0,x1) -> - this#constr "Ast_404.Parsetree.with_constraint" - ("Pwith_modsubst", - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) : Parsetree.with_constraint - -> - 'res) - method lift_Parsetree_signature : Parsetree.signature -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_signature_item x) : - Parsetree.signature -> 'res) - method lift_Parsetree_signature_item : Parsetree.signature_item -> 'res= - (fun { Parsetree.psig_desc = psig_desc; Parsetree.psig_loc = psig_loc } - -> - this#record "Ast_404.Parsetree.signature_item" - [("psig_desc", - (this#lift_Parsetree_signature_item_desc psig_desc)); - ("psig_loc", (this#lift_Location_t psig_loc))] : Parsetree.signature_item - -> 'res) - method lift_Parsetree_signature_item_desc : - Parsetree.signature_item_desc -> 'res= - (function - | Parsetree.Psig_value x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_value", [this#lift_Parsetree_value_description x0]) - | Parsetree.Psig_type (x0,x1) -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Psig_typext x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Psig_exception x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Psig_module x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_module", [this#lift_Parsetree_module_declaration x0]) - | Parsetree.Psig_recmodule x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_recmodule", - [this#list - (List.map this#lift_Parsetree_module_declaration x0)]) - | Parsetree.Psig_modtype x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Psig_open x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Psig_include x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_include", [this#lift_Parsetree_include_description x0]) - | Parsetree.Psig_class x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_class", - [this#list (List.map this#lift_Parsetree_class_description x0)]) - | Parsetree.Psig_class_type x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Psig_attribute x0 -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Psig_extension (x0,x1) -> - this#constr "Ast_404.Parsetree.signature_item_desc" - ("Psig_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.signature_item_desc - -> 'res) - method lift_Parsetree_class_type_declaration : - Parsetree.class_type_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_type_declaration -> 'res) - method lift_Parsetree_class_description : - Parsetree.class_description -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_description -> 'res) - method lift_Parsetree_class_type : Parsetree.class_type -> 'res= - (fun - { Parsetree.pcty_desc = pcty_desc; Parsetree.pcty_loc = pcty_loc; - Parsetree.pcty_attributes = pcty_attributes } - -> - this#record "Ast_404.Parsetree.class_type" - [("pcty_desc", (this#lift_Parsetree_class_type_desc pcty_desc)); - ("pcty_loc", (this#lift_Location_t pcty_loc)); - ("pcty_attributes", - (this#lift_Parsetree_attributes pcty_attributes))] : Parsetree.class_type - -> - 'res) - method lift_Parsetree_class_type_desc : - Parsetree.class_type_desc -> 'res= - (function - | Parsetree.Pcty_constr (x0,x1) -> - this#constr "Ast_404.Parsetree.class_type_desc" - ("Pcty_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcty_signature x0 -> - this#constr "Ast_404.Parsetree.class_type_desc" - ("Pcty_signature", [this#lift_Parsetree_class_signature x0]) - | Parsetree.Pcty_arrow (x0,x1,x2) -> - this#constr "Ast_404.Parsetree.class_type_desc" - ("Pcty_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_class_type x2]) - | Parsetree.Pcty_extension x0 -> - this#constr "Ast_404.Parsetree.class_type_desc" - ("Pcty_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_desc -> 'res) - method lift_Parsetree_class_signature : - Parsetree.class_signature -> 'res= - (fun - { Parsetree.pcsig_self = pcsig_self; - Parsetree.pcsig_fields = pcsig_fields } - -> - this#record "Ast_404.Parsetree.class_signature" - [("pcsig_self", (this#lift_Parsetree_core_type pcsig_self)); - ("pcsig_fields", - (this#list - (List.map this#lift_Parsetree_class_type_field pcsig_fields)))] : - Parsetree.class_signature -> 'res) - method lift_Parsetree_class_type_field : - Parsetree.class_type_field -> 'res= - (fun - { Parsetree.pctf_desc = pctf_desc; Parsetree.pctf_loc = pctf_loc; - Parsetree.pctf_attributes = pctf_attributes } - -> - this#record "Ast_404.Parsetree.class_type_field" - [("pctf_desc", - (this#lift_Parsetree_class_type_field_desc pctf_desc)); - ("pctf_loc", (this#lift_Location_t pctf_loc)); - ("pctf_attributes", - (this#lift_Parsetree_attributes pctf_attributes))] : Parsetree.class_type_field - -> - 'res) - method lift_Parsetree_class_type_field_desc : - Parsetree.class_type_field_desc -> 'res= - (function - | Parsetree.Pctf_inherit x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_inherit", [this#lift_Parsetree_class_type x0]) - | Parsetree.Pctf_val x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_val", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_method x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_method", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_constraint x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pctf_attribute x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pctf_extension x0 -> - this#constr "Ast_404.Parsetree.class_type_field_desc" - ("Pctf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_field_desc -> 'res) - method lift_Parsetree_extension : Parsetree.extension -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.extension -> 'res) - method lift_Parsetree_class_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.class_infos -> 'res= fun (type f0) - -> - (fun f0 -> - fun - { Parsetree.pci_virt = pci_virt; - Parsetree.pci_params = pci_params; - Parsetree.pci_name = pci_name; Parsetree.pci_expr = pci_expr; - Parsetree.pci_loc = pci_loc; - Parsetree.pci_attributes = pci_attributes } - -> - this#record "Ast_404.Parsetree.class_infos" - [("pci_virt", (this#lift_Asttypes_virtual_flag pci_virt)); - ("pci_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) pci_params))); - ("pci_name", (this#lift_Asttypes_loc this#string pci_name)); - ("pci_expr", (f0 pci_expr)); - ("pci_loc", (this#lift_Location_t pci_loc)); - ("pci_attributes", - (this#lift_Parsetree_attributes pci_attributes))] : (f0 -> - 'res) -> - f0 - Parsetree.class_infos - -> - 'res) - method lift_Asttypes_virtual_flag : Asttypes.virtual_flag -> 'res= - (function - | Asttypes.Virtual -> - this#constr "Ast_404.Asttypes.virtual_flag" ("Virtual", []) - | Asttypes.Concrete -> - this#constr "Ast_404.Asttypes.virtual_flag" ("Concrete", []) : Asttypes.virtual_flag - -> - 'res) - method lift_Parsetree_include_description : - Parsetree.include_description -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_type x : - Parsetree.include_description -> 'res) - method lift_Parsetree_include_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.include_infos -> 'res= fun (type - f0) -> - (fun f0 -> - fun - { Parsetree.pincl_mod = pincl_mod; - Parsetree.pincl_loc = pincl_loc; - Parsetree.pincl_attributes = pincl_attributes } - -> - this#record "Ast_404.Parsetree.include_infos" - [("pincl_mod", (f0 pincl_mod)); - ("pincl_loc", (this#lift_Location_t pincl_loc)); - ("pincl_attributes", - (this#lift_Parsetree_attributes pincl_attributes))] : - (f0 -> 'res) -> f0 Parsetree.include_infos -> 'res) - method lift_Parsetree_open_description : - Parsetree.open_description -> 'res= - (fun - { Parsetree.popen_lid = popen_lid; - Parsetree.popen_override = popen_override; - Parsetree.popen_loc = popen_loc; - Parsetree.popen_attributes = popen_attributes } - -> - this#record "Ast_404.Parsetree.open_description" - [("popen_lid", - (this#lift_Asttypes_loc this#lift_Longident_t popen_lid)); - ("popen_override", - (this#lift_Asttypes_override_flag popen_override)); - ("popen_loc", (this#lift_Location_t popen_loc)); - ("popen_attributes", - (this#lift_Parsetree_attributes popen_attributes))] : Parsetree.open_description - -> - 'res) - method lift_Asttypes_override_flag : Asttypes.override_flag -> 'res= - (function - | Asttypes.Override -> - this#constr "Ast_404.Asttypes.override_flag" ("Override", []) - | Asttypes.Fresh -> - this#constr "Ast_404.Asttypes.override_flag" ("Fresh", []) : Asttypes.override_flag - -> - 'res) - method lift_Parsetree_module_type_declaration : - Parsetree.module_type_declaration -> 'res= - (fun - { Parsetree.pmtd_name = pmtd_name; Parsetree.pmtd_type = pmtd_type; - Parsetree.pmtd_attributes = pmtd_attributes; - Parsetree.pmtd_loc = pmtd_loc } - -> - this#record "Ast_404.Parsetree.module_type_declaration" - [("pmtd_name", (this#lift_Asttypes_loc this#string pmtd_name)); - ("pmtd_type", - (this#lift_option this#lift_Parsetree_module_type pmtd_type)); - ("pmtd_attributes", - (this#lift_Parsetree_attributes pmtd_attributes)); - ("pmtd_loc", (this#lift_Location_t pmtd_loc))] : Parsetree.module_type_declaration - -> 'res) - method lift_Parsetree_module_declaration : - Parsetree.module_declaration -> 'res= - (fun - { Parsetree.pmd_name = pmd_name; Parsetree.pmd_type = pmd_type; - Parsetree.pmd_attributes = pmd_attributes; - Parsetree.pmd_loc = pmd_loc } - -> - this#record "Ast_404.Parsetree.module_declaration" - [("pmd_name", (this#lift_Asttypes_loc this#string pmd_name)); - ("pmd_type", (this#lift_Parsetree_module_type pmd_type)); - ("pmd_attributes", - (this#lift_Parsetree_attributes pmd_attributes)); - ("pmd_loc", (this#lift_Location_t pmd_loc))] : Parsetree.module_declaration - -> 'res) - method lift_Parsetree_type_extension : Parsetree.type_extension -> 'res= - (fun - { Parsetree.ptyext_path = ptyext_path; - Parsetree.ptyext_params = ptyext_params; - Parsetree.ptyext_constructors = ptyext_constructors; - Parsetree.ptyext_private = ptyext_private; - Parsetree.ptyext_attributes = ptyext_attributes } - -> - this#record "Ast_404.Parsetree.type_extension" - [("ptyext_path", - (this#lift_Asttypes_loc this#lift_Longident_t ptyext_path)); - ("ptyext_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptyext_params))); - ("ptyext_constructors", - (this#list - (List.map this#lift_Parsetree_extension_constructor - ptyext_constructors))); - ("ptyext_private", - (this#lift_Asttypes_private_flag ptyext_private)); - ("ptyext_attributes", - (this#lift_Parsetree_attributes ptyext_attributes))] : Parsetree.type_extension - -> - 'res) - method lift_Parsetree_extension_constructor : - Parsetree.extension_constructor -> 'res= - (fun - { Parsetree.pext_name = pext_name; Parsetree.pext_kind = pext_kind; - Parsetree.pext_loc = pext_loc; - Parsetree.pext_attributes = pext_attributes } - -> - this#record "Ast_404.Parsetree.extension_constructor" - [("pext_name", (this#lift_Asttypes_loc this#string pext_name)); - ("pext_kind", - (this#lift_Parsetree_extension_constructor_kind pext_kind)); - ("pext_loc", (this#lift_Location_t pext_loc)); - ("pext_attributes", - (this#lift_Parsetree_attributes pext_attributes))] : Parsetree.extension_constructor - -> - 'res) - method lift_Parsetree_extension_constructor_kind : - Parsetree.extension_constructor_kind -> 'res= - (function - | Parsetree.Pext_decl (x0,x1) -> - this#constr "Ast_404.Parsetree.extension_constructor_kind" - ("Pext_decl", - [this#lift_Parsetree_constructor_arguments x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pext_rebind x0 -> - this#constr "Ast_404.Parsetree.extension_constructor_kind" - ("Pext_rebind", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.extension_constructor_kind - -> - 'res) - method lift_Parsetree_type_declaration : - Parsetree.type_declaration -> 'res= - (fun - { Parsetree.ptype_name = ptype_name; - Parsetree.ptype_params = ptype_params; - Parsetree.ptype_cstrs = ptype_cstrs; - Parsetree.ptype_kind = ptype_kind; - Parsetree.ptype_private = ptype_private; - Parsetree.ptype_manifest = ptype_manifest; - Parsetree.ptype_attributes = ptype_attributes; - Parsetree.ptype_loc = ptype_loc } - -> - this#record "Ast_404.Parsetree.type_declaration" - [("ptype_name", (this#lift_Asttypes_loc this#string ptype_name)); - ("ptype_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptype_params))); - ("ptype_cstrs", - (this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1; - this#lift_Location_t x2]) ptype_cstrs))); - ("ptype_kind", (this#lift_Parsetree_type_kind ptype_kind)); - ("ptype_private", (this#lift_Asttypes_private_flag ptype_private)); - ("ptype_manifest", - (this#lift_option this#lift_Parsetree_core_type ptype_manifest)); - ("ptype_attributes", - (this#lift_Parsetree_attributes ptype_attributes)); - ("ptype_loc", (this#lift_Location_t ptype_loc))] : Parsetree.type_declaration - -> 'res) - method lift_Asttypes_private_flag : Asttypes.private_flag -> 'res= - (function - | Asttypes.Private -> - this#constr "Ast_404.Asttypes.private_flag" ("Private", []) - | Asttypes.Public -> - this#constr "Ast_404.Asttypes.private_flag" ("Public", []) : Asttypes.private_flag - -> - 'res) - method lift_Parsetree_type_kind : Parsetree.type_kind -> 'res= - (function - | Parsetree.Ptype_abstract -> - this#constr "Ast_404.Parsetree.type_kind" ("Ptype_abstract", []) - | Parsetree.Ptype_variant x0 -> - this#constr "Ast_404.Parsetree.type_kind" - ("Ptype_variant", - [this#list - (List.map this#lift_Parsetree_constructor_declaration x0)]) - | Parsetree.Ptype_record x0 -> - this#constr "Ast_404.Parsetree.type_kind" - ("Ptype_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) - | Parsetree.Ptype_open -> - this#constr "Ast_404.Parsetree.type_kind" ("Ptype_open", []) : Parsetree.type_kind - -> - 'res) - method lift_Parsetree_constructor_declaration : - Parsetree.constructor_declaration -> 'res= - (fun - { Parsetree.pcd_name = pcd_name; Parsetree.pcd_args = pcd_args; - Parsetree.pcd_res = pcd_res; Parsetree.pcd_loc = pcd_loc; - Parsetree.pcd_attributes = pcd_attributes } - -> - this#record "Ast_404.Parsetree.constructor_declaration" - [("pcd_name", (this#lift_Asttypes_loc this#string pcd_name)); - ("pcd_args", (this#lift_Parsetree_constructor_arguments pcd_args)); - ("pcd_res", - (this#lift_option this#lift_Parsetree_core_type pcd_res)); - ("pcd_loc", (this#lift_Location_t pcd_loc)); - ("pcd_attributes", - (this#lift_Parsetree_attributes pcd_attributes))] : Parsetree.constructor_declaration - -> - 'res) - method lift_Parsetree_constructor_arguments : - Parsetree.constructor_arguments -> 'res= - (function - | Parsetree.Pcstr_tuple x0 -> - this#constr "Ast_404.Parsetree.constructor_arguments" - ("Pcstr_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Pcstr_record x0 -> - this#constr "Ast_404.Parsetree.constructor_arguments" - ("Pcstr_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) : - Parsetree.constructor_arguments -> 'res) - method lift_Parsetree_label_declaration : - Parsetree.label_declaration -> 'res= - (fun - { Parsetree.pld_name = pld_name; - Parsetree.pld_mutable = pld_mutable; - Parsetree.pld_type = pld_type; Parsetree.pld_loc = pld_loc; - Parsetree.pld_attributes = pld_attributes } - -> - this#record "Ast_404.Parsetree.label_declaration" - [("pld_name", (this#lift_Asttypes_loc this#string pld_name)); - ("pld_mutable", (this#lift_Asttypes_mutable_flag pld_mutable)); - ("pld_type", (this#lift_Parsetree_core_type pld_type)); - ("pld_loc", (this#lift_Location_t pld_loc)); - ("pld_attributes", - (this#lift_Parsetree_attributes pld_attributes))] : Parsetree.label_declaration - -> - 'res) - method lift_Asttypes_mutable_flag : Asttypes.mutable_flag -> 'res= - (function - | Asttypes.Immutable -> - this#constr "Ast_404.Asttypes.mutable_flag" ("Immutable", []) - | Asttypes.Mutable -> - this#constr "Ast_404.Asttypes.mutable_flag" ("Mutable", []) : Asttypes.mutable_flag - -> - 'res) - method lift_Asttypes_variance : Asttypes.variance -> 'res= - (function - | Asttypes.Covariant -> - this#constr "Ast_404.Asttypes.variance" ("Covariant", []) - | Asttypes.Contravariant -> - this#constr "Ast_404.Asttypes.variance" ("Contravariant", []) - | Asttypes.Invariant -> - this#constr "Ast_404.Asttypes.variance" ("Invariant", []) : Asttypes.variance - -> 'res) - method lift_Parsetree_value_description : - Parsetree.value_description -> 'res= - (fun - { Parsetree.pval_name = pval_name; Parsetree.pval_type = pval_type; - Parsetree.pval_prim = pval_prim; - Parsetree.pval_attributes = pval_attributes; - Parsetree.pval_loc = pval_loc } - -> - this#record "Ast_404.Parsetree.value_description" - [("pval_name", (this#lift_Asttypes_loc this#string pval_name)); - ("pval_type", (this#lift_Parsetree_core_type pval_type)); - ("pval_prim", (this#list (List.map this#string pval_prim))); - ("pval_attributes", - (this#lift_Parsetree_attributes pval_attributes)); - ("pval_loc", (this#lift_Location_t pval_loc))] : Parsetree.value_description - -> 'res) - method lift_Asttypes_arg_label : Asttypes.arg_label -> 'res= - (function - | Asttypes.Nolabel -> - this#constr "Ast_404.Asttypes.arg_label" ("Nolabel", []) - | Asttypes.Labelled x0 -> - this#constr "Ast_404.Asttypes.arg_label" ("Labelled", [this#string x0]) - | Asttypes.Optional x0 -> - this#constr "Ast_404.Asttypes.arg_label" ("Optional", [this#string x0]) : - Asttypes.arg_label -> 'res) - method lift_Asttypes_closed_flag : Asttypes.closed_flag -> 'res= - (function - | Asttypes.Closed -> - this#constr "Ast_404.Asttypes.closed_flag" ("Closed", []) - | Asttypes.Open -> this#constr "Ast_404.Asttypes.closed_flag" ("Open", []) : - Asttypes.closed_flag -> 'res) - method lift_Asttypes_label : Asttypes.label -> 'res= - (this#string : Asttypes.label -> 'res) - method lift_Asttypes_rec_flag : Asttypes.rec_flag -> 'res= - (function - | Asttypes.Nonrecursive -> - this#constr "Ast_404.Asttypes.rec_flag" ("Nonrecursive", []) - | Asttypes.Recursive -> - this#constr "Ast_404.Asttypes.rec_flag" ("Recursive", []) : Asttypes.rec_flag - -> 'res) - method lift_Parsetree_constant : Parsetree.constant -> 'res= - (function - | Parsetree.Pconst_integer (x0,x1) -> - this#constr "Ast_404.Parsetree.constant" - ("Pconst_integer", - [this#string x0; this#lift_option this#char x1]) - | Parsetree.Pconst_char x0 -> - this#constr "Ast_404.Parsetree.constant" ("Pconst_char", [this#char x0]) - | Parsetree.Pconst_string (x0,x1) -> - this#constr "Ast_404.Parsetree.constant" - ("Pconst_string", - [this#string x0; this#lift_option this#string x1]) - | Parsetree.Pconst_float (x0,x1) -> - this#constr "Ast_404.Parsetree.constant" - ("Pconst_float", - [this#string x0; this#lift_option this#char x1]) : Parsetree.constant - -> - 'res) - method lift_option : 'f0 . ('f0 -> 'res) -> 'f0 option -> 'res= fun (type - f0) -> - (fun f0 -> - function - | None -> this#constr "option" ("None", []) - | Some x0 -> this#constr "option" ("Some", [f0 x0]) : (f0 -> 'res) - -> - f0 option -> - 'res) - method lift_Longident_t : Longident.t -> 'res= - (function - | Longident.Lident x0 -> - this#constr "Ast_404.Longident.t" ("Lident", [this#string x0]) - | Longident.Ldot (x0,x1) -> - this#constr "Ast_404.Longident.t" - ("Ldot", [this#lift_Longident_t x0; this#string x1]) - | Longident.Lapply (x0,x1) -> - this#constr "Ast_404.Longident.t" - ("Lapply", [this#lift_Longident_t x0; this#lift_Longident_t x1]) : - Longident.t -> 'res) - method lift_Asttypes_loc : - 'f0 . ('f0 -> 'res) -> 'f0 Asttypes.loc -> 'res= fun (type f0) -> - (fun f0 -> - fun { Asttypes.txt = txt; Asttypes.loc = loc } -> - this#record "Ast_404.Asttypes.loc" - [("txt", (f0 txt)); ("loc", (this#lift_Location_t loc))] : - (f0 -> 'res) -> f0 Asttypes.loc -> 'res) - method lift_Location_t : Location.t -> 'res= - (fun - { Location.loc_start = loc_start; Location.loc_end = loc_end; - Location.loc_ghost = loc_ghost } - -> - this#record "Ast_404.Location.t" - [("loc_start", (this#lift_Lexing_position loc_start)); - ("loc_end", (this#lift_Lexing_position loc_end)); - ("loc_ghost", (this#lift_bool loc_ghost))] : Location.t -> 'res) - method lift_bool : bool -> 'res= - (function - | false -> this#constr "bool" ("false", []) - | true -> this#constr "bool" ("true", []) : bool -> 'res) - method lift_Lexing_position : Lexing.position -> 'res= - (fun - { Lexing.pos_fname = pos_fname; Lexing.pos_lnum = pos_lnum; - Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum } - -> - this#record "Ast_404.Lexing.position" - [("pos_fname", (this#string pos_fname)); - ("pos_lnum", (this#int pos_lnum)); - ("pos_bol", (this#int pos_bol)); - ("pos_cnum", (this#int pos_cnum))] : Lexing.position -> 'res) - end diff --git a/vendor/ppx_tools_versioned/ast_lifter_405.ml b/vendor/ppx_tools_versioned/ast_lifter_405.ml deleted file mode 100644 index 9e210fa56..000000000 --- a/vendor/ppx_tools_versioned/ast_lifter_405.ml +++ /dev/null @@ -1,1393 +0,0 @@ -open Ast_405 - -class virtual ['res] lifter = - object (this) - method lift_Parsetree_expression : Parsetree.expression -> 'res= - (fun - { Parsetree.pexp_desc = pexp_desc; Parsetree.pexp_loc = pexp_loc; - Parsetree.pexp_attributes = pexp_attributes } - -> - this#record "Ast_405.Parsetree.expression" - [("pexp_desc", (this#lift_Parsetree_expression_desc pexp_desc)); - ("pexp_loc", (this#lift_Location_t pexp_loc)); - ("pexp_attributes", - (this#lift_Parsetree_attributes pexp_attributes))] : Parsetree.expression - -> - 'res) - method lift_Parsetree_expression_desc : - Parsetree.expression_desc -> 'res= - (function - | Parsetree.Pexp_ident x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_constant x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Pexp_let (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_function x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_function", - [this#list (List.map this#lift_Parsetree_case x0)]) - | Parsetree.Pexp_fun (x0,x1,x2,x3) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_expression x3]) - | Parsetree.Pexp_apply (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_apply", - [this#lift_Parsetree_expression x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pexp_match (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_match", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_try (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_try", - [this#lift_Parsetree_expression x0; - this#list (List.map this#lift_Parsetree_case x1)]) - | Parsetree.Pexp_tuple x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_tuple", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_construct (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_variant (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_record (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_expression x1]) x0); - this#lift_option this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_field (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_field", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pexp_setfield (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_setfield", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_array x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_array", - [this#list (List.map this#lift_Parsetree_expression x0)]) - | Parsetree.Pexp_ifthenelse (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_ifthenelse", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1; - this#lift_option this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_sequence (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_sequence", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_while (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_while", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_for (x0,x1,x2,x3,x4) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_for", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_expression x1; - this#lift_Parsetree_expression x2; - this#lift_Asttypes_direction_flag x3; - this#lift_Parsetree_expression x4]) - | Parsetree.Pexp_constraint (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_constraint", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_coerce (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_coerce", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Pexp_send (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_send", - [this#lift_Parsetree_expression x0; - this#lift_Asttypes_loc this#string x1]) - | Parsetree.Pexp_new x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_new", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pexp_setinstvar (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_setinstvar", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_override x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_override", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) x0)]) - | Parsetree.Pexp_letmodule (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_letmodule", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_module_expr x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_letexception (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_letexception", - [this#lift_Parsetree_extension_constructor x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_assert x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_assert", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_lazy x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_lazy", [this#lift_Parsetree_expression x0]) - | Parsetree.Pexp_poly (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_poly", - [this#lift_Parsetree_expression x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pexp_object x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_object", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pexp_newtype (x0,x1) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_newtype", - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_expression x1]) - | Parsetree.Pexp_pack x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_pack", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pexp_open (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_open", - [this#lift_Asttypes_override_flag x0; - this#lift_Asttypes_loc this#lift_Longident_t x1; - this#lift_Parsetree_expression x2]) - | Parsetree.Pexp_extension x0 -> - this#constr "Ast_405.Parsetree.expression_desc" - ("Pexp_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pexp_unreachable -> - this#constr "Ast_405.Parsetree.expression_desc" ("Pexp_unreachable", []) : - Parsetree.expression_desc -> 'res) - method lift_Asttypes_direction_flag : Asttypes.direction_flag -> 'res= - (function - | Asttypes.Upto -> this#constr "Ast_405.Asttypes.direction_flag" ("Upto", []) - | Asttypes.Downto -> - this#constr "Ast_405.Asttypes.direction_flag" ("Downto", []) : Asttypes.direction_flag - -> - 'res) - method lift_Parsetree_case : Parsetree.case -> 'res= - (fun - { Parsetree.pc_lhs = pc_lhs; Parsetree.pc_guard = pc_guard; - Parsetree.pc_rhs = pc_rhs } - -> - this#record "Ast_405.Parsetree.case" - [("pc_lhs", (this#lift_Parsetree_pattern pc_lhs)); - ("pc_guard", - (this#lift_option this#lift_Parsetree_expression pc_guard)); - ("pc_rhs", (this#lift_Parsetree_expression pc_rhs))] : Parsetree.case - -> - 'res) - method lift_Parsetree_value_binding : Parsetree.value_binding -> 'res= - (fun - { Parsetree.pvb_pat = pvb_pat; Parsetree.pvb_expr = pvb_expr; - Parsetree.pvb_attributes = pvb_attributes; - Parsetree.pvb_loc = pvb_loc } - -> - this#record "Ast_405.Parsetree.value_binding" - [("pvb_pat", (this#lift_Parsetree_pattern pvb_pat)); - ("pvb_expr", (this#lift_Parsetree_expression pvb_expr)); - ("pvb_attributes", - (this#lift_Parsetree_attributes pvb_attributes)); - ("pvb_loc", (this#lift_Location_t pvb_loc))] : Parsetree.value_binding - -> 'res) - method lift_Parsetree_pattern : Parsetree.pattern -> 'res= - (fun - { Parsetree.ppat_desc = ppat_desc; Parsetree.ppat_loc = ppat_loc; - Parsetree.ppat_attributes = ppat_attributes } - -> - this#record "Ast_405.Parsetree.pattern" - [("ppat_desc", (this#lift_Parsetree_pattern_desc ppat_desc)); - ("ppat_loc", (this#lift_Location_t ppat_loc)); - ("ppat_attributes", - (this#lift_Parsetree_attributes ppat_attributes))] : Parsetree.pattern - -> - 'res) - method lift_Parsetree_pattern_desc : Parsetree.pattern_desc -> 'res= - (function - | Parsetree.Ppat_any -> - this#constr "Ast_405.Parsetree.pattern_desc" ("Ppat_any", []) - | Parsetree.Ppat_var x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_var", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_alias (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_alias", - [this#lift_Parsetree_pattern x0; - this#lift_Asttypes_loc this#string x1]) - | Parsetree.Ppat_constant x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_constant", [this#lift_Parsetree_constant x0]) - | Parsetree.Ppat_interval (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_interval", - [this#lift_Parsetree_constant x0; - this#lift_Parsetree_constant x1]) - | Parsetree.Ppat_tuple x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_tuple", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_construct (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_construct", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_variant (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_variant", - [this#lift_Asttypes_label x0; - this#lift_option this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_record (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_record", - [this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ppat_array x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_array", - [this#list (List.map this#lift_Parsetree_pattern x0)]) - | Parsetree.Ppat_or (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_or", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_pattern x1]) - | Parsetree.Ppat_constraint (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_constraint", - [this#lift_Parsetree_pattern x0; - this#lift_Parsetree_core_type x1]) - | Parsetree.Ppat_type x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_type", [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Ppat_lazy x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_lazy", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_unpack x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_unpack", [this#lift_Asttypes_loc this#string x0]) - | Parsetree.Ppat_exception x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_exception", [this#lift_Parsetree_pattern x0]) - | Parsetree.Ppat_extension x0 -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Ppat_open (x0,x1) -> - this#constr "Ast_405.Parsetree.pattern_desc" - ("Ppat_open", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_pattern x1]) : Parsetree.pattern_desc -> - 'res) - method lift_Parsetree_core_type : Parsetree.core_type -> 'res= - (fun - { Parsetree.ptyp_desc = ptyp_desc; Parsetree.ptyp_loc = ptyp_loc; - Parsetree.ptyp_attributes = ptyp_attributes } - -> - this#record "Ast_405.Parsetree.core_type" - [("ptyp_desc", (this#lift_Parsetree_core_type_desc ptyp_desc)); - ("ptyp_loc", (this#lift_Location_t ptyp_loc)); - ("ptyp_attributes", - (this#lift_Parsetree_attributes ptyp_attributes))] : Parsetree.core_type - -> - 'res) - method lift_Parsetree_core_type_desc : Parsetree.core_type_desc -> 'res= - (function - | Parsetree.Ptyp_any -> - this#constr "Ast_405.Parsetree.core_type_desc" ("Ptyp_any", []) - | Parsetree.Ptyp_var x0 -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_var", [this#string x0]) - | Parsetree.Ptyp_arrow (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_core_type x2]) - | Parsetree.Ptyp_tuple x0 -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Ptyp_constr (x0,x1) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_object (x0,x1) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_object", - [this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_attributes x1; - this#lift_Parsetree_core_type x2]) x0); - this#lift_Asttypes_closed_flag x1]) - | Parsetree.Ptyp_class (x0,x1) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_class", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Ptyp_alias (x0,x1) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_alias", - [this#lift_Parsetree_core_type x0; this#string x1]) - | Parsetree.Ptyp_variant (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_variant", - [this#list (List.map this#lift_Parsetree_row_field x0); - this#lift_Asttypes_closed_flag x1; - this#lift_option - (fun x -> this#list (List.map this#lift_Asttypes_label x)) - x2]) - | Parsetree.Ptyp_poly (x0,x1) -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_poly", - [this#list - (List.map (fun x -> this#lift_Asttypes_loc this#string x) - x0); - this#lift_Parsetree_core_type x1]) - | Parsetree.Ptyp_package x0 -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_package", [this#lift_Parsetree_package_type x0]) - | Parsetree.Ptyp_extension x0 -> - this#constr "Ast_405.Parsetree.core_type_desc" - ("Ptyp_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.core_type_desc -> 'res) - method lift_Parsetree_package_type : Parsetree.package_type -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_core_type x1]) x1)] : Parsetree.package_type - -> 'res) - method lift_Parsetree_row_field : Parsetree.row_field -> 'res= - (function - | Parsetree.Rtag (x0,x1,x2,x3) -> - this#constr "Ast_405.Parsetree.row_field" - ("Rtag", - [this#lift_Asttypes_label x0; - this#lift_Parsetree_attributes x1; - this#lift_bool x2; - this#list (List.map this#lift_Parsetree_core_type x3)]) - | Parsetree.Rinherit x0 -> - this#constr "Ast_405.Parsetree.row_field" - ("Rinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.row_field - -> - 'res) - method lift_Parsetree_attributes : Parsetree.attributes -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_attribute x) : - Parsetree.attributes -> 'res) - method lift_Parsetree_attribute : Parsetree.attribute -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.attribute -> 'res) - method lift_Parsetree_payload : Parsetree.payload -> 'res= - (function - | Parsetree.PStr x0 -> - this#constr "Ast_405.Parsetree.payload" - ("PStr", [this#lift_Parsetree_structure x0]) - | Parsetree.PSig x0 -> - this#constr "Ast_405.Parsetree.payload" - ("PSig", [this#lift_Parsetree_signature x0]) - | Parsetree.PTyp x0 -> - this#constr "Ast_405.Parsetree.payload" - ("PTyp", [this#lift_Parsetree_core_type x0]) - | Parsetree.PPat (x0,x1) -> - this#constr "Ast_405.Parsetree.payload" - ("PPat", - [this#lift_Parsetree_pattern x0; - this#lift_option this#lift_Parsetree_expression x1]) : - Parsetree.payload -> 'res) - method lift_Parsetree_structure : Parsetree.structure -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_structure_item x) : - Parsetree.structure -> 'res) - method lift_Parsetree_structure_item : Parsetree.structure_item -> 'res= - (fun { Parsetree.pstr_desc = pstr_desc; Parsetree.pstr_loc = pstr_loc } - -> - this#record "Ast_405.Parsetree.structure_item" - [("pstr_desc", - (this#lift_Parsetree_structure_item_desc pstr_desc)); - ("pstr_loc", (this#lift_Location_t pstr_loc))] : Parsetree.structure_item - -> 'res) - method lift_Parsetree_structure_item_desc : - Parsetree.structure_item_desc -> 'res= - (function - | Parsetree.Pstr_eval (x0,x1) -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_eval", - [this#lift_Parsetree_expression x0; - this#lift_Parsetree_attributes x1]) - | Parsetree.Pstr_value (x0,x1) -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_value", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1)]) - | Parsetree.Pstr_primitive x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_primitive", [this#lift_Parsetree_value_description x0]) - | Parsetree.Pstr_type (x0,x1) -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Pstr_typext x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Pstr_exception x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Pstr_module x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_module", [this#lift_Parsetree_module_binding x0]) - | Parsetree.Pstr_recmodule x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_recmodule", - [this#list (List.map this#lift_Parsetree_module_binding x0)]) - | Parsetree.Pstr_modtype x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Pstr_open x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Pstr_class x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_class", - [this#list (List.map this#lift_Parsetree_class_declaration x0)]) - | Parsetree.Pstr_class_type x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Pstr_include x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_include", [this#lift_Parsetree_include_declaration x0]) - | Parsetree.Pstr_attribute x0 -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pstr_extension (x0,x1) -> - this#constr "Ast_405.Parsetree.structure_item_desc" - ("Pstr_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.structure_item_desc - -> 'res) - method lift_Parsetree_include_declaration : - Parsetree.include_declaration -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_expr x : - Parsetree.include_declaration -> 'res) - method lift_Parsetree_class_declaration : - Parsetree.class_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_expr x : - Parsetree.class_declaration -> 'res) - method lift_Parsetree_class_expr : Parsetree.class_expr -> 'res= - (fun - { Parsetree.pcl_desc = pcl_desc; Parsetree.pcl_loc = pcl_loc; - Parsetree.pcl_attributes = pcl_attributes } - -> - this#record "Ast_405.Parsetree.class_expr" - [("pcl_desc", (this#lift_Parsetree_class_expr_desc pcl_desc)); - ("pcl_loc", (this#lift_Location_t pcl_loc)); - ("pcl_attributes", - (this#lift_Parsetree_attributes pcl_attributes))] : Parsetree.class_expr - -> - 'res) - method lift_Parsetree_class_expr_desc : - Parsetree.class_expr_desc -> 'res= - (function - | Parsetree.Pcl_constr (x0,x1) -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcl_structure x0 -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_structure", [this#lift_Parsetree_class_structure x0]) - | Parsetree.Pcl_fun (x0,x1,x2,x3) -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_fun", - [this#lift_Asttypes_arg_label x0; - this#lift_option this#lift_Parsetree_expression x1; - this#lift_Parsetree_pattern x2; - this#lift_Parsetree_class_expr x3]) - | Parsetree.Pcl_apply (x0,x1) -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_apply", - [this#lift_Parsetree_class_expr x0; - this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_expression x1]) x1)]) - | Parsetree.Pcl_let (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_let", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_value_binding x1); - this#lift_Parsetree_class_expr x2]) - | Parsetree.Pcl_constraint (x0,x1) -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_constraint", - [this#lift_Parsetree_class_expr x0; - this#lift_Parsetree_class_type x1]) - | Parsetree.Pcl_extension x0 -> - this#constr "Ast_405.Parsetree.class_expr_desc" - ("Pcl_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_expr_desc -> 'res) - method lift_Parsetree_class_structure : - Parsetree.class_structure -> 'res= - (fun - { Parsetree.pcstr_self = pcstr_self; - Parsetree.pcstr_fields = pcstr_fields } - -> - this#record "Ast_405.Parsetree.class_structure" - [("pcstr_self", (this#lift_Parsetree_pattern pcstr_self)); - ("pcstr_fields", - (this#list - (List.map this#lift_Parsetree_class_field pcstr_fields)))] : - Parsetree.class_structure -> 'res) - method lift_Parsetree_class_field : Parsetree.class_field -> 'res= - (fun - { Parsetree.pcf_desc = pcf_desc; Parsetree.pcf_loc = pcf_loc; - Parsetree.pcf_attributes = pcf_attributes } - -> - this#record "Ast_405.Parsetree.class_field" - [("pcf_desc", (this#lift_Parsetree_class_field_desc pcf_desc)); - ("pcf_loc", (this#lift_Location_t pcf_loc)); - ("pcf_attributes", - (this#lift_Parsetree_attributes pcf_attributes))] : Parsetree.class_field - -> - 'res) - method lift_Parsetree_class_field_desc : - Parsetree.class_field_desc -> 'res= - (function - | Parsetree.Pcf_inherit (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_inherit", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_class_expr x1; - this#lift_option - (fun x -> this#lift_Asttypes_loc this#string x) x2]) - | Parsetree.Pcf_val x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_val", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_method x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_method", - [(let (x0,x1,x2) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Parsetree_class_field_kind x2])]) - | Parsetree.Pcf_constraint x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pcf_initializer x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_initializer", [this#lift_Parsetree_expression x0]) - | Parsetree.Pcf_attribute x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pcf_extension x0 -> - this#constr "Ast_405.Parsetree.class_field_desc" - ("Pcf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_field_desc -> 'res) - method lift_Parsetree_class_field_kind : - Parsetree.class_field_kind -> 'res= - (function - | Parsetree.Cfk_virtual x0 -> - this#constr "Ast_405.Parsetree.class_field_kind" - ("Cfk_virtual", [this#lift_Parsetree_core_type x0]) - | Parsetree.Cfk_concrete (x0,x1) -> - this#constr "Ast_405.Parsetree.class_field_kind" - ("Cfk_concrete", - [this#lift_Asttypes_override_flag x0; - this#lift_Parsetree_expression x1]) : Parsetree.class_field_kind - -> 'res) - method lift_Parsetree_module_binding : Parsetree.module_binding -> 'res= - (fun - { Parsetree.pmb_name = pmb_name; Parsetree.pmb_expr = pmb_expr; - Parsetree.pmb_attributes = pmb_attributes; - Parsetree.pmb_loc = pmb_loc } - -> - this#record "Ast_405.Parsetree.module_binding" - [("pmb_name", (this#lift_Asttypes_loc this#string pmb_name)); - ("pmb_expr", (this#lift_Parsetree_module_expr pmb_expr)); - ("pmb_attributes", - (this#lift_Parsetree_attributes pmb_attributes)); - ("pmb_loc", (this#lift_Location_t pmb_loc))] : Parsetree.module_binding - -> 'res) - method lift_Parsetree_module_expr : Parsetree.module_expr -> 'res= - (fun - { Parsetree.pmod_desc = pmod_desc; Parsetree.pmod_loc = pmod_loc; - Parsetree.pmod_attributes = pmod_attributes } - -> - this#record "Ast_405.Parsetree.module_expr" - [("pmod_desc", (this#lift_Parsetree_module_expr_desc pmod_desc)); - ("pmod_loc", (this#lift_Location_t pmod_loc)); - ("pmod_attributes", - (this#lift_Parsetree_attributes pmod_attributes))] : Parsetree.module_expr - -> - 'res) - method lift_Parsetree_module_expr_desc : - Parsetree.module_expr_desc -> 'res= - (function - | Parsetree.Pmod_ident x0 -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmod_structure x0 -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_structure", [this#lift_Parsetree_structure x0]) - | Parsetree.Pmod_functor (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_expr x2]) - | Parsetree.Pmod_apply (x0,x1) -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_apply", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_expr x1]) - | Parsetree.Pmod_constraint (x0,x1) -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_constraint", - [this#lift_Parsetree_module_expr x0; - this#lift_Parsetree_module_type x1]) - | Parsetree.Pmod_unpack x0 -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_unpack", [this#lift_Parsetree_expression x0]) - | Parsetree.Pmod_extension x0 -> - this#constr "Ast_405.Parsetree.module_expr_desc" - ("Pmod_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.module_expr_desc -> 'res) - method lift_Parsetree_module_type : Parsetree.module_type -> 'res= - (fun - { Parsetree.pmty_desc = pmty_desc; Parsetree.pmty_loc = pmty_loc; - Parsetree.pmty_attributes = pmty_attributes } - -> - this#record "Ast_405.Parsetree.module_type" - [("pmty_desc", (this#lift_Parsetree_module_type_desc pmty_desc)); - ("pmty_loc", (this#lift_Location_t pmty_loc)); - ("pmty_attributes", - (this#lift_Parsetree_attributes pmty_attributes))] : Parsetree.module_type - -> - 'res) - method lift_Parsetree_module_type_desc : - Parsetree.module_type_desc -> 'res= - (function - | Parsetree.Pmty_ident x0 -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_ident", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) - | Parsetree.Pmty_signature x0 -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_signature", [this#lift_Parsetree_signature x0]) - | Parsetree.Pmty_functor (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_functor", - [this#lift_Asttypes_loc this#string x0; - this#lift_option this#lift_Parsetree_module_type x1; - this#lift_Parsetree_module_type x2]) - | Parsetree.Pmty_with (x0,x1) -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_with", - [this#lift_Parsetree_module_type x0; - this#list (List.map this#lift_Parsetree_with_constraint x1)]) - | Parsetree.Pmty_typeof x0 -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_typeof", [this#lift_Parsetree_module_expr x0]) - | Parsetree.Pmty_extension x0 -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_extension", [this#lift_Parsetree_extension x0]) - | Parsetree.Pmty_alias x0 -> - this#constr "Ast_405.Parsetree.module_type_desc" - ("Pmty_alias", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.module_type_desc - -> - 'res) - method lift_Parsetree_with_constraint : - Parsetree.with_constraint -> 'res= - (function - | Parsetree.Pwith_type (x0,x1) -> - this#constr "Ast_405.Parsetree.with_constraint" - ("Pwith_type", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Parsetree_type_declaration x1]) - | Parsetree.Pwith_module (x0,x1) -> - this#constr "Ast_405.Parsetree.with_constraint" - ("Pwith_module", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) - | Parsetree.Pwith_typesubst x0 -> - this#constr "Ast_405.Parsetree.with_constraint" - ("Pwith_typesubst", [this#lift_Parsetree_type_declaration x0]) - | Parsetree.Pwith_modsubst (x0,x1) -> - this#constr "Ast_405.Parsetree.with_constraint" - ("Pwith_modsubst", - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_loc this#lift_Longident_t x1]) : Parsetree.with_constraint - -> - 'res) - method lift_Parsetree_signature : Parsetree.signature -> 'res= - (fun x -> this#list (List.map this#lift_Parsetree_signature_item x) : - Parsetree.signature -> 'res) - method lift_Parsetree_signature_item : Parsetree.signature_item -> 'res= - (fun { Parsetree.psig_desc = psig_desc; Parsetree.psig_loc = psig_loc } - -> - this#record "Ast_405.Parsetree.signature_item" - [("psig_desc", - (this#lift_Parsetree_signature_item_desc psig_desc)); - ("psig_loc", (this#lift_Location_t psig_loc))] : Parsetree.signature_item - -> 'res) - method lift_Parsetree_signature_item_desc : - Parsetree.signature_item_desc -> 'res= - (function - | Parsetree.Psig_value x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_value", [this#lift_Parsetree_value_description x0]) - | Parsetree.Psig_type (x0,x1) -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_type", - [this#lift_Asttypes_rec_flag x0; - this#list (List.map this#lift_Parsetree_type_declaration x1)]) - | Parsetree.Psig_typext x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_typext", [this#lift_Parsetree_type_extension x0]) - | Parsetree.Psig_exception x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_exception", - [this#lift_Parsetree_extension_constructor x0]) - | Parsetree.Psig_module x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_module", [this#lift_Parsetree_module_declaration x0]) - | Parsetree.Psig_recmodule x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_recmodule", - [this#list - (List.map this#lift_Parsetree_module_declaration x0)]) - | Parsetree.Psig_modtype x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_modtype", - [this#lift_Parsetree_module_type_declaration x0]) - | Parsetree.Psig_open x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_open", [this#lift_Parsetree_open_description x0]) - | Parsetree.Psig_include x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_include", [this#lift_Parsetree_include_description x0]) - | Parsetree.Psig_class x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_class", - [this#list (List.map this#lift_Parsetree_class_description x0)]) - | Parsetree.Psig_class_type x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_class_type", - [this#list - (List.map this#lift_Parsetree_class_type_declaration x0)]) - | Parsetree.Psig_attribute x0 -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Psig_extension (x0,x1) -> - this#constr "Ast_405.Parsetree.signature_item_desc" - ("Psig_extension", - [this#lift_Parsetree_extension x0; - this#lift_Parsetree_attributes x1]) : Parsetree.signature_item_desc - -> 'res) - method lift_Parsetree_class_type_declaration : - Parsetree.class_type_declaration -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_type_declaration -> 'res) - method lift_Parsetree_class_description : - Parsetree.class_description -> 'res= - (fun x -> - this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x : - Parsetree.class_description -> 'res) - method lift_Parsetree_class_type : Parsetree.class_type -> 'res= - (fun - { Parsetree.pcty_desc = pcty_desc; Parsetree.pcty_loc = pcty_loc; - Parsetree.pcty_attributes = pcty_attributes } - -> - this#record "Ast_405.Parsetree.class_type" - [("pcty_desc", (this#lift_Parsetree_class_type_desc pcty_desc)); - ("pcty_loc", (this#lift_Location_t pcty_loc)); - ("pcty_attributes", - (this#lift_Parsetree_attributes pcty_attributes))] : Parsetree.class_type - -> - 'res) - method lift_Parsetree_class_type_desc : - Parsetree.class_type_desc -> 'res= - (function - | Parsetree.Pcty_constr (x0,x1) -> - this#constr "Ast_405.Parsetree.class_type_desc" - ("Pcty_constr", - [this#lift_Asttypes_loc this#lift_Longident_t x0; - this#list (List.map this#lift_Parsetree_core_type x1)]) - | Parsetree.Pcty_signature x0 -> - this#constr "Ast_405.Parsetree.class_type_desc" - ("Pcty_signature", [this#lift_Parsetree_class_signature x0]) - | Parsetree.Pcty_arrow (x0,x1,x2) -> - this#constr "Ast_405.Parsetree.class_type_desc" - ("Pcty_arrow", - [this#lift_Asttypes_arg_label x0; - this#lift_Parsetree_core_type x1; - this#lift_Parsetree_class_type x2]) - | Parsetree.Pcty_extension x0 -> - this#constr "Ast_405.Parsetree.class_type_desc" - ("Pcty_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_desc -> 'res) - method lift_Parsetree_class_signature : - Parsetree.class_signature -> 'res= - (fun - { Parsetree.pcsig_self = pcsig_self; - Parsetree.pcsig_fields = pcsig_fields } - -> - this#record "Ast_405.Parsetree.class_signature" - [("pcsig_self", (this#lift_Parsetree_core_type pcsig_self)); - ("pcsig_fields", - (this#list - (List.map this#lift_Parsetree_class_type_field pcsig_fields)))] : - Parsetree.class_signature -> 'res) - method lift_Parsetree_class_type_field : - Parsetree.class_type_field -> 'res= - (fun - { Parsetree.pctf_desc = pctf_desc; Parsetree.pctf_loc = pctf_loc; - Parsetree.pctf_attributes = pctf_attributes } - -> - this#record "Ast_405.Parsetree.class_type_field" - [("pctf_desc", - (this#lift_Parsetree_class_type_field_desc pctf_desc)); - ("pctf_loc", (this#lift_Location_t pctf_loc)); - ("pctf_attributes", - (this#lift_Parsetree_attributes pctf_attributes))] : Parsetree.class_type_field - -> - 'res) - method lift_Parsetree_class_type_field_desc : - Parsetree.class_type_field_desc -> 'res= - (function - | Parsetree.Pctf_inherit x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_inherit", [this#lift_Parsetree_class_type x0]) - | Parsetree.Pctf_val x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_val", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_mutable_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_method x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_method", - [(let (x0,x1,x2,x3) = x0 in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Asttypes_private_flag x1; - this#lift_Asttypes_virtual_flag x2; - this#lift_Parsetree_core_type x3])]) - | Parsetree.Pctf_constraint x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_constraint", - [(let (x0,x1) = x0 in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1])]) - | Parsetree.Pctf_attribute x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_attribute", [this#lift_Parsetree_attribute x0]) - | Parsetree.Pctf_extension x0 -> - this#constr "Ast_405.Parsetree.class_type_field_desc" - ("Pctf_extension", [this#lift_Parsetree_extension x0]) : - Parsetree.class_type_field_desc -> 'res) - method lift_Parsetree_extension : Parsetree.extension -> 'res= - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Asttypes_loc this#string x0; - this#lift_Parsetree_payload x1] : Parsetree.extension -> 'res) - method lift_Parsetree_class_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.class_infos -> 'res= fun (type f0) - -> - (fun f0 -> - fun - { Parsetree.pci_virt = pci_virt; - Parsetree.pci_params = pci_params; - Parsetree.pci_name = pci_name; Parsetree.pci_expr = pci_expr; - Parsetree.pci_loc = pci_loc; - Parsetree.pci_attributes = pci_attributes } - -> - this#record "Ast_405.Parsetree.class_infos" - [("pci_virt", (this#lift_Asttypes_virtual_flag pci_virt)); - ("pci_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) pci_params))); - ("pci_name", (this#lift_Asttypes_loc this#string pci_name)); - ("pci_expr", (f0 pci_expr)); - ("pci_loc", (this#lift_Location_t pci_loc)); - ("pci_attributes", - (this#lift_Parsetree_attributes pci_attributes))] : (f0 -> - 'res) -> - f0 - Parsetree.class_infos - -> - 'res) - method lift_Asttypes_virtual_flag : Asttypes.virtual_flag -> 'res= - (function - | Asttypes.Virtual -> - this#constr "Ast_405.Asttypes.virtual_flag" ("Virtual", []) - | Asttypes.Concrete -> - this#constr "Ast_405.Asttypes.virtual_flag" ("Concrete", []) : Asttypes.virtual_flag - -> - 'res) - method lift_Parsetree_include_description : - Parsetree.include_description -> 'res= - (fun x -> - this#lift_Parsetree_include_infos this#lift_Parsetree_module_type x : - Parsetree.include_description -> 'res) - method lift_Parsetree_include_infos : - 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.include_infos -> 'res= fun (type - f0) -> - (fun f0 -> - fun - { Parsetree.pincl_mod = pincl_mod; - Parsetree.pincl_loc = pincl_loc; - Parsetree.pincl_attributes = pincl_attributes } - -> - this#record "Ast_405.Parsetree.include_infos" - [("pincl_mod", (f0 pincl_mod)); - ("pincl_loc", (this#lift_Location_t pincl_loc)); - ("pincl_attributes", - (this#lift_Parsetree_attributes pincl_attributes))] : - (f0 -> 'res) -> f0 Parsetree.include_infos -> 'res) - method lift_Parsetree_open_description : - Parsetree.open_description -> 'res= - (fun - { Parsetree.popen_lid = popen_lid; - Parsetree.popen_override = popen_override; - Parsetree.popen_loc = popen_loc; - Parsetree.popen_attributes = popen_attributes } - -> - this#record "Ast_405.Parsetree.open_description" - [("popen_lid", - (this#lift_Asttypes_loc this#lift_Longident_t popen_lid)); - ("popen_override", - (this#lift_Asttypes_override_flag popen_override)); - ("popen_loc", (this#lift_Location_t popen_loc)); - ("popen_attributes", - (this#lift_Parsetree_attributes popen_attributes))] : Parsetree.open_description - -> - 'res) - method lift_Asttypes_override_flag : Asttypes.override_flag -> 'res= - (function - | Asttypes.Override -> - this#constr "Ast_405.Asttypes.override_flag" ("Override", []) - | Asttypes.Fresh -> - this#constr "Ast_405.Asttypes.override_flag" ("Fresh", []) : Asttypes.override_flag - -> - 'res) - method lift_Parsetree_module_type_declaration : - Parsetree.module_type_declaration -> 'res= - (fun - { Parsetree.pmtd_name = pmtd_name; Parsetree.pmtd_type = pmtd_type; - Parsetree.pmtd_attributes = pmtd_attributes; - Parsetree.pmtd_loc = pmtd_loc } - -> - this#record "Ast_405.Parsetree.module_type_declaration" - [("pmtd_name", (this#lift_Asttypes_loc this#string pmtd_name)); - ("pmtd_type", - (this#lift_option this#lift_Parsetree_module_type pmtd_type)); - ("pmtd_attributes", - (this#lift_Parsetree_attributes pmtd_attributes)); - ("pmtd_loc", (this#lift_Location_t pmtd_loc))] : Parsetree.module_type_declaration - -> 'res) - method lift_Parsetree_module_declaration : - Parsetree.module_declaration -> 'res= - (fun - { Parsetree.pmd_name = pmd_name; Parsetree.pmd_type = pmd_type; - Parsetree.pmd_attributes = pmd_attributes; - Parsetree.pmd_loc = pmd_loc } - -> - this#record "Ast_405.Parsetree.module_declaration" - [("pmd_name", (this#lift_Asttypes_loc this#string pmd_name)); - ("pmd_type", (this#lift_Parsetree_module_type pmd_type)); - ("pmd_attributes", - (this#lift_Parsetree_attributes pmd_attributes)); - ("pmd_loc", (this#lift_Location_t pmd_loc))] : Parsetree.module_declaration - -> 'res) - method lift_Parsetree_type_extension : Parsetree.type_extension -> 'res= - (fun - { Parsetree.ptyext_path = ptyext_path; - Parsetree.ptyext_params = ptyext_params; - Parsetree.ptyext_constructors = ptyext_constructors; - Parsetree.ptyext_private = ptyext_private; - Parsetree.ptyext_attributes = ptyext_attributes } - -> - this#record "Ast_405.Parsetree.type_extension" - [("ptyext_path", - (this#lift_Asttypes_loc this#lift_Longident_t ptyext_path)); - ("ptyext_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptyext_params))); - ("ptyext_constructors", - (this#list - (List.map this#lift_Parsetree_extension_constructor - ptyext_constructors))); - ("ptyext_private", - (this#lift_Asttypes_private_flag ptyext_private)); - ("ptyext_attributes", - (this#lift_Parsetree_attributes ptyext_attributes))] : Parsetree.type_extension - -> - 'res) - method lift_Parsetree_extension_constructor : - Parsetree.extension_constructor -> 'res= - (fun - { Parsetree.pext_name = pext_name; Parsetree.pext_kind = pext_kind; - Parsetree.pext_loc = pext_loc; - Parsetree.pext_attributes = pext_attributes } - -> - this#record "Ast_405.Parsetree.extension_constructor" - [("pext_name", (this#lift_Asttypes_loc this#string pext_name)); - ("pext_kind", - (this#lift_Parsetree_extension_constructor_kind pext_kind)); - ("pext_loc", (this#lift_Location_t pext_loc)); - ("pext_attributes", - (this#lift_Parsetree_attributes pext_attributes))] : Parsetree.extension_constructor - -> - 'res) - method lift_Parsetree_extension_constructor_kind : - Parsetree.extension_constructor_kind -> 'res= - (function - | Parsetree.Pext_decl (x0,x1) -> - this#constr "Ast_405.Parsetree.extension_constructor_kind" - ("Pext_decl", - [this#lift_Parsetree_constructor_arguments x0; - this#lift_option this#lift_Parsetree_core_type x1]) - | Parsetree.Pext_rebind x0 -> - this#constr "Ast_405.Parsetree.extension_constructor_kind" - ("Pext_rebind", - [this#lift_Asttypes_loc this#lift_Longident_t x0]) : Parsetree.extension_constructor_kind - -> - 'res) - method lift_Parsetree_type_declaration : - Parsetree.type_declaration -> 'res= - (fun - { Parsetree.ptype_name = ptype_name; - Parsetree.ptype_params = ptype_params; - Parsetree.ptype_cstrs = ptype_cstrs; - Parsetree.ptype_kind = ptype_kind; - Parsetree.ptype_private = ptype_private; - Parsetree.ptype_manifest = ptype_manifest; - Parsetree.ptype_attributes = ptype_attributes; - Parsetree.ptype_loc = ptype_loc } - -> - this#record "Ast_405.Parsetree.type_declaration" - [("ptype_name", (this#lift_Asttypes_loc this#string ptype_name)); - ("ptype_params", - (this#list - (List.map - (fun x -> - let (x0,x1) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Asttypes_variance x1]) ptype_params))); - ("ptype_cstrs", - (this#list - (List.map - (fun x -> - let (x0,x1,x2) = x in - this#tuple - [this#lift_Parsetree_core_type x0; - this#lift_Parsetree_core_type x1; - this#lift_Location_t x2]) ptype_cstrs))); - ("ptype_kind", (this#lift_Parsetree_type_kind ptype_kind)); - ("ptype_private", (this#lift_Asttypes_private_flag ptype_private)); - ("ptype_manifest", - (this#lift_option this#lift_Parsetree_core_type ptype_manifest)); - ("ptype_attributes", - (this#lift_Parsetree_attributes ptype_attributes)); - ("ptype_loc", (this#lift_Location_t ptype_loc))] : Parsetree.type_declaration - -> 'res) - method lift_Asttypes_private_flag : Asttypes.private_flag -> 'res= - (function - | Asttypes.Private -> - this#constr "Ast_405.Asttypes.private_flag" ("Private", []) - | Asttypes.Public -> - this#constr "Ast_405.Asttypes.private_flag" ("Public", []) : Asttypes.private_flag - -> - 'res) - method lift_Parsetree_type_kind : Parsetree.type_kind -> 'res= - (function - | Parsetree.Ptype_abstract -> - this#constr "Ast_405.Parsetree.type_kind" ("Ptype_abstract", []) - | Parsetree.Ptype_variant x0 -> - this#constr "Ast_405.Parsetree.type_kind" - ("Ptype_variant", - [this#list - (List.map this#lift_Parsetree_constructor_declaration x0)]) - | Parsetree.Ptype_record x0 -> - this#constr "Ast_405.Parsetree.type_kind" - ("Ptype_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) - | Parsetree.Ptype_open -> - this#constr "Ast_405.Parsetree.type_kind" ("Ptype_open", []) : Parsetree.type_kind - -> - 'res) - method lift_Parsetree_constructor_declaration : - Parsetree.constructor_declaration -> 'res= - (fun - { Parsetree.pcd_name = pcd_name; Parsetree.pcd_args = pcd_args; - Parsetree.pcd_res = pcd_res; Parsetree.pcd_loc = pcd_loc; - Parsetree.pcd_attributes = pcd_attributes } - -> - this#record "Ast_405.Parsetree.constructor_declaration" - [("pcd_name", (this#lift_Asttypes_loc this#string pcd_name)); - ("pcd_args", (this#lift_Parsetree_constructor_arguments pcd_args)); - ("pcd_res", - (this#lift_option this#lift_Parsetree_core_type pcd_res)); - ("pcd_loc", (this#lift_Location_t pcd_loc)); - ("pcd_attributes", - (this#lift_Parsetree_attributes pcd_attributes))] : Parsetree.constructor_declaration - -> - 'res) - method lift_Parsetree_constructor_arguments : - Parsetree.constructor_arguments -> 'res= - (function - | Parsetree.Pcstr_tuple x0 -> - this#constr "Ast_405.Parsetree.constructor_arguments" - ("Pcstr_tuple", - [this#list (List.map this#lift_Parsetree_core_type x0)]) - | Parsetree.Pcstr_record x0 -> - this#constr "Ast_405.Parsetree.constructor_arguments" - ("Pcstr_record", - [this#list (List.map this#lift_Parsetree_label_declaration x0)]) : - Parsetree.constructor_arguments -> 'res) - method lift_Parsetree_label_declaration : - Parsetree.label_declaration -> 'res= - (fun - { Parsetree.pld_name = pld_name; - Parsetree.pld_mutable = pld_mutable; - Parsetree.pld_type = pld_type; Parsetree.pld_loc = pld_loc; - Parsetree.pld_attributes = pld_attributes } - -> - this#record "Ast_405.Parsetree.label_declaration" - [("pld_name", (this#lift_Asttypes_loc this#string pld_name)); - ("pld_mutable", (this#lift_Asttypes_mutable_flag pld_mutable)); - ("pld_type", (this#lift_Parsetree_core_type pld_type)); - ("pld_loc", (this#lift_Location_t pld_loc)); - ("pld_attributes", - (this#lift_Parsetree_attributes pld_attributes))] : Parsetree.label_declaration - -> - 'res) - method lift_Asttypes_mutable_flag : Asttypes.mutable_flag -> 'res= - (function - | Asttypes.Immutable -> - this#constr "Ast_405.Asttypes.mutable_flag" ("Immutable", []) - | Asttypes.Mutable -> - this#constr "Ast_405.Asttypes.mutable_flag" ("Mutable", []) : Asttypes.mutable_flag - -> - 'res) - method lift_Asttypes_variance : Asttypes.variance -> 'res= - (function - | Asttypes.Covariant -> - this#constr "Ast_405.Asttypes.variance" ("Covariant", []) - | Asttypes.Contravariant -> - this#constr "Ast_405.Asttypes.variance" ("Contravariant", []) - | Asttypes.Invariant -> - this#constr "Ast_405.Asttypes.variance" ("Invariant", []) : Asttypes.variance - -> 'res) - method lift_Parsetree_value_description : - Parsetree.value_description -> 'res= - (fun - { Parsetree.pval_name = pval_name; Parsetree.pval_type = pval_type; - Parsetree.pval_prim = pval_prim; - Parsetree.pval_attributes = pval_attributes; - Parsetree.pval_loc = pval_loc } - -> - this#record "Ast_405.Parsetree.value_description" - [("pval_name", (this#lift_Asttypes_loc this#string pval_name)); - ("pval_type", (this#lift_Parsetree_core_type pval_type)); - ("pval_prim", (this#list (List.map this#string pval_prim))); - ("pval_attributes", - (this#lift_Parsetree_attributes pval_attributes)); - ("pval_loc", (this#lift_Location_t pval_loc))] : Parsetree.value_description - -> 'res) - method lift_Asttypes_arg_label : Asttypes.arg_label -> 'res= - (function - | Asttypes.Nolabel -> - this#constr "Ast_405.Asttypes.arg_label" ("Nolabel", []) - | Asttypes.Labelled x0 -> - this#constr "Ast_405.Asttypes.arg_label" ("Labelled", [this#string x0]) - | Asttypes.Optional x0 -> - this#constr "Ast_405.Asttypes.arg_label" ("Optional", [this#string x0]) : - Asttypes.arg_label -> 'res) - method lift_Asttypes_closed_flag : Asttypes.closed_flag -> 'res= - (function - | Asttypes.Closed -> - this#constr "Ast_405.Asttypes.closed_flag" ("Closed", []) - | Asttypes.Open -> this#constr "Ast_405.Asttypes.closed_flag" ("Open", []) : - Asttypes.closed_flag -> 'res) - method lift_Asttypes_label : Asttypes.label -> 'res= - (this#string : Asttypes.label -> 'res) - method lift_Asttypes_rec_flag : Asttypes.rec_flag -> 'res= - (function - | Asttypes.Nonrecursive -> - this#constr "Ast_405.Asttypes.rec_flag" ("Nonrecursive", []) - | Asttypes.Recursive -> - this#constr "Ast_405.Asttypes.rec_flag" ("Recursive", []) : Asttypes.rec_flag - -> 'res) - method lift_Parsetree_constant : Parsetree.constant -> 'res= - (function - | Parsetree.Pconst_integer (x0,x1) -> - this#constr "Ast_405.Parsetree.constant" - ("Pconst_integer", - [this#string x0; this#lift_option this#char x1]) - | Parsetree.Pconst_char x0 -> - this#constr "Ast_405.Parsetree.constant" ("Pconst_char", [this#char x0]) - | Parsetree.Pconst_string (x0,x1) -> - this#constr "Ast_405.Parsetree.constant" - ("Pconst_string", - [this#string x0; this#lift_option this#string x1]) - | Parsetree.Pconst_float (x0,x1) -> - this#constr "Ast_405.Parsetree.constant" - ("Pconst_float", - [this#string x0; this#lift_option this#char x1]) : Parsetree.constant - -> - 'res) - method lift_option : 'f0 . ('f0 -> 'res) -> 'f0 option -> 'res= fun (type - f0) -> - (fun f0 -> - function - | None -> this#constr "option" ("None", []) - | Some x0 -> this#constr "option" ("Some", [f0 x0]) : (f0 -> 'res) - -> - f0 option -> - 'res) - method lift_Longident_t : Longident.t -> 'res= - (function - | Longident.Lident x0 -> - this#constr "Ast_405.Longident.t" ("Lident", [this#string x0]) - | Longident.Ldot (x0,x1) -> - this#constr "Ast_405.Longident.t" - ("Ldot", [this#lift_Longident_t x0; this#string x1]) - | Longident.Lapply (x0,x1) -> - this#constr "Ast_405.Longident.t" - ("Lapply", [this#lift_Longident_t x0; this#lift_Longident_t x1]) : - Longident.t -> 'res) - method lift_Asttypes_loc : - 'f0 . ('f0 -> 'res) -> 'f0 Asttypes.loc -> 'res= fun (type f0) -> - (fun f0 -> - fun { Asttypes.txt = txt; Asttypes.loc = loc } -> - this#record "Ast_405.Asttypes.loc" - [("txt", (f0 txt)); ("loc", (this#lift_Location_t loc))] : - (f0 -> 'res) -> f0 Asttypes.loc -> 'res) - method lift_Location_t : Location.t -> 'res= - (fun - { Location.loc_start = loc_start; Location.loc_end = loc_end; - Location.loc_ghost = loc_ghost } - -> - this#record "Ast_405.Location.t" - [("loc_start", (this#lift_Lexing_position loc_start)); - ("loc_end", (this#lift_Lexing_position loc_end)); - ("loc_ghost", (this#lift_bool loc_ghost))] : Location.t -> 'res) - method lift_bool : bool -> 'res= - (function - | false -> this#constr "bool" ("false", []) - | true -> this#constr "bool" ("true", []) : bool -> 'res) - method lift_Lexing_position : Lexing.position -> 'res= - (fun - { Lexing.pos_fname = pos_fname; Lexing.pos_lnum = pos_lnum; - Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum } - -> - this#record "Ast_405.Lexing.position" - [("pos_fname", (this#string pos_fname)); - ("pos_lnum", (this#int pos_lnum)); - ("pos_bol", (this#int pos_bol)); - ("pos_cnum", (this#int pos_cnum))] : Lexing.position -> 'res) - end diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_402.ml b/vendor/ppx_tools_versioned/ast_mapper_class_402.ml deleted file mode 100644 index 4c8dda083..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_402.ml +++ /dev/null @@ -1,576 +0,0 @@ -open Ast_402 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree -open Asttypes -open Ast_helper - -let map_fst f (x, y) = (f x, y) -let map_snd f (x, y) = (x, f y) -let map_tuple f1 f2 (x, y) = (f1 x, f2 y) -let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) -let map_opt f = function None -> None | Some x -> Some (f x) - -let map_loc sub {loc; txt} = {loc = sub # location loc; txt} - -module T = struct - (* Type expressions for the core language *) - - let row_field sub = function - | Rtag (l, attrs, b, tl) -> - Rtag (l, sub # attributes attrs, b, List.map (sub # typ) tl) - | Rinherit t -> Rinherit (sub # typ t) - - let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = - let open Typ in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s - | Ptyp_arrow (lab, t1, t2) -> - arrow ~loc ~attrs lab (sub # typ t1) (sub # typ t2) - | Ptyp_tuple tyl -> tuple ~loc ~attrs (List.map (sub # typ) tyl) - | Ptyp_constr (lid, tl) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_object (l, o) -> - let f (s, a, t) = (s, sub # attributes a, sub # typ t) in - object_ ~loc ~attrs (List.map f l) o - | Ptyp_class (lid, tl) -> - class_ ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub # typ t) s - | Ptyp_variant (rl, b, ll) -> - variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs sl (sub # typ t) - | Ptyp_package (lid, l) -> - package ~loc ~attrs (map_loc sub lid) - (List.map (map_tuple (map_loc sub) (sub # typ)) l) - | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_type_declaration sub - {ptype_name; ptype_params; ptype_cstrs; - ptype_kind; - ptype_private; - ptype_manifest; - ptype_attributes; - ptype_loc} = - Type.mk (map_loc sub ptype_name) - ~params:(List.map (map_fst (sub # typ)) ptype_params) - ~priv:ptype_private - ~cstrs:(List.map (map_tuple3 (sub # typ) (sub # typ) (sub # location)) - ptype_cstrs) - ~kind:(sub # type_kind ptype_kind) - ?manifest:(map_opt (sub # typ) ptype_manifest) - ~loc:(sub # location ptype_loc) - ~attrs:(sub # attributes ptype_attributes) - - let map_type_kind sub = function - | Ptype_abstract -> Ptype_abstract - | Ptype_variant l -> - Ptype_variant (List.map (sub # constructor_declaration) l) - | Ptype_record l -> Ptype_record (List.map (sub # label_declaration) l) - | Ptype_open -> Ptype_open - - let map_type_extension sub - {ptyext_path; ptyext_params; - ptyext_constructors; - ptyext_private; - ptyext_attributes} = - Te.mk - (map_loc sub ptyext_path) - (List.map (sub # extension_constructor) ptyext_constructors) - ~params:(List.map (map_fst (sub # typ)) ptyext_params) - ~priv:ptyext_private - ~attrs:(sub # attributes ptyext_attributes) - - let map_extension_constructor_kind sub = function - Pext_decl(ctl, cto) -> - Pext_decl(List.map (sub # typ) ctl, map_opt (sub # typ) cto) - | Pext_rebind li -> - Pext_rebind (map_loc sub li) - - let map_extension_constructor sub - {pext_name; - pext_kind; - pext_loc; - pext_attributes} = - Te.constructor - (map_loc sub pext_name) - (map_extension_constructor_kind sub pext_kind) - ~loc:(sub # location pext_loc) - ~attrs:(sub # attributes pext_attributes) - - -end - -module CT = struct - (* Type expressions for the class language *) - - let map sub {pcty_loc = loc; pcty_desc = desc; pcty_attributes = attrs} = - let open Cty in - let loc = sub # location loc in - match desc with - | Pcty_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcty_signature x -> signature ~loc ~attrs (sub # class_signature x) - | Pcty_arrow (lab, t, ct) -> - arrow ~loc ~attrs lab (sub # typ t) (sub # class_type ct) - | Pcty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_field sub {pctf_desc = desc; pctf_loc = loc; pctf_attributes = attrs} - = - let open Ctf in - let loc = sub # location loc in - match desc with - | Pctf_inherit ct -> inherit_ ~loc ~attrs (sub # class_type ct) - | Pctf_val (s, m, v, t) -> val_ ~loc ~attrs s m v (sub # typ t) - | Pctf_method (s, p, v, t) -> method_ ~loc ~attrs s p v (sub # typ t) - | Pctf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pctf_attribute x -> attribute ~loc (sub # attribute x) - | Pctf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_signature sub {pcsig_self; pcsig_fields} = - Csig.mk - (sub # typ pcsig_self) - (List.map (sub # class_type_field) pcsig_fields) -end - -module MT = struct - (* Type expressions for the module language *) - - let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = - let open Mty in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) - | Pmty_alias s -> alias ~loc ~attrs (map_loc sub s) - | Pmty_signature sg -> signature ~loc ~attrs (sub # signature sg) - | Pmty_functor (s, mt1, mt2) -> - functor_ ~loc ~attrs (map_loc sub s) - (map_opt (sub # module_type) mt1) - (sub # module_type mt2) - | Pmty_with (mt, l) -> - with_ ~loc ~attrs (sub # module_type mt) - (List.map (sub # with_constraint) l) - | Pmty_typeof me -> typeof_ ~loc ~attrs (sub # module_expr me) - | Pmty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_with_constraint sub = function - | Pwith_type (lid, d) -> - Pwith_type (map_loc sub lid, sub # type_declaration d) - | Pwith_module (lid, lid2) -> - Pwith_module (map_loc sub lid, map_loc sub lid2) - | Pwith_typesubst d -> Pwith_typesubst (sub # type_declaration d) - | Pwith_modsubst (s, lid) -> - Pwith_modsubst (map_loc sub s, map_loc sub lid) - - let map_signature_item sub {psig_desc = desc; psig_loc = loc} = - let open Sig in - let loc = sub # location loc in - match desc with - | Psig_value vd -> value ~loc (sub # value_description vd) - | Psig_type l -> type_ ~loc (List.map (sub # type_declaration) l) - | Psig_typext te -> type_extension ~loc (sub # type_extension te) - | Psig_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Psig_module x -> module_ ~loc (sub # module_declaration x) - | Psig_recmodule l -> - rec_module ~loc (List.map (sub # module_declaration) l) - | Psig_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Psig_open od -> open_ ~loc (sub # open_description od) - | Psig_include x -> include_ ~loc (sub # include_description x) - | Psig_class l -> class_ ~loc (List.map (sub # class_description) l) - | Psig_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Psig_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Psig_attribute x -> attribute ~loc (sub # attribute x) -end - - -module M = struct - (* Value expressions for the module language *) - - let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = - let open Mod in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pmod_structure str -> structure ~loc ~attrs (sub # structure str) - | Pmod_functor (arg, arg_ty, body) -> - functor_ ~loc ~attrs (map_loc sub arg) - (map_opt (sub # module_type) arg_ty) - (sub # module_expr body) - | Pmod_apply (m1, m2) -> - apply ~loc ~attrs (sub # module_expr m1) (sub # module_expr m2) - | Pmod_constraint (m, mty) -> - constraint_ ~loc ~attrs (sub # module_expr m) (sub # module_type mty) - | Pmod_unpack e -> unpack ~loc ~attrs (sub # expr e) - | Pmod_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = - let open Str in - let loc = sub # location loc in - match desc with - | Pstr_eval (x, attrs) -> - eval ~loc ~attrs:(sub # attributes attrs) (sub # expr x) - | Pstr_value (r, vbs) -> value ~loc r (List.map (sub # value_binding) vbs) - | Pstr_primitive vd -> primitive ~loc (sub # value_description vd) - | Pstr_type l -> type_ ~loc (List.map (sub # type_declaration) l) - | Pstr_typext te -> type_extension ~loc (sub # type_extension te) - | Pstr_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Pstr_module x -> module_ ~loc (sub # module_binding x) - | Pstr_recmodule l -> rec_module ~loc (List.map (sub # module_binding) l) - | Pstr_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Pstr_open od -> open_ ~loc (sub # open_description od) - | Pstr_class l -> class_ ~loc (List.map (sub # class_declaration) l) - | Pstr_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Pstr_include x -> include_ ~loc (sub # include_declaration x) - | Pstr_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Pstr_attribute x -> attribute ~loc (sub # attribute x) -end - -module E = struct - (* Value expressions for the core language *) - - let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = - let open Exp in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pexp_constant x -> constant ~loc ~attrs x - | Pexp_let (r, vbs, e) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) (sub # expr e) - | Pexp_fun (lab, def, p, e) -> - fun_ ~loc ~attrs lab (map_opt (sub # expr) def) (sub # pat p) - (sub # expr e) - | Pexp_function pel -> function_ ~loc ~attrs (sub # cases pel) - | Pexp_apply (e, l) -> - apply ~loc ~attrs (sub # expr e) (List.map (map_snd (sub # expr)) l) - | Pexp_match (e, pel) -> match_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_try (e, pel) -> try_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_tuple el -> tuple ~loc ~attrs (List.map (sub # expr) el) - | Pexp_construct (lid, arg) -> - construct ~loc ~attrs (map_loc sub lid) (map_opt (sub # expr) arg) - | Pexp_variant (lab, eo) -> - variant ~loc ~attrs lab (map_opt (sub # expr) eo) - | Pexp_record (l, eo) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # expr)) l) - (map_opt (sub # expr) eo) - | Pexp_field (e, lid) -> field ~loc ~attrs (sub # expr e) (map_loc sub lid) - | Pexp_setfield (e1, lid, e2) -> - setfield ~loc ~attrs (sub # expr e1) (map_loc sub lid) (sub # expr e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub # expr) el) - | Pexp_ifthenelse (e1, e2, e3) -> - ifthenelse ~loc ~attrs (sub # expr e1) (sub # expr e2) - (map_opt (sub # expr) e3) - | Pexp_sequence (e1, e2) -> - sequence ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_while (e1, e2) -> while_ ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_for (p, e1, e2, d, e3) -> - for_ ~loc ~attrs (sub # pat p) (sub # expr e1) (sub # expr e2) d - (sub # expr e3) - | Pexp_coerce (e, t1, t2) -> - coerce ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t1) - (sub # typ t2) - | Pexp_constraint (e, t) -> - constraint_ ~loc ~attrs (sub # expr e) (sub # typ t) - | Pexp_send (e, s) -> send ~loc ~attrs (sub # expr e) s - | Pexp_new lid -> new_ ~loc ~attrs (map_loc sub lid) - | Pexp_setinstvar (s, e) -> - setinstvar ~loc ~attrs (map_loc sub s) (sub # expr e) - | Pexp_override sel -> - override ~loc ~attrs - (List.map (map_tuple (map_loc sub) (sub # expr)) sel) - | Pexp_letmodule (s, me, e) -> - letmodule ~loc ~attrs (map_loc sub s) (sub # module_expr me) - (sub # expr e) - | Pexp_assert e -> assert_ ~loc ~attrs (sub # expr e) - | Pexp_lazy e -> lazy_ ~loc ~attrs (sub # expr e) - | Pexp_poly (e, t) -> - poly ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t) - | Pexp_object cls -> object_ ~loc ~attrs (sub # class_structure cls) - | Pexp_newtype (s, e) -> newtype ~loc ~attrs s (sub # expr e) - | Pexp_pack me -> pack ~loc ~attrs (sub # module_expr me) - | Pexp_open (ovf, lid, e) -> - open_ ~loc ~attrs ovf (map_loc sub lid) (sub # expr e) - | Pexp_extension x -> extension ~loc ~attrs (sub # extension x) -end - -module P = struct - (* Patterns *) - - let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = - let open Pat in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ppat_any -> any ~loc ~attrs () - | Ppat_var s -> var ~loc ~attrs (map_loc sub s) - | Ppat_alias (p, s) -> alias ~loc ~attrs (sub # pat p) (map_loc sub s) - | Ppat_constant c -> constant ~loc ~attrs c - | Ppat_interval (c1, c2) -> interval ~loc ~attrs c1 c2 - | Ppat_tuple pl -> tuple ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_construct (l, p) -> - construct ~loc ~attrs (map_loc sub l) (map_opt (sub # pat) p) - | Ppat_variant (l, p) -> variant ~loc ~attrs l (map_opt (sub # pat) p) - | Ppat_record (lpl, cf) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # pat)) lpl) - cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub # pat p1) (sub # pat p2) - | Ppat_constraint (p, t) -> - constraint_ ~loc ~attrs (sub # pat p) (sub # typ t) - | Ppat_type s -> type_ ~loc ~attrs (map_loc sub s) - | Ppat_lazy p -> lazy_ ~loc ~attrs (sub # pat p) - | Ppat_unpack s -> unpack ~loc ~attrs (map_loc sub s) - | Ppat_exception p -> exception_ ~loc ~attrs (sub # pat p) - | Ppat_extension x -> extension ~loc ~attrs (sub # extension x) -end - -module CE = struct - (* Value expressions for the class language *) - - let map sub {pcl_loc = loc; pcl_desc = desc; pcl_attributes = attrs} = - let open Cl in - let loc = sub # location loc in - match desc with - | Pcl_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcl_structure s -> - structure ~loc ~attrs (sub # class_structure s) - | Pcl_fun (lab, e, p, ce) -> - fun_ ~loc ~attrs lab - (map_opt (sub # expr) e) - (sub # pat p) - (sub # class_expr ce) - | Pcl_apply (ce, l) -> - apply ~loc ~attrs (sub # class_expr ce) - (List.map (map_snd (sub # expr)) l) - | Pcl_let (r, vbs, ce) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) - (sub # class_expr ce) - | Pcl_constraint (ce, ct) -> - constraint_ ~loc ~attrs (sub # class_expr ce) (sub # class_type ct) - | Pcl_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_kind sub = function - | Cfk_concrete (o, e) -> Cfk_concrete (o, sub # expr e) - | Cfk_virtual t -> Cfk_virtual (sub # typ t) - - let map_field sub {pcf_desc = desc; pcf_loc = loc; pcf_attributes = attrs} = - let open Cf in - let loc = sub # location loc in - match desc with - | Pcf_inherit (o, ce, s) -> inherit_ ~loc ~attrs o (sub # class_expr ce) s - | Pcf_val (s, m, k) -> val_ ~loc ~attrs (map_loc sub s) m (map_kind sub k) - | Pcf_method (s, p, k) -> - method_ ~loc ~attrs (map_loc sub s) p (map_kind sub k) - | Pcf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pcf_initializer e -> initializer_ ~loc ~attrs (sub # expr e) - | Pcf_attribute x -> attribute ~loc (sub # attribute x) - | Pcf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure sub {pcstr_self; pcstr_fields} = - { - pcstr_self = sub # pat pcstr_self; - pcstr_fields = List.map (sub # class_field) pcstr_fields; - } - - let class_infos sub f {pci_virt; pci_params = pl; pci_name; pci_expr; - pci_loc; pci_attributes} = - Ci.mk - ~virt:pci_virt - ~params:(List.map (map_fst (sub # typ)) pl) - (map_loc sub pci_name) - (f pci_expr) - ~loc:(sub # location pci_loc) - ~attrs:(sub # attributes pci_attributes) -end - -(* Now, a generic AST mapper class, to be extended to cover all kinds - and cases of the OCaml grammar. The default behavior of the mapper - is the identity. *) - -class mapper = - object(this) - method structure l = List.map (this # structure_item) l - method structure_item si = M.map_structure_item this si - method module_expr = M.map this - - method signature l = List.map (this # signature_item) l - method signature_item si = MT.map_signature_item this si - method module_type = MT.map this - method with_constraint c = MT.map_with_constraint this c - - method class_declaration = CE.class_infos this (this # class_expr) - method class_expr = CE.map this - method class_field = CE.map_field this - method class_structure = CE.map_structure this - - method class_type = CT.map this - method class_type_field = CT.map_field this - method class_signature = CT.map_signature this - - method class_type_declaration = CE.class_infos this (this # class_type) - method class_description = CE.class_infos this (this # class_type) - - method type_declaration = T.map_type_declaration this - method type_kind = T.map_type_kind this - method typ = T.map this - - method type_extension = T.map_type_extension this - method extension_constructor = T.map_extension_constructor this - - method value_description {pval_name; pval_type; pval_prim; pval_loc; - pval_attributes} = - Val.mk - (map_loc this pval_name) - (this # typ pval_type) - ~attrs:(this # attributes pval_attributes) - ~loc:(this # location pval_loc) - ~prim:pval_prim - - method pat = P.map this - method expr = E.map this - - method module_declaration {pmd_name; pmd_type; pmd_attributes; pmd_loc} = - Md.mk - (map_loc this pmd_name) - (this # module_type pmd_type) - ~attrs:(this # attributes pmd_attributes) - ~loc:(this # location pmd_loc) - - method module_type_declaration {pmtd_name; pmtd_type; pmtd_attributes; pmtd_loc} = - Mtd.mk - (map_loc this pmtd_name) - ?typ:(map_opt (this # module_type) pmtd_type) - ~attrs:(this # attributes pmtd_attributes) - ~loc:(this # location pmtd_loc) - - method module_binding {pmb_name; pmb_expr; pmb_attributes; pmb_loc} = - Mb.mk (map_loc this pmb_name) (this # module_expr pmb_expr) - ~attrs:(this # attributes pmb_attributes) - ~loc:(this # location pmb_loc) - - method value_binding {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} = - Vb.mk - (this # pat pvb_pat) - (this # expr pvb_expr) - ~attrs:(this # attributes pvb_attributes) - ~loc:(this # location pvb_loc) - - - method constructor_declaration {pcd_name; pcd_args; pcd_res; pcd_loc; - pcd_attributes} = - Type.constructor - (map_loc this pcd_name) - ~args:(List.map (this # typ) pcd_args) - ?res:(map_opt (this # typ) pcd_res) - ~loc:(this # location pcd_loc) - ~attrs:(this # attributes pcd_attributes) - - method label_declaration {pld_name; pld_type; pld_loc; pld_mutable; - pld_attributes} = - Type.field - (map_loc this pld_name) - (this # typ pld_type) - ~mut:pld_mutable - ~loc:(this # location pld_loc) - ~attrs:(this # attributes pld_attributes) - - - method cases l = List.map (this # case) l - method case {pc_lhs; pc_guard; pc_rhs} = - { - pc_lhs = this # pat pc_lhs; - pc_guard = map_opt (this # expr) pc_guard; - pc_rhs = this # expr pc_rhs; - } - - method open_description - {popen_lid; popen_override; popen_attributes; popen_loc} = - Opn.mk (map_loc this popen_lid) - ~override:popen_override - ~loc:(this # location popen_loc) - ~attrs:(this # attributes popen_attributes) - - method include_description - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_type pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method include_declaration - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_expr pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method location l = l - - method extension (s, e) = (map_loc this s, this # payload e) - method attribute (s, e) = (map_loc this s, this # payload e) - method attributes l = List.map (this # attribute) l - method payload = function - | PStr x -> PStr (this # structure x) - | PTyp x -> PTyp (this # typ x) - | PPat (x, g) -> PPat (this # pat x, map_opt (this # expr) g) - end - - -let to_mapper this = - let open Ast_mapper in - { - attribute = (fun _ -> this # attribute); - attributes = (fun _ -> this # attributes); - case = (fun _ -> this # case); - cases = (fun _ -> this # cases); - class_declaration = (fun _ -> this # class_declaration); - class_description = (fun _ -> this # class_description); - class_expr = (fun _ -> this # class_expr); - class_field = (fun _ -> this # class_field); - class_signature = (fun _ -> this # class_signature); - class_structure = (fun _ -> this # class_structure); - class_type = (fun _ -> this # class_type); - class_type_declaration = (fun _ -> this # class_type_declaration); - class_type_field = (fun _ -> this # class_type_field); - constructor_declaration = (fun _ -> this # constructor_declaration); - expr = (fun _ -> this # expr); - extension = (fun _ -> this # extension); - extension_constructor = (fun _ -> this # extension_constructor); - include_declaration = (fun _ -> this # include_declaration); - include_description = (fun _ -> this # include_description); - label_declaration = (fun _ -> this # label_declaration); - location = (fun _ -> this # location); - module_binding = (fun _ -> this # module_binding); - module_declaration = (fun _ -> this # module_declaration); - module_expr = (fun _ -> this # module_expr); - module_type = (fun _ -> this # module_type); - module_type_declaration = (fun _ -> this # module_type_declaration); - open_description = (fun _ -> this # open_description); - pat = (fun _ -> this # pat); - payload = (fun _ -> this # payload); - signature = (fun _ -> this # signature); - signature_item = (fun _ -> this # signature_item); - structure = (fun _ -> this # structure); - structure_item = (fun _ -> this # structure_item); - typ = (fun _ -> this # typ); - type_declaration = (fun _ -> this # type_declaration); - type_extension = (fun _ -> this # type_extension); - type_kind = (fun _ -> this # type_kind); - value_binding = (fun _ -> this # value_binding); - value_description = (fun _ -> this # value_description); - with_constraint = (fun _ -> this # with_constraint); - } diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_402.mli b/vendor/ppx_tools_versioned/ast_mapper_class_402.mli deleted file mode 100644 index 3fbaa22f1..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_402.mli +++ /dev/null @@ -1,57 +0,0 @@ -open Ast_402 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree - -class mapper: - object - method attribute: attribute -> attribute - method attributes: attribute list -> attribute list - method case: case -> case - method cases: case list -> case list - method class_declaration: class_declaration -> class_declaration - method class_description: class_description -> class_description - method class_expr: class_expr -> class_expr - method class_field: class_field -> class_field - method class_signature: class_signature -> class_signature - method class_structure: class_structure -> class_structure - method class_type: class_type -> class_type - method class_type_declaration: class_type_declaration -> class_type_declaration - method class_type_field: class_type_field -> class_type_field - method constructor_declaration: constructor_declaration -> constructor_declaration - method expr: expression -> expression - method extension: extension -> extension - method extension_constructor: extension_constructor -> extension_constructor - method include_declaration: include_declaration -> include_declaration - method include_description: include_description -> include_description - method label_declaration: label_declaration -> label_declaration - method location: Location.t -> Location.t - method module_binding: module_binding -> module_binding - method module_declaration: module_declaration -> module_declaration - method module_expr: module_expr -> module_expr - method module_type: module_type -> module_type - method module_type_declaration: module_type_declaration -> module_type_declaration - method open_description: open_description -> open_description - method pat: pattern -> pattern - method payload: payload -> payload - method signature: signature -> signature - method signature_item: signature_item -> signature_item - method structure: structure -> structure - method structure_item: structure_item -> structure_item - method typ: core_type -> core_type - method type_declaration: type_declaration -> type_declaration - method type_extension: type_extension -> type_extension - method type_kind: type_kind -> type_kind - method value_binding: value_binding -> value_binding - method value_description: value_description -> value_description - method with_constraint: with_constraint -> with_constraint - end - -val to_mapper: #mapper -> Ast_mapper.mapper -(** The resulting mapper is "closed", i.e. methods ignore - their first argument. *) diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_403.ml b/vendor/ppx_tools_versioned/ast_mapper_class_403.ml deleted file mode 100644 index 0d7697738..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_403.ml +++ /dev/null @@ -1,581 +0,0 @@ -open Ast_403 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree -open Asttypes -open Ast_helper - -let map_fst f (x, y) = (f x, y) -let map_snd f (x, y) = (x, f y) -let map_tuple f1 f2 (x, y) = (f1 x, f2 y) -let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) -let map_opt f = function None -> None | Some x -> Some (f x) - -let map_loc sub {loc; txt} = {loc = sub # location loc; txt} - -module T = struct - (* Type expressions for the core language *) - - let row_field sub = function - | Rtag (l, attrs, b, tl) -> - Rtag (l, sub # attributes attrs, b, List.map (sub # typ) tl) - | Rinherit t -> Rinherit (sub # typ t) - - let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = - let open Typ in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s - | Ptyp_arrow (lab, t1, t2) -> - arrow ~loc ~attrs lab (sub # typ t1) (sub # typ t2) - | Ptyp_tuple tyl -> tuple ~loc ~attrs (List.map (sub # typ) tyl) - | Ptyp_constr (lid, tl) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_object (l, o) -> - let f (s, a, t) = (s, sub # attributes a, sub # typ t) in - object_ ~loc ~attrs (List.map f l) o - | Ptyp_class (lid, tl) -> - class_ ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub # typ t) s - | Ptyp_variant (rl, b, ll) -> - variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs sl (sub # typ t) - | Ptyp_package (lid, l) -> - package ~loc ~attrs (map_loc sub lid) - (List.map (map_tuple (map_loc sub) (sub # typ)) l) - | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_type_declaration sub - {ptype_name; ptype_params; ptype_cstrs; - ptype_kind; - ptype_private; - ptype_manifest; - ptype_attributes; - ptype_loc} = - Type.mk (map_loc sub ptype_name) - ~params:(List.map (map_fst (sub # typ)) ptype_params) - ~priv:ptype_private - ~cstrs:(List.map (map_tuple3 (sub # typ) (sub # typ) (sub # location)) - ptype_cstrs) - ~kind:(sub # type_kind ptype_kind) - ?manifest:(map_opt (sub # typ) ptype_manifest) - ~loc:(sub # location ptype_loc) - ~attrs:(sub # attributes ptype_attributes) - - let map_type_kind sub = function - | Ptype_abstract -> Ptype_abstract - | Ptype_variant l -> - Ptype_variant (List.map (sub # constructor_declaration) l) - | Ptype_record l -> Ptype_record (List.map (sub # label_declaration) l) - | Ptype_open -> Ptype_open - - let map_type_extension sub - {ptyext_path; ptyext_params; - ptyext_constructors; - ptyext_private; - ptyext_attributes} = - Te.mk - (map_loc sub ptyext_path) - (List.map (sub # extension_constructor) ptyext_constructors) - ~params:(List.map (map_fst (sub # typ)) ptyext_params) - ~priv:ptyext_private - ~attrs:(sub # attributes ptyext_attributes) - - let map_extension_constructor_kind sub = function - Pext_decl(ctl, cto) -> - Pext_decl(sub # constructor_arguments ctl, map_opt (sub # typ) cto) - | Pext_rebind li -> - Pext_rebind (map_loc sub li) - - let map_extension_constructor sub - {pext_name; - pext_kind; - pext_loc; - pext_attributes} = - Te.constructor - (map_loc sub pext_name) - (map_extension_constructor_kind sub pext_kind) - ~loc:(sub # location pext_loc) - ~attrs:(sub # attributes pext_attributes) - - -end - -module CT = struct - (* Type expressions for the class language *) - - let map sub {pcty_loc = loc; pcty_desc = desc; pcty_attributes = attrs} = - let open Cty in - let loc = sub # location loc in - match desc with - | Pcty_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcty_signature x -> signature ~loc ~attrs (sub # class_signature x) - | Pcty_arrow (lab, t, ct) -> - arrow ~loc ~attrs lab (sub # typ t) (sub # class_type ct) - | Pcty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_field sub {pctf_desc = desc; pctf_loc = loc; pctf_attributes = attrs} - = - let open Ctf in - let loc = sub # location loc in - match desc with - | Pctf_inherit ct -> inherit_ ~loc ~attrs (sub # class_type ct) - | Pctf_val (s, m, v, t) -> val_ ~loc ~attrs s m v (sub # typ t) - | Pctf_method (s, p, v, t) -> method_ ~loc ~attrs s p v (sub # typ t) - | Pctf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pctf_attribute x -> attribute ~loc (sub # attribute x) - | Pctf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_signature sub {pcsig_self; pcsig_fields} = - Csig.mk - (sub # typ pcsig_self) - (List.map (sub # class_type_field) pcsig_fields) -end - -module MT = struct - (* Type expressions for the module language *) - - let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = - let open Mty in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) - | Pmty_alias s -> alias ~loc ~attrs (map_loc sub s) - | Pmty_signature sg -> signature ~loc ~attrs (sub # signature sg) - | Pmty_functor (s, mt1, mt2) -> - functor_ ~loc ~attrs (map_loc sub s) - (map_opt (sub # module_type) mt1) - (sub # module_type mt2) - | Pmty_with (mt, l) -> - with_ ~loc ~attrs (sub # module_type mt) - (List.map (sub # with_constraint) l) - | Pmty_typeof me -> typeof_ ~loc ~attrs (sub # module_expr me) - | Pmty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_with_constraint sub = function - | Pwith_type (lid, d) -> - Pwith_type (map_loc sub lid, sub # type_declaration d) - | Pwith_module (lid, lid2) -> - Pwith_module (map_loc sub lid, map_loc sub lid2) - | Pwith_typesubst d -> Pwith_typesubst (sub # type_declaration d) - | Pwith_modsubst (s, lid) -> - Pwith_modsubst (map_loc sub s, map_loc sub lid) - - let map_signature_item sub {psig_desc = desc; psig_loc = loc} = - let open Sig in - let loc = sub # location loc in - match desc with - | Psig_value vd -> value ~loc (sub # value_description vd) - | Psig_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Psig_typext te -> type_extension ~loc (sub # type_extension te) - | Psig_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Psig_module x -> module_ ~loc (sub # module_declaration x) - | Psig_recmodule l -> - rec_module ~loc (List.map (sub # module_declaration) l) - | Psig_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Psig_open od -> open_ ~loc (sub # open_description od) - | Psig_include x -> include_ ~loc (sub # include_description x) - | Psig_class l -> class_ ~loc (List.map (sub # class_description) l) - | Psig_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Psig_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Psig_attribute x -> attribute ~loc (sub # attribute x) -end - - -module M = struct - (* Value expressions for the module language *) - - let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = - let open Mod in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pmod_structure str -> structure ~loc ~attrs (sub # structure str) - | Pmod_functor (arg, arg_ty, body) -> - functor_ ~loc ~attrs (map_loc sub arg) - (map_opt (sub # module_type) arg_ty) - (sub # module_expr body) - | Pmod_apply (m1, m2) -> - apply ~loc ~attrs (sub # module_expr m1) (sub # module_expr m2) - | Pmod_constraint (m, mty) -> - constraint_ ~loc ~attrs (sub # module_expr m) (sub # module_type mty) - | Pmod_unpack e -> unpack ~loc ~attrs (sub # expr e) - | Pmod_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = - let open Str in - let loc = sub # location loc in - match desc with - | Pstr_eval (x, attrs) -> - eval ~loc ~attrs:(sub # attributes attrs) (sub # expr x) - | Pstr_value (r, vbs) -> value ~loc r (List.map (sub # value_binding) vbs) - | Pstr_primitive vd -> primitive ~loc (sub # value_description vd) - | Pstr_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Pstr_typext te -> type_extension ~loc (sub # type_extension te) - | Pstr_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Pstr_module x -> module_ ~loc (sub # module_binding x) - | Pstr_recmodule l -> rec_module ~loc (List.map (sub # module_binding) l) - | Pstr_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Pstr_open od -> open_ ~loc (sub # open_description od) - | Pstr_class l -> class_ ~loc (List.map (sub # class_declaration) l) - | Pstr_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Pstr_include x -> include_ ~loc (sub # include_declaration x) - | Pstr_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Pstr_attribute x -> attribute ~loc (sub # attribute x) -end - -module E = struct - (* Value expressions for the core language *) - - let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = - let open Exp in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pexp_constant x -> constant ~loc ~attrs x - | Pexp_let (r, vbs, e) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) (sub # expr e) - | Pexp_fun (lab, def, p, e) -> - fun_ ~loc ~attrs lab (map_opt (sub # expr) def) (sub # pat p) - (sub # expr e) - | Pexp_function pel -> function_ ~loc ~attrs (sub # cases pel) - | Pexp_apply (e, l) -> - apply ~loc ~attrs (sub # expr e) (List.map (map_snd (sub # expr)) l) - | Pexp_match (e, pel) -> match_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_try (e, pel) -> try_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_tuple el -> tuple ~loc ~attrs (List.map (sub # expr) el) - | Pexp_construct (lid, arg) -> - construct ~loc ~attrs (map_loc sub lid) (map_opt (sub # expr) arg) - | Pexp_variant (lab, eo) -> - variant ~loc ~attrs lab (map_opt (sub # expr) eo) - | Pexp_record (l, eo) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # expr)) l) - (map_opt (sub # expr) eo) - | Pexp_field (e, lid) -> field ~loc ~attrs (sub # expr e) (map_loc sub lid) - | Pexp_setfield (e1, lid, e2) -> - setfield ~loc ~attrs (sub # expr e1) (map_loc sub lid) (sub # expr e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub # expr) el) - | Pexp_ifthenelse (e1, e2, e3) -> - ifthenelse ~loc ~attrs (sub # expr e1) (sub # expr e2) - (map_opt (sub # expr) e3) - | Pexp_sequence (e1, e2) -> - sequence ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_while (e1, e2) -> while_ ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_for (p, e1, e2, d, e3) -> - for_ ~loc ~attrs (sub # pat p) (sub # expr e1) (sub # expr e2) d - (sub # expr e3) - | Pexp_coerce (e, t1, t2) -> - coerce ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t1) - (sub # typ t2) - | Pexp_constraint (e, t) -> - constraint_ ~loc ~attrs (sub # expr e) (sub # typ t) - | Pexp_send (e, s) -> send ~loc ~attrs (sub # expr e) s - | Pexp_new lid -> new_ ~loc ~attrs (map_loc sub lid) - | Pexp_setinstvar (s, e) -> - setinstvar ~loc ~attrs (map_loc sub s) (sub # expr e) - | Pexp_override sel -> - override ~loc ~attrs - (List.map (map_tuple (map_loc sub) (sub # expr)) sel) - | Pexp_letmodule (s, me, e) -> - letmodule ~loc ~attrs (map_loc sub s) (sub # module_expr me) - (sub # expr e) - | Pexp_assert e -> assert_ ~loc ~attrs (sub # expr e) - | Pexp_lazy e -> lazy_ ~loc ~attrs (sub # expr e) - | Pexp_poly (e, t) -> - poly ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t) - | Pexp_object cls -> object_ ~loc ~attrs (sub # class_structure cls) - | Pexp_newtype (s, e) -> newtype ~loc ~attrs s (sub # expr e) - | Pexp_pack me -> pack ~loc ~attrs (sub # module_expr me) - | Pexp_open (ovf, lid, e) -> - open_ ~loc ~attrs ovf (map_loc sub lid) (sub # expr e) - | Pexp_extension x -> extension ~loc ~attrs (sub # extension x) - | Pexp_unreachable -> unreachable ~loc ~attrs () -end - -module P = struct - (* Patterns *) - - let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = - let open Pat in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ppat_any -> any ~loc ~attrs () - | Ppat_var s -> var ~loc ~attrs (map_loc sub s) - | Ppat_alias (p, s) -> alias ~loc ~attrs (sub # pat p) (map_loc sub s) - | Ppat_constant c -> constant ~loc ~attrs c - | Ppat_interval (c1, c2) -> interval ~loc ~attrs c1 c2 - | Ppat_tuple pl -> tuple ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_construct (l, p) -> - construct ~loc ~attrs (map_loc sub l) (map_opt (sub # pat) p) - | Ppat_variant (l, p) -> variant ~loc ~attrs l (map_opt (sub # pat) p) - | Ppat_record (lpl, cf) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # pat)) lpl) - cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub # pat p1) (sub # pat p2) - | Ppat_constraint (p, t) -> - constraint_ ~loc ~attrs (sub # pat p) (sub # typ t) - | Ppat_type s -> type_ ~loc ~attrs (map_loc sub s) - | Ppat_lazy p -> lazy_ ~loc ~attrs (sub # pat p) - | Ppat_unpack s -> unpack ~loc ~attrs (map_loc sub s) - | Ppat_exception p -> exception_ ~loc ~attrs (sub # pat p) - | Ppat_extension x -> extension ~loc ~attrs (sub # extension x) -end - -module CE = struct - (* Value expressions for the class language *) - - let map sub {pcl_loc = loc; pcl_desc = desc; pcl_attributes = attrs} = - let open Cl in - let loc = sub # location loc in - match desc with - | Pcl_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcl_structure s -> - structure ~loc ~attrs (sub # class_structure s) - | Pcl_fun (lab, e, p, ce) -> - fun_ ~loc ~attrs lab - (map_opt (sub # expr) e) - (sub # pat p) - (sub # class_expr ce) - | Pcl_apply (ce, l) -> - apply ~loc ~attrs (sub # class_expr ce) - (List.map (map_snd (sub # expr)) l) - | Pcl_let (r, vbs, ce) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) - (sub # class_expr ce) - | Pcl_constraint (ce, ct) -> - constraint_ ~loc ~attrs (sub # class_expr ce) (sub # class_type ct) - | Pcl_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_kind sub = function - | Cfk_concrete (o, e) -> Cfk_concrete (o, sub # expr e) - | Cfk_virtual t -> Cfk_virtual (sub # typ t) - - let map_field sub {pcf_desc = desc; pcf_loc = loc; pcf_attributes = attrs} = - let open Cf in - let loc = sub # location loc in - match desc with - | Pcf_inherit (o, ce, s) -> inherit_ ~loc ~attrs o (sub # class_expr ce) s - | Pcf_val (s, m, k) -> val_ ~loc ~attrs (map_loc sub s) m (map_kind sub k) - | Pcf_method (s, p, k) -> - method_ ~loc ~attrs (map_loc sub s) p (map_kind sub k) - | Pcf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pcf_initializer e -> initializer_ ~loc ~attrs (sub # expr e) - | Pcf_attribute x -> attribute ~loc (sub # attribute x) - | Pcf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure sub {pcstr_self; pcstr_fields} = - { - pcstr_self = sub # pat pcstr_self; - pcstr_fields = List.map (sub # class_field) pcstr_fields; - } - - let class_infos sub f {pci_virt; pci_params = pl; pci_name; pci_expr; - pci_loc; pci_attributes} = - Ci.mk - ~virt:pci_virt - ~params:(List.map (map_fst (sub # typ)) pl) - (map_loc sub pci_name) - (f pci_expr) - ~loc:(sub # location pci_loc) - ~attrs:(sub # attributes pci_attributes) -end - -(* Now, a generic AST mapper class, to be extended to cover all kinds - and cases of the OCaml grammar. The default behavior of the mapper - is the identity. *) - -class mapper = - object(this) - method structure l = List.map (this # structure_item) l - method structure_item si = M.map_structure_item this si - method module_expr = M.map this - - method signature l = List.map (this # signature_item) l - method signature_item si = MT.map_signature_item this si - method module_type = MT.map this - method with_constraint c = MT.map_with_constraint this c - - method class_declaration = CE.class_infos this (this # class_expr) - method class_expr = CE.map this - method class_field = CE.map_field this - method class_structure = CE.map_structure this - - method class_type = CT.map this - method class_type_field = CT.map_field this - method class_signature = CT.map_signature this - - method class_type_declaration = CE.class_infos this (this # class_type) - method class_description = CE.class_infos this (this # class_type) - - method type_declaration = T.map_type_declaration this - method type_kind = T.map_type_kind this - method typ = T.map this - - method type_extension = T.map_type_extension this - method extension_constructor = T.map_extension_constructor this - - method value_description {pval_name; pval_type; pval_prim; pval_loc; - pval_attributes} = - Val.mk - (map_loc this pval_name) - (this # typ pval_type) - ~attrs:(this # attributes pval_attributes) - ~loc:(this # location pval_loc) - ~prim:pval_prim - - method pat = P.map this - method expr = E.map this - - method module_declaration {pmd_name; pmd_type; pmd_attributes; pmd_loc} = - Md.mk - (map_loc this pmd_name) - (this # module_type pmd_type) - ~attrs:(this # attributes pmd_attributes) - ~loc:(this # location pmd_loc) - - method module_type_declaration {pmtd_name; pmtd_type; pmtd_attributes; pmtd_loc} = - Mtd.mk - (map_loc this pmtd_name) - ?typ:(map_opt (this # module_type) pmtd_type) - ~attrs:(this # attributes pmtd_attributes) - ~loc:(this # location pmtd_loc) - - method module_binding {pmb_name; pmb_expr; pmb_attributes; pmb_loc} = - Mb.mk (map_loc this pmb_name) (this # module_expr pmb_expr) - ~attrs:(this # attributes pmb_attributes) - ~loc:(this # location pmb_loc) - - method value_binding {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} = - Vb.mk - (this # pat pvb_pat) - (this # expr pvb_expr) - ~attrs:(this # attributes pvb_attributes) - ~loc:(this # location pvb_loc) - - method constructor_arguments = function - | Pcstr_tuple (tys) -> Pcstr_tuple (List.map (this # typ) tys) - | Pcstr_record (ls) -> Pcstr_record (List.map (this # label_declaration) ls) - - method constructor_declaration {pcd_name; pcd_args; pcd_res; pcd_loc; - pcd_attributes} = - Type.constructor - (map_loc this pcd_name) - ~args:(this # constructor_arguments pcd_args) - ?res:(map_opt (this # typ) pcd_res) - ~loc:(this # location pcd_loc) - ~attrs:(this # attributes pcd_attributes) - - method label_declaration {pld_name; pld_type; pld_loc; pld_mutable; - pld_attributes} = - Type.field - (map_loc this pld_name) - (this # typ pld_type) - ~mut:pld_mutable - ~loc:(this # location pld_loc) - ~attrs:(this # attributes pld_attributes) - - - method cases l = List.map (this # case) l - method case {pc_lhs; pc_guard; pc_rhs} = - { - pc_lhs = this # pat pc_lhs; - pc_guard = map_opt (this # expr) pc_guard; - pc_rhs = this # expr pc_rhs; - } - - method open_description - {popen_lid; popen_override; popen_attributes; popen_loc} = - Opn.mk (map_loc this popen_lid) - ~override:popen_override - ~loc:(this # location popen_loc) - ~attrs:(this # attributes popen_attributes) - - method include_description - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_type pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method include_declaration - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_expr pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method location l = l - - method extension (s, e) = (map_loc this s, this # payload e) - method attribute (s, e) = (map_loc this s, this # payload e) - method attributes l = List.map (this # attribute) l - method payload = function - | PStr x -> PStr (this # structure x) - | PTyp x -> PTyp (this # typ x) - | PPat (x, g) -> PPat (this # pat x, map_opt (this # expr) g) - | PSig x -> PSig (this # signature x) - end - - -let to_mapper this = - let open Ast_mapper in - { - attribute = (fun _ -> this # attribute); - attributes = (fun _ -> this # attributes); - case = (fun _ -> this # case); - cases = (fun _ -> this # cases); - class_declaration = (fun _ -> this # class_declaration); - class_description = (fun _ -> this # class_description); - class_expr = (fun _ -> this # class_expr); - class_field = (fun _ -> this # class_field); - class_signature = (fun _ -> this # class_signature); - class_structure = (fun _ -> this # class_structure); - class_type = (fun _ -> this # class_type); - class_type_declaration = (fun _ -> this # class_type_declaration); - class_type_field = (fun _ -> this # class_type_field); - constructor_declaration = (fun _ -> this # constructor_declaration); - expr = (fun _ -> this # expr); - extension = (fun _ -> this # extension); - extension_constructor = (fun _ -> this # extension_constructor); - include_declaration = (fun _ -> this # include_declaration); - include_description = (fun _ -> this # include_description); - label_declaration = (fun _ -> this # label_declaration); - location = (fun _ -> this # location); - module_binding = (fun _ -> this # module_binding); - module_declaration = (fun _ -> this # module_declaration); - module_expr = (fun _ -> this # module_expr); - module_type = (fun _ -> this # module_type); - module_type_declaration = (fun _ -> this # module_type_declaration); - open_description = (fun _ -> this # open_description); - pat = (fun _ -> this # pat); - payload = (fun _ -> this # payload); - signature = (fun _ -> this # signature); - signature_item = (fun _ -> this # signature_item); - structure = (fun _ -> this # structure); - structure_item = (fun _ -> this # structure_item); - typ = (fun _ -> this # typ); - type_declaration = (fun _ -> this # type_declaration); - type_extension = (fun _ -> this # type_extension); - type_kind = (fun _ -> this # type_kind); - value_binding = (fun _ -> this # value_binding); - value_description = (fun _ -> this # value_description); - with_constraint = (fun _ -> this # with_constraint); - } diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_403.mli b/vendor/ppx_tools_versioned/ast_mapper_class_403.mli deleted file mode 100644 index 9672290c6..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_403.mli +++ /dev/null @@ -1,58 +0,0 @@ -open Ast_403 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree - -class mapper: - object - method attribute: attribute -> attribute - method attributes: attribute list -> attribute list - method case: case -> case - method cases: case list -> case list - method class_declaration: class_declaration -> class_declaration - method class_description: class_description -> class_description - method class_expr: class_expr -> class_expr - method class_field: class_field -> class_field - method class_signature: class_signature -> class_signature - method class_structure: class_structure -> class_structure - method class_type: class_type -> class_type - method class_type_declaration: class_type_declaration -> class_type_declaration - method class_type_field: class_type_field -> class_type_field - method constructor_arguments: constructor_arguments -> constructor_arguments - method constructor_declaration: constructor_declaration -> constructor_declaration - method expr: expression -> expression - method extension: extension -> extension - method extension_constructor: extension_constructor -> extension_constructor - method include_declaration: include_declaration -> include_declaration - method include_description: include_description -> include_description - method label_declaration: label_declaration -> label_declaration - method location: Location.t -> Location.t - method module_binding: module_binding -> module_binding - method module_declaration: module_declaration -> module_declaration - method module_expr: module_expr -> module_expr - method module_type: module_type -> module_type - method module_type_declaration: module_type_declaration -> module_type_declaration - method open_description: open_description -> open_description - method pat: pattern -> pattern - method payload: payload -> payload - method signature: signature -> signature - method signature_item: signature_item -> signature_item - method structure: structure -> structure - method structure_item: structure_item -> structure_item - method typ: core_type -> core_type - method type_declaration: type_declaration -> type_declaration - method type_extension: type_extension -> type_extension - method type_kind: type_kind -> type_kind - method value_binding: value_binding -> value_binding - method value_description: value_description -> value_description - method with_constraint: with_constraint -> with_constraint - end - -val to_mapper: #mapper -> Ast_mapper.mapper -(** The resulting mapper is "closed", i.e. methods ignore - their first argument. *) diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_404.ml b/vendor/ppx_tools_versioned/ast_mapper_class_404.ml deleted file mode 100644 index 3d0ab1828..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_404.ml +++ /dev/null @@ -1,586 +0,0 @@ -open Ast_404 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree -open Asttypes -open Ast_helper - -let map_fst f (x, y) = (f x, y) -let map_snd f (x, y) = (x, f y) -let map_tuple f1 f2 (x, y) = (f1 x, f2 y) -let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) -let map_opt f = function None -> None | Some x -> Some (f x) - -let map_loc sub {loc; txt} = {loc = sub # location loc; txt} - -module T = struct - (* Type expressions for the core language *) - - let row_field sub = function - | Rtag (l, attrs, b, tl) -> - Rtag (l, sub # attributes attrs, b, List.map (sub # typ) tl) - | Rinherit t -> Rinherit (sub # typ t) - - let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = - let open Typ in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s - | Ptyp_arrow (lab, t1, t2) -> - arrow ~loc ~attrs lab (sub # typ t1) (sub # typ t2) - | Ptyp_tuple tyl -> tuple ~loc ~attrs (List.map (sub # typ) tyl) - | Ptyp_constr (lid, tl) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_object (l, o) -> - let f (s, a, t) = (s, sub # attributes a, sub # typ t) in - object_ ~loc ~attrs (List.map f l) o - | Ptyp_class (lid, tl) -> - class_ ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub # typ t) s - | Ptyp_variant (rl, b, ll) -> - variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs sl (sub # typ t) - | Ptyp_package (lid, l) -> - package ~loc ~attrs (map_loc sub lid) - (List.map (map_tuple (map_loc sub) (sub # typ)) l) - | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_type_declaration sub - {ptype_name; ptype_params; ptype_cstrs; - ptype_kind; - ptype_private; - ptype_manifest; - ptype_attributes; - ptype_loc} = - Type.mk (map_loc sub ptype_name) - ~params:(List.map (map_fst (sub # typ)) ptype_params) - ~priv:ptype_private - ~cstrs:(List.map (map_tuple3 (sub # typ) (sub # typ) (sub # location)) - ptype_cstrs) - ~kind:(sub # type_kind ptype_kind) - ?manifest:(map_opt (sub # typ) ptype_manifest) - ~loc:(sub # location ptype_loc) - ~attrs:(sub # attributes ptype_attributes) - - let map_type_kind sub = function - | Ptype_abstract -> Ptype_abstract - | Ptype_variant l -> - Ptype_variant (List.map (sub # constructor_declaration) l) - | Ptype_record l -> Ptype_record (List.map (sub # label_declaration) l) - | Ptype_open -> Ptype_open - - let map_type_extension sub - {ptyext_path; ptyext_params; - ptyext_constructors; - ptyext_private; - ptyext_attributes} = - Te.mk - (map_loc sub ptyext_path) - (List.map (sub # extension_constructor) ptyext_constructors) - ~params:(List.map (map_fst (sub # typ)) ptyext_params) - ~priv:ptyext_private - ~attrs:(sub # attributes ptyext_attributes) - - let map_extension_constructor_kind sub = function - Pext_decl(ctl, cto) -> - Pext_decl(sub # constructor_arguments ctl, map_opt (sub # typ) cto) - | Pext_rebind li -> - Pext_rebind (map_loc sub li) - - let map_extension_constructor sub - {pext_name; - pext_kind; - pext_loc; - pext_attributes} = - Te.constructor - (map_loc sub pext_name) - (map_extension_constructor_kind sub pext_kind) - ~loc:(sub # location pext_loc) - ~attrs:(sub # attributes pext_attributes) - - -end - -module CT = struct - (* Type expressions for the class language *) - - let map sub {pcty_loc = loc; pcty_desc = desc; pcty_attributes = attrs} = - let open Cty in - let loc = sub # location loc in - match desc with - | Pcty_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcty_signature x -> signature ~loc ~attrs (sub # class_signature x) - | Pcty_arrow (lab, t, ct) -> - arrow ~loc ~attrs lab (sub # typ t) (sub # class_type ct) - | Pcty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_field sub {pctf_desc = desc; pctf_loc = loc; pctf_attributes = attrs} - = - let open Ctf in - let loc = sub # location loc in - match desc with - | Pctf_inherit ct -> inherit_ ~loc ~attrs (sub # class_type ct) - | Pctf_val (s, m, v, t) -> val_ ~loc ~attrs s m v (sub # typ t) - | Pctf_method (s, p, v, t) -> method_ ~loc ~attrs s p v (sub # typ t) - | Pctf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pctf_attribute x -> attribute ~loc (sub # attribute x) - | Pctf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_signature sub {pcsig_self; pcsig_fields} = - Csig.mk - (sub # typ pcsig_self) - (List.map (sub # class_type_field) pcsig_fields) -end - -module MT = struct - (* Type expressions for the module language *) - - let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = - let open Mty in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) - | Pmty_alias s -> alias ~loc ~attrs (map_loc sub s) - | Pmty_signature sg -> signature ~loc ~attrs (sub # signature sg) - | Pmty_functor (s, mt1, mt2) -> - functor_ ~loc ~attrs (map_loc sub s) - (map_opt (sub # module_type) mt1) - (sub # module_type mt2) - | Pmty_with (mt, l) -> - with_ ~loc ~attrs (sub # module_type mt) - (List.map (sub # with_constraint) l) - | Pmty_typeof me -> typeof_ ~loc ~attrs (sub # module_expr me) - | Pmty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_with_constraint sub = function - | Pwith_type (lid, d) -> - Pwith_type (map_loc sub lid, sub # type_declaration d) - | Pwith_module (lid, lid2) -> - Pwith_module (map_loc sub lid, map_loc sub lid2) - | Pwith_typesubst d -> Pwith_typesubst (sub # type_declaration d) - | Pwith_modsubst (s, lid) -> - Pwith_modsubst (map_loc sub s, map_loc sub lid) - - let map_signature_item sub {psig_desc = desc; psig_loc = loc} = - let open Sig in - let loc = sub # location loc in - match desc with - | Psig_value vd -> value ~loc (sub # value_description vd) - | Psig_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Psig_typext te -> type_extension ~loc (sub # type_extension te) - | Psig_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Psig_module x -> module_ ~loc (sub # module_declaration x) - | Psig_recmodule l -> - rec_module ~loc (List.map (sub # module_declaration) l) - | Psig_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Psig_open od -> open_ ~loc (sub # open_description od) - | Psig_include x -> include_ ~loc (sub # include_description x) - | Psig_class l -> class_ ~loc (List.map (sub # class_description) l) - | Psig_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Psig_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Psig_attribute x -> attribute ~loc (sub # attribute x) -end - - -module M = struct - (* Value expressions for the module language *) - - let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = - let open Mod in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pmod_structure str -> structure ~loc ~attrs (sub # structure str) - | Pmod_functor (arg, arg_ty, body) -> - functor_ ~loc ~attrs (map_loc sub arg) - (map_opt (sub # module_type) arg_ty) - (sub # module_expr body) - | Pmod_apply (m1, m2) -> - apply ~loc ~attrs (sub # module_expr m1) (sub # module_expr m2) - | Pmod_constraint (m, mty) -> - constraint_ ~loc ~attrs (sub # module_expr m) (sub # module_type mty) - | Pmod_unpack e -> unpack ~loc ~attrs (sub # expr e) - | Pmod_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = - let open Str in - let loc = sub # location loc in - match desc with - | Pstr_eval (x, attrs) -> - eval ~loc ~attrs:(sub # attributes attrs) (sub # expr x) - | Pstr_value (r, vbs) -> value ~loc r (List.map (sub # value_binding) vbs) - | Pstr_primitive vd -> primitive ~loc (sub # value_description vd) - | Pstr_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Pstr_typext te -> type_extension ~loc (sub # type_extension te) - | Pstr_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Pstr_module x -> module_ ~loc (sub # module_binding x) - | Pstr_recmodule l -> rec_module ~loc (List.map (sub # module_binding) l) - | Pstr_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Pstr_open od -> open_ ~loc (sub # open_description od) - | Pstr_class l -> class_ ~loc (List.map (sub # class_declaration) l) - | Pstr_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Pstr_include x -> include_ ~loc (sub # include_declaration x) - | Pstr_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Pstr_attribute x -> attribute ~loc (sub # attribute x) -end - -module E = struct - (* Value expressions for the core language *) - - let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = - let open Exp in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pexp_constant x -> constant ~loc ~attrs x - | Pexp_let (r, vbs, e) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) (sub # expr e) - | Pexp_fun (lab, def, p, e) -> - fun_ ~loc ~attrs lab (map_opt (sub # expr) def) (sub # pat p) - (sub # expr e) - | Pexp_function pel -> function_ ~loc ~attrs (sub # cases pel) - | Pexp_apply (e, l) -> - apply ~loc ~attrs (sub # expr e) (List.map (map_snd (sub # expr)) l) - | Pexp_match (e, pel) -> match_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_try (e, pel) -> try_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_tuple el -> tuple ~loc ~attrs (List.map (sub # expr) el) - | Pexp_construct (lid, arg) -> - construct ~loc ~attrs (map_loc sub lid) (map_opt (sub # expr) arg) - | Pexp_variant (lab, eo) -> - variant ~loc ~attrs lab (map_opt (sub # expr) eo) - | Pexp_record (l, eo) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # expr)) l) - (map_opt (sub # expr) eo) - | Pexp_field (e, lid) -> field ~loc ~attrs (sub # expr e) (map_loc sub lid) - | Pexp_setfield (e1, lid, e2) -> - setfield ~loc ~attrs (sub # expr e1) (map_loc sub lid) (sub # expr e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub # expr) el) - | Pexp_ifthenelse (e1, e2, e3) -> - ifthenelse ~loc ~attrs (sub # expr e1) (sub # expr e2) - (map_opt (sub # expr) e3) - | Pexp_sequence (e1, e2) -> - sequence ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_while (e1, e2) -> while_ ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_for (p, e1, e2, d, e3) -> - for_ ~loc ~attrs (sub # pat p) (sub # expr e1) (sub # expr e2) d - (sub # expr e3) - | Pexp_coerce (e, t1, t2) -> - coerce ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t1) - (sub # typ t2) - | Pexp_constraint (e, t) -> - constraint_ ~loc ~attrs (sub # expr e) (sub # typ t) - | Pexp_send (e, s) -> send ~loc ~attrs (sub # expr e) s - | Pexp_new lid -> new_ ~loc ~attrs (map_loc sub lid) - | Pexp_setinstvar (s, e) -> - setinstvar ~loc ~attrs (map_loc sub s) (sub # expr e) - | Pexp_override sel -> - override ~loc ~attrs - (List.map (map_tuple (map_loc sub) (sub # expr)) sel) - | Pexp_letmodule (s, me, e) -> - letmodule ~loc ~attrs (map_loc sub s) (sub # module_expr me) - (sub # expr e) - | Pexp_letexception (cd, e) -> - letexception ~loc ~attrs - (sub # extension_constructor cd) - (sub # expr e) - | Pexp_assert e -> assert_ ~loc ~attrs (sub # expr e) - | Pexp_lazy e -> lazy_ ~loc ~attrs (sub # expr e) - | Pexp_poly (e, t) -> - poly ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t) - | Pexp_object cls -> object_ ~loc ~attrs (sub # class_structure cls) - | Pexp_newtype (s, e) -> newtype ~loc ~attrs s (sub # expr e) - | Pexp_pack me -> pack ~loc ~attrs (sub # module_expr me) - | Pexp_open (ovf, lid, e) -> - open_ ~loc ~attrs ovf (map_loc sub lid) (sub # expr e) - | Pexp_extension x -> extension ~loc ~attrs (sub # extension x) - | Pexp_unreachable -> unreachable ~loc ~attrs () -end - -module P = struct - (* Patterns *) - - let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = - let open Pat in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ppat_any -> any ~loc ~attrs () - | Ppat_var s -> var ~loc ~attrs (map_loc sub s) - | Ppat_alias (p, s) -> alias ~loc ~attrs (sub # pat p) (map_loc sub s) - | Ppat_constant c -> constant ~loc ~attrs c - | Ppat_interval (c1, c2) -> interval ~loc ~attrs c1 c2 - | Ppat_tuple pl -> tuple ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_construct (l, p) -> - construct ~loc ~attrs (map_loc sub l) (map_opt (sub # pat) p) - | Ppat_variant (l, p) -> variant ~loc ~attrs l (map_opt (sub # pat) p) - | Ppat_record (lpl, cf) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # pat)) lpl) - cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub # pat p1) (sub # pat p2) - | Ppat_constraint (p, t) -> - constraint_ ~loc ~attrs (sub # pat p) (sub # typ t) - | Ppat_type s -> type_ ~loc ~attrs (map_loc sub s) - | Ppat_lazy p -> lazy_ ~loc ~attrs (sub # pat p) - | Ppat_unpack s -> unpack ~loc ~attrs (map_loc sub s) - | Ppat_exception p -> exception_ ~loc ~attrs (sub # pat p) - | Ppat_extension x -> extension ~loc ~attrs (sub # extension x) - | Ppat_open (l, p) -> open_ ~loc ~attrs (map_loc sub l) (sub # pat p) -end - -module CE = struct - (* Value expressions for the class language *) - - let map sub {pcl_loc = loc; pcl_desc = desc; pcl_attributes = attrs} = - let open Cl in - let loc = sub # location loc in - match desc with - | Pcl_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcl_structure s -> - structure ~loc ~attrs (sub # class_structure s) - | Pcl_fun (lab, e, p, ce) -> - fun_ ~loc ~attrs lab - (map_opt (sub # expr) e) - (sub # pat p) - (sub # class_expr ce) - | Pcl_apply (ce, l) -> - apply ~loc ~attrs (sub # class_expr ce) - (List.map (map_snd (sub # expr)) l) - | Pcl_let (r, vbs, ce) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) - (sub # class_expr ce) - | Pcl_constraint (ce, ct) -> - constraint_ ~loc ~attrs (sub # class_expr ce) (sub # class_type ct) - | Pcl_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_kind sub = function - | Cfk_concrete (o, e) -> Cfk_concrete (o, sub # expr e) - | Cfk_virtual t -> Cfk_virtual (sub # typ t) - - let map_field sub {pcf_desc = desc; pcf_loc = loc; pcf_attributes = attrs} = - let open Cf in - let loc = sub # location loc in - match desc with - | Pcf_inherit (o, ce, s) -> inherit_ ~loc ~attrs o (sub # class_expr ce) s - | Pcf_val (s, m, k) -> val_ ~loc ~attrs (map_loc sub s) m (map_kind sub k) - | Pcf_method (s, p, k) -> - method_ ~loc ~attrs (map_loc sub s) p (map_kind sub k) - | Pcf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pcf_initializer e -> initializer_ ~loc ~attrs (sub # expr e) - | Pcf_attribute x -> attribute ~loc (sub # attribute x) - | Pcf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure sub {pcstr_self; pcstr_fields} = - { - pcstr_self = sub # pat pcstr_self; - pcstr_fields = List.map (sub # class_field) pcstr_fields; - } - - let class_infos sub f {pci_virt; pci_params = pl; pci_name; pci_expr; - pci_loc; pci_attributes} = - Ci.mk - ~virt:pci_virt - ~params:(List.map (map_fst (sub # typ)) pl) - (map_loc sub pci_name) - (f pci_expr) - ~loc:(sub # location pci_loc) - ~attrs:(sub # attributes pci_attributes) -end - -(* Now, a generic AST mapper class, to be extended to cover all kinds - and cases of the OCaml grammar. The default behavior of the mapper - is the identity. *) - -class mapper = - object(this) - method structure l = List.map (this # structure_item) l - method structure_item si = M.map_structure_item this si - method module_expr = M.map this - - method signature l = List.map (this # signature_item) l - method signature_item si = MT.map_signature_item this si - method module_type = MT.map this - method with_constraint c = MT.map_with_constraint this c - - method class_declaration = CE.class_infos this (this # class_expr) - method class_expr = CE.map this - method class_field = CE.map_field this - method class_structure = CE.map_structure this - - method class_type = CT.map this - method class_type_field = CT.map_field this - method class_signature = CT.map_signature this - - method class_type_declaration = CE.class_infos this (this # class_type) - method class_description = CE.class_infos this (this # class_type) - - method type_declaration = T.map_type_declaration this - method type_kind = T.map_type_kind this - method typ = T.map this - - method type_extension = T.map_type_extension this - method extension_constructor = T.map_extension_constructor this - - method value_description {pval_name; pval_type; pval_prim; pval_loc; - pval_attributes} = - Val.mk - (map_loc this pval_name) - (this # typ pval_type) - ~attrs:(this # attributes pval_attributes) - ~loc:(this # location pval_loc) - ~prim:pval_prim - - method pat = P.map this - method expr = E.map this - - method module_declaration {pmd_name; pmd_type; pmd_attributes; pmd_loc} = - Md.mk - (map_loc this pmd_name) - (this # module_type pmd_type) - ~attrs:(this # attributes pmd_attributes) - ~loc:(this # location pmd_loc) - - method module_type_declaration {pmtd_name; pmtd_type; pmtd_attributes; pmtd_loc} = - Mtd.mk - (map_loc this pmtd_name) - ?typ:(map_opt (this # module_type) pmtd_type) - ~attrs:(this # attributes pmtd_attributes) - ~loc:(this # location pmtd_loc) - - method module_binding {pmb_name; pmb_expr; pmb_attributes; pmb_loc} = - Mb.mk (map_loc this pmb_name) (this # module_expr pmb_expr) - ~attrs:(this # attributes pmb_attributes) - ~loc:(this # location pmb_loc) - - method value_binding {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} = - Vb.mk - (this # pat pvb_pat) - (this # expr pvb_expr) - ~attrs:(this # attributes pvb_attributes) - ~loc:(this # location pvb_loc) - - method constructor_arguments = function - | Pcstr_tuple (tys) -> Pcstr_tuple (List.map (this # typ) tys) - | Pcstr_record (ls) -> Pcstr_record (List.map (this # label_declaration) ls) - - method constructor_declaration {pcd_name; pcd_args; pcd_res; pcd_loc; - pcd_attributes} = - Type.constructor - (map_loc this pcd_name) - ~args:(this # constructor_arguments pcd_args) - ?res:(map_opt (this # typ) pcd_res) - ~loc:(this # location pcd_loc) - ~attrs:(this # attributes pcd_attributes) - - method label_declaration {pld_name; pld_type; pld_loc; pld_mutable; - pld_attributes} = - Type.field - (map_loc this pld_name) - (this # typ pld_type) - ~mut:pld_mutable - ~loc:(this # location pld_loc) - ~attrs:(this # attributes pld_attributes) - - - method cases l = List.map (this # case) l - method case {pc_lhs; pc_guard; pc_rhs} = - { - pc_lhs = this # pat pc_lhs; - pc_guard = map_opt (this # expr) pc_guard; - pc_rhs = this # expr pc_rhs; - } - - method open_description - {popen_lid; popen_override; popen_attributes; popen_loc} = - Opn.mk (map_loc this popen_lid) - ~override:popen_override - ~loc:(this # location popen_loc) - ~attrs:(this # attributes popen_attributes) - - method include_description - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_type pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method include_declaration - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_expr pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method location l = l - - method extension (s, e) = (map_loc this s, this # payload e) - method attribute (s, e) = (map_loc this s, this # payload e) - method attributes l = List.map (this # attribute) l - method payload = function - | PStr x -> PStr (this # structure x) - | PTyp x -> PTyp (this # typ x) - | PPat (x, g) -> PPat (this # pat x, map_opt (this # expr) g) - | PSig x -> PSig (this # signature x) - end - - -let to_mapper this = - let open Ast_mapper in - { - attribute = (fun _ -> this # attribute); - attributes = (fun _ -> this # attributes); - case = (fun _ -> this # case); - cases = (fun _ -> this # cases); - class_declaration = (fun _ -> this # class_declaration); - class_description = (fun _ -> this # class_description); - class_expr = (fun _ -> this # class_expr); - class_field = (fun _ -> this # class_field); - class_signature = (fun _ -> this # class_signature); - class_structure = (fun _ -> this # class_structure); - class_type = (fun _ -> this # class_type); - class_type_declaration = (fun _ -> this # class_type_declaration); - class_type_field = (fun _ -> this # class_type_field); - constructor_declaration = (fun _ -> this # constructor_declaration); - expr = (fun _ -> this # expr); - extension = (fun _ -> this # extension); - extension_constructor = (fun _ -> this # extension_constructor); - include_declaration = (fun _ -> this # include_declaration); - include_description = (fun _ -> this # include_description); - label_declaration = (fun _ -> this # label_declaration); - location = (fun _ -> this # location); - module_binding = (fun _ -> this # module_binding); - module_declaration = (fun _ -> this # module_declaration); - module_expr = (fun _ -> this # module_expr); - module_type = (fun _ -> this # module_type); - module_type_declaration = (fun _ -> this # module_type_declaration); - open_description = (fun _ -> this # open_description); - pat = (fun _ -> this # pat); - payload = (fun _ -> this # payload); - signature = (fun _ -> this # signature); - signature_item = (fun _ -> this # signature_item); - structure = (fun _ -> this # structure); - structure_item = (fun _ -> this # structure_item); - typ = (fun _ -> this # typ); - type_declaration = (fun _ -> this # type_declaration); - type_extension = (fun _ -> this # type_extension); - type_kind = (fun _ -> this # type_kind); - value_binding = (fun _ -> this # value_binding); - value_description = (fun _ -> this # value_description); - with_constraint = (fun _ -> this # with_constraint); - } diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_404.mli b/vendor/ppx_tools_versioned/ast_mapper_class_404.mli deleted file mode 100644 index f30a0bff7..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_404.mli +++ /dev/null @@ -1,58 +0,0 @@ -open Ast_404 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree - -class mapper: - object - method attribute: attribute -> attribute - method attributes: attribute list -> attribute list - method case: case -> case - method cases: case list -> case list - method class_declaration: class_declaration -> class_declaration - method class_description: class_description -> class_description - method class_expr: class_expr -> class_expr - method class_field: class_field -> class_field - method class_signature: class_signature -> class_signature - method class_structure: class_structure -> class_structure - method class_type: class_type -> class_type - method class_type_declaration: class_type_declaration -> class_type_declaration - method class_type_field: class_type_field -> class_type_field - method constructor_arguments: constructor_arguments -> constructor_arguments - method constructor_declaration: constructor_declaration -> constructor_declaration - method expr: expression -> expression - method extension: extension -> extension - method extension_constructor: extension_constructor -> extension_constructor - method include_declaration: include_declaration -> include_declaration - method include_description: include_description -> include_description - method label_declaration: label_declaration -> label_declaration - method location: Location.t -> Location.t - method module_binding: module_binding -> module_binding - method module_declaration: module_declaration -> module_declaration - method module_expr: module_expr -> module_expr - method module_type: module_type -> module_type - method module_type_declaration: module_type_declaration -> module_type_declaration - method open_description: open_description -> open_description - method pat: pattern -> pattern - method payload: payload -> payload - method signature: signature -> signature - method signature_item: signature_item -> signature_item - method structure: structure -> structure - method structure_item: structure_item -> structure_item - method typ: core_type -> core_type - method type_declaration: type_declaration -> type_declaration - method type_extension: type_extension -> type_extension - method type_kind: type_kind -> type_kind - method value_binding: value_binding -> value_binding - method value_description: value_description -> value_description - method with_constraint: with_constraint -> with_constraint - end - -val to_mapper: #mapper -> Ast_mapper.mapper -(** The resulting mapper is "closed", i.e. methods ignore - their first argument. *) diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_405.ml b/vendor/ppx_tools_versioned/ast_mapper_class_405.ml deleted file mode 100644 index 294718508..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_405.ml +++ /dev/null @@ -1,586 +0,0 @@ -open Ast_405 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree -open Asttypes -open Ast_helper - -let map_fst f (x, y) = (f x, y) -let map_snd f (x, y) = (x, f y) -let map_tuple f1 f2 (x, y) = (f1 x, f2 y) -let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) -let map_opt f = function None -> None | Some x -> Some (f x) - -let map_loc sub {loc; txt} = {loc = sub # location loc; txt} - -module T = struct - (* Type expressions for the core language *) - - let row_field sub = function - | Rtag (l, attrs, b, tl) -> - Rtag (l, sub # attributes attrs, b, List.map (sub # typ) tl) - | Rinherit t -> Rinherit (sub # typ t) - - let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = - let open Typ in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s - | Ptyp_arrow (lab, t1, t2) -> - arrow ~loc ~attrs lab (sub # typ t1) (sub # typ t2) - | Ptyp_tuple tyl -> tuple ~loc ~attrs (List.map (sub # typ) tyl) - | Ptyp_constr (lid, tl) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_object (l, o) -> - let f (s, a, t) = (s, sub # attributes a, sub # typ t) in - object_ ~loc ~attrs (List.map f l) o - | Ptyp_class (lid, tl) -> - class_ ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tl) - | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub # typ t) s - | Ptyp_variant (rl, b, ll) -> - variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs sl (sub # typ t) - | Ptyp_package (lid, l) -> - package ~loc ~attrs (map_loc sub lid) - (List.map (map_tuple (map_loc sub) (sub # typ)) l) - | Ptyp_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_type_declaration sub - {ptype_name; ptype_params; ptype_cstrs; - ptype_kind; - ptype_private; - ptype_manifest; - ptype_attributes; - ptype_loc} = - Type.mk (map_loc sub ptype_name) - ~params:(List.map (map_fst (sub # typ)) ptype_params) - ~priv:ptype_private - ~cstrs:(List.map (map_tuple3 (sub # typ) (sub # typ) (sub # location)) - ptype_cstrs) - ~kind:(sub # type_kind ptype_kind) - ?manifest:(map_opt (sub # typ) ptype_manifest) - ~loc:(sub # location ptype_loc) - ~attrs:(sub # attributes ptype_attributes) - - let map_type_kind sub = function - | Ptype_abstract -> Ptype_abstract - | Ptype_variant l -> - Ptype_variant (List.map (sub # constructor_declaration) l) - | Ptype_record l -> Ptype_record (List.map (sub # label_declaration) l) - | Ptype_open -> Ptype_open - - let map_type_extension sub - {ptyext_path; ptyext_params; - ptyext_constructors; - ptyext_private; - ptyext_attributes} = - Te.mk - (map_loc sub ptyext_path) - (List.map (sub # extension_constructor) ptyext_constructors) - ~params:(List.map (map_fst (sub # typ)) ptyext_params) - ~priv:ptyext_private - ~attrs:(sub # attributes ptyext_attributes) - - let map_extension_constructor_kind sub = function - Pext_decl(ctl, cto) -> - Pext_decl(sub # constructor_arguments ctl, map_opt (sub # typ) cto) - | Pext_rebind li -> - Pext_rebind (map_loc sub li) - - let map_extension_constructor sub - {pext_name; - pext_kind; - pext_loc; - pext_attributes} = - Te.constructor - (map_loc sub pext_name) - (map_extension_constructor_kind sub pext_kind) - ~loc:(sub # location pext_loc) - ~attrs:(sub # attributes pext_attributes) - - -end - -module CT = struct - (* Type expressions for the class language *) - - let map sub {pcty_loc = loc; pcty_desc = desc; pcty_attributes = attrs} = - let open Cty in - let loc = sub # location loc in - match desc with - | Pcty_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcty_signature x -> signature ~loc ~attrs (sub # class_signature x) - | Pcty_arrow (lab, t, ct) -> - arrow ~loc ~attrs lab (sub # typ t) (sub # class_type ct) - | Pcty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_field sub {pctf_desc = desc; pctf_loc = loc; pctf_attributes = attrs} - = - let open Ctf in - let loc = sub # location loc in - match desc with - | Pctf_inherit ct -> inherit_ ~loc ~attrs (sub # class_type ct) - | Pctf_val (s, m, v, t) -> val_ ~loc ~attrs s m v (sub # typ t) - | Pctf_method (s, p, v, t) -> method_ ~loc ~attrs s p v (sub # typ t) - | Pctf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pctf_attribute x -> attribute ~loc (sub # attribute x) - | Pctf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_signature sub {pcsig_self; pcsig_fields} = - Csig.mk - (sub # typ pcsig_self) - (List.map (sub # class_type_field) pcsig_fields) -end - -module MT = struct - (* Type expressions for the module language *) - - let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = - let open Mty in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) - | Pmty_alias s -> alias ~loc ~attrs (map_loc sub s) - | Pmty_signature sg -> signature ~loc ~attrs (sub # signature sg) - | Pmty_functor (s, mt1, mt2) -> - functor_ ~loc ~attrs (map_loc sub s) - (map_opt (sub # module_type) mt1) - (sub # module_type mt2) - | Pmty_with (mt, l) -> - with_ ~loc ~attrs (sub # module_type mt) - (List.map (sub # with_constraint) l) - | Pmty_typeof me -> typeof_ ~loc ~attrs (sub # module_expr me) - | Pmty_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_with_constraint sub = function - | Pwith_type (lid, d) -> - Pwith_type (map_loc sub lid, sub # type_declaration d) - | Pwith_module (lid, lid2) -> - Pwith_module (map_loc sub lid, map_loc sub lid2) - | Pwith_typesubst d -> Pwith_typesubst (sub # type_declaration d) - | Pwith_modsubst (s, lid) -> - Pwith_modsubst (map_loc sub s, map_loc sub lid) - - let map_signature_item sub {psig_desc = desc; psig_loc = loc} = - let open Sig in - let loc = sub # location loc in - match desc with - | Psig_value vd -> value ~loc (sub # value_description vd) - | Psig_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Psig_typext te -> type_extension ~loc (sub # type_extension te) - | Psig_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Psig_module x -> module_ ~loc (sub # module_declaration x) - | Psig_recmodule l -> - rec_module ~loc (List.map (sub # module_declaration) l) - | Psig_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Psig_open od -> open_ ~loc (sub # open_description od) - | Psig_include x -> include_ ~loc (sub # include_description x) - | Psig_class l -> class_ ~loc (List.map (sub # class_description) l) - | Psig_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Psig_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Psig_attribute x -> attribute ~loc (sub # attribute x) -end - - -module M = struct - (* Value expressions for the module language *) - - let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = - let open Mod in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pmod_structure str -> structure ~loc ~attrs (sub # structure str) - | Pmod_functor (arg, arg_ty, body) -> - functor_ ~loc ~attrs (map_loc sub arg) - (map_opt (sub # module_type) arg_ty) - (sub # module_expr body) - | Pmod_apply (m1, m2) -> - apply ~loc ~attrs (sub # module_expr m1) (sub # module_expr m2) - | Pmod_constraint (m, mty) -> - constraint_ ~loc ~attrs (sub # module_expr m) (sub # module_type mty) - | Pmod_unpack e -> unpack ~loc ~attrs (sub # expr e) - | Pmod_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = - let open Str in - let loc = sub # location loc in - match desc with - | Pstr_eval (x, attrs) -> - eval ~loc ~attrs:(sub # attributes attrs) (sub # expr x) - | Pstr_value (r, vbs) -> value ~loc r (List.map (sub # value_binding) vbs) - | Pstr_primitive vd -> primitive ~loc (sub # value_description vd) - | Pstr_type (rf, l) -> type_ ~loc rf (List.map (sub # type_declaration) l) - | Pstr_typext te -> type_extension ~loc (sub # type_extension te) - | Pstr_exception ed -> exception_ ~loc (sub # extension_constructor ed) - | Pstr_module x -> module_ ~loc (sub # module_binding x) - | Pstr_recmodule l -> rec_module ~loc (List.map (sub # module_binding) l) - | Pstr_modtype x -> modtype ~loc (sub # module_type_declaration x) - | Pstr_open od -> open_ ~loc (sub # open_description od) - | Pstr_class l -> class_ ~loc (List.map (sub # class_declaration) l) - | Pstr_class_type l -> - class_type ~loc (List.map (sub # class_type_declaration) l) - | Pstr_include x -> include_ ~loc (sub # include_declaration x) - | Pstr_extension (x, attrs) -> - extension ~loc (sub # extension x) ~attrs:(sub # attributes attrs) - | Pstr_attribute x -> attribute ~loc (sub # attribute x) -end - -module E = struct - (* Value expressions for the core language *) - - let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = - let open Exp in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) - | Pexp_constant x -> constant ~loc ~attrs x - | Pexp_let (r, vbs, e) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) (sub # expr e) - | Pexp_fun (lab, def, p, e) -> - fun_ ~loc ~attrs lab (map_opt (sub # expr) def) (sub # pat p) - (sub # expr e) - | Pexp_function pel -> function_ ~loc ~attrs (sub # cases pel) - | Pexp_apply (e, l) -> - apply ~loc ~attrs (sub # expr e) (List.map (map_snd (sub # expr)) l) - | Pexp_match (e, pel) -> match_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_try (e, pel) -> try_ ~loc ~attrs (sub # expr e) (sub # cases pel) - | Pexp_tuple el -> tuple ~loc ~attrs (List.map (sub # expr) el) - | Pexp_construct (lid, arg) -> - construct ~loc ~attrs (map_loc sub lid) (map_opt (sub # expr) arg) - | Pexp_variant (lab, eo) -> - variant ~loc ~attrs lab (map_opt (sub # expr) eo) - | Pexp_record (l, eo) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # expr)) l) - (map_opt (sub # expr) eo) - | Pexp_field (e, lid) -> field ~loc ~attrs (sub # expr e) (map_loc sub lid) - | Pexp_setfield (e1, lid, e2) -> - setfield ~loc ~attrs (sub # expr e1) (map_loc sub lid) (sub # expr e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub # expr) el) - | Pexp_ifthenelse (e1, e2, e3) -> - ifthenelse ~loc ~attrs (sub # expr e1) (sub # expr e2) - (map_opt (sub # expr) e3) - | Pexp_sequence (e1, e2) -> - sequence ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_while (e1, e2) -> while_ ~loc ~attrs (sub # expr e1) (sub # expr e2) - | Pexp_for (p, e1, e2, d, e3) -> - for_ ~loc ~attrs (sub # pat p) (sub # expr e1) (sub # expr e2) d - (sub # expr e3) - | Pexp_coerce (e, t1, t2) -> - coerce ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t1) - (sub # typ t2) - | Pexp_constraint (e, t) -> - constraint_ ~loc ~attrs (sub # expr e) (sub # typ t) - | Pexp_send (e, s) -> send ~loc ~attrs (sub # expr e) s - | Pexp_new lid -> new_ ~loc ~attrs (map_loc sub lid) - | Pexp_setinstvar (s, e) -> - setinstvar ~loc ~attrs (map_loc sub s) (sub # expr e) - | Pexp_override sel -> - override ~loc ~attrs - (List.map (map_tuple (map_loc sub) (sub # expr)) sel) - | Pexp_letmodule (s, me, e) -> - letmodule ~loc ~attrs (map_loc sub s) (sub # module_expr me) - (sub # expr e) - | Pexp_letexception (cd, e) -> - letexception ~loc ~attrs - (sub # extension_constructor cd) - (sub # expr e) - | Pexp_assert e -> assert_ ~loc ~attrs (sub # expr e) - | Pexp_lazy e -> lazy_ ~loc ~attrs (sub # expr e) - | Pexp_poly (e, t) -> - poly ~loc ~attrs (sub # expr e) (map_opt (sub # typ) t) - | Pexp_object cls -> object_ ~loc ~attrs (sub # class_structure cls) - | Pexp_newtype (s, e) -> newtype ~loc ~attrs s (sub # expr e) - | Pexp_pack me -> pack ~loc ~attrs (sub # module_expr me) - | Pexp_open (ovf, lid, e) -> - open_ ~loc ~attrs ovf (map_loc sub lid) (sub # expr e) - | Pexp_extension x -> extension ~loc ~attrs (sub # extension x) - | Pexp_unreachable -> unreachable ~loc ~attrs () -end - -module P = struct - (* Patterns *) - - let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = - let open Pat in - let loc = sub # location loc in - let attrs = sub # attributes attrs in - match desc with - | Ppat_any -> any ~loc ~attrs () - | Ppat_var s -> var ~loc ~attrs (map_loc sub s) - | Ppat_alias (p, s) -> alias ~loc ~attrs (sub # pat p) (map_loc sub s) - | Ppat_constant c -> constant ~loc ~attrs c - | Ppat_interval (c1, c2) -> interval ~loc ~attrs c1 c2 - | Ppat_tuple pl -> tuple ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_construct (l, p) -> - construct ~loc ~attrs (map_loc sub l) (map_opt (sub # pat) p) - | Ppat_variant (l, p) -> variant ~loc ~attrs l (map_opt (sub # pat) p) - | Ppat_record (lpl, cf) -> - record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub # pat)) lpl) - cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub # pat) pl) - | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub # pat p1) (sub # pat p2) - | Ppat_constraint (p, t) -> - constraint_ ~loc ~attrs (sub # pat p) (sub # typ t) - | Ppat_type s -> type_ ~loc ~attrs (map_loc sub s) - | Ppat_lazy p -> lazy_ ~loc ~attrs (sub # pat p) - | Ppat_unpack s -> unpack ~loc ~attrs (map_loc sub s) - | Ppat_exception p -> exception_ ~loc ~attrs (sub # pat p) - | Ppat_extension x -> extension ~loc ~attrs (sub # extension x) - | Ppat_open (l, p) -> open_ ~loc ~attrs (map_loc sub l) (sub # pat p) -end - -module CE = struct - (* Value expressions for the class language *) - - let map sub {pcl_loc = loc; pcl_desc = desc; pcl_attributes = attrs} = - let open Cl in - let loc = sub # location loc in - match desc with - | Pcl_constr (lid, tys) -> - constr ~loc ~attrs (map_loc sub lid) (List.map (sub # typ) tys) - | Pcl_structure s -> - structure ~loc ~attrs (sub # class_structure s) - | Pcl_fun (lab, e, p, ce) -> - fun_ ~loc ~attrs lab - (map_opt (sub # expr) e) - (sub # pat p) - (sub # class_expr ce) - | Pcl_apply (ce, l) -> - apply ~loc ~attrs (sub # class_expr ce) - (List.map (map_snd (sub # expr)) l) - | Pcl_let (r, vbs, ce) -> - let_ ~loc ~attrs r (List.map (sub # value_binding) vbs) - (sub # class_expr ce) - | Pcl_constraint (ce, ct) -> - constraint_ ~loc ~attrs (sub # class_expr ce) (sub # class_type ct) - | Pcl_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_kind sub = function - | Cfk_concrete (o, e) -> Cfk_concrete (o, sub # expr e) - | Cfk_virtual t -> Cfk_virtual (sub # typ t) - - let map_field sub {pcf_desc = desc; pcf_loc = loc; pcf_attributes = attrs} = - let open Cf in - let loc = sub # location loc in - match desc with - | Pcf_inherit (o, ce, s) -> inherit_ ~loc ~attrs o (sub # class_expr ce) s - | Pcf_val (s, m, k) -> val_ ~loc ~attrs (map_loc sub s) m (map_kind sub k) - | Pcf_method (s, p, k) -> - method_ ~loc ~attrs (map_loc sub s) p (map_kind sub k) - | Pcf_constraint (t1, t2) -> - constraint_ ~loc ~attrs (sub # typ t1) (sub # typ t2) - | Pcf_initializer e -> initializer_ ~loc ~attrs (sub # expr e) - | Pcf_attribute x -> attribute ~loc (sub # attribute x) - | Pcf_extension x -> extension ~loc ~attrs (sub # extension x) - - let map_structure sub {pcstr_self; pcstr_fields} = - { - pcstr_self = sub # pat pcstr_self; - pcstr_fields = List.map (sub # class_field) pcstr_fields; - } - - let class_infos sub f {pci_virt; pci_params = pl; pci_name; pci_expr; - pci_loc; pci_attributes} = - Ci.mk - ~virt:pci_virt - ~params:(List.map (map_fst (sub # typ)) pl) - (map_loc sub pci_name) - (f pci_expr) - ~loc:(sub # location pci_loc) - ~attrs:(sub # attributes pci_attributes) -end - -(* Now, a generic AST mapper class, to be extended to cover all kinds - and cases of the OCaml grammar. The default behavior of the mapper - is the identity. *) - -class mapper = - object(this) - method structure l = List.map (this # structure_item) l - method structure_item si = M.map_structure_item this si - method module_expr = M.map this - - method signature l = List.map (this # signature_item) l - method signature_item si = MT.map_signature_item this si - method module_type = MT.map this - method with_constraint c = MT.map_with_constraint this c - - method class_declaration = CE.class_infos this (this # class_expr) - method class_expr = CE.map this - method class_field = CE.map_field this - method class_structure = CE.map_structure this - - method class_type = CT.map this - method class_type_field = CT.map_field this - method class_signature = CT.map_signature this - - method class_type_declaration = CE.class_infos this (this # class_type) - method class_description = CE.class_infos this (this # class_type) - - method type_declaration = T.map_type_declaration this - method type_kind = T.map_type_kind this - method typ = T.map this - - method type_extension = T.map_type_extension this - method extension_constructor = T.map_extension_constructor this - - method value_description {pval_name; pval_type; pval_prim; pval_loc; - pval_attributes} = - Val.mk - (map_loc this pval_name) - (this # typ pval_type) - ~attrs:(this # attributes pval_attributes) - ~loc:(this # location pval_loc) - ~prim:pval_prim - - method pat = P.map this - method expr = E.map this - - method module_declaration {pmd_name; pmd_type; pmd_attributes; pmd_loc} = - Md.mk - (map_loc this pmd_name) - (this # module_type pmd_type) - ~attrs:(this # attributes pmd_attributes) - ~loc:(this # location pmd_loc) - - method module_type_declaration {pmtd_name; pmtd_type; pmtd_attributes; pmtd_loc} = - Mtd.mk - (map_loc this pmtd_name) - ?typ:(map_opt (this # module_type) pmtd_type) - ~attrs:(this # attributes pmtd_attributes) - ~loc:(this # location pmtd_loc) - - method module_binding {pmb_name; pmb_expr; pmb_attributes; pmb_loc} = - Mb.mk (map_loc this pmb_name) (this # module_expr pmb_expr) - ~attrs:(this # attributes pmb_attributes) - ~loc:(this # location pmb_loc) - - method value_binding {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} = - Vb.mk - (this # pat pvb_pat) - (this # expr pvb_expr) - ~attrs:(this # attributes pvb_attributes) - ~loc:(this # location pvb_loc) - - method constructor_arguments = function - | Pcstr_tuple (tys) -> Pcstr_tuple (List.map (this # typ) tys) - | Pcstr_record (ls) -> Pcstr_record (List.map (this # label_declaration) ls) - - method constructor_declaration {pcd_name; pcd_args; pcd_res; pcd_loc; - pcd_attributes} = - Type.constructor - (map_loc this pcd_name) - ~args:(this # constructor_arguments pcd_args) - ?res:(map_opt (this # typ) pcd_res) - ~loc:(this # location pcd_loc) - ~attrs:(this # attributes pcd_attributes) - - method label_declaration {pld_name; pld_type; pld_loc; pld_mutable; - pld_attributes} = - Type.field - (map_loc this pld_name) - (this # typ pld_type) - ~mut:pld_mutable - ~loc:(this # location pld_loc) - ~attrs:(this # attributes pld_attributes) - - - method cases l = List.map (this # case) l - method case {pc_lhs; pc_guard; pc_rhs} = - { - pc_lhs = this # pat pc_lhs; - pc_guard = map_opt (this # expr) pc_guard; - pc_rhs = this # expr pc_rhs; - } - - method open_description - {popen_lid; popen_override; popen_attributes; popen_loc} = - Opn.mk (map_loc this popen_lid) - ~override:popen_override - ~loc:(this # location popen_loc) - ~attrs:(this # attributes popen_attributes) - - method include_description - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_type pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method include_declaration - {pincl_mod; pincl_attributes; pincl_loc} = - Incl.mk (this # module_expr pincl_mod) - ~loc:(this # location pincl_loc) - ~attrs:(this # attributes pincl_attributes) - - method location l = l - - method extension (s, e) = (map_loc this s, this # payload e) - method attribute (s, e) = (map_loc this s, this # payload e) - method attributes l = List.map (this # attribute) l - method payload = function - | PStr x -> PStr (this # structure x) - | PTyp x -> PTyp (this # typ x) - | PPat (x, g) -> PPat (this # pat x, map_opt (this # expr) g) - | PSig x -> PSig (this # signature x) - end - - -let to_mapper this = - let open Ast_mapper in - { - attribute = (fun _ -> this # attribute); - attributes = (fun _ -> this # attributes); - case = (fun _ -> this # case); - cases = (fun _ -> this # cases); - class_declaration = (fun _ -> this # class_declaration); - class_description = (fun _ -> this # class_description); - class_expr = (fun _ -> this # class_expr); - class_field = (fun _ -> this # class_field); - class_signature = (fun _ -> this # class_signature); - class_structure = (fun _ -> this # class_structure); - class_type = (fun _ -> this # class_type); - class_type_declaration = (fun _ -> this # class_type_declaration); - class_type_field = (fun _ -> this # class_type_field); - constructor_declaration = (fun _ -> this # constructor_declaration); - expr = (fun _ -> this # expr); - extension = (fun _ -> this # extension); - extension_constructor = (fun _ -> this # extension_constructor); - include_declaration = (fun _ -> this # include_declaration); - include_description = (fun _ -> this # include_description); - label_declaration = (fun _ -> this # label_declaration); - location = (fun _ -> this # location); - module_binding = (fun _ -> this # module_binding); - module_declaration = (fun _ -> this # module_declaration); - module_expr = (fun _ -> this # module_expr); - module_type = (fun _ -> this # module_type); - module_type_declaration = (fun _ -> this # module_type_declaration); - open_description = (fun _ -> this # open_description); - pat = (fun _ -> this # pat); - payload = (fun _ -> this # payload); - signature = (fun _ -> this # signature); - signature_item = (fun _ -> this # signature_item); - structure = (fun _ -> this # structure); - structure_item = (fun _ -> this # structure_item); - typ = (fun _ -> this # typ); - type_declaration = (fun _ -> this # type_declaration); - type_extension = (fun _ -> this # type_extension); - type_kind = (fun _ -> this # type_kind); - value_binding = (fun _ -> this # value_binding); - value_description = (fun _ -> this # value_description); - with_constraint = (fun _ -> this # with_constraint); - } diff --git a/vendor/ppx_tools_versioned/ast_mapper_class_405.mli b/vendor/ppx_tools_versioned/ast_mapper_class_405.mli deleted file mode 100644 index 5285a9be1..000000000 --- a/vendor/ppx_tools_versioned/ast_mapper_class_405.mli +++ /dev/null @@ -1,58 +0,0 @@ -open Ast_405 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(** Class-based customizable mapper *) - -open Parsetree - -class mapper: - object - method attribute: attribute -> attribute - method attributes: attribute list -> attribute list - method case: case -> case - method cases: case list -> case list - method class_declaration: class_declaration -> class_declaration - method class_description: class_description -> class_description - method class_expr: class_expr -> class_expr - method class_field: class_field -> class_field - method class_signature: class_signature -> class_signature - method class_structure: class_structure -> class_structure - method class_type: class_type -> class_type - method class_type_declaration: class_type_declaration -> class_type_declaration - method class_type_field: class_type_field -> class_type_field - method constructor_arguments: constructor_arguments -> constructor_arguments - method constructor_declaration: constructor_declaration -> constructor_declaration - method expr: expression -> expression - method extension: extension -> extension - method extension_constructor: extension_constructor -> extension_constructor - method include_declaration: include_declaration -> include_declaration - method include_description: include_description -> include_description - method label_declaration: label_declaration -> label_declaration - method location: Location.t -> Location.t - method module_binding: module_binding -> module_binding - method module_declaration: module_declaration -> module_declaration - method module_expr: module_expr -> module_expr - method module_type: module_type -> module_type - method module_type_declaration: module_type_declaration -> module_type_declaration - method open_description: open_description -> open_description - method pat: pattern -> pattern - method payload: payload -> payload - method signature: signature -> signature - method signature_item: signature_item -> signature_item - method structure: structure -> structure - method structure_item: structure_item -> structure_item - method typ: core_type -> core_type - method type_declaration: type_declaration -> type_declaration - method type_extension: type_extension -> type_extension - method type_kind: type_kind -> type_kind - method value_binding: value_binding -> value_binding - method value_description: value_description -> value_description - method with_constraint: with_constraint -> with_constraint - end - -val to_mapper: #mapper -> Ast_mapper.mapper -(** The resulting mapper is "closed", i.e. methods ignore - their first argument. *) diff --git a/vendor/ppx_tools_versioned/opam b/vendor/ppx_tools_versioned/opam deleted file mode 100644 index 8ba2bff2e..000000000 --- a/vendor/ppx_tools_versioned/opam +++ /dev/null @@ -1,20 +0,0 @@ -opam-version: "1.2" -name: "ppx_tools_versioned" -maintainer: "frederic.bour@lakaban.net" -authors: [ - "Frédéric Bour <frederic.bour@lakaban.net>" - "Alain Frisch <alain.frisch@lexifi.com>" -] -license: "MIT" -homepage: "https://github.com/let-def/ppx_tools_versioned" -bug-reports: "https://github.com/let-def/ppx_tools_versioned/issues" -dev-repo: "git://github.com/let-def/ppx_tools_versioned.git" -tags: [ "syntax" ] -build: [[make "all"]] -install: [[make "install"]] -remove: [["ocamlfind" "remove" "ppx_tools_versioned"]] -depends: [ - "ocamlfind" {>= "1.5.0"} - "ocaml-migrate-parsetree" -] -available: ocaml-version >= "4.02.0" diff --git a/vendor/ppx_tools_versioned/ppx_metaquot_402.ml b/vendor/ppx_tools_versioned/ppx_metaquot_402.ml deleted file mode 100644 index 879d78e95..000000000 --- a/vendor/ppx_tools_versioned/ppx_metaquot_402.ml +++ /dev/null @@ -1,241 +0,0 @@ -open Ast_402 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(* A -ppx rewriter to be used to write Parsetree-generating code - (including other -ppx rewriters) using concrete syntax. - - We support the following extensions in expression position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%stri ...] maps to code which creates the structure item represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e ...] where ... is an expression of type Parsetree.expression - [%t ...] where ... is an expression of type Parsetree.core_type - [%p ...] where ... is an expression of type Parsetree.pattern - - - All locations generated by the meta quotation are by default set - to [Ast_helper.default_loc]. This can be overriden by providing a custom - expression which will be inserted whereever a location is required - in the generated AST. This expression can be specified globally - (for the current structure) as a structure item attribute: - - ;;[@@metaloc ...] - - or locally for the scope of an expression: - - e [@metaloc ...] - - - - Support is also provided to use concrete syntax in pattern - position. The location and attribute fields are currently ignored - by patterns generated from meta quotations. - - We support the following extensions in pattern position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e? ...] where ... is a pattern of type Parsetree.expression - [%t? ...] where ... is a pattern of type Parsetree.core_type - [%p? ...] where ... is a pattern of type Parsetree.pattern - -*) - -module Main : sig end = struct - open Asttypes - open Parsetree - open Ast_helper - open Ast_convenience_402 - - let prefix ty s = - let open Longident in - match parse ty with - | Ldot(m, _) -> String.concat "." (Longident.flatten m) ^ "." ^ s - | _ -> s - - class exp_builder = - object - method record ty x = record (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = constr (prefix ty c) args - method list l = list l - method tuple l = tuple l - method int i = int i - method string s = str s - method char c = char c - method int32 x = Exp.constant (Const_int32 x) - method int64 x = Exp.constant (Const_int64 x) - method nativeint x = Exp.constant (Const_nativeint x) - end - - class pat_builder = - object - method record ty x = precord ~closed:Closed (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = pconstr (prefix ty c) args - method list l = plist l - method tuple l = ptuple l - method int i = pint i - method string s = pstr s - method char c = pchar c - method int32 x = Pat.constant (Const_int32 x) - method int64 x = Pat.constant (Const_int64 x) - method nativeint x = Pat.constant (Const_nativeint x) - end - - - let get_exp loc = function - | PStr [ {pstr_desc=Pstr_eval (e, _); _} ] -> e - | _ -> - Format.eprintf "%aExpression expected@." - Location.print_error loc; - exit 2 - - let get_typ loc = function - | PTyp t -> t - | _ -> - Format.eprintf "%aType expected@." - Location.print_error loc; - exit 2 - - let get_pat loc = function - | PPat (t, None) -> t - | _ -> - Format.eprintf "%aPattern expected@." - Location.print_error loc; - exit 2 - - let exp_lifter loc map = - let map = map.Ast_mapper.expr map in - object - inherit [_] Ast_lifter_402.lifter as super - inherit exp_builder - - (* Special support for location in the generated AST *) - method! lift_Location_t _ = loc - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_core_type x - end - - let pat_lifter map = - let map = map.Ast_mapper.pat map in - object - inherit [_] Ast_lifter_402.lifter as super - inherit pat_builder - - (* Special support for location and attributes in the generated AST *) - method! lift_Location_t _ = Pat.any () - method! lift_Parsetree_attributes _ = Pat.any () - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_core_type x - end - - let loc = ref (app (evar "Pervasives.!") [evar "Ast_helper.default_loc"]) - - let handle_attr = function - | {txt="metaloc";loc=l}, e -> loc := get_exp l e - | _ -> () - - let with_loc ?(attrs = []) f = - let old_loc = !loc in - List.iter handle_attr attrs; - let r = f () in - loc := old_loc; - r - - let expander = - let open Ast_mapper in - let super = default_mapper in - let expr this e = - with_loc ~attrs:e.pexp_attributes - (fun () -> - match e.pexp_desc with - | Pexp_extension({txt="expr";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_expression (get_exp l e) - | Pexp_extension({txt="pat";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_pattern (get_pat l e) - | Pexp_extension({txt="str";_}, PStr e) -> - (exp_lifter !loc this) # lift_Parsetree_structure e - | Pexp_extension({txt="stri";_}, PStr [e]) -> - (exp_lifter !loc this) # lift_Parsetree_structure_item e - | Pexp_extension({txt="type";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.expr this e - ) - and pat this p = - with_loc ~attrs:p.ppat_attributes - (fun () -> - match p.ppat_desc with - | Ppat_extension({txt="expr";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_expression (get_exp l e) - | Ppat_extension({txt="pat";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_pattern (get_pat l e) - | Ppat_extension({txt="str";_}, PStr e) -> - (pat_lifter this) # lift_Parsetree_structure e - | Ppat_extension({txt="stri";_}, PStr [e]) -> - (pat_lifter this) # lift_Parsetree_structure_item e - | Ppat_extension({txt="type";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.pat this p - ) - and structure this l = - with_loc - (fun () -> super.structure this l) - - and structure_item this x = - begin match x.pstr_desc with - | Pstr_attribute x -> handle_attr x - | _ -> () - end; - super.structure_item this x - - in - {super with expr; pat; structure; structure_item} - - let expander = - let open Migrate_parsetree in - let module To_current = Convert(OCaml_402)(OCaml_current) in - To_current.copy_mapper expander - - let () = - Migrate_parsetree.Compiler_libs.Ast_mapper.run_main @@ - fun _args -> expander -end diff --git a/vendor/ppx_tools_versioned/ppx_metaquot_403.ml b/vendor/ppx_tools_versioned/ppx_metaquot_403.ml deleted file mode 100644 index 9b4b239c0..000000000 --- a/vendor/ppx_tools_versioned/ppx_metaquot_403.ml +++ /dev/null @@ -1,241 +0,0 @@ -open Ast_403 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(* A -ppx rewriter to be used to write Parsetree-generating code - (including other -ppx rewriters) using concrete syntax. - - We support the following extensions in expression position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%stri ...] maps to code which creates the structure item represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e ...] where ... is an expression of type Parsetree.expression - [%t ...] where ... is an expression of type Parsetree.core_type - [%p ...] where ... is an expression of type Parsetree.pattern - - - All locations generated by the meta quotation are by default set - to [Ast_helper.default_loc]. This can be overriden by providing a custom - expression which will be inserted whereever a location is required - in the generated AST. This expression can be specified globally - (for the current structure) as a structure item attribute: - - ;;[@@metaloc ...] - - or locally for the scope of an expression: - - e [@metaloc ...] - - - - Support is also provided to use concrete syntax in pattern - position. The location and attribute fields are currently ignored - by patterns generated from meta quotations. - - We support the following extensions in pattern position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e? ...] where ... is a pattern of type Parsetree.expression - [%t? ...] where ... is a pattern of type Parsetree.core_type - [%p? ...] where ... is a pattern of type Parsetree.pattern - -*) - -module Main : sig end = struct - open Asttypes - open Parsetree - open Ast_helper - open Ast_convenience_403 - - let prefix ty s = - let open Longident in - match parse ty with - | Ldot(m, _) -> String.concat "." (Longident.flatten m) ^ "." ^ s - | _ -> s - - class exp_builder = - object - method record ty x = record (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = constr (prefix ty c) args - method list l = list l - method tuple l = tuple l - method int i = int i - method string s = str s - method char c = char c - method int32 x = Exp.constant (Const.int32 x) - method int64 x = Exp.constant (Const.int64 x) - method nativeint x = Exp.constant (Const.nativeint x) - end - - class pat_builder = - object - method record ty x = precord ~closed:Closed (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = pconstr (prefix ty c) args - method list l = plist l - method tuple l = ptuple l - method int i = pint i - method string s = pstr s - method char c = pchar c - method int32 x = Pat.constant (Const.int32 x) - method int64 x = Pat.constant (Const.int64 x) - method nativeint x = Pat.constant (Const.nativeint x) - end - - - let get_exp loc = function - | PStr [ {pstr_desc=Pstr_eval (e, _); _} ] -> e - | _ -> - Format.eprintf "%aExpression expected@." - Location.print_error loc; - exit 2 - - let get_typ loc = function - | PTyp t -> t - | _ -> - Format.eprintf "%aType expected@." - Location.print_error loc; - exit 2 - - let get_pat loc = function - | PPat (t, None) -> t - | _ -> - Format.eprintf "%aPattern expected@." - Location.print_error loc; - exit 2 - - let exp_lifter loc map = - let map = map.Ast_mapper.expr map in - object - inherit [_] Ast_lifter_403.lifter as super - inherit exp_builder - - (* Special support for location in the generated AST *) - method! lift_Location_t _ = loc - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_core_type x - end - - let pat_lifter map = - let map = map.Ast_mapper.pat map in - object - inherit [_] Ast_lifter_403.lifter as super - inherit pat_builder - - (* Special support for location and attributes in the generated AST *) - method! lift_Location_t _ = Pat.any () - method! lift_Parsetree_attributes _ = Pat.any () - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_core_type x - end - - let loc = ref (app (evar "Pervasives.!") [evar "Ast_helper.default_loc"]) - - let handle_attr = function - | {txt="metaloc";loc=l}, e -> loc := get_exp l e - | _ -> () - - let with_loc ?(attrs = []) f = - let old_loc = !loc in - List.iter handle_attr attrs; - let r = f () in - loc := old_loc; - r - - let expander = - let open Ast_mapper in - let super = default_mapper in - let expr this e = - with_loc ~attrs:e.pexp_attributes - (fun () -> - match e.pexp_desc with - | Pexp_extension({txt="expr";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_expression (get_exp l e) - | Pexp_extension({txt="pat";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_pattern (get_pat l e) - | Pexp_extension({txt="str";_}, PStr e) -> - (exp_lifter !loc this) # lift_Parsetree_structure e - | Pexp_extension({txt="stri";_}, PStr [e]) -> - (exp_lifter !loc this) # lift_Parsetree_structure_item e - | Pexp_extension({txt="type";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.expr this e - ) - and pat this p = - with_loc ~attrs:p.ppat_attributes - (fun () -> - match p.ppat_desc with - | Ppat_extension({txt="expr";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_expression (get_exp l e) - | Ppat_extension({txt="pat";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_pattern (get_pat l e) - | Ppat_extension({txt="str";_}, PStr e) -> - (pat_lifter this) # lift_Parsetree_structure e - | Ppat_extension({txt="stri";_}, PStr [e]) -> - (pat_lifter this) # lift_Parsetree_structure_item e - | Ppat_extension({txt="type";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.pat this p - ) - and structure this l = - with_loc - (fun () -> super.structure this l) - - and structure_item this x = - begin match x.pstr_desc with - | Pstr_attribute x -> handle_attr x - | _ -> () - end; - super.structure_item this x - - in - {super with expr; pat; structure; structure_item} - - let expander = - let open Migrate_parsetree in - let module To_current = Convert(OCaml_403)(OCaml_current) in - To_current.copy_mapper expander - - let () = - Migrate_parsetree.Compiler_libs.Ast_mapper.run_main @@ - fun _args -> expander -end diff --git a/vendor/ppx_tools_versioned/ppx_metaquot_404.ml b/vendor/ppx_tools_versioned/ppx_metaquot_404.ml deleted file mode 100644 index fd058504a..000000000 --- a/vendor/ppx_tools_versioned/ppx_metaquot_404.ml +++ /dev/null @@ -1,286 +0,0 @@ -open Ast_404 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(* A -ppx rewriter to be used to write Parsetree-generating code - (including other -ppx rewriters) using concrete syntax. - - We support the following extensions in expression position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%stri ...] maps to code which creates the structure item represented by ... - [%sig: ...] maps to code which creates the signature represented by ... - [%sigi: ...] maps to code which creates the signature item represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e ...] where ... is an expression of type Parsetree.expression - [%t ...] where ... is an expression of type Parsetree.core_type - [%p ...] where ... is an expression of type Parsetree.pattern - [%%s ...] where ... is an expression of type Parsetree.structure - or Parsetree.signature depending on the context. - - - All locations generated by the meta quotation are by default set - to [Ast_helper.default_loc]. This can be overriden by providing a custom - expression which will be inserted whereever a location is required - in the generated AST. This expression can be specified globally - (for the current structure) as a structure item attribute: - - ;;[@@metaloc ...] - - or locally for the scope of an expression: - - e [@metaloc ...] - - - - Support is also provided to use concrete syntax in pattern - position. The location and attribute fields are currently ignored - by patterns generated from meta quotations. - - We support the following extensions in pattern position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e? ...] where ... is a pattern of type Parsetree.expression - [%t? ...] where ... is a pattern of type Parsetree.core_type - [%p? ...] where ... is a pattern of type Parsetree.pattern - -*) - -module Main : sig end = struct - open Asttypes - open Parsetree - open Ast_helper - open Ast_convenience_404 - - let prefix ty s = - let open Longident in - match parse ty with - | Ldot(m, _) -> String.concat "." (Longident.flatten m) ^ "." ^ s - | _ -> s - - let append ?loc ?attrs e e' = - let fn = Location.mknoloc (Longident.(Ldot (Lident "List", "append"))) in - Exp.apply ?loc ?attrs (Exp.ident fn) [Nolabel, e; Nolabel, e'] - - class exp_builder = - object - method record ty x = record (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = constr (prefix ty c) args - method list l = list l - method tuple l = tuple l - method int i = int i - method string s = str s - method char c = char c - method int32 x = Exp.constant (Const.int32 x) - method int64 x = Exp.constant (Const.int64 x) - method nativeint x = Exp.constant (Const.nativeint x) - end - - class pat_builder = - object - method record ty x = precord ~closed:Closed (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = pconstr (prefix ty c) args - method list l = plist l - method tuple l = ptuple l - method int i = pint i - method string s = pstr s - method char c = pchar c - method int32 x = Pat.constant (Const.int32 x) - method int64 x = Pat.constant (Const.int64 x) - method nativeint x = Pat.constant (Const.nativeint x) - end - - - let get_exp loc = function - | PStr [ {pstr_desc=Pstr_eval (e, _); _} ] -> e - | _ -> - Format.eprintf "%aExpression expected@." - Location.print_error loc; - exit 2 - - let get_typ loc = function - | PTyp t -> t - | _ -> - Format.eprintf "%aType expected@." - Location.print_error loc; - exit 2 - - let get_pat loc = function - | PPat (t, None) -> t - | _ -> - Format.eprintf "%aPattern expected@." - Location.print_error loc; - exit 2 - - let exp_lifter loc map = - let map = map.Ast_mapper.expr map in - object - inherit [_] Ast_lifter_404.lifter as super - inherit exp_builder - - (* Special support for location in the generated AST *) - method! lift_Location_t _ = loc - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_structure str = - List.fold_right - (function - | {pstr_desc=Pstr_extension(({txt="s";loc}, e), _); _} -> - append (get_exp loc e) - | x -> - cons (super # lift_Parsetree_structure_item x)) - str (nil ()) - - method! lift_Parsetree_signature sign = - List.fold_right - (function - | {psig_desc=Psig_extension(({txt="s";loc}, e), _); _} -> - append (get_exp loc e) - | x -> - cons (super # lift_Parsetree_signature_item x)) - sign (nil ()) - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_core_type x - end - - let pat_lifter map = - let map = map.Ast_mapper.pat map in - object - inherit [_] Ast_lifter_404.lifter as super - inherit pat_builder - - (* Special support for location and attributes in the generated AST *) - method! lift_Location_t _ = Pat.any () - method! lift_Parsetree_attributes _ = Pat.any () - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_core_type x - end - - let loc = ref (app (evar "Pervasives.!") [evar "Ast_helper.default_loc"]) - - let handle_attr = function - | {txt="metaloc";loc=l}, e -> loc := get_exp l e - | _ -> () - - let with_loc ?(attrs = []) f = - let old_loc = !loc in - List.iter handle_attr attrs; - let r = f () in - loc := old_loc; - r - - let expander = - let open Ast_mapper in - let super = default_mapper in - let expr this e = - with_loc ~attrs:e.pexp_attributes - (fun () -> - match e.pexp_desc with - | Pexp_extension({txt="expr";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_expression (get_exp l e) - | Pexp_extension({txt="pat";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_pattern (get_pat l e) - | Pexp_extension({txt="str";_}, PStr e) -> - (exp_lifter !loc this) # lift_Parsetree_structure e - | Pexp_extension({txt="stri";_}, PStr [e]) -> - (exp_lifter !loc this) # lift_Parsetree_structure_item e - | Pexp_extension({txt="sig";_}, PSig e) -> - (exp_lifter !loc this) # lift_Parsetree_signature e - | Pexp_extension({txt="sigi";_}, PSig [e]) -> - (exp_lifter !loc this) # lift_Parsetree_signature_item e - | Pexp_extension({txt="type";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.expr this e - ) - and pat this p = - with_loc ~attrs:p.ppat_attributes - (fun () -> - match p.ppat_desc with - | Ppat_extension({txt="expr";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_expression (get_exp l e) - | Ppat_extension({txt="pat";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_pattern (get_pat l e) - | Ppat_extension({txt="str";_}, PStr e) -> - (pat_lifter this) # lift_Parsetree_structure e - | Ppat_extension({txt="stri";_}, PStr [e]) -> - (pat_lifter this) # lift_Parsetree_structure_item e - | Ppat_extension({txt="sig";_}, PSig e) -> - (pat_lifter this) # lift_Parsetree_signature e - | Ppat_extension({txt="sigi";_}, PSig [e]) -> - (pat_lifter this) # lift_Parsetree_signature_item e - | Ppat_extension({txt="type";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.pat this p - ) - and structure this l = - with_loc - (fun () -> super.structure this l) - - and structure_item this x = - begin match x.pstr_desc with - | Pstr_attribute x -> handle_attr x - | _ -> () - end; - super.structure_item this x - - and signature this l = - with_loc - (fun () -> super.signature this l) - - and signature_item this x = - begin match x.psig_desc with - | Psig_attribute x -> handle_attr x - | _ -> () - end; - super.signature_item this x - - in - {super with expr; pat; structure; structure_item; signature; signature_item} - - let expander = - let open Migrate_parsetree in - let module To_current = Convert(OCaml_404)(OCaml_current) in - To_current.copy_mapper expander - - let () = - Migrate_parsetree.Compiler_libs.Ast_mapper.run_main @@ - fun _args -> expander -end diff --git a/vendor/ppx_tools_versioned/ppx_metaquot_405.ml b/vendor/ppx_tools_versioned/ppx_metaquot_405.ml deleted file mode 100644 index d8a792304..000000000 --- a/vendor/ppx_tools_versioned/ppx_metaquot_405.ml +++ /dev/null @@ -1,286 +0,0 @@ -open Ast_405 - -(* This file is part of the ppx_tools package. It is released *) -(* under the terms of the MIT license (see LICENSE file). *) -(* Copyright 2013 Alain Frisch and LexiFi *) - -(* A -ppx rewriter to be used to write Parsetree-generating code - (including other -ppx rewriters) using concrete syntax. - - We support the following extensions in expression position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%stri ...] maps to code which creates the structure item represented by ... - [%sig: ...] maps to code which creates the signature represented by ... - [%sigi: ...] maps to code which creates the signature item represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e ...] where ... is an expression of type Parsetree.expression - [%t ...] where ... is an expression of type Parsetree.core_type - [%p ...] where ... is an expression of type Parsetree.pattern - [%%s ...] where ... is an expression of type Parsetree.structure - or Parsetree.signature depending on the context. - - - All locations generated by the meta quotation are by default set - to [Ast_helper.default_loc]. This can be overriden by providing a custom - expression which will be inserted whereever a location is required - in the generated AST. This expression can be specified globally - (for the current structure) as a structure item attribute: - - ;;[@@metaloc ...] - - or locally for the scope of an expression: - - e [@metaloc ...] - - - - Support is also provided to use concrete syntax in pattern - position. The location and attribute fields are currently ignored - by patterns generated from meta quotations. - - We support the following extensions in pattern position: - - [%expr ...] maps to code which creates the expression represented by ... - [%pat? ...] maps to code which creates the pattern represented by ... - [%str ...] maps to code which creates the structure represented by ... - [%type: ...] maps to code which creates the core type represented by ... - - Quoted code can refer to expressions representing AST fragments, - using the following extensions: - - [%e? ...] where ... is a pattern of type Parsetree.expression - [%t? ...] where ... is a pattern of type Parsetree.core_type - [%p? ...] where ... is a pattern of type Parsetree.pattern - -*) - -module Main : sig end = struct - open Asttypes - open Parsetree - open Ast_helper - open Ast_convenience_405 - - let prefix ty s = - let open Longident in - match parse ty with - | Ldot(m, _) -> String.concat "." (Longident.flatten m) ^ "." ^ s - | _ -> s - - let append ?loc ?attrs e e' = - let fn = Location.mknoloc (Longident.(Ldot (Lident "List", "append"))) in - Exp.apply ?loc ?attrs (Exp.ident fn) [Nolabel, e; Nolabel, e'] - - class exp_builder = - object - method record ty x = record (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = constr (prefix ty c) args - method list l = list l - method tuple l = tuple l - method int i = int i - method string s = str s - method char c = char c - method int32 x = Exp.constant (Const.int32 x) - method int64 x = Exp.constant (Const.int64 x) - method nativeint x = Exp.constant (Const.nativeint x) - end - - class pat_builder = - object - method record ty x = precord ~closed:Closed (List.map (fun (l, e) -> prefix ty l, e) x) - method constr ty (c, args) = pconstr (prefix ty c) args - method list l = plist l - method tuple l = ptuple l - method int i = pint i - method string s = pstr s - method char c = pchar c - method int32 x = Pat.constant (Const.int32 x) - method int64 x = Pat.constant (Const.int64 x) - method nativeint x = Pat.constant (Const.nativeint x) - end - - - let get_exp loc = function - | PStr [ {pstr_desc=Pstr_eval (e, _); _} ] -> e - | _ -> - Format.eprintf "%aExpression expected@." - Location.print_error loc; - exit 2 - - let get_typ loc = function - | PTyp t -> t - | _ -> - Format.eprintf "%aType expected@." - Location.print_error loc; - exit 2 - - let get_pat loc = function - | PPat (t, None) -> t - | _ -> - Format.eprintf "%aPattern expected@." - Location.print_error loc; - exit 2 - - let exp_lifter loc map = - let map = map.Ast_mapper.expr map in - object - inherit [_] Ast_lifter_405.lifter as super - inherit exp_builder - - (* Special support for location in the generated AST *) - method! lift_Location_t _ = loc - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_structure str = - List.fold_right - (function - | {pstr_desc=Pstr_extension(({txt="s";loc}, e), _); _} -> - append (get_exp loc e) - | x -> - cons (super # lift_Parsetree_structure_item x)) - str (nil ()) - - method! lift_Parsetree_signature sign = - List.fold_right - (function - | {psig_desc=Psig_extension(({txt="s";loc}, e), _); _} -> - append (get_exp loc e) - | x -> - cons (super # lift_Parsetree_signature_item x)) - sign (nil ()) - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_exp loc e) - | x -> super # lift_Parsetree_core_type x - end - - let pat_lifter map = - let map = map.Ast_mapper.pat map in - object - inherit [_] Ast_lifter_405.lifter as super - inherit pat_builder - - (* Special support for location and attributes in the generated AST *) - method! lift_Location_t _ = Pat.any () - method! lift_Parsetree_attributes _ = Pat.any () - - (* Support for antiquotations *) - method! lift_Parsetree_expression = function - | {pexp_desc=Pexp_extension({txt="e";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_expression x - - method! lift_Parsetree_pattern = function - | {ppat_desc=Ppat_extension({txt="p";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_pattern x - - method! lift_Parsetree_core_type = function - | {ptyp_desc=Ptyp_extension({txt="t";loc}, e); _} -> map (get_pat loc e) - | x -> super # lift_Parsetree_core_type x - end - - let loc = ref (app (evar "Pervasives.!") [evar "Ast_helper.default_loc"]) - - let handle_attr = function - | {txt="metaloc";loc=l}, e -> loc := get_exp l e - | _ -> () - - let with_loc ?(attrs = []) f = - let old_loc = !loc in - List.iter handle_attr attrs; - let r = f () in - loc := old_loc; - r - - let expander = - let open Ast_mapper in - let super = default_mapper in - let expr this e = - with_loc ~attrs:e.pexp_attributes - (fun () -> - match e.pexp_desc with - | Pexp_extension({txt="expr";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_expression (get_exp l e) - | Pexp_extension({txt="pat";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_pattern (get_pat l e) - | Pexp_extension({txt="str";_}, PStr e) -> - (exp_lifter !loc this) # lift_Parsetree_structure e - | Pexp_extension({txt="stri";_}, PStr [e]) -> - (exp_lifter !loc this) # lift_Parsetree_structure_item e - | Pexp_extension({txt="sig";_}, PSig e) -> - (exp_lifter !loc this) # lift_Parsetree_signature e - | Pexp_extension({txt="sigi";_}, PSig [e]) -> - (exp_lifter !loc this) # lift_Parsetree_signature_item e - | Pexp_extension({txt="type";loc=l}, e) -> - (exp_lifter !loc this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.expr this e - ) - and pat this p = - with_loc ~attrs:p.ppat_attributes - (fun () -> - match p.ppat_desc with - | Ppat_extension({txt="expr";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_expression (get_exp l e) - | Ppat_extension({txt="pat";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_pattern (get_pat l e) - | Ppat_extension({txt="str";_}, PStr e) -> - (pat_lifter this) # lift_Parsetree_structure e - | Ppat_extension({txt="stri";_}, PStr [e]) -> - (pat_lifter this) # lift_Parsetree_structure_item e - | Ppat_extension({txt="sig";_}, PSig e) -> - (pat_lifter this) # lift_Parsetree_signature e - | Ppat_extension({txt="sigi";_}, PSig [e]) -> - (pat_lifter this) # lift_Parsetree_signature_item e - | Ppat_extension({txt="type";loc=l}, e) -> - (pat_lifter this) # lift_Parsetree_core_type (get_typ l e) - | _ -> - super.pat this p - ) - and structure this l = - with_loc - (fun () -> super.structure this l) - - and structure_item this x = - begin match x.pstr_desc with - | Pstr_attribute x -> handle_attr x - | _ -> () - end; - super.structure_item this x - - and signature this l = - with_loc - (fun () -> super.signature this l) - - and signature_item this x = - begin match x.psig_desc with - | Psig_attribute x -> handle_attr x - | _ -> () - end; - super.signature_item this x - - in - {super with expr; pat; structure; structure_item; signature; signature_item} - - let expander = - let open Migrate_parsetree in - let module To_current = Convert(OCaml_405)(OCaml_current) in - To_current.copy_mapper expander - - let () = - Migrate_parsetree.Compiler_libs.Ast_mapper.run_main @@ - fun _args -> expander -end diff --git a/vendor/ppx_tools_versioned/ppx_tools_402.ml b/vendor/ppx_tools_versioned/ppx_tools_402.ml deleted file mode 100644 index 773388514..000000000 --- a/vendor/ppx_tools_versioned/ppx_tools_402.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Ast_convenience = Ast_convenience_402 -module Ast_mapper_class = Ast_mapper_class_402 diff --git a/vendor/ppx_tools_versioned/ppx_tools_403.ml b/vendor/ppx_tools_versioned/ppx_tools_403.ml deleted file mode 100644 index 1d186d991..000000000 --- a/vendor/ppx_tools_versioned/ppx_tools_403.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Ast_convenience = Ast_convenience_403 -module Ast_mapper_class = Ast_mapper_class_403 diff --git a/vendor/ppx_tools_versioned/ppx_tools_404.ml b/vendor/ppx_tools_versioned/ppx_tools_404.ml deleted file mode 100644 index cef40a644..000000000 --- a/vendor/ppx_tools_versioned/ppx_tools_404.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Ast_convenience = Ast_convenience_404 -module Ast_mapper_class = Ast_mapper_class_404 diff --git a/vendor/ppx_tools_versioned/ppx_tools_405.ml b/vendor/ppx_tools_versioned/ppx_tools_405.ml deleted file mode 100644 index 398d008e8..000000000 --- a/vendor/ppx_tools_versioned/ppx_tools_405.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Ast_convenience = Ast_convenience_405 -module Ast_mapper_class = Ast_mapper_class_405