Manual:Operators:Spaces
かなり、まんま
>>> from lepl import * >>> with Separator(Literal(' ')[:]): ... parser = Optional('a') & Optional('b') & 'c' & Eos() ... >>> parser.parse("a b c") ['a', ' ', 'b', ' ', 'c'] >>> parser.parse(" b c") [' ', 'b', ' ', 'c'] >>> parser.parse("a b c ") ['a', ' ', 'b', ' ', 'c', ' '] >>> with Separator(Literal(' ')[:]): ... parser = And(Optional('a'), Optional('b'), 'c', Eos()) ... >>> parser.parse("a b c") >>> parser.parse("abc") ['a', 'b', 'c'] >>> with SmartSeparator2(Literal(' ')[:]): ... parser = Optional('a') & Optional('b') & 'c' & Eos() ... >>> parser.parse("abc") ['a', 'b', 'c'] >>> parser.parse("a b c") ['a', ' ', 'b', ' ', 'c'] >>> parser.parse("a b c ") ['a', ' ', 'b', ' ', 'c', ' '] >>> parser.parse(" b c")