(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NANO_PKG_DUMP)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [103]
        )
      ]
      spids: [103]
    )
    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {($ VSub_Name '$NANO_PKG_DUMP')} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name '$NANO_PKG_DUMP') (' not a directory'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[133])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 123]
        )
      ]
      spids: [-1 141]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NANO_PACKAGE_DIR)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [144]
        )
      ]
      spids: [144]
    )
    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
    (FuncDef
      name: ports_recurse
      body: 
        (Subshell
          child: 
            (CommandList
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:of)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [158]
                    )
                  ]
                  spids: [158]
                )
                (C {(shift)})
                (ForEach
                  iter_name: d
                  do_arg_iter: True
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {($ VSub_Name '$d')} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (SimpleCommand
                                  words: [{(echo)} {(DQ ('Missing port ') ($ VSub_Name '$d'))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 1
                                      arg_word: {(2)}
                                      spids: [197]
                                    )
                                  ]
                                )
                                (C {(exit)} {(2)})
                              ]
                              spids: [-1 187]
                            )
                          ]
                          spids: [-1 206]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(grep)} {(-q)} 
                                      {
                                        (DQ ('^') ($ VSub_Name '$d') 
                                          (EscapedLiteralPart
                                            token: <Lit_EscapedChar '\\$'>
                                          )
                                        )
                                      } {($ VSub_Name '$of')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(true)})]
                              spids: [-1 225]
                            )
                          ]
                          else_action: [
                            (Subshell
                              child: 
                                (CommandList
                                  children: [
                                    (C {(cd)} {($ VSub_Name '$d')})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:rd)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(make)} {(-V)} {(RUN_DEPENDS)} 
                                                        {(${ VSub_Name PORTS_OPTS)}
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [243 253]
                                              )
                                            }
                                          spids: [242]
                                        )
                                      ]
                                      spids: [242]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:ld)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(make)} {(-V)} {(LIB_DEPENDS)} 
                                                        {(${ VSub_Name PORTS_OPTS)}
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [257 267]
                                              )
                                            }
                                          spids: [256]
                                        )
                                      ]
                                      spids: [256]
                                    )
                                    (ForEach
                                      iter_name: x
                                      iter_words: [{($ VSub_Name '$rd')} {($ VSub_Name '$ld')}]
                                      do_arg_iter: False
                                      body: 
                                        (DoGroup
                                          children: [
                                            (C {(ports_recurse)} {($ VSub_Name '$of')} 
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (Pipeline
                                                          children: [
                                                            (C {(echo)} {($ VSub_Name '$x')})
                                                            (C {(sed)} 
                                                              {(SQ <'s/^[^:]*:\\([^:]*\\).*$/\\1/'>)}
                                                            )
                                                          ]
                                                          negated: False
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_Backtick '`'>
                                                  spids: [290 303]
                                                )
                                              }
                                            )
                                          ]
                                          spids: [283 306]
                                        )
                                      spids: [277 -1]
                                    )
                                  ]
                                )
                              spids: [234 309]
                            )
                            (SimpleCommand
                              words: [{(echo)} {($ VSub_Name '$d')}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {($ VSub_Name '$of')}
                                  spids: [316]
                                )
                              ]
                            )
                          ]
                          spids: [231 321]
                        )
                      ]
                      spids: [170 324]
                    )
                  spids: [-1 -1]
                )
              ]
            )
          spids: [155 326]
        )
      spids: [151 154]
    )
    (C {(rm)} {(-rf)} {($ VSub_Name '$NANO_PACKAGE_DIR')})
    (C {(mkdir)} {(-p)} {($ VSub_Name '$NANO_PACKAGE_DIR')})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PL)
          op: Equal
          rhs: {($ VSub_Name '$NANO_PACKAGE_DIR') (/_list)}
          spids: [342]
        )
      ]
      spids: [342]
    )
    (SimpleCommand
      words: [{(true)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name '$PL')} spids:[348])]
    )
    (ForEach
      iter_name: i
      do_arg_iter: True
      body: 
        (DoGroup
          children: [
            (C {(ports_recurse)} 
              {
                (CommandSubPart
                  command_list: (CommandList children:[(C {(pwd)})])
                  left_token: <Left_Backtick '`'>
                  spids: [362 364]
                ) (/) ($ VSub_Name '$PL')
              } {($ VSub_Name '$i')}
            )
          ]
          spids: [357 370]
        )
      spids: [-1 -1]
    )
    (ForEach
      iter_name: i
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(cat)} {($ VSub_Name '$PL')})])
            left_token: <Left_Backtick '`'>
            spids: [379 383]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:p)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Subshell
                                child: 
                                  (AndOr
                                    children: [
                                      (C {(cd)} {($ VSub_Name '$i')})
                                      (C {(make)} {(-V)} {(PKGNAME)})
                                    ]
                                    op_id: Op_DAmp
                                  )
                                spids: [390 402]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [389 403]
                      )
                    }
                  spids: [388]
                )
              ]
              spids: [388]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} 
                          {($ VSub_Name '$NANO_PKG_DUMP') (/) ($ VSub_Name '$p') (.t) (Lit_Other '[') 
                            (bx) (Lit_Other ']') (z)
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(ln)} {(-s)} 
                      {($ VSub_Name '$NANO_PKG_DUMP') (/) ($ VSub_Name '$p') (.t) (Lit_Other '[') (bx) 
                        (Lit_Other ']') (z)
                      } {($ VSub_Name '$NANO_PACKAGE_DIR')}
                    )
                  ]
                  spids: [-1 425]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {
                      (DQ ('Package ') ($ VSub_Name '$p') (' misssing in ') 
                        ($ VSub_Name '$NANO_PKG_DUMP')
                      )
                    }
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[456])]
                )
                (C {(exit)} {(1)})
              ]
              spids: [444 465]
            )
          ]
          spids: [385 467]
        )
      spids: [378 -1]
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$PL')})
    (C {(exit)} {(0)})
  ]
)