...(bool_expr.LogicalOr left: (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo || ! bar ]]" src: (source.MainFile path:"") ) ) ] ) ) right: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:9 line:...0x7fa49e2f59f0)]) ) ) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 0 line: (SourceLine line_num: 1 content: "a == b ]]" src: (source.MainFile path:"") ) ) ] ) right: (CompoundWord parts:[(Token id:Id.Lit_Chars length:1 col:5 line:...0x7fa49e2f5a48)]) ) (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo ]]" src: (source.MainFile path:"") ) ) ] ) ) (bool_expr.WordTest w: (CompoundWord parts: [ (SimpleVarSub tok: (Token id: Id.VSub_DollarName length: 4 col: 0 line: (SourceLine line_num: 1 content: "$foo\"bar\" ]]" src: (source.MainFile path:"") ) ) ) (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:4 line:...0x7fa49e2f5af8) parts: [(Token id:Id.Lit_Chars length:3 col:5 line:...0x7fa49e2f5af8)] right: (Token id:Id.Right_DoubleQuote length:1 col:8 line:...0x7fa49e2f5af8) ) ] ) ) ------------- (bool_expr.Unary op_id: Id.BoolUnary_z child: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 3 line: (SourceLine line_num: 1 content: "-z foo ]]" src: (source.MainFile path:"") ) ) ] ) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo == bar ]]" src: (source.MainFile path:"") ) ) ] ) right: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:7 line:...0x7fa49e2f5a48)]) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 2 line: (SourceLine line_num: 1 content: "( foo == bar ) ]]" src: (source.MainFile path:"") ) ) ] ) right: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:9 line:...0x7fa49e2f59f0)]) ) (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo ]]" src: (source.MainFile path:"") ) ) ] ) ) (bool_expr.LogicalNot child: (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 2 ... ---------------------------------------------------------------------- Ran 6 tests in 0.014s OK line: (SourceLine line_num: 1 content: "! foo ]]" src: (source.MainFile path:"") ) ) ] ) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "zoo && ( foo == bar ) ]]" src: (source.MainFile path:"") ) ) ] ) ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:9 line:...0x7fa49e2f5ba8)]) right: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:16 line:...0x7fa49e2f5ba8)]) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo && ! bar ]]" src: (source.MainFile path:"") ) ) ] ) ) right: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:9 line:...0x7fa49e2f5ba8)]) ) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 0 line: (SourceLine line_num: 1 content: "foo && ! bar && baz ]]" src: (source.MainFile path:"") ) ) ] ) ) right: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:9 line:...0x7fa49e2f5b50)]) ) ) right: (bool_expr.WordTest w: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:16 line:...0x7fa49e2f5b50)]) ) ) ) (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 3 col: 3 line: (SourceLine line_num: 1 content: "-z foo && -z bar ]]" src: (source.MainFile path:"") ) ) ] ) ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:13 line:...0x7fa49e2f59f0)]) ) )