123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127(**************************************************************************)(* *)(* OCaml Migrate Parsetree *)(* *)(* Frédéric Bour *)(* Jérémie Dimino, Jane Street Europe *)(* *)(* Copyright 2017 Institut National de Recherche en Informatique et *)(* en Automatique (INRIA). *)(* *)(* All rights reserved. This file is distributed under the terms of *)(* the GNU Lesser General Public License version 2.1, with the *)(* special exception on linking described in the file LICENSE. *)(* *)(**************************************************************************)(*$ #use "src/cinaps_helpers" $*)(* Shared definitions.
Mostly errors about features missing in older versions. *)moduleDef=Migrate_parsetree_def(* Copy of OCaml parsetrees *)(*$foreach_version (fun suffix _ ->
printf "module Ast_%s = Ast_%s\n" suffix suffix
)*)moduleAst_402=Ast_402moduleAst_403=Ast_403moduleAst_404=Ast_404moduleAst_405=Ast_405moduleAst_406=Ast_406moduleAst_407=Ast_407moduleAst_408=Ast_408moduleAst_409=Ast_409moduleAst_410=Ast_410moduleAst_411=Ast_411moduleAst_412=Ast_412moduleAst_413=Ast_413moduleAst_414=Ast_414moduleAst_500=Ast_500moduleAst_51=Ast_51moduleAst_52=Ast_52(*$*)(* Manual migration between versions *)(*$foreach_version_pair (fun x y ->
printf "module Migrate_%s_%s = Migrate_parsetree_%s_%s\n" x y x y;
printf "module Migrate_%s_%s = Migrate_parsetree_%s_%s\n" y x y x;
)*)moduleMigrate_402_403=Migrate_parsetree_402_403moduleMigrate_403_402=Migrate_parsetree_403_402moduleMigrate_403_404=Migrate_parsetree_403_404moduleMigrate_404_403=Migrate_parsetree_404_403moduleMigrate_404_405=Migrate_parsetree_404_405moduleMigrate_405_404=Migrate_parsetree_405_404moduleMigrate_405_406=Migrate_parsetree_405_406moduleMigrate_406_405=Migrate_parsetree_406_405moduleMigrate_406_407=Migrate_parsetree_406_407moduleMigrate_407_406=Migrate_parsetree_407_406moduleMigrate_407_408=Migrate_parsetree_407_408moduleMigrate_408_407=Migrate_parsetree_408_407moduleMigrate_408_409=Migrate_parsetree_408_409moduleMigrate_409_408=Migrate_parsetree_409_408moduleMigrate_409_410=Migrate_parsetree_409_410moduleMigrate_410_409=Migrate_parsetree_410_409moduleMigrate_410_411=Migrate_parsetree_410_411moduleMigrate_411_410=Migrate_parsetree_411_410moduleMigrate_411_412=Migrate_parsetree_411_412moduleMigrate_412_411=Migrate_parsetree_412_411moduleMigrate_412_413=Migrate_parsetree_412_413moduleMigrate_413_412=Migrate_parsetree_413_412moduleMigrate_413_414=Migrate_parsetree_413_414moduleMigrate_414_413=Migrate_parsetree_414_413moduleMigrate_414_500=Migrate_parsetree_414_500moduleMigrate_500_414=Migrate_parsetree_500_414moduleMigrate_500_51=Migrate_parsetree_500_51moduleMigrate_51_500=Migrate_parsetree_51_500moduleMigrate_51_52=Migrate_parsetree_51_52moduleMigrate_52_51=Migrate_parsetree_52_51(*$*)(* An abstraction of OCaml compiler versions *)moduleVersions=Migrate_parsetree_versions(* All versions are compatible with this signature *)moduletypeOCaml_version=Versions.OCaml_version(*$foreach_version (fun suffix _ ->
printf "module OCaml_%s = Versions.OCaml_%s\n" suffix suffix
)*)moduleOCaml_402=Versions.OCaml_402moduleOCaml_403=Versions.OCaml_403moduleOCaml_404=Versions.OCaml_404moduleOCaml_405=Versions.OCaml_405moduleOCaml_406=Versions.OCaml_406moduleOCaml_407=Versions.OCaml_407moduleOCaml_408=Versions.OCaml_408moduleOCaml_409=Versions.OCaml_409moduleOCaml_410=Versions.OCaml_410moduleOCaml_411=Versions.OCaml_411moduleOCaml_412=Versions.OCaml_412moduleOCaml_413=Versions.OCaml_413moduleOCaml_414=Versions.OCaml_414moduleOCaml_500=Versions.OCaml_500moduleOCaml_51=Versions.OCaml_51(*$*)moduleOCaml_current=Versions.OCaml_current(* A Functor taking two OCaml versions and producing a module of functions
migrating from one to the other. *)moduleConvert=Versions.Convert(* Aliases for compiler-libs modules that might be shadowed *)moduleCompiler_libs=structmoduleLocation=LocationmoduleLongident=LongidentmoduletypeAsttypes=moduletypeofstructincludeAsttypesendmodulerecAsttypes:Asttypes=AsttypesmoduletypeParsetree=moduletypeof structincludeParsetreeendmodulerecParsetree:Parsetree=ParsetreemoduleDocstrings=DocstringsmoduleAst_helper=Ast_helpermoduleAst_mapper=Ast_mapperend