[ragel-users] getNextToken() : how to return ?

Maël Nison nison.mael at gmail.com
Thu Jan 5 15:44:05 UTC 2012


It seems to work if I manually set p = te; just before returning, but I
don't really know if it's a good practice.

On 5 January 2012 16:20, Maël Nison <nison.mael at gmail.com> wrote:

> Epic formatting fail. I hope it will be better this time. Sorry ..
>
> Hi,
>
> I would like to write a very basic function taking a c++ char const *
> &, and returning the first token type.
> The reference would imply that the cstring pointer's target is, after
> the function call, the very next character of the returned token.
>
> Then I would be able to make :
> while ( token = getNextToken( foo ) )
>   std::cout << token << std::endl;
>
> I've tried to use something like that (example, probably does not
> compile),  but the value of 'p' is not modified when returning
> (infinite loop) :
>
> #include "Token.hh"
> %%machine foo;
> %%write data;
>
> int getNextToken( char const * & p ) {
>   %%{
>     foo = "foo";
>     main := |* foo => { return Foo; }; *|;
>   }%%;
>
>   int cs;
>   int act;
>   char const * ts;
>   char const * te;
>   char const * eof;
>
>   %% write init;
>   %% write exec noend;
> }
>
> Additionally, I've seen in the documentation that getkey could be
> employed to change the buffer input. Is there an example using
> standard c++ istreams ?
>
> --
> Maël Nison
> Epitech 2014, Paris - Astek
>
>


-- 
Maël Nison
Epitech 2014, Paris - Astek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.colm.net/pipermail/ragel-users/attachments/20120105/5ac55ca6/attachment-0001.html>
-------------- next part --------------
_______________________________________________
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