Manual:Results:Nested Lists
まんま
>>> from lepl import * >>> expr = Delayed() >>> number = Digit()[1:,...] >>> with Separator(Drop(Regexp(r'\s*'))): ... term = number | (Drop('(') & expr & Drop(')') > list) ... 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']]