<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-size: 14pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi Ming,</p>
<p>Ragel has no support for this built in. I use a class for this that tracks the start of the interesting input and flushes it out when necessary. The start and finish functions are called from ragel actions. The preExec and postExec functions are called before and after the ragel write exec. See attached example.</p>
<p>In my uses I expand it to include start and finish functions on the expensive thing (also a stream processor), and I can also pause it to skip over some data that shouldn't go to expensive thing.</p>
<p>I've often thought about building this support into ragel, but once you've got the class made it's super easy to reuse it in many different cases.</p>
<p>Regards,</p>
<p> Adrian</p>
<p>On 2018-10-31 16:48, Ming Fu wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px"><!-- html ignored --> <!-- head ignored --><!-- meta ignored --> <!-- meta ignored --><!-- node type 8 --><!-- node type 8 -->
<div class="WordSection1">
<p class="MsoNormal">Hi,<!-- o ignored --></p>
<p class="MsoNormal"><!-- o ignored --> </p>
<p class="MsoNormal">I have the following ragel rule:<!-- o ignored --></p>
<p class="MsoNormal"><!-- o ignored --> </p>
<p class="MsoNormal">any* $(<!-- o ignored --></p>
<p class="MsoNormal">                Some_expensive_call(*p)<!-- o ignored --></p>
<p class="MsoNormal">}<!-- o ignored --></p>
<p class="MsoNormal"><!-- o ignored --> </p>
<p class="MsoNormal">However, I do not necessary have to make the some_expensive_call per input char, I can call some_less_expensive_call(*p, len) to be more efficient.<!-- o ignored --></p>
<p class="MsoNormal">How do I figure out the len and adjust pe. Consider the input may not be in contiguous memory block.<!-- o ignored --></p>
<p class="MsoNormal"><!-- o ignored --> </p>
<p class="MsoNormal">Thanks,<!-- o ignored --></p>
<p class="MsoNormal">Ming<!-- o ignored --></p>
</div>
<!-- html ignored --><br />
<pre>_______________________________________________
ragel-users mailing list
<a href="mailto:ragel-users@colm.net">ragel-users@colm.net</a>
<a href="http://www.colm.net/cgi-bin/mailman/listinfo/ragel-users">http://www.colm.net/cgi-bin/mailman/listinfo/ragel-users</a>
</pre>
</blockquote>
</body></html>