Manual:Line-Aware Parsing and the Offside Rule:Line Aware Alphabet

LEPL-3.1 だと入っていなかったので、LEPL-3.3.3 に

まんま

>>> from lepl import *
>>> start = SOL() & Space()[:, ...]
>>> words = Word()[:,~Space()[:]] > list
>>> end = EOL()
>>> line = start & words & end
>>> parser = line.string_parser(LineAwareConfiguration())
>>> parser('  abc def')
['  ', ['abc', 'def']]
>>> parser('\tabc def')
['\t', ['abc', 'def']]
>>> parser("\tabc def")
['\t', ['abc', 'def']]


まんま

>>> from lepl import *
>>> start = DfaRegexp('(*SOL) *')
>>> words = Word()[:,~Space()[:]] > list
>>> end = DfaRegexp('(*EOL)')
>>> line = start & words & end
>>> parser = line.string_parser(LineAwareConfiguration())
>>> parser('  abc def')
['  ', ['abc', 'def'], '']