.('', '\t\t', ) (')', '\t\t', ) ('(', '\t\t', ) ('()', '\t\t', ) ('( 1', '\t\t', ) ('(1 + (3 * 4)', '\t\t', ) ('(1 + (3 * 4) 5', '\t\t', ) (';', '\t\t', ) ('- ;', '\t\t', ) ('expression:', '(7)') ('node:', (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:7)]))) ('expression:', '1 + 2 - 3') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:3)])) )) ('expression:', '1 + 2 * 3') ('node:', (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)])) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:3)])) ) )) ('expression:', '7 - 9 * (2 - 3)') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:7)])) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:9)])) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:9 val:2)]) ) right: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:13 val:3)]) ) ) ) )) ('expression:', '2 * 3 * 4') ('node:', (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:2)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:4)])) )) ('expression:', '2 ** 3 ** 4') ('node:', (arith_expr.Binary op_id: Id.Arith_DStar left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:2)])) right: (arith_expr.Binary op_id: Id.Arith_DStar left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:4)])) ) )) ('expression:', '(2 ** 3) ** 4') ('node:', (arith_expr.Binary op_id: Id.Arith_DStar left: (arith_expr.Binary op_id: Id.Arith_DStar left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:2)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:3)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:10 val:4)])) )) ('expression:', '5') ('node:', (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:5)]))) ('expression:', '4 + 2') ('node:', (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:4)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)])) )) ('expression:', '9 - 8 - 7') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:9)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:8)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:7)])) )) ('expression:', '9 - (8 - 7)') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:9)])) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:8)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:9 val:7)])) ) )) ('expression:', '(9 - 8) - 7') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:9)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:8)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:10 val:7)])) )) ('expression:', '2 + 3 ** 2 * 3 + 4') ('node:', (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:2)])) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_DStar left: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)]) ) right: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:2)]) ) ) right: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:12 val:3)]) ) ) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:16 val:4)])) )) ('expression:', '4 * 3 / 2') ('node:', (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:4)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:2)])) )) ('expression:', '3 * 2 % 4') ('node:', (arith_expr.Binary op_id: Id.Arith_Percent left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:3)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:4)])) )) ('expression:', '+ 1') ('node:', (arith_expr.Unary op_id: Id.Node_UnaryPlus child: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:2 val:1)])) )) ('expression:', '- 5') ('node:', (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.A.. ---------------------------------------------------------------------- Ran 3 tests in 0.024s OK rithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:2 val:5)])) )) ('expression:', '-2-3') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:2)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:3 val:3)])) )) ('expression:', '1 ? 2 : 3, 4 ? 5 : 6') ('node:', (arith_expr.Binary op_id: Id.Arith_Comma left: (arith_expr.TernaryOp cond: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)])) true_expr: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) ) false_expr: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:3)]) ) ) right: (arith_expr.TernaryOp cond: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:11 val:4)])) true_expr: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:15 val:5)]) ) false_expr: (arith_expr.ArithWord w: (compound_word parts:[(Token id:Id.Lit_Digits span_id:19 val:6)]) ) ) )) ('expression:', '1 , 2, 3') ('node:', (arith_expr.Binary op_id: Id.Arith_Comma left: (arith_expr.Binary op_id: Id.Arith_Comma left: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)])) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)])) ) right: (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:7 val:3)])) )) ('expression:', '011') ('node:', (arith_expr.ArithWord w:(compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:011)]))) ('expression:', '0xA') ('node:', (arith_expr.ArithWord w: (compound_word parts: [(Token id:Id.Lit_Digits span_id:0 val:0) (Token id:Id.Lit_ArithVarLike span_id:1 val:xA)] ) )) ('expression:', '64#z') ('node:', (arith_expr.ArithWord w: (compound_word parts: [ (Token id:Id.Lit_Digits span_id:0 val:64) (Token id:Id.Lit_Pound span_id:1 val:'#') (Token id:Id.Lit_ArithVarLike span_id:2 val:z) ] ) )) ('expression:', '64#Z') ('node:', (arith_expr.ArithWord w: (compound_word parts: [ (Token id:Id.Lit_Digits span_id:0 val:64) (Token id:Id.Lit_Pound span_id:1 val:'#') (Token id:Id.Lit_ArithVarLike span_id:2 val:Z) ] ) )) ('expression:', '64#@') ('node:', (arith_expr.ArithWord w: (compound_word parts: [ (Token id:Id.Lit_Digits span_id:0 val:64) (Token id:Id.Lit_Pound span_id:1 val:'#') (Token id:Id.Lit_At span_id:2 val:'@') ] ) )) ('expression:', '64#_') ('node:', (arith_expr.ArithWord w: (compound_word parts: [ (Token id:Id.Lit_Digits span_id:0 val:64) (Token id:Id.Lit_Pound span_id:1 val:'#') (Token id:Id.Lit_ArithVarLike span_id:2 val:_) ] ) ))