[ragel-users] parsing c comments

Henrique Pantarotto ragel at henpa.com
Thu Sep 15 21:37:33 UTC 2011

Hi, I've read the ragel manual a couple of times and searched the mailing
list and I couldn't find the solution to this problem. I imagine the
solution is there somewhere, but I couldn't find it since I couldn't search
the mailing list archive properly.

BTW, I don't really need to parse c comments, but I found this example to
match perfectly what I am trying to accomplish. I'm really trying to parse
and print data separated by a multi-character token.

Page 29 of Ragel 6.7 manual shows an example on how to properly parse C
language comments, but the action @comm also parses the * caracter at the
ending "*/" as shown in the Graphviz image.

I tried many ways to solve this problem, but I couldn't do it. Can someone

action comm { printf("%c", fc); }
p = "/* foo *** bar */";

I tried:

main := '/*' (any* -- '/*')@comm '*/';
main := '/*' any*@comm :>> '*/';
main := '/*' ( ( any @comm )* - ( any* '*/' any* ) ) '*/';

But it always prints: "foo *** bar *" (note the * at the end) and I looking
for a way for it to print just " foo *** bar ".

Is there an easy way to fix this?

Thanks in advance!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.colm.net/pipermail/ragel-users/attachments/20110915/32f8acc0/attachment-0001.html>
-------------- next part --------------
ragel-users mailing list
ragel-users at complang.org

More information about the ragel-users mailing list