(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-ev)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTC_UPSTREAM_PATH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:85)
                command_list: (command.CommandList children:[(C {(pwd)})])
              ) (/../dtc)
            }
          spids: [84]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTC_LINUX_PATH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:93)
                command_list: (command.CommandList children:[(C {(pwd)})])
              ) (/scripts/dtc)
            }
          spids: [92]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTC_SOURCE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('checks.c data.c dtc.c dtc.h flattree.c fstree.c livetree.c srcpos.c ') 
                ('\t\tsrcpos.h treesource.c util.c util.h version_gen.h Makefile.dtc ') ('\t\tdtc-lexer.l dtc-parser.y')
              )
            }
          spids: [101]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTC_GENERATED)
          op: assign_op.Equal
          rhs: {(DQ ('dtc-lexer.lex.c dtc-parser.tab.c dtc-parser.tab.h'))}
          spids: [110]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LIBFDT_SOURCE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'Makefile.libfdt fdt.c fdt.h fdt_empty_tree.c fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c fdt_wip.c libfdt.h libfdt_env.h libfdt_internal.h'
                )
              )
            }
          spids: [115]
        )
      ]
    )
    (C {(cd)} {($ Id.VSub_DollarName '$DTC_UPSTREAM_PATH')})
    (C {(make)} {(clean)})
    (C {(make)} {(check)})
    (C {(cd)} {($ Id.VSub_DollarName '$DTC_LINUX_PATH')})
    (command.ForEach
      iter_name: f
      iter_words: [{($ Id.VSub_DollarName '$DTC_SOURCE')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(cp)} {(${ Id.VSub_Name DTC_UPSTREAM_PATH) (/) (${ Id.VSub_Name f)} 
              {(${ Id.VSub_Name f)}
            )
            (C {(git)} {(add)} {(${ Id.VSub_Name f)})
          ]
        )
    )
    (command.ForEach
      iter_name: f
      iter_words: [{($ Id.VSub_DollarName '$DTC_GENERATED')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(cp)} {(${ Id.VSub_Name DTC_UPSTREAM_PATH) (/) ($ Id.VSub_DollarName '$f')} 
              {(${ Id.VSub_Name f) (_shipped)}
            )
            (C {(git)} {(add)} {(${ Id.VSub_Name f) (_shipped)})
          ]
        )
    )
    (command.ForEach
      iter_name: f
      iter_words: [{($ Id.VSub_DollarName '$LIBFDT_SOURCE')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(cp)} {(${ Id.VSub_Name DTC_UPSTREAM_PATH) (/libfdt/) (${ Id.VSub_Name f)} 
              {(libfdt/) (${ Id.VSub_Name f)}
            )
            (C {(git)} {(add)} {(libfdt/) (${ Id.VSub_Name f)})
          ]
        )
    )
    (C {(sed)} {(-i)} {(--)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 's/#include <libfdt_env.h>/#include "libfdt_env.h"/g'
            span_id: 265
          )
        )
      } {(./libfdt/libfdt.h)}
    )
    (C {(sed)} {(-i)} {(--)} 
      {(SQ (Token id:Id.Lit_Chars val:'s/#include <fdt.h>/#include "fdt.h"/g' span_id:277))} {(./libfdt/libfdt.h)}
    )
    (C {(git)} {(add)} {(./libfdt/libfdt.h)})
    (C {(git)} {(commit)} {(-e)} {(-v)} {(-m)} {(DQ ('scripts/dtc: Update to upstream version [CHANGEME]'))})
  ]
)