package ppxlib
Standard infrastructure for ppx rewriters
Install
Dune Dependency
Authors
Maintainers
Sources
ppxlib-0.35.0.tbz
sha256=d9d959fc9f84260487e45684dc741898a92fc5506b61a7f5cac65d21832db925
sha512=e428b1e3b89261c7efdaa18016264d1afbf067cb9b0d41124b04796c2487ac7ca8ee9a24a60d56f20d1774cb44aaa9ecf1512f17455812ba8d62d4ef93616ee7
doc/src/ppxlib/ppxlib.ml.html
Source file ppxlib.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
(** Standard library for ppx rewriters *) (** [ppxlib] is meant to be opened globally in your PPX source files. Opening it comes with two advantages. First, it will shadow the [compiler-libs] modules. The [compiler-libs] modules are unstable and aren't meant to be used, so shadowing them is a good protection mechanism. In case you don't want to open [Ppxlib], you can open [Ocaml_shadow] to get the same protection. Second, it will bring several modules in scope, that are useful to have when writing a rewriter: - The main [ppxlib] modules, such as modules to help manipulate the AST ({!Ast_builder}, {!Ast_pattern}), and a few functions. - Modules from other libraries, such as {!Ast_helper} or {!Pprintast}, - The whole AST types (by [including] the {!Ast} module). {1 The core [ppxlib] entries} *) (** {2 Manipulating the AST} *) module Ast_builder = Ast_builder module Ast_pattern = Ast_pattern module Ast_traverse = Ast_traverse (** {2 Context-free rewriting} *) module Context_free = Context_free module Deriving = Deriving module Extension = Extension module Expansion_context = Expansion_context module Code_path = Code_path (** {2 Other helpers} *) module Expansion_helpers = Expansion_helpers module Merlin_helpers = Merlin_helpers module Spellcheck = Spellcheck module Keyword = Keyword module Pp_ast = Pp_ast (** {2 Driver-related modules} *) module Driver = Driver module Caller_id = Caller_id module Ast_io = Utils.Ast_io.Read_bin (** {2 Checks} *) module Attribute = Attribute module Reserved_namespaces = Name.Reserved_namespaces (** {2 Common helper functions} *) include Common (** {1 Modules from other libraries} Expose some modules from {!Ppxlib_ast}. *) module Ast = Ppxlib_ast.Ast module Ast_helper = Ppxlib_ast.Ast_helper module Asttypes = Ppxlib_ast.Asttypes module Parse = Ppxlib_ast.Parse module Parsetree = Ppxlib_ast.Parsetree module Pprintast = Ppxlib_ast.Pprintast module Selected_ast = Ppxlib_ast.Selected_ast module Location = Location module Longident = Longident module Loc = Loc (** {1 The whole AST types} *) include Ast (** Include all the Ast definitions since we need them in every single ppx @closed *) (** Make sure code using Ppxlib doesn't refer to compiler-libs without being explicit about it: @closed *) include struct [@@@warning "-3"] open Ocaml_shadow include ( Ocaml_shadow : module type of struct include Ocaml_shadow end with module Ast_helper := Ast_helper with module Asttypes := Asttypes with module Docstrings := Docstrings with module Identifiable := Identifiable with module Lexer := Lexer with module Location := Location with module Longident := Longident with module Parse := Parse with module Parsetree := Parsetree with module Pprintast := Pprintast with module Syntaxerr := Syntaxerr) end (**/**) (* For tests, Ppx_core compatibility layer and use by ppxlib-pp-ast and other internal tools. *) module Ppxlib_private = struct module Common = Common module Name = Name module Utils = Utils end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>