Manual:Debugging:Trace Output
まんまではエラーになるようなので、id:noritsugu:20090802:parser のコードに Trace を入れて
>>> from lepl import * >>> from lepl.matchers import * >>> from logging import basicConfig, INFO >>> basicConfig(level=INFO) >>> name = Word() > 'name' >>> phone = Trace(Integer(), 'here') > 'phone' >>> line = name / ',' / phone > make_dict >>> matcher = line[0:,~Newline()] >>> matcher.parse_string('andrew, 3333253\n bob, 12345') INFO:lepl.lexer.rewriters.lexer_rewriter:Lexer rewriter used, but no tokens found. INFO:lepl.trace._TraceResults:00360 3333253 1.8 (0008) 019 stop -> DepthFirst(Line('andrew, 3333253\n')[8:]) -> ([], Line('andrew, 3333253\n')[8:]) INFO:lepl.trace._TraceResults:00361 3333253 1.8 (0008) 018 ([], Line('andrew, 3333253\n')[8:]) -> RTable(DepthFirst) -> ([], Line('andrew, 3333253\n')[8:]) INFO:lepl.trace._TraceResults:00362 3333253 1.8 (0008) 017 ([], Line('andrew, 3333253\n')[8:]) -> RMemo(DepthFirst) -> ([], Line('andrew, 3333253\n')[8:]) INFO:lepl.trace._TraceResults:00372 3333253 1.8 (0008) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[8:])) -> (['3'], Line('andrew, 3333253\n')[9:]) INFO:lepl.trace._TraceResults:00373 3333253 1.8 (0008) 024 (['3'], Line('andrew, 3333253\n')[9:]) -> RTable(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[9:]) INFO:lepl.trace._TraceResults:00374 3333253 1.8 (0008) 023 (['3'], Line('andrew, 3333253\n')[9:]) -> RMemo(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[9:]) INFO:lepl.trace._TraceResults:00378 333253 1.9 (0009) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[9:])) -> (['3'], Line('andrew, 3333253\n')[10:]) INFO:lepl.trace._TraceResults:00379 333253 1.9 (0009) 024 (['3'], Line('andrew, 3333253\n')[10:]) -> RTable(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[10:]) INFO:lepl.trace._TraceResults:00380 333253 1.9 (0009) 023 (['3'], Line('andrew, 3333253\n')[10:]) -> RMemo(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[10:]) INFO:lepl.trace._TraceResults:00384 33253 1.10 (0010) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[10:])) -> (['3'], Line('andrew, 3333253\n')[11:]) INFO:lepl.trace._TraceResults:00385 33253 1.10 (0010) 024 (['3'], Line('andrew, 3333253\n')[11:]) -> RTable(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[11:]) INFO:lepl.trace._TraceResults:00386 33253 1.10 (0010) 023 (['3'], Line('andrew, 3333253\n')[11:]) -> RMemo(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[11:]) INFO:lepl.trace._TraceResults:00390 3253 1.11 (0011) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[11:])) -> (['3'], Line('andrew, 3333253\n')[12:]) INFO:lepl.trace._TraceResults:00391 3253 1.11 (0011) 024 (['3'], Line('andrew, 3333253\n')[12:]) -> RTable(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[12:]) INFO:lepl.trace._TraceResults:00392 3253 1.11 (0011) 023 (['3'], Line('andrew, 3333253\n')[12:]) -> RMemo(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[12:]) INFO:lepl.trace._TraceResults:00396 253 1.12 (0012) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[12:])) -> (['2'], Line('andrew, 3333253\n')[13:]) INFO:lepl.trace._TraceResults:00397 253 1.12 (0012) 024 (['2'], Line('andrew, 3333253\n')[13:]) -> RTable(Any('0123456789')) -> (['2'], Line('andrew, 3333253\n')[13:]) INFO:lepl.trace._TraceResults:00398 253 1.12 (0012) 023 (['2'], Line('andrew, 3333253\n')[13:]) -> RMemo(Any('0123456789')) -> (['2'], Line('andrew, 3333253\n')[13:]) INFO:lepl.trace._TraceResults:00402 53 1.13 (0013) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[13:])) -> (['5'], Line('andrew, 3333253\n')[14:]) INFO:lepl.trace._TraceResults:00403 53 1.13 (0013) 024 (['5'], Line('andrew, 3333253\n')[14:]) -> RTable(Any('0123456789')) -> (['5'], Line('andrew, 3333253\n')[14:]) INFO:lepl.trace._TraceResults:00404 53 1.13 (0013) 023 (['5'], Line('andrew, 3333253\n')[14:]) -> RMemo(Any('0123456789')) -> (['5'], Line('andrew, 3333253\n')[14:]) INFO:lepl.trace._TraceResults:00408 3 1.14 (0014) 023 next(Any('0123456789')(Line('andrew, 3333253\n')[14:])) -> (['3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00409 3 1.14 (0014) 024 (['3'], Line('andrew, 3333253\n')[15:]) -> RTable(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00410 3 1.14 (0014) 023 (['3'], Line('andrew, 3333253\n')[15:]) -> RMemo(Any('0123456789')) -> (['3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00417 3333253 1.8 (0008) 022 stop -> DepthFirst(Line('andrew, 3333253\n')[8:]) -> (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00418 3333253 1.8 (0008) 021 (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) -> RTable(DepthFirst) -> (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00419 3333253 1.8 (0008) 020 (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) -> RMemo(DepthFirst) -> (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00420 3333253 1.8 (0008) 019 (['3', '3', '3', '3', '2', '5', '3'], Line('andrew, 3333253\n')[15:]) -> Transform(Add) -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00421 3333253 1.8 (0008) 018 (['3333253'], Line('andrew, 3333253\n')[15:]) -> RTable(Transform(Add)) -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00422 3333253 1.8 (0008) 017 (['3333253'], Line('andrew, 3333253\n')[15:]) -> RMemo(Transform(Add)) -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00423 3333253 1.8 (0008) 016 (['3333253'], Line('andrew, 3333253\n')[15:]) -> And -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00424 3333253 1.8 (0008) 015 (['3333253'], Line('andrew, 3333253\n')[15:]) -> RTable(And) -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00425 3333253 1.8 (0008) 014 (['3333253'], Line('andrew, 3333253\n')[15:]) -> RMemo(And) -> (['3333253'], Line('andrew, 3333253\n')[15:]) INFO:lepl.trace._TraceResults:00426 3333253 1.8 (0008) 013 (['3333253'], Line('andrew, 3333253\n')[15:]) -> Trace -> (['3333253'], Line('andrew, 3333253\n')[15:]) [{'phone': '3333253', 'name': 'andrew'}]