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