>>> from lepl import *
>>> (Literal('a') >= lambda x: print(x)).parse('abc')
File "<stdin>", line 1
(Literal('a') >= lambda x: print(x)).parse('abc')
^
SyntaxError: invalid syntax
>>> Apply(Literal('a'), lambda x: print(x)).parse('abc')
['a']
[None]
>>> Apply(Literal('a'), lambda x: print("*", x, "*")).parse('abc')
* ['a'] *
[None]
>>> def star_show(x):
... print("*", x, "*")
... return x
...
>>> (Literal('a') >= star_show).parse('abc')
* ['a'] *
['a']
>>> ((Literal('a') & 'b') >= star_show).parse('abc')
* ['a', 'b'] *
['a', 'b']