('\n---', '}') {(Lit_RBrace '}')}('\n---', ',') {(Lit_Comma ',')}('\n---', 'B-{a,b}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_RBrace '}') (-E)}(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:6)) ] )-- ('\n---', 'B-{a"a",b"b",c"c"}-E') {(B-) (Lit_LBrace '{') (a) (DQ (a)) (Lit_Comma ',') (b) (DQ (b)) (Lit_Comma ',') (c) (DQ (c)) (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2)) (word_part.DoubleQuotedPart parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:4))] spids: [3 5] ) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:7)) (word_part.DoubleQuotedPart parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:9))] spids: [8 10] ) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:12)) (word_part.DoubleQuotedPart parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:14))] spids: [13 15] ) ] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:17)) ] )-- ('\n---', 'B-{a,b}--{c,d}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_RBrace '}') (--) (Lit_LBrace '{') (c) (Lit_Comma ',') (d) (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-- span_id:6)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] )-- ('\n---', 'B-{a,b,c,={d,e}}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_Comma ',') (c) (Lit_Comma ',') (Lit_Other '=') (Lit_LBrace '{') (d) (Lit_Comma ',') (e) (Lit_RBrace '}') (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:6))] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:8)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10))] ) . (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:e span_id:12))] ) ] ) ] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:15)) ] )('\n---', 'B-{a,={b,c}=,d}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (Lit_Other '=') (Lit_LBrace '{') (b) (Lit_Comma ',') (c) (Lit_RBrace '}') (Lit_Other '=') (Lit_Comma ',') (d) (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:4)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:6))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:10)) ] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:12))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:14)) ] )(word.CompoundWord parts:[(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))])('\n---', '{a,b,}') {(Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_Comma ',') (Lit_RBrace '}')}(word.BracedWordTree parts: [ (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:1))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:3))] ) (word.CompoundWord) ] ) ] )('\n---', 'hi') {(hi)}(word.CompoundWord parts:[(word_part.LiteralPart token:(token id:Lit_Chars val:hi span_id:0))]) ('\n---', 'B-{a,b}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_RBrace '}') (-E)}(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:6)) ] )(word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:6)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:6)) ] ) ('\n---', 'B-{a,={b,c,d}=,e}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (Lit_Other '=') (Lit_LBrace '{') (b) (Lit_Comma ',') (c) (Lit_Comma ',') (d) (Lit_RBrace '}') (Lit_Other '=') (Lit_Comma ',') (e) (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:4)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:6))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:12)) ] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:e span_id:14))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] )(word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:6)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:12)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:12)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10)) (word_part.LiteralPart token:(token id:Lit_Other val:'=' span_id:12)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:e span_id:14)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:16)) ] ) ('\n---', 'B-{a,b}-{c,d}-E') {(B-) (Lit_LBrace '{') (a) (Lit_Comma ',') (b) (Lit_RBrace '}') (-) (Lit_LBrace '{') (c) (Lit_Comma ',') (d) (Lit_RBrace '}') (-E) }(word.BracedWordTree parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:- span_id:6)) (word_part.BracedTuple words: [ (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8))] ) (word.CompoundWord parts: [(word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10))] ) ] ) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] )(word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2)) (word_part.LiteralPart token:(token id:Lit_Chars val:- span_id:6)) (word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:a span_id:2)) (word_part.LiteralPart token:(token id:Lit_Chars val:- span_id:6)) (wor.'' None '1' None '1..' None '1' (word_part.BracedRange kind:Range_Int start:1 end:3 step:1 spids:[None]) '3' (word_part.BracedRange kind:Range_Int start:3 end:-10 step:-2 spids:[None]) '3..-10..-2..' None 'a' None 'a..' None 'a' (word_part.BracedRange kind:Range_Char start:a end:z step:1 spids:[None]) 'a..z..' None 'z' (word_part.BracedRange kind:Range_Char start:z end:a step:-1 spids:[None]) . ---------------------------------------------------------------------- Ran 3 tests in 0.007s OK d_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:- span_id:6)) (word_part.LiteralPart token:(token id:Lit_Chars val:c span_id:8)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] ) (word.CompoundWord parts: [ (word_part.LiteralPart token:(token id:Lit_Chars val:B- span_id:0)) (word_part.LiteralPart token:(token id:Lit_Chars val:b span_id:4)) (word_part.LiteralPart token:(token id:Lit_Chars val:- span_id:6)) (word_part.LiteralPart token:(token id:Lit_Chars val:d span_id:10)) (word_part.LiteralPart token:(token id:Lit_Chars val:-E span_id:12)) ] )