.....(bool_expr.LogicalOr left: (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) ) right: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:6))] ) ) ) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:a span_id:0))]) right: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:b span_id:4))]) ) (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) ) (bool_expr.WordTest w: (compound_word parts: [ (simple_var_sub token:(Token id:Id.VSub_DollarName val:'$foo' span_id:0)) (double_quoted left: (Token id:Id.Left_DoubleQuote val:'"' span_id:1) parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:2))] spids: [1 3] ) ] ) ) ------------- (bool_expr.Unary op_id: Id.BoolUnary_z child: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:2))]) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) right: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:4))]) ) (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:2))]) right: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:6))]) ) (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) ) (bool_expr.LogicalNot child: (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:2))]) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:zoo span_id:0))]) ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:6))] ) right: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:10))] ) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) ) right: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:6))] ) ) ) ) (bool_expr.LogicalAnd left: (bool_expr.WordTest w: (compound_word parts:[(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:0))]) ) right: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.WordTest w: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:6))] ) ) ) right: (bool_expr.WordTest w: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:baz span_id:10))] ) ) ) ) (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:foo span_id:2))] ) ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: (compound_word parts: [(word_part.Literal token:(Token id:Id.Lit_Chars val:bar span_id:8))] . ---------------------------------------------------------------------- Ran 6 tests in 0.009s OK ) ) )