.('', '\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:', (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)]) right: (arith_expr.Binary op_id: Id.Arith_Star left: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:7)]) right: (arith_expr.Binary op_id: Id.Arith_Star left: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:9)]) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts:[(Token id:Id.Lit_Digits span_id:9 val:2)]) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:2)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)]) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:2)]) right: (arith_expr.Binary op_id: Id.Arith_DStar left: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)]) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:2)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:3)]) ) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:10 val:4)]) )) ('expression:', '5') ('node:', (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:4)]) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:9)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:8)]) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:9)]) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:8)]) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:9)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:5 val:8)]) ) right: (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: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:2)]) ) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:12 val:3)]) ) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:4)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:3)]) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:3)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) ) right: (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: (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: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:1 val:2)]) ) right: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)]) true_expr: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) false_expr: (compound_word parts:[(Token id:Id.Lit_Digits span_id:8 val:3)]) ) right: (arith_expr.TernaryOp cond: (compound_word parts:[(Token id:Id.Lit_Digits span_id:11 val:4)]) true_expr: (compound_word parts:[(Token id:Id.Lit_Digits span_id:15 val:5)]) false_expr: (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: (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:1)]) right: (compound_word parts:[(Token id:Id.Lit_Digits span_id:4 val:2)]) ) right: (compound_word parts:[(.. ---------------------------------------------------------------------- Ran 3 tests in 0.055s OK Token id:Id.Lit_Digits span_id:7 val:3)]) )) ('expression:', '011') ('node:', (compound_word parts:[(Token id:Id.Lit_Digits span_id:0 val:011)])) ('expression:', '0xA') ('node:', (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:', (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:', (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:', (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:', (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:_) ] ))