[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [lpeg] How to implement a "fallback/onerror/panic" function in lpeg?
- From: Roberto Ierusalimschy <roberto@...>
- Date: Tue, 30 Aug 2011 10:48:23 -0300
> In MoonScript's inspired, I'm trying to make a tiny compiler with
> lpeg, but I found a problem: when the subject is incorrect, or I write
> a wrong pattern, the match just return nil, not any other things, It
> makes debug program very difficult, So I had to ask, has any idea to
> implement a fallback function for the pattern match?
>
> the fallback function may get some information, e.g. failure position,
> expected terminal or other information, but I can't output error
> message such as "test.moon: 10: `ident' expected after `,'" if I only
> have failure position, How could I produce messages like this? maybe a
> function mark() to mark some terminal/nonterminal to makes they can be
> shown in message?
For some inspiration, you may have a look at how 're.lua' (part of LPeg
distribution) handles errors. Look for function 'patt_error'. (For
line information, just count the number of newlines until the current
position.)
-- Roberto