(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OVERLAY_BUNDLES)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(grep)} {(-i)} {(Lit_Other "^") (OVERLAY_BUNDLES)} {(.config)})
                            (C {(cut)} {(-f2)} {(-d) (SQ <"=">)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [9 29]
                )
              )
            }
          spids: [7]
        )
      ]
      spids: [7]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$OVERLAY_BUNDLES"))} {(Lit_Other "=")} {(DQ )} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("There are no overlay bundles to build."))})]
          spids: [-1 50]
        )
      ]
      else_action: [
        (TimeBlock pipeline:(C {(sh)} {(overlay_00_clean.sh)}))
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:OVERLAY_BUNDLES_LIST)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (Pipeline
                              children: [
                                (C {(echo)} {($ VSub_Name "$OVERLAY_BUNDLES")})
                                (C {(tr)} {(SQ <",">)} {(SQ <" ">)})
                              ]
                              negated: False
                            )
                          ]
                        )
                      left_token: <Left_CommandSub "$(">
                      spids: [72 88]
                    )
                  )
                }
              spids: [70]
            )
          ]
          spids: [70]
        )
        (ForEach
          iter_name: BUNDLE
          iter_words: [{($ VSub_Name "$OVERLAY_BUNDLES_LIST")}]
          do_arg_iter: False
          body: 
            (DoGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OVERLAY_SCRIPT)
                      op: Equal
                      rhs: {(overlay_) ($ VSub_Name "$BUNDLE") (.sh)}
                      spids: [105]
                    )
                  ]
                  spids: [105]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$OVERLAY_SCRIPT")} 
                              {(Lit_Other "]")}
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ("Error - cannot find overlay script file '") 
                              ($ VSub_Name "$OVERLAY_SCRIPT") ("'.")
                            )
                          }
                        )
                      ]
                      spids: [-1 127]
                    )
                  ]
                  else_action: [
                    (C {(echo)} {(DQ ("Building overlay bundle '") ($ VSub_Name "$BUNDLE") ("'..."))})
                    (TimeBlock
                      pipeline: (C {(sh)} {($ VSub_Name "$OVERLAY_SCRIPT")})
                    )
                  ]
                  spids: [139 158]
                )
              ]
              spids: [102 161]
            )
          spids: [98 -1]
        )
      ]
      spids: [59 163]
    )
  ]
)