(command.CommandList
  children: [
    (C {<cd>} 
      {
        (braced_var_sub
          token: <Id.VSub_Number 0>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VOp1_Percent '%'>
              arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
            )
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INPUT)
          op: assign_op.Equal
          rhs: {<'./solidus/string_with_solidus.json'>}
          spids: [14]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_ESCAPED)
          op: assign_op.Equal
          rhs: {<'./solidus/string_with_solidus.with-escaping.parsed'>}
          spids: [17]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_WITHOUT_ESCAPING)
          op: assign_op.Equal
          rhs: {<'./solidus/string_with_solidus.no-escaping.parsed'>}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:FAILS) op:assign_op.Equal rhs:{<0>} spids:[24])]
    )
    (C {<echo>} {(DQ <1..2>)})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (command.Simple
                          words: [{<'../JSON.sh'>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName '$INPUT')}
                            )
                          ]
                          do_fork: T
                        )
                        (C {<diff>} {<-u>} {<->} {(${ Id.VSub_Name OUTPUT_ESCAPED)})
                      ]
                      negated: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} 
              {(DQ <'not ok - JSON.sh run without -s option should leave solidus escaping intact'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FAILS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: <Id.Lit_ArithVarLike FAILS>
                            right: {<Id.Lit_Digits 1>}
                          )
                      )
                    }
                  spids: [67]
                )
              ]
            )
          ]
          spids: [35 57]
        )
      ]
      else_action: [
        (C {<echo>} {(DQ <'ok '> ($ Id.VSub_DollarName '$i') <' - solidus escaping was left intact'>)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (command.Simple
                          words: [{<'../JSON.sh'>} {<-s>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName '$INPUT')}
                            )
                          ]
                          do_fork: T
                        )
                        (C {<diff>} {<-u>} {<->} {(${ Id.VSub_Name OUTPUT_WITHOUT_ESCAPING)})
                      ]
                      negated: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'not ok - JSON.sh run with -s option should remove solidus escaping'>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FAILS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: <Id.Lit_ArithVarLike FAILS>
                            right: {<Id.Lit_Digits 1>}
                          )
                      )
                    }
                  spids: [125]
                )
              ]
            )
          ]
          spids: [91 115]
        )
      ]
      else_action: [
        (C {<echo>} {(DQ <'ok '> ($ Id.VSub_DollarName '$i') <' - solidus escaping has been removed'>)})
      ]
    )
    (C {<echo>} {(DQ ($ Id.VSub_DollarName '$FAILS') <' test(s) failed'>)})
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName '$FAILS')}
    )
  ]
)