Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file exps.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126openPpxlibopenAst_helperopenPatsletint_expi=Exp.constant(Pconst_integer(string_of_inti,None))letfloat_expf=Exp.constant(Pconst_float(string_of_floatf,None))letstring_exp~locs=Exp.constant(Pconst_string(s,loc,None))letsimple_ident_exp~locstr=Exp.ident{txt=Lidentstr;loc}letmodule_ident_exp~locmstr=Exp.(ident{txt=Ldot(Lidentm,str);loc})letreclist_exp~loc=function|[]->Exp.construct{txt=Lident"[]";loc}None|x::xs->Exp.construct{txt=Lident"::";loc}(Some(Exp.tuple[x;list_exp~locxs]))letvalidate_func_exp~locvalidator_nameparams=letopenExpinmatchparamswith|[]->module_ident_exp~loc"Validate"validator_name|_->apply(module_ident_exp~loc"Validate"validator_name)paramsletfield_extractor_exp~locname=letopenExpinfun_NolabelNone(Pat.var{txt="x";loc})(field(simple_ident_exp~loc"x"){txt=Lidentname;loc})letvalidate_list_exp~locinner=letopenExpinapply(module_ident_exp~loc"Validate""list")[(Nolabel,inner)]letignore_ok_exp~locinner=letopenExpinapply(module_ident_exp~loc"Validate""ignore_ok")[(Nolabel,inner)]letdive_exp~loctype_name=letopenExpinlettxt=matchtype_namewith|Lidentname->Lident(Printf.sprintf"validate_%s"name)|Ldot(module_name,name)->Ldot(module_name,Printf.sprintf"validate_%s"name)|_->Location.raise_errorf~loc"Something went wrong"inident{txt;loc}letvariant_tuple_extractor_exp~locexpected_type_nametotaln=letpattern=n_element_tuple_pat~loc~prefix:"x"totalinletmatch_exp=Exp.match_(simple_ident_exp~loc"x")[Exp.case(Pat.construct{txt=Lidentexpected_type_name;loc}(Somepattern))(Exp.construct{txt=Lident"Some";loc}(Some(simple_ident_exp~loc(Printf.sprintf"x%d"n))));Exp.case(Pat.any())(Exp.construct{txt=Lident"None";loc}None);]inExp.(fun_NolabelNone(Pat.var{txt="x";loc})match_exp)letvariant_record_extractor_exp~locexpected_type_namefield_namesextracted_field_name=letpattern=record_pat~locfield_namesinletmatch_exp=Exp.match_(simple_ident_exp~loc"x")[Exp.case(Pat.construct{txt=Lidentexpected_type_name;loc}(Somepattern))(Exp.construct{txt=Lident"Some";loc}(Some(simple_ident_exp~locextracted_field_name)));Exp.case(Pat.any())(Exp.construct{txt=Lident"None";loc}None);]inExp.(fun_NolabelNone(Pat.var{txt="x";loc})match_exp)letvalidate_field_exp~locnameextractor_fun_expvalidators_list_exp=Exp.(apply(module_ident_exp~loc"Validate""field")[(Nolabel,string_exp~locname);(Nolabel,extractor_fun_exp);(Nolabel,validators_list_exp);])letvalidate_named_value_exp~locnameextractor_fun_expvalidators_list_exp=Exp.(apply(module_ident_exp~loc"Validate""named_value")[(Nolabel,string_exp~locname);(Nolabel,extractor_fun_exp);(Nolabel,validators_list_exp);])lettuple_element_extractor_fun_exp~loctotaln=letopenExpinletpattern=n_element_tuple_pat~loc~prefix:"x"totalinfun_NolabelNonepattern(simple_ident_exp~loc(Printf.sprintf"x%d"n))letvalidate_keyed_exp~locarg_exp=Exp.(apply(module_ident_exp~loc"Validate""keyed")[(Nolabel,arg_exp)])letvalidate_group_exp~locarg_exp=Exp.(apply(module_ident_exp~loc"Validate""group")[(Nolabel,arg_exp)])letvalidate_exp~locarg_exp=Exp.(apply(module_ident_exp~loc"Validate""validate")[(Nolabel,arg_exp);(Nolabel,simple_ident_exp~loc"x")])letvalidate_option~locarg_exp=Exp.(apply(module_ident_exp~loc"Validate""option")[(Nolabel,arg_exp)])