.('', '\t\t', <Unexpected end of input (loc.Word
  w:(Token
    id:Eof_Real
    length:0
    col:0
    line:(SourceLine
      line_num:0
      content:""
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
(')', '\t\t', <Token can't be used in prefix position (loc.Word
  w:(Token
    id:Arith_RParen
    length:1
    col:0
    line:(SourceLine
      line_num:1
      content:")"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('(', '\t\t', <Unexpected end of input (loc.Word
  w:(Token
    id:Eof_Real
    length:0
    col:1
    line:(SourceLine
      line_num:1
      content:"("
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('()', '\t\t', <Token can't be used in prefix position (loc.Word
  w:(Token
    id:Arith_RParen
    length:1
    col:1
    line:(SourceLine
      line_num:1
      content:"()"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('( 1', '\t\t', <Parser expected Id.Arith_RParen, got Id.Eof_Real (loc.Word
  w:(Token
    id:Eof_Real
    length:0
    col:3
    line:(SourceLine
      line_num:1
      content:"( 1"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('(1 + (3 * 4)', '\t\t', <Parser expected Id.Arith_RParen, got Id.Eof_Real (loc.Word
  w:(Token
    id:Eof_Real
    length:0
    col:12
    line:(SourceLine
      line_num:1
      content:"(1 + (3 * 4)"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('(1 + (3 * 4) 5', '\t\t', <Parser expected Id.Arith_RParen, got Id.Word_Compound (loc.Word
  w:(CompoundWord
    parts:[
      (Token
        id:Lit_Digits
        length:1
        col:13
        line:(SourceLine
          line_num:1
          content:"(1 + (3 * 4) 5"
          src:(source.MainFile path:"<arith_parse_test.py>")
        )
      )
    ]
  )
)
>)
(';', '\t\t', <Token can't be used in prefix position (loc.Word
  w:(Token
    id:Arith_Semi
    length:1
    col:0
    line:(SourceLine
      line_num:1
      content:";"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('- ;', '\t\t', <Token can't be used in prefix position (loc.Word
  w:(Token
    id:Arith_Semi
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:"- ;"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
)
>)
('expression:', '(7)')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:1
      col:1
      line:(SourceLine
        line_num:1
        content:"(7)"
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
  ]
)
)
('expression:', '1 + 2 - 3')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:6
    line:(SourceLine
      line_num:1
      content:"1 + 2 - 3"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Plus length:1 col:2 line:...0x7f01cec116d8)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec116d8)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec116d8)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec116d8)]
  )
)
)
('expression:', '1 + 2 * 3')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Plus
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:"1 + 2 * 3"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec118e8)]
  )
  right:(arith_expr.Binary
    op:(Token id:Arith_Star length:1 col:6 line:...0x7f01cec118e8)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec118e8)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec118e8)]
    )
  )
)
)
('expression:', '7 - 9 * (2 - 3)')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:"7 - 9 * (2 - 3)"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec118e8)]
  )
  right:(arith_expr.Binary
    op:(Token id:Arith_Star length:1 col:6 line:...0x7f01cec118e8)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec118e8)]
    )
    right:(arith_expr.Binary
      op:(Token id:Arith_Minus length:1 col:11 line:...0x7f01cec118e8)
      left:(CompoundWord
        parts:[(Token id:Lit_Digits length:1 col:9 line:...0x7f01cec118e8)]
      )
      right:(CompoundWord
        parts:[(Token id:Lit_Digits length:1 col:13 line:...0x7f01cec118e8)]
      )
    )
  )
)
)
('expression:', '2 * 3 * 4')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Star
    length:1
    col:6
    line:(SourceLine
      line_num:1
      content:"2 * 3 * 4"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Star length:1 col:2 line:...0x7f01cec11680)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11680)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11680)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec11680)]
  )
)
)
('expression:', '2 ** 3 ** 4')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_DStar
    length:2
    col:2
    line:(SourceLine
      line_num:1
      content:"2 ** 3 ** 4"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec116d8)]
  )
  right:(arith_expr.Binary
    op:(Token id:Arith_DStar length:2 col:7 line:...0x7f01cec116d8)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:5 line:...0x7f01cec116d8)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:10 line:...0x7f01cec116d8)]
    )
  )
)
)
('expression:', '(2 ** 3) ** 4')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_DStar
    length:2
    col:9
    line:(SourceLine
      line_num:1
      content:"(2 ** 3) ** 4"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_DStar length:2 col:3 line:...0x7f01cec11c58)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:1 line:...0x7f01cec11c58)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:6 line:...0x7f01cec11c58)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:12 line:...0x7f01cec11c58)]
  )
)
)
('expression:', '5')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:1
      col:0
      line:(SourceLine
        line_num:1
        content:5
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
  ]
)
)
('expression:', '4 + 2')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Plus
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:"4 + 2"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11c58)]
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11c58)]
  )
)
)
('expression:', '9 - 8 - 7')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:6
    line:(SourceLine
      line_num:1
      content:"9 - 8 - 7"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Minus length:1 col:2 line:...0x7f01cec11d08)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11d08)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11d08)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec11d08)]
  )
)
)
('expression:', '9 - (8 - 7)')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:"9 - (8 - 7)"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11470)]
  )
  right:(arith_expr.Binary
    op:(Token id:Arith_Minus length:1 col:7 line:...0x7f01cec11470)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:5 line:...0x7f01cec11470)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:9 line:...0x7f01cec11470)]
    )
  )
)
)
('expression:', '(9 - 8) - 7')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:8
    line:(SourceLine
      line_num:1
      content:"(9 - 8) - 7"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Minus length:1 col:3 line:...0x7f01cec11368)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:1 line:...0x7f01cec11368)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:5 line:...0x7f01cec11368)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:10 line:...0x7f01cec11368)]
  )
)
)
('expression:', '2 + 3 ** 2 * 3 + 4')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Plus
    length:1
    col:15
    line:(SourceLine
      line_num:1
      content:"2 + 3 ** 2 * 3 + 4"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Plus length:1 col:2 line:...0x7f01cec119f0)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec119f0)]
    )
    right:(arith_expr.Binary
      op:(Token id:Arith_Star length:1 col:11 line:...0x7f01cec119f0)
      left:(arith_expr.Binary
        op:(Token id:Arith_DStar length:2 col:6 line:...0x7f01cec119f0)
        left:(CompoundWord
          parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec119f0)]
        )
        right:(CompoundWord
          parts:[(Token id:Lit_Digits length:1 col:9 line:...0x7f01cec119f0)]
        )
      )
      right:(CompoundWord
        parts:[(Token id:Lit_Digits length:1 col:13 line:...0x7f01cec119f0)]
      )
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:17 line:...0x7f01cec119f0)]
  )
)
)
('expression:', '4 * 3 / 2')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Slash
    length:1
    col:6
    line:(SourceLine
      line_num:1
      content:"4 * 3 / 2"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Star length:1 col:2 line:...0x7f01cec11d60)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11d60)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11d60)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec11d60)]
  )
)
)
('expression:', '3 * 2 % 4')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Percent
    length:1
    col:6
    line:(SourceLine
      line_num:1
      content:"3 * 2 % 4"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Star length:1 col:2 line:...0x7f01cec11310)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11310)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11310)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec11310)]
  )
)
)
('expression:', '+ 1')
('node:', (arith_expr.Unary
  op_id:Node_UnaryPlus
  child:(CompoundWord
    parts:[
      (Token
        id:Lit_Digits
        length:1
        col:2
        line:(SourceLine
          line_num:1
          content:"+ 1"
          src:(source.MainFile path:"<arith_parse_test.py>")
        )
      )
    ]
  )
)
)
('expression:', '- 5')
('node:', (arith_expr.Unary
  op_id:Node_UnaryMinus
  child:(CompoundWord
    parts:[
      (Token
        id:Lit_Digits
     .   length:1
        col:2
        line:(SourceLine
          line_num:1
          content:"- 5"
          src:(source.MainFile path:"<arith_parse_test.py>")
        )
      )
    ]
  )
)
)
('expression:', '-2-3')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Minus
    length:1
    col:2
    line:(SourceLine
      line_num:1
      content:-2-3
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Unary
    op_id:Node_UnaryMinus
    child:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:1 line:...0x7f01cec11310)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:3 line:...0x7f01cec11310)]
  )
)
)
('expression:', '1 ? 2 : 3, 4 ? 5 : 6')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Comma
    length:1
    col:9
    line:(SourceLine
      line_num:1
      content:"1 ? 2 : 3, 4 ? 5 : 6"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.TernaryOp
    cond:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11f70)]
    )
    true_expr:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11f70)]
    )
    false_expr:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:8 line:...0x7f01cec11f70)]
    )
  )
  right:(arith_expr.TernaryOp
    cond:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:11 line:...0x7f01cec11f70)]
    )
    true_expr:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:15 line:...0x7f01cec11f70)]
    )
    false_expr:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:19 line:...0x7f01cec11f70)]
    )
  )
)
)
('expression:', '1 , 2, 3')
('node:', (arith_expr.Binary
  op:(Token
    id:Arith_Comma
    length:1
    col:5
    line:(SourceLine
      line_num:1
      content:"1 , 2, 3"
      src:(source.MainFile path:"<arith_parse_test.py>")
    )
  )
  left:(arith_expr.Binary
    op:(Token id:Arith_Comma length:1 col:2 line:...0x7f01cec11db8)
    left:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:0 line:...0x7f01cec11db8)]
    )
    right:(CompoundWord
      parts:[(Token id:Lit_Digits length:1 col:4 line:...0x7f01cec11db8)]
    )
  )
  right:(CompoundWord
    parts:[(Token id:Lit_Digits length:1 col:7 line:...0x7f01cec11db8)]
  )
)
)
('expression:', '011')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:3
      col:0
      line:(SourceLine
        line_num:1
        content:011
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
  ]
)
)
('expression:', '0xA')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:1
      col:0
      line:(SourceLine
        line_num:1
        content:0xA
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
    (Token id:Lit_ArithVarLike length:2 col:1 line:...0x7f01cec11db8)
  ]
)
)
('expression:', '64#z')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:2
      col:0
      line:(SourceLine
        line_num:1
        content:"64#z"
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
    (Token id:Lit_Pound length:1 col:2 line:...0x7f01cec11db8)
    (Token id:Lit_ArithVarLike length:1 col:3 line:...0x7f01cec11db8)
  ]
)
)
('expression:', '64#Z')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:2
      col:0
      line:(SourceLine
        line_num:1
        content:"64#Z"
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
    (Token id:Lit_Pound length:1 col:2 line:...0x7f01cec11c00)
    (Token id:Lit_ArithVarLike length:1 col:3 line:...0x7f01cec11c00)
  ]
)
)
('expression:', '64#@')
('node:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:2
      col:0
      line:(SourceLine
        line_num:1
        content:"64#@"
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
    (Token id:Lit_Pound length:1 col:2 line:...0x7f01cec11628)
    (Token id:Lit_At length:1 col:3 line:...0x7f01cec11628)
  ]
)
)
('expression:', '64#_')
('n.
----------------------------------------------------------------------
Ran 3 tests in 0.065s

OK
ode:', (CompoundWord
  parts:[
    (Token
      id:Lit_Digits
      length:2
      col:0
      line:(SourceLine
        line_num:1
        content:"64#_"
        src:(source.MainFile path:"<arith_parse_test.py>")
      )
    )
    (Token id:Lit_Pound length:1 col:2 line:...0x7f01cec11628)
    (Token id:Lit_ArithVarLike length:1 col:3 line:...0x7f01cec11628)
  ]
)
)