(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ("Usage: DEFINES='list' HEADERS='list' ") 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[87])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("  [TARGET_CPU_DEFAULT='default'] mkconfig.sh FILE"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[97])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 77]
        )
      ]
      spids: [-1 105]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output) op:Equal rhs:{($ VSub_Number '$1')} spids:[108])]
      spids: [108]
    )
    (C {(rm)} {(-f)} {(${ VSub_Name output) (T)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:hg_sed_expr)
          op: Equal
          rhs: {(SQ <'y,abcdefghijklmnopqrstuvwxyz./,ABCDEFGHIJKLMNOPQRSTUVWXYZ__,'>)}
          spids: [124]
        )
      ]
      spids: [124]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:header_guard)
          op: Equal
          rhs: 
            {(GCC_) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(${ VSub_Name output)})
                          (C {(sed)} {(-e)} {(${ VSub_Name hg_sed_expr)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [131 147]
              )
            }
          spids: [129]
        )
      ]
      spids: [129]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('#ifndef ') (${ VSub_Name header_guard))}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(${ VSub_Name output) (T)} spids:[162])]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('#define ') (${ VSub_Name header_guard))}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(${ VSub_Name output) (T)} spids:[178])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(x) (DQ ($ VSub_Name '$output'))} {(Lit_Other '=')} {(x) (DQ (config.h))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('#ifdef GENERATOR_FILE'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [218]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('#error config.h is for the host, not build, machine.'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [232]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('#endif'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [246]
                )
              ]
            )
          ]
          spids: [-1 209]
        )
      ]
      spids: [-1 253]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$TARGET_CPU_DEFAULT'))} 
                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ('#define TARGET_CPU_DEFAULT (') ($ VSub_Name '$TARGET_CPU_DEFAULT') (')'))}
              ]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [290]
                )
              ]
            )
          ]
          spids: [-1 279]
        )
      ]
      spids: [-1 297]
    )
    (ForEach
      iter_name: def
      iter_words: [{($ VSub_Name '$DEFINES')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ ('#ifndef ') ($ VSub_Name '$def'))})
                (SimpleCommand
                  words: [{(sed)} {(SQ <'s/=.*//'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(${ VSub_Name output) (T)}
                      spids: [330]
                    )
                  ]
                )
              ]
              negated: False
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ('# define ') ($ VSub_Name '$def'))})
                (SimpleCommand
                  words: [{(sed)} {(SQ <'s/=/ /'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(${ VSub_Name output) (T)}
                      spids: [353]
                    )
                  ]
                )
              ]
              negated: False
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('#endif'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [367]
                )
              ]
            )
          ]
          spids: [312 374]
        )
      spids: [308 310]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$HEADERS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(set)} {($ VSub_Name '$HEADERS')})
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(auto-) (Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('#include ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                            ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(${ VSub_Name output) (T)}
                          spids: [427]
                        )
                      ]
                    )
                    (C {(shift)})
                  ]
                  spids: [412 415 438 -1]
                )
              ]
              spids: [404 410 441]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ge)} {(1)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(SQ <'#ifdef IN_GCC'>)}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(${ VSub_Name output) (T)}
                          spids: [466]
                        )
                      ]
                    )
                    (ForEach
                      iter_name: file
                      iter_words: [{(DQ ($ VSub_At '$@'))}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {
                                  (DQ ('# include ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                    ($ VSub_Name '$file') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(${ VSub_Name output) (T)}
                                  spids: [497]
                                )
                              ]
                            )
                          ]
                          spids: [485 505]
                        )
                      spids: [479 483]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(SQ <'#endif'>)}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(${ VSub_Name output) (T)}
                          spids: [514]
                        )
                      ]
                    )
                  ]
                  spids: [-1 457]
                )
              ]
              spids: [-1 522]
            )
          ]
          spids: [-1 396]
        )
      ]
      spids: [-1 524]
    )
    (Case
      to_match: {($ VSub_Name '$output')}
      arms: [
        (case_arm
          pat_list: [{(tm.h)}]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output) (T)}
                  spids: [551]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ 
                        (
'#if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET\n'
                        ) ('# include ') (Right_DoubleQuote '"') (insn-constants.h) (Right_DoubleQuote '"') ('\n') ('# include ') 
                        (Right_DoubleQuote '"') (insn-flags.h) (Right_DoubleQuote '"') ('\n') ('#endif\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [558]
                )
              ]
            )
          ]
          spids: [544 546 575 -1]
        )
      ]
      spids: [537 541 577]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('#endif /* ') (${ VSub_Name header_guard) (' */'))}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(${ VSub_Name output) (T)} spids:[593])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$output')} {(Lit_Other ']')})
                    (SimpleCommand
                      words: [{(cmp)} {(${ VSub_Name output) (T)} {($ VSub_Name '$output')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/dev/null)}
                          spids: [625]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [628]
                        )
                      ]
                    )
                  ]
                  op_id: Op_DAmp
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {($ VSub_Name '$output')} {(is)} {(unchanged)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[643])]
            )
            (C {(rm)} {(-f)} {(${ VSub_Name output) (T)})
          ]
          spids: [-1 632]
        )
      ]
      else_action: [(C {(mv)} {(-f)} {(${ VSub_Name output) (T)} {($ VSub_Name '$output')})]
      spids: [656 670]
    )
    (C {(rm)} {(-f)} {(cs-) ($ VSub_Name '$output')})
    (SimpleCommand
      words: [{(echo)} {(timestamp)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(cs-) ($ VSub_Name '$output')} spids:[687])
      ]
    )
  ]
)