(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OS='> name:OS)
          op: assign_op.Equal
          rhs: {<FreeBSD>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DOLLAR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DOLLAR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOLLAR='> name:DOLLAR)
          op: assign_op.Equal
          rhs: {<Id.Lit_Dollar '$'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OBJCOPY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OBJCOPY='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OBJCOPY='> name:OBJCOPY)
          op: assign_op.Equal
          rhs: {<objcopy>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#\n'>
                <'# '>
                (${ Id.VSub_Name DOLLAR)
                (${ Id.VSub_Name OS)
                (${ Id.VSub_Name DOLLAR)
                <'\n'>
                <'#\n'>
                <'# This file was automatically generated by '>
                <Id.Right_DoubleQuote '"'>
                <'tools/tools/bus_autoconf/bus_autoconf.sh'>
                <Id.Right_DoubleQuote '"'>
                <'.\n'>
                <'# Please do not edit!\n'>
                <'#\n'>
                <'\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<bus_autoconf_format.bin>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<bus_autoconf_args.txt>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<bus_autoconf.ids>}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [F]
      iterable: (for_iter.Words words:[{($ Id.VSub_Star '*')}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'G='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'G='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G='> name:G)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <basename>
                            more_env: []
                            words: [{<basename>} {(${ Id.VSub_Name F)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Left_DollarBrace '${'>
              more_env: []
              words: [
                {(${ Id.VSub_Name OBJCOPY)}
                {<-j>}
                {<bus_autoconf_format>}
                {<-O>}
                {<binary>}
                {(${ Id.VSub_Name F)}
                {<bus_autoconf.ids>}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [{<Id.Lit_LBracket '['>} {<-f>} {<bus_autoconf.ids>} {<Id.Lit_RBracket ']'>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>} {<bus_autoconf.ids>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<bus_autoconf_format.bin>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <Id.Left_DollarBrace '${'>
              more_env: []
              words: [
                {(${ Id.VSub_Name OBJCOPY)}
                {<-j>}
                {<usb_host_id>}
                {<-O>}
                {<binary>}
                {(${ Id.VSub_Name F)}
                {(DQ <'usb_host_id,'> (${ Id.VSub_Name G))}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-f>}
                    {(DQ <'usb_host_id,'> (${ Id.VSub_Name G))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<-n>} {(DQ <' -i usb_host_id,'> (${ Id.VSub_Name G))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<bus_autoconf_args.txt>}
                        )
                      ]
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <Id.Left_DollarBrace '${'>
              more_env: []
              words: [
                {(${ Id.VSub_Name OBJCOPY)}
                {<-j>}
                {<usb_device_id>}
                {<-O>}
                {<binary>}
                {(${ Id.VSub_Name F)}
                {(DQ <'usb_device_id,'> (${ Id.VSub_Name G))}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-f>}
                    {(DQ <'usb_device_id,'> (${ Id.VSub_Name G))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<-n>} {(DQ <' -i usb_device_id,'> (${ Id.VSub_Name G))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<bus_autoconf_args.txt>}
                        )
                      ]
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <Id.Left_DollarBrace '${'>
              more_env: []
              words: [
                {(${ Id.VSub_Name OBJCOPY)}
                {<-j>}
                {<usb_dual_id>}
                {<-O>}
                {<binary>}
                {(${ Id.VSub_Name F)}
                {(DQ <'usb_dual_id,'> (${ Id.VSub_Name G))}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-f>}
                    {(DQ <'usb_dual_id,'> (${ Id.VSub_Name G))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<-n>} {(DQ <' -i usb_dual_id,'> (${ Id.VSub_Name G))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<bus_autoconf_args.txt>}
                        )
                      ]
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <bus_autoconf>
      more_env: []
      words: [
        {<bus_autoconf>}
        {<-F>}
        {<bus_autoconf_format.bin>}
        {
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <cat>
                more_env: []
                words: [{<cat>} {<bus_autoconf_args.txt>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [
        {<rm>}
        {<-f>}
        {<-->}
        {
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <cat>
                more_env: []
                words: [{<cat>} {<bus_autoconf_args.txt>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
        {<bus_autoconf_args.txt>}
        {<bus_autoconf_format.bin>}
        {<bus_autoconf.ids>}
      ]
      redirects: []
      do_fork: T
    )
  ]
)