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', ')']