.('', '\t\t', ExprSyntaxError('failed []',)) (')', '\t\t', ExprSyntaxError("failed []",)) ('(', '\t\t', ExprSyntaxError('failed []',)) ('()', '\t\t', ExprSyntaxError("failed []",)) ('( 1', '\t\t', ExprSyntaxError("failed []",)) ('(1 + (3 * 4)', '\t\t', ExprSyntaxError("failed []",)) ('(1 + (3 * 4) 5', '\t\t', ExprSyntaxError('failed []',)) ('expression:', '(7)') ('node:', (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:7 span_id:1))]))) ('expression:', '1 + 2 - 3') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:8))])) )) ('expression:', '1 + 2 * 3') ('node:', (ArithBinary op_id: Arith_Plus left: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:0))])) right: (ArithBinary op_id: Arith_Star left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:8))]) ) ) )) ('expression:', '7 - 9 * (2 - 3)') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:7 span_id:0))])) right: (ArithBinary op_id: Arith_Star left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:9 span_id:4))]) ) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:9))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:13))]) ) ) ) )) ('expression:', '2 * 3 * 4') ('node:', (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:8))])) )) ('expression:', '2 ** 3 ** 4') ('node:', (ArithBinary op_id: Arith_DStar left: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:0))])) right: (ArithBinary op_id: Arith_DStar left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:4))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:8))]) ) ) )) ('expression:', '(2 ** 3) ** 4') ('node:', (ArithBinary op_id: Arith_DStar left: (ArithBinary op_id: Arith_DStar left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:1))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:5))]) ) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:10))]) ) )) ('expression:', '5') ('node:', (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:5 span_id:0))]))) ('expression:', '4 + 2') ('node:', (ArithBinary op_id: Arith_Plus left: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:0))])) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))])) )) ('expression:', '9 - 8 - 7') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Minus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:9 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:8 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:7 span_id:8))])) )) ('expression:', '9 - (8 - 7)') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:9 span_id:0))])) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:8 span_id:5))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:7 span_id:9))]) ) ) )) ('expression:', '(9 - 8) - 7') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Minus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:9 span_id:1))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:8 span_id:5))]) ) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:7 span_id:10))]) ) )) ('expression:', '2 + 3 ** 2 * 3 + 4') ('node:', (ArithBinary op_id: Arith_Plus left: (ArithBinary op_id: Arith_Plus left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:0))]) ) right: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_DStar left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:4))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:8))]) ) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:12))]) ) ) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:16))]) ) )) ('expression:', '4 * 3 / 2') ('node:', (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Star left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:8)).])) )) ('expression:', '3 * 2 % 4') ('node:', (ArithBinary op_id: Arith_Percent left: (ArithBinary op_id: Arith_Star left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:8))])) )) ('expression:', '+ 1') ('node:', (ArithUnary op_id: Node_UnaryPlus child: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:2))])) )) ('expression:', '- 5') ('node:', (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:5 span_id:2))])) )) ('expression:', '-2-3') ('node:', (ArithBinary op_id: Arith_Minus left: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:1))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:3))])) )) ('expression:', '1 ? 2 : 3, 4 ? 5 : 6') ('node:', (ArithBinary op_id: Arith_Comma left: (TernaryOp cond: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:0))]) ) true_expr: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))]) ) false_expr: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:8))]) ) ) right: (TernaryOp cond: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:11))]) ) true_expr: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:5 span_id:15))]) ) false_expr: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:6 span_id:19))]) ) ) )) ('expression:', '1 , 2, 3') ('node:', (ArithBinary op_id: Arith_Comma left: (ArithBinary op_id: Arith_Comma left: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:0))]) ) right: (ArithWord w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:4))]) ) ) right: (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:7))])) )) ('expression:', '011') ('node:', (ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:011 span_id:0))]))) ('expression:', '0xA') ('node:', (ArithWord w: (CompoundWord parts: [ (LiteralPart token:(token id:Lit_Digits val:0 span_id:0)) (LiteralPart token:(token id:Lit_ArithVarLike val:xA span_id:1)) ] ) )) ('expression:', '64#z') ('node:', (ArithWord w: (CompoundWord parts: [ (LiteralPart token:(token id:Lit_Digits val:64 span_id:0)) (LiteralPart token:(token id:Lit_Pound val:'#' span_id:1)) (LiteralPart token:(token id:Lit_ArithVarLike val:z span_id:2)) ] ) )) ('expression:', '64#Z') ('node:', (ArithWord w: (CompoundWord parts: [ (LiteralPart token:(token id:Lit_Digits val:64 span_id:0)) (LiteralPart token:(token id:Lit_Pound val:'#' span_id:1)) (LiteralPart token:(token id:Lit_ArithVarLike val:Z span_id:2)) ] ) )) ('expression:', '64#@') ('node:', (ArithWord w: (CompoundWord parts: [ (LiteralPart token:(token id:Lit_Digits val:64 span_id:0)) (LiteralPart token:(token id:Lit_Pound val:'#' span_id:1)) (LiteralPart token:(token id:Lit_At val:'@' span_id:2)) ] ) )) ('expression:', '64#_') ('node:', (ArithWord . ---------------------------------------------------------------------- Ran 3 tests in 0.016s OK w: (CompoundWord parts: [ (LiteralPart token:(token id:Lit_Digits val:64 span_id:0)) (LiteralPart token:(token id:Lit_Pound val:'#' span_id:1)) (LiteralPart token:(token id:Lit_ArithVarLike val:_ span_id:2)) ] ) ))