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

Reply via email to