Manual:Error Reporting:Operators, Functions and Classes:raise_error

>>> from lepl import *
>>> raise_error("foo")
<function fun at 0xb7a5bc6c>
>>> raise_error("foo")()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: fun() takes exactly 3 positional arguments (0 given)
>>> raise_error("foo")("abc", "bc", ["a"])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/error.py", line 95, in fun
    raise make_error(msg)(stream_in, stream_out, results)
  File "<unknown> - use stream for better error reporting", line -1
    ...abc
lepl.error.Error: foo
>>> def test(stream_in, stream_out, results):
...     raise_error("foo")(stream_in, stream_out, results)
...
>>> (Literal('a') ** test).parse('abc')
No handlers could be found for logger "lepl.parser.trampoline"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/matchers.py", line 187, in parse
    return self.null_parser(config)(stream)
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/parser.py", line 249, in single
    return next(matcher(arg))[0]
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/parser.py", line 182, in trampoline
    raise value
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/parser.py", line 165, in trampoline
    value = stack[-1].throw(value)
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/parser.py", line 91, in throw
    return self.__generator.throw(value)
  File "/usr/local/Python-3.1/lib/python3.1/site-packages/lepl/memo.py", line 113, in generator
    stream))
  File "<unknown> - use stream for better error reporting", line -1
    ...abc
lepl.error.Error: foo