Thanks Adrian!<div><br></div><div>By the way, I found this website yesterday: <a href="http://www.mail-archive.com/ragel-users@complang.org/index.html">http://www.mail-archive.com/ragel-users@complang.org/index.html</a> - I found it very useful for searching ragel's mailing list for help..  the default mailman archive on your site is awful for searching for stuff and following a conversation.</div>
<div><br>Maybe you could consider posting this link on your website, or even better, migrate the mailing-list and it's archive to google groups... Let me know if find this idea useful or if you need any help on that.</div>
<div><br></div><div><br>Thanks again!</div><div><br><div class="gmail_quote">On Fri, Sep 16, 2011 at 3:31 PM, Adrian Thurston <span dir="ltr"><<a href="mailto:thurston@complang.org">thurston@complang.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Either you have to hack the string you've captured, like you did in this solution, or you have to use a scanner. This parsing problem requires delaying the action on the first '*' since you don't know if it is a containing '*', or the first character in the terminating string.<div class="im">
<br>
<br>
On 11-09-16 11:12 AM, Henrique Pantarotto wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Well, I solved this problem by using something like this:<br>
<br>
action mark { text_start = fpc; }<br>
action show { printf("'%.*s'\n", fpc - text_start - 1, text_start); }<br>
<br>
main := '/*' >mark any* :>> '*/' @show;<br>
<br>
I don't know if this is the "correct way" to solve this, but it worked. ;-)<br>
<br>
<br>
Thanks<br>
<br>
On Thu, Sep 15, 2011 at 6:37 PM, Henrique Pantarotto <<a href="mailto:ragel@henpa.com" target="_blank">ragel@henpa.com</a><br></div><div><div></div><div class="h5">
<mailto:<a href="mailto:ragel@henpa.com" target="_blank">ragel@henpa.com</a>>> wrote:<br>
<br>
    Hi, I've read the ragel manual a couple of times and searched the<br>
    mailing list and I couldn't find the solution to this problem. I<br>
    imagine the solution is there somewhere, but I couldn't find it<br>
    since I couldn't search the mailing list archive properly.<br>
<br>
    BTW, I don't really need to parse c comments, but I found this<br>
    example to match perfectly what I am trying to accomplish. I'm<br>
    really trying to parse and print data separated by a multi-character<br>
    token.<br>
<br>
    Page 29 of Ragel 6.7 manual shows an example on how to properly<br>
    parse C language comments, but the action @comm also parses the *<br>
    caracter at the ending "*/" as shown in the Graphviz image.<br>
<br>
    I tried many ways to solve this problem, but I couldn't do it. Can<br>
    someone help?<br>
<br>
    action comm { printf("%c", fc); }<br>
    p = "/* foo *** bar */";<br>
<br>
    I tried:<br>
<br>
    main := '/*' (any* -- '/*')@comm '*/';<br>
    main := '/*' any*@comm :>> '*/';<br>
    main := '/*' ( ( any @comm )* - ( any* '*/' any* ) ) '*/';<br>
<br>
    But it always prints: "foo *** bar *" (note the * at the end) and I<br>
    looking for a way for it to print just " foo *** bar ".<br>
<br>
    Is there an easy way to fix this?<br>
<br>
<br>
    Thanks in advance!<br>
<br>
<br>
<br>
<br></div></div>
______________________________<u></u>_________________<br>
ragel-users mailing list<br>
<a href="mailto:ragel-users@complang.org" target="_blank">ragel-users@complang.org</a><br>
<a href="http://www.complang.org/mailman/listinfo/ragel-users" target="_blank">http://www.complang.org/<u></u>mailman/listinfo/ragel-users</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
ragel-users mailing list<br>
<a href="mailto:ragel-users@complang.org" target="_blank">ragel-users@complang.org</a><br>
<a href="http://www.complang.org/mailman/listinfo/ragel-users" target="_blank">http://www.complang.org/<u></u>mailman/listinfo/ragel-users</a><br>
</blockquote></div><br></div>