(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:anonpass)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$LOGNAME') ('@') 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(hostname)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [15 17]
                )
              )
            }
          spids: [11]
        )
      ]
      spids: [11]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' ftp://...'))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 35]
        )
      ]
      spids: [16777215 54]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-c1-6)})]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [66 76]
                      )
                    )
                  } {(KW_Bang '!') (Lit_Other '=')} {(DQ ('ftp://'))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ($ VSub_Number '$0') (': Malformed url. I need it to start with ftp://'))}
                  ]
                  redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                )
              terminator: <Op_Semi ';'>
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 90]
        )
      ]
      spids: [16777215 110]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:server)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-d/)} {(-f3)})]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [115 127]
                )
              )
            }
          spids: [113]
        )
      ]
      spids: [113]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:filename)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-d/)} {(-f4-)})]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [132 144]
                )
              )
            }
          spids: [130]
        )
      ]
      spids: [130]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:basefile)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$filename')})])
                  left_token: <Left_CommandSub '$('>
                  spids: [149 153]
                )
              )
            }
          spids: [147]
        )
      ]
      spids: [147]
    )
    (C {(echo)} {(${ VSub_Number 0) (Lit_Other ':')} {(Downloading)} {($ VSub_Name '$basefile')} {(from)} 
      {(server)} {($ VSub_Name '$server')}
    )
    (SimpleCommand
      words: [{(ftp)} {(-np)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 200
          stdin_parts: [
            ('open ')
            ($ VSub_Name '$server')
            ('\n')
            ('user ftp ')
            ($ VSub_Name '$anonpass')
            ('\n')
            ('get ')
            (Right_DoubleQuote '"')
            ($ VSub_Name '$filename')
            (Right_DoubleQuote '"')
            (' ')
            (Right_DoubleQuote '"')
            ($ VSub_Name '$basefile')
            (Right_DoubleQuote '"')
            ('\n')
            ('quit\n')
          ]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(ls)} {(-l)} {($ VSub_Name '$basefile')})]
          spids: [16777215 216]
        )
      ]
      spids: [16777215 225]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)