(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {<'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName PATH)
                    }
                  spids: [21]
                )
              ]
              redirects: []
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<PATH>})
      ]
    )
    (C {<trap>} {(DQ <'rm -f tmp'> ($ Id.VSub_Dollar '$') <'[abc].[oc]'>)} {<0>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
          op: assign_op.Equal
          rhs: {<port_ipv6>}
          spids: [43]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
          op: assign_op.Equal
          rhs: {<new_> (${ Id.VSub_Name target) <.h>}
          spids: [46]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name target) <.h>}
          spids: [53]
        )
      ]
      redirects: []
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<tmp> ($ Id.VSub_Dollar '$') <a.c>}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 75
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <netinet/in.h>\n'>
                <'struct sockaddr_in6 xx;\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<tmp> ($ Id.VSub_Dollar '$') <b.c>}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 92
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <netinet/in.h>\n'>
                <'struct in6_addr xx;\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<tmp> ($ Id.VSub_Dollar '$') <c.c>}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 110
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <netinet/in.h>\n'>
                <'struct sockaddr_in6 xx;\n'>
                <'main() { xx.sin6_scope_id = 0; }\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{(${ Id.VSub_Name new)})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 138
              stdin_parts: [
                <'\n'>
                <'/* This file is automatically generated. Do Not Edit. */\n'>
                <'\n'>
                <'#ifndef '>
                (${ Id.VSub_Name target)
                <'_h\n'>
                <'#define '>
                (${ Id.VSub_Name target)
                <'_h\n'>
                <'\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  words: [{(${ Id.VSub_Name CC)} {<-c>} {<tmp> ($ Id.VSub_Dollar '$') <a.c>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'#define HAS_INET6_STRUCTS'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name new)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          words: [{(${ Id.VSub_Name CC)} {<-c>} {<tmp> ($ Id.VSub_Dollar '$') <b.c>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                    )
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [175 195]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<echo>} {(DQ <'#define in6_addr in_addr6'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(${ Id.VSub_Name new)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          words: [{(${ Id.VSub_Name CC)} {<-c>} {<tmp> ($ Id.VSub_Dollar '$') <c.c>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'#define HAVE_SIN6_SCOPE_ID'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name new)}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [220 240]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<echo>} {(DQ <'#undef HAVE_SIN6_SCOPE_ID'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(${ Id.VSub_Name new)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              redirects: []
            )
          ]
          spids: [140 159]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<echo>} {(DQ <'#undef HAS_INET6_STRUCTS'>)}]
          redirects: [
            (redir
              op: <Id.Redir_DGreat '>>'>
              loc: (redir_loc.Fd fd:1)
              arg: {(${ Id.VSub_Name new)}
            )
          ]
          more_env: []
          do_fork: T
        )
      ]
      redirects: []
    )
    (command.Simple
      words: [{<echo>}]
      redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{(${ Id.VSub_Name new)})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'#endif'>)}]
      redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{(${ Id.VSub_Name new)})]
      more_env: []
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name old)} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<cmp>} {<-s>} {(${ Id.VSub_Name new)} {(${ Id.VSub_Name old)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<rm>} {<-f>} {(${ Id.VSub_Name new)})]
                  spids: [327 343]
                )
              ]
              else_action: [
                (C {<rm>} {<-f>} {(${ Id.VSub_Name old)})
                (C {<mv>} {(${ Id.VSub_Name new)} {(${ Id.VSub_Name old)})
              ]
              redirects: []
            )
          ]
          spids: [311 324]
        )
      ]
      else_action: [(C {<mv>} {(${ Id.VSub_Name new)} {(${ Id.VSub_Name old)})]
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)