1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950openPpxlibmoduleBuilder=Ast_builder.Defaultletparse_restr=trylet_=Str.search_forward(Str.regexp"/\\(.*\\)/\\(.*\\)")str0inletfirst=Str.matched_group1strinletsecond=Str.matched_group2strinifString.lengthsecond=0thenSome(first,None)elseSome(first,Somesecond)withNot_found->Noneletextractor=Ast_pattern.(__')lethandler~ctxt:_({txt=payload;loc}:Ppxlib.Parsetree.payloadloc)=matchpayloadwith|PStr[{pstr_desc=Pstr_eval(expression,_);_}]->(matchexpression.pexp_descwith|Pexp_constant(Pconst_string(str,location,_delimiter))->(matchparse_restrwith|Some(regex,flags)->(letregex=Builder.estring~loc:locationregexinmatchflagswith|None->[%exprJs.Re.fromString[%eregex]]|Someflags'->letflags=Builder.estring~loc:locationflags'in[%exprJs.Re.fromStringWithFlags~flags:[%eflags][%eregex]])|None->Builder.pexp_extension~loc(Location.error_extensionf~loc:location"[server-reason-react.melange_ppx] invalid regex: %s, \
expected /regex/flags"str))|_->Builder.pexp_extension~loc(Location.error_extensionf~loc"[server-reason-react.melange_ppx] payload should be a string \
literal"))|_->Builder.pexp_extension~loc(Location.error_extensionf~loc"[server-reason-react.melange_ppx] [%%re] extension should have an \
expression as payload")letrule=letextension=Extension.V3.declare"mel.re"Extension.Context.expressionextractorhandlerinContext_free.Rule.extensionextension