(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IFS)
          op: assign_op.Equal
          rhs: {(DQ (':'))}
          spids: [10]
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:count)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [15]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:18)
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:nonex)
              op: assign_op.Equal
              rhs: {(0)}
              spids: [20]
            )
          ]
        )
      ]
    )
    (command.ForEach
      iter_name: directory
      iter_words: [{($ Id.VSub_DollarName '$PATH')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$directory'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:48)
                    )
                  ]
                  action: [
                    (command.ForEach
                      iter_name: command
                      iter_words: [{(DQ ($ Id.VSub_DollarName '$directory')) (/) (Id.Lit_Star '*')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Id.Lit_LBracket '[')} {(-x)} 
                                          {(DQ ($ Id.VSub_DollarName '$command'))} {(Id.Lit_RBracket ']')}
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:83)
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:count)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.ArithSub
                                                  anode: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_Plus
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_DollarName '$count')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 1)}
                                                        )
                                                    )
                                                )
                                              )
                                            }
                                          spids: [88]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [71 85]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:nonex)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (word_part.ArithSub
                                              anode: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Plus
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$nonex')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          )
                                        }
                                      spids: [106]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [36 50]
                )
              ]
            )
          ]
        )
    )
    (C {(echo)} 
      {
        (DQ ($ Id.VSub_DollarName '$count') (' commands, and ') ($ Id.VSub_DollarName '$nonex') 
          (" entries that weren't executable")
        )
      }
    )
    (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:142) arg_word:{(0)})
  ]
)