Manual:Results:Flat List

まんま

>>> from lepl import *
>>> expr   = Delayed()
>>> number = Digit()[1:,...]
>>> with Separator(r'\s*'):
...     term    = number | '(' & expr & ')'
...     muldiv  = Any('*/')
...     factor  = term & (muldiv & term)[:]
...     addsub  = Any('+-')
...     expr   += factor & (addsub & factor)[:]
...     line    = expr & Eos()
...
>>> line.parse_string('1 + 2 * (3 + 4 - 5)')
['1', ' ', '', '+', ' ', '2', ' ', '*', ' ', '(', '', '3', ' ', '', '+', ' ', '4', ' ', '', '-', ' ', '5', '', '', ')', '']
>>> expr   = Delayed()
>>> with Separator(Drop(Regexp(r'\s*'))):
...     term    = number | '(' & expr & ')'
...     muldiv  = Any('*/')
...     factor  = term & (muldiv & term)[:]
...     addsub  = Any('+-')
...     expr   += factor & (addsub & factor)[:]
...     line    = expr & Eos()
...
>>> line.parse_string('1 + 2 * (3 + 4 - 5)')
['1', '+', '2', '*', '(', '3', '+', '4', '-', '5', ')']