(CommandList
  children: [
    (C {(cd)} 
      {
        (BracedVarSub
          token: <VSub_Number 0>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")})
          spids: [6 11]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:INPUT)
          op: Equal
          rhs: {(./solidus/string_with_solidus.json)}
          spids: [14]
        )
      ]
      spids: [14]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT_ESCAPED)
          op: Equal
          rhs: {(./solidus/string_with_solidus.with-escaping.parsed)}
          spids: [17]
        )
      ]
      spids: [17]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT_WITHOUT_ESCAPING)
          op: Equal
          rhs: {(./solidus/string_with_solidus.no-escaping.parsed)}
          spids: [20]
        )
      ]
      spids: [20]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:FAILS) op:Equal rhs:{(0)} spids:[24])]
      spids: [24]
    )
    (C {(echo)} {(DQ (1..2))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{(../JSON.sh)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: -1
                          arg_word: {($ VSub_Name "$INPUT")}
                          spids: [41]
                        )
                      ]
                    )
                    (C {(diff)} {(-u)} {(-)} {(${ VSub_Name OUTPUT_ESCAPED)})
                  ]
                  negated: True
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ("not ok - JSON.sh run without -s option should leave solidus escaping intact"))}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FAILS)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithVarRef name:FAILS)
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [68 75]
                      )
                    }
                  spids: [67]
                )
              ]
              spids: [67]
            )
          ]
          spids: [-1 57]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ("ok ") ($ VSub_Name "$i") (" - solidus escaping was left intact"))})
      ]
      spids: [77 88]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{(../JSON.sh)} {(-s)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: -1
                          arg_word: {($ VSub_Name "$INPUT")}
                          spids: [99]
                        )
                      ]
                    )
                    (C {(diff)} {(-u)} {(-)} {(${ VSub_Name OUTPUT_WITHOUT_ESCAPING)})
                  ]
                  negated: True
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("not ok - JSON.sh run with -s option should remove solidus escaping"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FAILS)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithVarRef name:FAILS)
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [126 131]
                      )
                    }
                  spids: [125]
                )
              ]
              spids: [125]
            )
          ]
          spids: [-1 115]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ("ok ") ($ VSub_Name "$i") (" - solidus escaping has been removed"))})
      ]
      spids: [133 144]
    )
    (C {(echo)} {(DQ ($ VSub_Name "$FAILS") (" test(s) failed"))})
    (C {(exit)} {($ VSub_Name "$FAILS")})
  ]
)