[ragel-users] Gearman Protocol
Adrian Thurston
adrian.thurston at esentire.com
Fri Aug 13 23:01:38 UTC 2010
What you're seeing is a limitation of conditions and large alphabets. To
implement conditions Ragel eats up characters in the alphabet space. It
does so quite aggressively (actually eats up bits). The int alphabet
type doesn't have much space to begin with. The standard remedy is to
use a smaller alphabet type.
What I need to do is to convert Ragel to internally use variable-size
alphabet types so this limit is hit less, but that's further down the
road for Ragel at this time.
-Adrian
On 10-08-11 05:20 PM, Colin Curtin wrote:
> Howdy, I'm trying my hand at a Ragel machine to parse the Gearman
> protocol found here: http://gearman.org/index.php?id=protocol
>
> Here's what I have so far: http://gist.github.com/520065
>
> I'm not sure why, but it's telling me:
>
> $ ragel -R -s gearman.rl
> lexer.rl:117:3: sorry, no more characters are available in the alphabet space
> lexer.rl:117:3: for conditions, please use a smaller alphtype or reduce
> lexer.rl:117:3: the span of characters on which conditions are embedded
>
> It seems to be the line " data = (any when test_size)*;"
>
> But I'm just going off of the Ragel guide, section 6.5. Is that "when"
> syntax not supported? How can I guarantee the length and data's length
> are the same?
>
> Thanks!
> Colin
>
>
_______________________________________________
ragel-users mailing list
ragel-users at complang.org
http://www.complang.org/mailman/listinfo/ragel-users
More information about the ragel-users
mailing list