1234567891011121314151617181920212223242526272829openPpxlib(* Not present before 4.11 *)letset_positionlexbufposition=Lexing.(lexbuf.lex_curr_p<-{positionwithpos_fname=lexbuf.lex_curr_p.pos_fname};lexbuf.lex_abs_pos<-position.pos_cnum)letname="eml"letexpand~loc~path:_(s:string)=letstartpos=loc.loc_startin(* let startpos = {loc.loc_start with pos_lnum= loc.loc_start.pos_lnum - 1} in *)matchCommon.Template_builder.of_string~startposswith|Errorlexbuf->Common.Template_builder.handle_syntax_errorlexbuf;exit1|Templatetemplate->letbuffer=Lexing.from_string(Common.Compile.compile_to_stringtemplate)inset_positionbufferloc.loc_start;Parser.parse_expressionLexer.tokenbufferletext=Extension.declarenameExtension.Context.expressionAst_pattern.(single_expr_payload(estring__))expandlet()=Ppxlib.Driver.register_transformationname~extensions:[ext]