<HTML dir=ltr><HEAD><TITLE>[clean-list] Parsing: to drill or not to drill, that is the question</TITLE>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD>
<BODY>
<DIV id=idOWAReplyText74121 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>I just wrote constantWind to be working on a list of Char. Only after that I found out I wanted to combine it with parsers working on a list of [Char]. It shows that you can reuse the constantWind parser without having to re-engineer it to work on a list of [Char]. you could have done the latter also.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>Erik Zuurbier</FONT></DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>Van:</B> clean-list-bounces@science.ru.nl namens metaperl<BR><B>Verzonden:</B> do 28-8-2008 16:30<BR><B>Aan:</B> clean-list@science.ru.nl<BR><B>Onderwerp:</B> [clean-list] Parsing: to drill or not to drill, that is the question<BR></FONT><BR></DIV>
<DIV><BR>
<P><FONT size=2>surfaceWind is a parser engineered to operate on [Char]<BR><BR>however constantWind is a parser engineered to operate on Char... but it<BR>then gets applied via drill to create a parser which operates on [Char]<BR><BR>Why would one be indirect and create a parser to operate on Char and then<BR>apply 'drill' to get what you intended to use:<BR><BR>surfaceWind :: Parser [Char] SurfaceWind t<BR>surfaceWind = "Surface Wind" :&gt; p<BR>where&nbsp;&nbsp; p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = (word constantWind) &lt;&amp;&gt; \surfaceWind -&gt; &lt;!?&gt; (word<BR>directionVariation)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (\dir2-&gt;{surfaceWind &amp; direction=dir2}) // if found<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; surfaceWind&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if nothing found<BR><BR>constantWind :: Parser Char SurfaceWind a<BR>constantWind =&nbsp; direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&amp;&gt; \dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; speed&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&amp;&gt; \(u,spd) -&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gust u&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;@&nbsp; \g&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; {direction=dir,speed=spd,gust=g}<BR><BR>--<BR>View this message in context: <A href="http://www.nabble.com/Parsing%3A-to-drill-or-not-to-drill%2C--that-is-the-question-tp19201847p19201847.html">http://www.nabble.com/Parsing%3A-to-drill-or-not-to-drill%2C--that-is-the-question-tp19201847p19201847.html</A><BR>Sent from the Clean mailing list archive at Nabble.com.<BR><BR>_______________________________________________<BR>clean-list mailing list<BR>clean-list@science.ru.nl<BR><A href="http://mailman.science.ru.nl/mailman/listinfo/clean-list">http://mailman.science.ru.nl/mailman/listinfo/clean-list</A><BR></FONT></P></DIV></BODY></HTML>