(command.CommandList
  children: [
    (command.ShFunction
      name: child_handler
      body: (BraceGroup children:[(C {<echo>} {(DQ <'child handler called'>)})])
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobNEqual
                          left: {(DQ ($ Id.VSub_Number '$1')) <x>}
                          right: {<x>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'child process '> ($ Id.VSub_Dollar '$$') <' here...'>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 1>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 1000>}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:x)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<echo>} {<b> <Id.Lit_Star '*'>})
                              )
                            }
                          spids: [79]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike j>
                          right: {<Id.Lit_Digits 1>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: <Id.Lit_ArithVarLike j>
                          right: {<Id.Lit_Digits 1000>}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike j>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:x)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: (C {<echo>} {<t> <Id.Lit_Star '*'>})
                                      )
                                    }
                                  spids: [117]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:x)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<echo>} {<Id.Lit_Star '*'> <source> <Id.Lit_Star '*'>})
                                      )
                                    }
                                  spids: [128]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [22 39]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:x) op:assign_op.Equal rhs:{<18>} spids:[156])]
    )
    (C {<trap>} {<child_handler>} {<CHLD>})
    (C {<kill>} {<-INT>} {($ Id.VSub_Dollar '$$')})
    (C {<kill>} {<-INT>} {($ Id.VSub_Dollar '$$')})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)