123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124(* Jane Street: We use the compiler's implementation of pprintast, not ppxlib's. *)moduleJanestreet=Ocaml_common.Pprintast(* When the AST used by Ppxlib changes, update [From] and add the appropriate
[Migrate_XXX_to_YYY] calls to the [copy] functions; when we update the compiler, update
[To] and remove the appropriate [Migrate_XXX_to_YYY] calls. *)moduleTo_janestreet=structmoduleFrom=Ast_414.ParsetreemoduleTo=Ast_999.Parsetreeletcopy_structure(x:From.structure):To.structure=Migrate_500_999.copy_structurexletcopy_signature(x:From.signature):To.signature=Migrate_500_999.copy_signaturexletcopy_toplevel_phrase(x:From.toplevel_phrase):To.toplevel_phrase=Migrate_500_999.copy_toplevel_phrasexletcopy_core_type(x:From.core_type):To.core_type=Migrate_500_999.copy_core_typexletcopy_expression(x:From.expression):To.expression=Migrate_500_999.copy_expressionxletcopy_pattern(x:From.pattern):To.pattern=Migrate_500_999.copy_patternxletcopy_type_declaration(x:From.type_declaration):To.type_declaration=Migrate_500_999.copy_type_declarationxletcopy_class_expr(x:From.class_expr):To.class_expr=Migrate_500_999.copy_class_exprxletcopy_class_field(x:From.class_field):To.class_field=Migrate_500_999.copy_class_fieldxletcopy_class_type(x:From.class_type):To.class_type=Migrate_500_999.copy_class_typexletcopy_class_signature(x:From.class_signature):(To.class_signature)=Migrate_500_999.copy_class_signaturexletcopy_class_type_field(x:From.class_type_field):To.class_type_field=Migrate_500_999.copy_class_type_fieldxletcopy_module_expr(x:From.module_expr):To.module_expr=Migrate_500_999.copy_module_exprxletcopy_module_type(x:From.module_type):To.module_type=Migrate_500_999.copy_module_typexletcopy_signature_item(x:From.signature_item):To.signature_item=Migrate_500_999.copy_signature_itemxletcopy_structure_item(x:From.structure_item):To.structure_item=Migrate_500_999.copy_structure_itemxendtypespace_formatter=(unit,Format.formatter,unit)formatlettoplevel_phrasefmtphrase=Janestreet.toplevel_phrasefmt(To_janestreet.copy_toplevel_phrasephrase)letexpressionfmtexpr=Janestreet.expressionfmt(To_janestreet.copy_expressionexpr)letstring_of_expressionexpr=Janestreet.string_of_expression (To_janestreet.copy_expressionexpr)lettop_phrasefmtphrase=Janestreet.top_phrasefmt(To_janestreet.copy_toplevel_phrasephrase)letcore_typefmttyp=Janestreet.core_typefmt(To_janestreet.copy_core_typetyp)letpatternfmtpat=Janestreet.patternfmt (To_janestreet.copy_patternpat)letsignaturefmtsg=Janestreet.signaturefmt(To_janestreet.copy_signaturesg)letstructurefmtst=Janestreet.structurefmt(To_janestreet.copy_structurest)letstring_of_structurest=Janestreet.string_of_structure (To_janestreet.copy_structurest)letclass_exprfmtclexpr=Janestreet.class_exprfmt(To_janestreet.copy_class_exprclexpr)letclass_fieldfmtclfield=Janestreet.class_field fmt(To_janestreet.copy_class_fieldclfield)letclass_typefmtclty=Janestreet.class_typefmt(To_janestreet.copy_class_typeclty)letclass_signaturefmtclsig=Janestreet.class_signaturefmt(To_janestreet.copy_class_signatureclsig)letclass_type_fieldfmtctf=Janestreet.class_type_field fmt(To_janestreet.copy_class_type_fieldctf)letmodule_exprfmtmod_expr=Janestreet.module_expr fmt(To_janestreet.copy_module_exprmod_expr)letmodule_typefmtmod_ty =Janestreet.module_typefmt(To_janestreet.copy_module_typemod_ty)letsignature_itemfmtsig_item=Janestreet.signature_itemfmt(To_janestreet.copy_signature_itemsig_item)letsignature_itemsfmtitems=List.iteri(funiitem ->ifi>0thenFormat.fprintffmt"\n";signature_item fmtitem)itemsletstructure_itemfmtstr_item =Janestreet.structure_item fmt(To_janestreet.copy_structure_itemstr_item)lettype_declarationfmttydecl=Janestreet.type_declarationfmt(To_janestreet.copy_type_declarationtydecl)