.('', '\t\t', ')) tval: '' ) )>) (')', '\t\t', ')) tval: _ ) )>) ('(', '\t\t', ')) tval: '' ) )>) ('()', '\t\t', ')) tval: _ ) )>) ('( 1', '\t\t', ')) tval: '' ) )>) ('(1 + (3 * 4)', '\t\t', ') ) tval: '' ) )>) ('(1 + (3 * 4) 5', '\t\t', ') ) tval: 5 ) ] ) )>) (';', '\t\t', ')) tval: _ ) )>) ('- ;', '\t\t', ')) tval: _ ) )>) ('expression:', '(7)') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 1 length: 1 span_id: 1 line: (SourceLine line_num:1 content:'(7)' src:(source.MainFile path:'')) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '1 + 2 - 3' src: (source.MainFile path:'') ) tval: 1 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '1 + 2 - 3' src: (source.MainFile path:'') ) tval: 2 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '1 + 2 - 3' src: (source.MainFile path:'') ) tval: 3 ) ] ) )) ('expression:', '1 + 2 * 3') ('node:', (arith_expr.Binary op_id: Id.Arith_Plus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '1 + 2 * 3' src: (source.MainFile path:'') ) tval: 1 ) ] ) right: (arith_expr.Binary op_id: Id.Arith_Star left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '1 + 2 * 3' src: (source.MainFile path:'') ) tval: 2 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '1 + 2 * 3' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) )) ('expression:', '7 - 9 * (2 - 3)') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '7 - 9 * (2 - 3)' src: (source.MainFile path:'') ) tval: 7 ) ] ) right: (arith_expr.Binary op_id: Id.Arith_Star left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '7 - 9 * (2 - 3)' src: (source.MainFile path:'') ) tval: 9 ) ] ) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 9 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: '7 - 9 * (2 - 3)' src: (source.MainFile path:'') ) tval: 2 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 13 length: 1 span_id: 13 line: (SourceLine line_num: 1 content: '7 - 9 * (2 - 3)' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '2 * 3 * 4' src: (source.MainFile path:'') ) tval: 2 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '2 * 3 * 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '2 * 3 * 4' src: (source.MainFile path:'') ) tval: 4 ) ] ) )) ('expression:', '2 ** 3 ** 4') ('node:', (arith_expr.Binary op_id: Id.Arith_DStar left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '2 ** 3 ** 4' src: (source.MainFile path:'') ) tval: 2 ) ] ) right: (arith_expr.Binary op_id: Id.Arith_DStar left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 5 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '2 ** 3 ** 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 10 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '2 ** 3 ** 4' src: (source.MainFile path:'') ) tval: 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 col: 1 length: 1 span_id: 1 line: (SourceLine line_num: 1 content: '(2 ** 3) ** 4' src: (source.MainFile path:'') ) tval: 2 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 6 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: '(2 ** 3) ** 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 12 length: 1 span_id: 10 line: (SourceLine line_num: 1 content: '(2 ** 3) ** 4' src: (source.MainFile path:'') ) tval: 4 ) ] ) )) ('expression:', '5') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num:1 content:5 src:(source.MainFile path:'')) tval: 5 ) ] )) ('expression:', '4 + 2') ('node:', (arith_expr.Binary op_id: Id.Arith_Plus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '4 + 2' src: (source.MainFile path:'') ) tval: 4 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '4 + 2' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '9 - 8 - 7' src: (source.MainFile path:'') ) tval: 9 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '9 - 8 - 7' src: (source.MainFile path:'') ) tval: 8 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '9 - 8 - 7' src: (source.MainFile path:'') ) tval: 7 ) ] ) )) ('expression:', '9 - (8 - 7)') ('node:', (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '9 - (8 - 7)' src: (source.MainFile path:'') ) tval: 9 ) ] ) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (compound_word parts: [ (Token id: Id.Lit_Digits col: 5 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: '9 - (8 - 7)' src: (source.MainFile path:'') ) tval: 8 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 9 length: 1 span_id: 9 line: (SourceLine line_num: 1 content: '9 - (8 - 7)' src: (source.MainFile path:'') ) tval: 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 col: 1 length: 1 span_id: 1 line: (SourceLine line_num: 1 content: '(9 - 8) - 7' src: (source.MainFile path:'') ) tval: 9 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 5 length: 1 span_id: 5 line: (SourceLine line_num: 1 content: '(9 - 8) - 7' src: (source.MainFile path:'') ) tval: 8 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 10 length: 1 span_id: 10 line: (SourceLine line_num: 1 content: '(9 - 8) - 7' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '2 + 3 ** 2 * 3 + 4' src: (source.MainFile path:'') ) tval: 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 col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '2 + 3 ** 2 * 3 + 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 9 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '2 + 3 ** 2 * 3 + 4' src: (source.MainFile path:'') ) tval: 2 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 13 length: 1 span_id: 12 line: (SourceLine line_num: 1 content: '2 + 3 ** 2 * 3 + 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 17 length: 1 span_id: 16 line: (SourceLine line_num: 1 content: '2 + 3 ** 2 * 3 + 4' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '4 * 3 / 2' src: (source.MainFile path:'') ) tval: 4 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '4 * 3 / 2' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '4 * 3 / 2' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '3 * 2 % 4' src: (source.MainFile path:'') ) tval: 3 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '3 * 2 % 4' src: (source.MainFile path:'') ) tval: 2 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '3 * 2 % 4' src: (source.MainFile path:'') ) tval: 4 ) ] ) )) ('expression:', '+ 1') ('node:', (arith_expr.Unary op_id: Id.Node_UnaryPlus child: (compound_word parts: [ (Token id: Id.Lit_Digits col: 2 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: '+ 1' src: (source.MainFile path:'') ) tval: 1 ) ] ) )) ('expression:', '- 5') ('node:', (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (compound_word parts: [ (Token id: Id.Lit_Digits col: 2 length: 1 span_id: 2 line: (SourceLine line_num: 1 content: '- 5' src: (source.MainFile path:'') ) tval: 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 col: 1 length: 1 span_id: 1 line: (SourceLine line_num: 1 content: -2-3 src: (source.MainFile path:'') ) tval: 2 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 3 length: 1 span_id: 3 line: (SourceLine line_num: 1 content: -2-3 src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 1 ) ] ) true_expr: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 2 ) ] ) false_expr: (compound_word parts: [ (Token id: Id.Lit_Digits col: 8 length: 1 span_id: 8 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 3 ) ] ) ) right: (arith_expr.TernaryOp cond: (compound_word parts: [ (Token id: Id.Lit_Digits col: 11 length: 1 span_id: 11 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 4 ) ] ) true_expr: (compound_word parts: [ (Token id: Id.Lit_Digits col: 15 length: 1 span_id: 15 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 5 ) ] ) false_expr: (compound_word parts: [ (Token id: Id.Lit_Digits col: 19 length: 1 span_id: 19 line: (SourceLine line_num: 1 content: '1 ? 2 : 3, 4 ? 5 : 6' src: (source.MainFile path:'') ) tval: 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 col: 0 length: 1 span_id: 0 line: (SourceLine line_num: 1 content: '1 , 2, 3' src: (source.MainFile path:'') ) tval: 1 ) ] ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 4 length: 1 span_id: 4 line: (SourceLine li.. ---------------------------------------------------------------------- Ran 3 tests in 0.044s OK ne_num: 1 content: '1 , 2, 3' src: (source.MainFile path:'') ) tval: 2 ) ] ) ) right: (compound_word parts: [ (Token id: Id.Lit_Digits col: 7 length: 1 span_id: 7 line: (SourceLine line_num: 1 content: '1 , 2, 3' src: (source.MainFile path:'') ) tval: 3 ) ] ) )) ('expression:', '011') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 3 span_id: 0 line: (SourceLine line_num:1 content:011 src:(source.MainFile path:'')) tval: 011 ) ] )) ('expression:', '0xA') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 1 span_id: 0 line: (SourceLine line_num:1 content:0xA src:(source.MainFile path:'')) tval: 0 ) (Token id: Id.Lit_ArithVarLike col: 1 length: 2 span_id: 1 line: (SourceLine line_num:1 content:0xA src:(source.MainFile path:'')) tval: xA ) ] )) ('expression:', '64#z') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 2 span_id: 0 line: (SourceLine line_num:1 content:'64#z' src:(source.MainFile path:'')) tval: 64 ) (Token id: Id.Lit_Pound col: 2 length: 1 span_id: 1 line: (SourceLine line_num:1 content:'64#z' src:(source.MainFile path:'')) tval: '#' ) (Token id: Id.Lit_ArithVarLike col: 3 length: 1 span_id: 2 line: (SourceLine line_num:1 content:'64#z' src:(source.MainFile path:'')) tval: z ) ] )) ('expression:', '64#Z') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 2 span_id: 0 line: (SourceLine line_num:1 content:'64#Z' src:(source.MainFile path:'')) tval: 64 ) (Token id: Id.Lit_Pound col: 2 length: 1 span_id: 1 line: (SourceLine line_num:1 content:'64#Z' src:(source.MainFile path:'')) tval: '#' ) (Token id: Id.Lit_ArithVarLike col: 3 length: 1 span_id: 2 line: (SourceLine line_num:1 content:'64#Z' src:(source.MainFile path:'')) tval: Z ) ] )) ('expression:', '64#@') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 2 span_id: 0 line: (SourceLine line_num:1 content:'64#@' src:(source.MainFile path:'')) tval: 64 ) (Token id: Id.Lit_Pound col: 2 length: 1 span_id: 1 line: (SourceLine line_num:1 content:'64#@' src:(source.MainFile path:'')) tval: '#' ) (Token id: Id.Lit_At col: 3 length: 1 span_id: 2 line: (SourceLine line_num:1 content:'64#@' src:(source.MainFile path:'')) tval: '@' ) ] )) ('expression:', '64#_') ('node:', (compound_word parts: [ (Token id: Id.Lit_Digits col: 0 length: 2 span_id: 0 line: (SourceLine line_num:1 content:'64#_' src:(source.MainFile path:'')) tval: 64 ) (Token id: Id.Lit_Pound col: 2 length: 1 span_id: 1 line: (SourceLine line_num:1 content:'64#_' src:(source.MainFile path:'')) tval: '#' ) (Token id: Id.Lit_ArithVarLike col: 3 length: 1 span_id: 2 line: (SourceLine line_num:1 content:'64#_' src:(source.MainFile path:'')) tval: _ ) ] ))