You can use fcall to jump to a machine, then fret to resume where you were. It's a bit tricky, but once you understand it you can parse recursively. See the startTable action here (though this is a pretty hairy parser):<br>

<a href="http://code.google.com/p/table-layout/source/browse/trunk/build/TableLayoutParser.rl">http://code.google.com/p/table-layout/source/browse/trunk/build/TableLayoutParser.rl</a><br><br>-Nate<br><br><br><div class="gmail_quote">

On Tue, Mar 29, 2011 at 2:55 PM, Jonathan Castello <span dir="ltr"><<a href="mailto:twisolar@gmail.com">twisolar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">On Tue, Mar 29, 2011 at 1:15 PM, Gordeev Vladimir<br>
<<a href="mailto:gordeev.vladimir.v@gmail.com">gordeev.vladimir.v@gmail.com</a>> wrote:<br>
</div><div class="im">> So I got following error:<br>
><br>
>     test.rl:7:32: graph lookup of "list" failed<br>
<br>
</div>The reason you get that error is because a rule can only reference<br>
definitions that came before it. "list" doesn't exist until the<br>
definition is finished, so it can't reference itself. (That would<br>
create a recursive structure anyways, which Ragel isn't equipped to<br>
handle natively.)<br>
<font color="#888888"><br>
~Jonathan<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
ragel-users mailing list<br>
<a href="mailto:ragel-users@complang.org">ragel-users@complang.org</a><br>
<a href="http://www.complang.org/mailman/listinfo/ragel-users" target="_blank">http://www.complang.org/mailman/listinfo/ragel-users</a><br>
</div></div></blockquote></div><br>