To expand on this a bit ... it is entirely up to the user to manage the
stack allocation. Ragel's support for recursive structures (fcall/fret)
is an extension to the basic model, which is pure state machine (not a
PDA). If you find you have a lot recursion in what you need to parse,
you should consider that ragel might not be the right tool for the job.
Regards
On 03/29/2011 09:59 PM, Nate wrote:
Yes, see the int[] stack in the link. :) Also note the code under "prepush".
-Nate
On Tue, Mar 29, 2011 at 9:38 PM, Gordeev Vladimir
<[email protected] <mailto:[email protected]>> wrote:
Hm, this looks like solution. I will try it. Thanks.
Related question: Does Ragel have some inner stack to handle nested
fcall/fret?
On 30.03.2011 00:59, Nate wrote:
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):
http://code.google.com/p/table-layout/source/browse/trunk/build/TableLayoutParser.rl
-Nate
On Tue, Mar 29, 2011 at 2:55 PM, Jonathan Castello
<[email protected] <mailto:[email protected]>> wrote:
On Tue, Mar 29, 2011 at 1:15 PM, Gordeev Vladimir
<[email protected]
<mailto:[email protected]>> wrote:
> So I got following error:
>
> test.rl:7:32: graph lookup of "list" failed
The reason you get that error is because a rule can only reference
definitions that came before it. "list" doesn't exist until the
definition is finished, so it can't reference itself. (That would
create a recursive structure anyways, which Ragel isn't
equipped to
handle natively.)
~Jonathan
_______________________________________________
ragel-users mailing list
[email protected] <mailto:[email protected]>
http://www.complang.org/mailman/listinfo/ragel-users
_______________________________________________
ragel-users mailing list
[email protected] <mailto:[email protected]>
http://www.complang.org/mailman/listinfo/ragel-users
_______________________________________________
ragel-users mailing list
[email protected] <mailto:[email protected]>
http://www.complang.org/mailman/listinfo/ragel-users
_______________________________________________
ragel-users mailing list
[email protected]
http://www.complang.org/mailman/listinfo/ragel-users
--===============092103
--
Adrian D. Thurston
http://www.complang.org/thurston/
_______________________________________________
ragel-users mailing list
[email protected]
http://www.complang.org/mailman/listinfo/ragel-users