12345678910111213141516171819202122232425262728293031moduleParser_=ParseropenPpxlib(* 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.tokenbuffer|>Selected_ast.Of_ocaml.copy_expressionletext=Extension.declarenameExtension.Context.expressionAst_pattern.(single_expr_payload(estring__))expandlet()=Ppxlib.Driver.register_transformationname~extensions:[ext]