[ragel-users] Anchoring to the EOF

Adrian Thurston thurston at complang.org
Sun Jan 25 00:59:39 UTC 2009


Like this:

error_handler := any* :>> '\n' @{fgoto main;};

main := whatever $!{fgoto error_handler;};

-Adrian

Julian Morrison wrote:
> It certainly does help, thanks.
> 
> OK, next, I wasn't able to figure out how to do an error recovery. That 
> is, when one of the (line*) starts to match, then fails, the error 
> action should log the error, jump to another regex that matches (any*) 
> :>> '\n', jump back and pick right back up trying to match more lines. 
> It's plainly obvious that Ragel can do that, but the wizardry level is a 
> bit above me. Please elucidate?
> 
> 2009/1/23 Adrian Thurston <thurston at complang.org 
> <mailto:thurston at complang.org>>
> 
>     In short, there isn't!
> 
>     Ragel does not make any assumption about the input, and this includes
>     not assuming line-based input. If you want to anchor to something you
>     just put that something into the grammar at the end. If you want to see
>     if the machine finished in a final state (and thus consumed that
>     something) you test cs against machine_first_final.
> 
>     Hope this helps,
>      Adrian
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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