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'}]