Liquidsoap_lang_ast.Parsed_termThe term the parser produces, before desugaring. This is what the formatter and the LSP consume.
include module type of struct include Runtime_term endmodule Vars = Runtime_term.VarsSets of variables.
module Methods = Runtime_term.Methodstype custom = Runtime_term.customval hash_fold_custom :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
custom ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_custom :
custom ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valuetype custom_handler = Runtime_term.custom_handler = {name : string;to_string : custom -> string;to_json : pos:Liquidsoap_lang_prelude.Pos.t list ->
custom ->
Liquidsoap_lang_data.Json.t;compare : custom -> custom -> int;typ : Liquidsoap_lang_types.Type.t;}val hash_fold_custom_handler :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
custom_handler ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_custom_handler :
custom_handler ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fold_custom_term :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
custom_term ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_custom_term :
custom_term ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valuetype 'a term = 'a Runtime_term.term = {t : Liquidsoap_lang_types.Type.t;term : 'a;flags : Liquidsoap_lang_data.Flags.flags;methods : 'a term Methods.t;}val has_flag : 'a term -> Liquidsoap_lang_data.Flags.flag -> booltype ('a, 'b) func_argument = ('a, 'b) Runtime_term.func_argument = {label : string;as_variable : string option;default : 'a option;typ : 'b;pos : Liquidsoap_lang_prelude.Pos.t option;}val hash_fold_func_argument :
'a 'b. (Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'a ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
(Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'b ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
('a, 'b) func_argument ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.statetype ('a, 'b) func = ('a, 'b) Runtime_term.func = {mutable free_vars : Vars.t option;name : string option;arguments : ('a, 'b) func_argument list;body : 'a;}val hash_fold_cast :
'a 'b. (Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'a ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
(Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'b ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
('a, 'b) cast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.statetype ('a, 'b) common_ast = [ | `Custom of custom_term| `Tuple of 'a list| `Null| `Cast of ('a, 'b) cast| `Open of 'a * 'a| `Var of string| `Seq of 'a * 'a ]val hash_fold_common_ast :
'a 'b. (Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'a ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
(Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
'b ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state) ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
('a, 'b) common_ast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.statetype 'a let_t = 'a Runtime_term.let_t = {doc : Liquidsoap_lang_data.Doc.Value.t option;replace : bool;pat : [ `PVar of string list | `PTuple of string list ];mutable gen : Liquidsoap_lang_types.Type.var list;def : 'a;body : 'a;}type cached_env = Runtime_term.cached_env = {var_name : int;var_id : int;env : Liquidsoap_lang_types.Typing.env;}type 'a runtime_ast = [ | `Int of int| `Cache_env of cached_env Stdlib.ref| `Float of float| `String of string| `Bool of bool| `Let of 'a let_t| `List of 'a list| `App of 'a * (string * 'a) list| `Invoke of 'a Runtime_term.invoke| `Hide of 'a * string list| `Encoder of
string * 'a {encoder_params}2/shadowed/(62ebb5badd19bad411468f202cbb56aa)| `Fun of ('a, Liquidsoap_lang_types.Type.t) func ]module Custom = Term.Customtype pos = Term.parsed_posval hash_fold_string_param :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
string_param ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_string_param :
string_param ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valuetype track_annotation = string * string_paramval hash_fold_track_annotation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
track_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_track_annotation :
track_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fold_inc_type :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
inc_type ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_inc_type :
inc_type ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fold_inc :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
inc ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_inc :
inc ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fold_pattern :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
pattern ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_pattern_entry :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
pattern_entry ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_meth_term_default :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
meth_term_default ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_pattern :
pattern ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_pattern_entry :
pattern_entry ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_meth_term_default :
meth_term_default ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fold__of :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_of ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash__of :
_of ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueand static_cond = [ | `Defined of bool * string| `Version of
[ `Eq | `Geq | `Leq | `Gt | `Lt ]
* Liquidsoap_lang_prelude.Lang_string.Version.t| `Encoder of bool * string ]and _try = {try_body_block : block;try_handler : _try_handler option;try_finally_block : block option;}and let_decoration = [ | `None| `Recursive| `Replaces| `Eval| `Sqlite_query| `Sqlite_row| `Yaml_parse| `Xml_parse| `Json_parse of (string * t) list ]and _let = {kind : binding_kind;decoration : let_decoration;pat : pattern;arglist : fun_arg list option;cast : type_annotation option;def : t;}and parsed_func_argument = {label : string;as_variable : pattern option;default : t option;typ : type_annotation option;pos : pos;annotations : term_annotation list;}and meth_annotation = {optional_meth : bool;name : string;typ : type_annotation;json_name : string option;}and source_track_annotation = {track_name : string;track_type : string;track_params : track_annotation list;}and argument = bool * string * type_annotationand type_annotation = [ | `Named of string| `Nullable of type_annotation| `List of type_annotation| `Ref of type_annotation| `Json_object of type_annotation| `Tuple of type_annotation list| `Arrow of argument list * type_annotation| `Record of meth_annotation list| `Method of type_annotation * meth_annotation list| `Invoke of type_annotation * string| `Source of string * source_annotation| `Getter of type_annotation ]and parsed_ast = [ | `If of _if| `Inline_if of _if| `Static_if of static_if| `While of _while| `For of _for| `Iterable_for of iterable_for| `List of list_el list| `Try of _try| `Regexp of string * char list| `Time_interval of time_el * time_el| `Time of time_el| `App of t * app_arg list| `Invoke of invoke| `Fun of fun_arg list * t| `RFun of string * fun_arg list * t| `Not of t| `Get of t| `Set of t * t| `Methods of t option * methods list| `Negative of t| `Append of t * t| `Assoc of t * t| `Infix of t * string * t| `BoolOp of string * t list| `Coalesce of t * t| `At of t * t| `Simple_fun of block| `String_interpolation of char * string_interpolation list| `Int of string| `Bool of bool| `Float of string| `String of char * string| `Raw_string of string * string| `Block of block| `Parenthesis of t| `Encoder of encoder| (t, type_annotation) common_ast ]and t = {term : parsed_ast;pos : pos;mutable comments : (pos * comment) list;annotations : term_annotation list;}and encoder_params =
[ `Anonymous of string_param
| `Encoder of encoder
| `Labelled of string_param * t ]
listand encoder = string * encoder_paramsval hash_fold__if :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_if ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_block :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
block ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_statement :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
statement ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_statement_ast :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
statement_ast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_static_cond :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
static_cond ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_static_if :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
static_if ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_if_elsif :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
if_elsif ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold__while :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_while ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold__for :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_for ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_iterable_for :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
iterable_for ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold__try_handler :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_try_handler ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold__try :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_try ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_let_decoration :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
let_decoration ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_binding_kind :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
binding_kind ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold__let :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
_let ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_invoke :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
invoke ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_invoke_meth :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
invoke_meth ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_app_arg :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
app_arg ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_parsed_func_argument :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
parsed_func_argument ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_fun_arg :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
fun_arg ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_list_el :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
list_el ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_time_el :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
time_el ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_meth_annotation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
meth_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_source_track_annotation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
source_track_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_source_annotation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
source_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_source_tracks :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
source_tracks ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_argument :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
argument ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_type_annotation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
type_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_parsed_ast :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
parsed_ast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_t :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
t ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_methods :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
methods ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_string_interpolation :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
string_interpolation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_encoder_params :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
encoder_params ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash_fold_encoder :
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.state ->
encoder ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.stateval hash__if :
_if ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_block :
block ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_statement :
statement ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_statement_ast :
statement_ast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_static_cond :
static_cond ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_static_if :
static_if ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_if_elsif :
if_elsif ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash__while :
_while ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash__for :
_for ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_iterable_for :
iterable_for ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash__try_handler :
_try_handler ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash__try :
_try ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_let_decoration :
let_decoration ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_binding_kind :
binding_kind ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash__let :
_let ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_invoke :
invoke ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_invoke_meth :
invoke_meth ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_app_arg :
app_arg ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_parsed_func_argument :
parsed_func_argument ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_fun_arg :
fun_arg ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_list_el :
list_el ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_time_el :
time_el ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_meth_annotation :
meth_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_source_track_annotation :
source_track_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_source_annotation :
source_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_source_tracks :
source_tracks ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_argument :
argument ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_type_annotation :
type_annotation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_parsed_ast :
parsed_ast ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash :
t ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_methods :
methods ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_string_interpolation :
string_interpolation ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_encoder_params :
encoder_params ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval hash_encoder :
encoder ->
Liquidsoap_lang_prelude.Term_hash.Ppx_hash_lib.Std.Hash.hash_valueval make : ?comments:??? -> ?annotations:??? -> pos:pos -> parsed_ast -> tval map_children :
?block:??? ->
(t -> t) ->
[< `App of t * [ `Argsof of _of | `Term of string * t ] list
| `Append of t * t
| `Assoc of t * t
| `At of t * t
| `Block of block
| `Bool of 'a
| `BoolOp of 'b * t list
| `Cast of (t, 'c) cast
| `Coalesce of t * t
| `Custom of 'd
| `Encoder of
('f * [< `Anonymous of 'g | `Encoder of 'e | `Labelled of 'h * t ] list) as 'e
| `Float of 'i
| `For of _for
| `Fun of ([< `Argsof of 'k | `Term of parsed_func_argument ] as 'j) list * t
| `Get of t
| `If of _if
| `Infix of t * 'l * t
| `Inline_if of _if
| `Int of 'm
| `Invoke of invoke
| `Iterable_for of iterable_for
| `List of [< `Ellipsis of t | `Term of t ] list
| `Methods of t option * [< `Ellipsis of t | `Method of 'n * t ] list
| `Negative of t
| `Not of t
| `Null
| `Open of t * t
| `Parenthesis of t
| `RFun of 'o * 'p list * t
| `Raw_string of 'q
| `Regexp of 'r
| `Seq of t * t
| `Set of t * t
| `Simple_fun of block
| `Static_if of static_if
| `String of 's
| `String_interpolation of 't * [< `String of 'u | `Term of t ] list
| `Time of 'v
| `Time_interval of 'w
| `Try of _try
| `Tuple of t list
| `Var of 'x
| `While of _while ] ->
[> `App of t * [> `Argsof of _of | `Term of string * t ] list
| `Append of t * t
| `Assoc of t * t
| `At of t * t
| `Block of block
| `Bool of 'a
| `BoolOp of 'b * t list
| `Cast of (t, 'c) cast
| `Coalesce of t * t
| `Custom of 'd
| `Encoder of
('f * [> `Anonymous of 'g | `Encoder of 'y | `Labelled of 'h * t ] list) as 'y
| `Float of 'i
| `For of _for
| `Fun of [> `Argsof of 'k | `Term of parsed_func_argument ] list * t
| `Get of t
| `If of _if
| `Infix of t * 'l * t
| `Inline_if of _if
| `Int of 'm
| `Invoke of invoke
| `Iterable_for of iterable_for
| `List of [> `Ellipsis of t | `Term of t ] list
| `Methods of t option * [> `Ellipsis of t | `Method of 'n * t ] list
| `Negative of t
| `Not of t
| `Null
| `Open of t * t
| `Parenthesis of t
| `RFun of 'o * [> `Argsof of 'k | `Term of parsed_func_argument ] list * t
| `Raw_string of 'q
| `Regexp of 'r
| `Seq of t * t
| `Set of t * t
| `Simple_fun of block
| `Static_if of static_if
| `String of 's
| `String_interpolation of 't * [> `String of 'u | `Term of t ] list
| `Time of 'v
| `Time_interval of 'w
| `Try of _try
| `Tuple of t list
| `Var of 'x
| `While of _while ]map_children fn ast applies fn to every direct child term of ast, and map_block / map_statement do the same for blocks and statements.
Children are visited in source order, using explicit let bindings rather than record literals: OCaml leaves record field evaluation order unspecified, and iter_term below relies on the order to break ties when attaching a comment to the closest of two equally distant terms.
These are the one place that knows the shape of parsed_ast; iter_term and Term_preprocessor.expand_term are both written on top of them.
?block overrides how blocks are rebuilt. `%include` expansion needs it: splicing turns one statement into several, which map_statement alone cannot express.
val iter_anchors :
(pos ->
[> `Statement | `Term ] ->
(((pos * comment) list -> (pos * comment) list) -> unit) ->
'a) ->
t ->
unitVisit every node a comment can be attached to: terms and statements. fn receives the node's position, whether it is a statement, and a function that updates its comment list. A binding is a statement, so its doc comment has no term to land on. Nodes are visited outermost first.