<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-02-20 10:47 GMT+06:00  <span dir="ltr"><<a href="mailto:fold@tuta.io" target="_blank">fold@tuta.io</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
Maybe just define another attribute in basis.urs?<div><br></div><div>It would be much interesting to define a DSEL though. I have not seen any attempts to create a DSEL for regular expressions.</div><div><br></div></div></blockquote><div><br></div><div>Indeed! And it seems like it would be a nice exercise as well having some practical uses to it.</div><div><br></div><div>I envision something along the lines of:</div><div><br></div><div>datatype RegExp = ... (* constructors *)</div><div><br></div><div>type t (* abstract, not exported outside the module *)</div><div>val compile : RegExp -> t (* the trusted function *)</div><div>val matches : string -> t -> bool (* check if passed-in string matches the expression *)</div><div><br></div><div>And the implementation might use something unsafe (like a string, or an actual regexp object in JS). Then we could offload the interpretation of regexps to an off-the-shelf library. The [compile] function would print and escape the AST to a regexp string, and the Ur/Web compiler might actually optimize all of this away.</div><div><br></div><div>If we are to take care of matching subgroups, that would require a more complicated type. I guess that should be doable as well, but I don't see immediately how to handle this.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br><br>20. Feb 2017 16:28 by <a href="mailto:artyom.shalkhakov@gmail.com" rel="noopener noreferrer" target="_blank">artyom.shalkhakov@gmail.com</a>:<div><div class="h5"><br><br><blockquote class="m_-4979629669098642090tutanota_quote" style="border-left:1px solid #93a3b8;padding-left:10px;margin-left:5px"><div>Hello all,<div><br></div><div>'m doing form validation stuff, following examples on MDN. [1]<br></div><div><br></div><div>It seems like Ur/Web doesn't handle regular expressions?</div><div><br></div><div>I guess it should not be too diffcult to define a DSEL in Ur/Web (just AST constructors and a few trusted functions: e.g. [compile : AST -> regexp], where [regexp] is an abstract type, or maybe just a string :-)) and have it work at least in the browser.</div><div><br></div><div>Could somebody point me in the right direction here?</div><div><br></div><div>-- <br><div class="m_-4979629669098642090gmail_signature">Cheers,<br>Artyom Shalkhakov<br></div><div class="m_-4979629669098642090gmail_signature"><br></div><div class="m_-4979629669098642090gmail_signature">[1] <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation" rel="noopener noreferrer" target="_blank">https://developer.mozilla.<wbr>org/en-US/docs/Web/Guide/HTML/<wbr>HTML5/Constraint_validation</a></div><div class="m_-4979629669098642090gmail_signature"><br></div>
</div></div></blockquote></div></div></div>  </div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Cheers,<br>Artyom Shalkhakov<br></div>
</div></div>