(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BAK)
          op: Equal
          rhs: {(save) ($ VSub_Dollar '$$')}
          spids: [114]
        )
      ]
      spids: [114]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP)
          op: Equal
          rhs: {(edit) ($ VSub_Dollar '$$')}
          spids: [118]
        )
      ]
      spids: [118]
    )
    (C {(trap)} {(DQ ('rm -f ') ($ VSub_Name '$BAK') (' ') ($ VSub_Name '$TMP'))} {(0)} {(1)} {(2)} {(5)} 
      {(15)}
    )
    (ForEach
      iter_name: name
      iter_words: [{(HAVE_TCGETATTR)} {(HAVE_TERMIOS_H)} {(HAVE_TERMIO_H)} {(BROKEN_LINKER)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(mv)} {($ VSub_Number '$2')} {($ VSub_Name '$BAK')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Subshell
                      child: 
                        (SimpleCommand
                          words: [
                            {(grep)}
                            {(DQ ('[ \t]') ($ VSub_Name '$name') ('[ \t]'))}
                            {($ VSub_Number '$1')}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [187]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {($ VSub_Name '$TMP')}
                              spids: [190]
                            )
                          ]
                        )
                      spids: [175 193]
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:value) op:Equal rhs:{(1)} spids:[199])]
                      spids: [199]
                    )
                  ]
                  spids: [16777215 196]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:value) op:Equal rhs:{(0)} spids:[206])]
                  spids: [206]
                )
              ]
              spids: [203 210]
            )
            (C {(echo)} {(SQ <'** edit: '>) ($ VSub_Name '$name')} {($ VSub_Name '$value')})
            (SimpleCommand
              words: [
                {(sed)}
                {(-e)}
                {
                  (DQ ('s@#define ') (${ VSub_Name name) ('.*') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@#define ') ($ VSub_Name '$name') (' ') ($ VSub_Name '$value') ('@')
                  )
                }
                {(-e)}
                {
                  (DQ ('s@#if ') ($ VSub_Name '$name') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@#if ') ($ VSub_Name '$value') (' /* ') ($ VSub_Name '$name') (' */@')
                  )
                }
                {(-e)}
                {
                  (DQ ('s@#if !') ($ VSub_Name '$name') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@#if ') ($ VSub_Name '$value') (' /* !') ($ VSub_Name '$name') (' */@')
                  )
                }
                {($ VSub_Name '$BAK')}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Number '$2')}
                  spids: [277]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Subshell
                      child: (C {(cmp)} {(-s)} {($ VSub_Number '$2')} {($ VSub_Name '$BAK')})
                      spids: [283 291]
                    )
                  ]
                  action: [(C {(mv)} {($ VSub_Name '$BAK')} {($ VSub_Number '$2')})]
                  spids: [16777215 294]
                )
              ]
              else_action: [(C {(rm)} {(-f)} {($ VSub_Name '$BAK')})]
              spids: [304 314]
            )
          ]
          spids: [163 316]
        )
      spids: [146 16777215]
    )
  ]
)