(command.CommandList
  children: [
    (command.Simple
      words: [{(exec)}]
      redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sys)
          op: Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Left_Backtick '`'>
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {(uname)} {(-s)})
                            (C {(tr)} {(SQ <'/:[A-Z]'>)} {(SQ <'..[a-z]'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              )
            }
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_LBracket '[')} {(x) (DQ ($ VSub_DollarName '$sys'))} 
              {(KW_Bang '!') (Lit_Equals '=')} {(x)} {(Lit_RBracket ']')}
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:unamer)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Left_Backtick '`'>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(uname)} {(-r)})
                                    (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:unamem)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Left_Backtick '`'>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(uname)} {(-m)})
                                    (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:unamev)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Left_Backtick '`'>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(uname)} {(-v)})
                                    (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ VSub_DollarName '$sys'))}
              arms: [
                (case_arm
                  pat_list: [{(bsd.os)} {(freebsd)} {(netbsd)} {(openbsd)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamer'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arch)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {(sysctl)} {(-n)} {(hw.model)})]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(linux)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamer'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                    )
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$chip'))}
                      arms: [
                        (case_arm
                          pat_list: [{(i386)} {(i486)} {(i586)} {(i686)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arch)
                                  op: Equal
                                  rhs: {(DQ (i386))}
                                )
                              ]
                            )
                          ]
                        )
                        (case_arm
                          pat_list: [{(alpha)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arch)
                                  op: Equal
                                  rhs: {(DQ (alpha))}
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(aix)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamev') (-) 
                                ($ VSub_DollarName '$unamer')
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arch)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(arch)})
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(sunos)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamer') (-) 
                                ($ VSub_DollarName '$unamev')
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arch)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (command.Subshell
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (command.AndOr
                                                      ops: [Op_DPipe]
                                                      children: [(C {(uname)} {(-p)}) (C {(mach)})]
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:syst)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(arch)})
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:kern)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(arch)} {(-k)})
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(unix_sv)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamer') (-) 
                                ($ VSub_DollarName '$unamev')
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arch)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: (command.CommandList children:[(C {(uname)} {(-m)})])
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(Lit_Star '*')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oper)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$sys') (-) ($ VSub_DollarName '$unamer') (-) 
                                ($ VSub_DollarName '$unamev')
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arch)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(arch)})
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:chip)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$unamem'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                    )
                  ]
                )
              ]
            )
          ]
        )
      ]
      else_action: [
        (C {(gcc)} {(-c)} {(trycpp.c)})
        (C {(gcc)} {(-o)} {(trycpp)} {(trycpp.o)})
        (command.Case
          to_match: 
            {
              (command_sub
                left_token: <Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {(./trycpp)})])
              )
            }
          arms: [
            (case_arm
              pat_list: [{(nextstep)}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:oper)
                      op: Equal
                      rhs: 
                        {
                          (DQ (nextstep-) 
                            (command_sub
                              left_token: <Left_Backtick '`'>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(hostinfo)})
                                        (C {(sed)} {(-n)} 
                                          {(SQ <'s/^[ \t]*NeXT Mach \\([^:]*\\):.*$/\\1/p'>)}
                                        )
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          )
                        }
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:arch)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Left_Backtick '`'>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(hostinfo)})
                                        (C {(sed)} {(-n)} 
                                          {(SQ <'s/^Processor type: \\(.*\\) (.*)$/\\1/p'>)}
                                        )
                                        (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          )
                        }
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:chip)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Left_Backtick '`'>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(hostinfo)})
                                        (C {(sed)} {(-n)} 
                                          {(SQ <'s/^Processor type: .* (\\(.*\\))$/\\1/p'>)}
                                        )
                                        (C {(tr)} {(SQ <' /:'>)} {(SQ <...>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          )
                        }
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                )
              ]
            )
            (case_arm
              pat_list: [{(Lit_Star '*')}]
              action: [
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:oper) op:Equal rhs:{(DQ (unknown))})]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:arch) op:Equal rhs:{(DQ )})]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:syst) op:Equal rhs:{(DQ )})]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(DQ )})]
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:kern) op:Equal rhs:{(DQ )})]
                )
              ]
            )
          ]
        )
        (C {(rm)} {(-f)} {(trycpp.o)} {(trycpp)})
      ]
    )
    (command.Case
      to_match: {(DQ ($ VSub_DollarName '$chip'))}
      arms: [
        (case_arm
          pat_list: [{(80486)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(i486)})]
            )
          ]
        )
        (case_arm
          pat_list: [{(i486DX)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(i486-dx)})]
            )
          ]
        )
        (case_arm
          pat_list: [{(i486.DX2)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(i486-dx2)})]
            )
          ]
        )
        (case_arm
          pat_list: [{(Intel.586)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(pentium)})]
            )
          ]
        )
        (case_arm
          pat_list: [{(i586)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(pentium)})]
            )
          ]
        )
        (case_arm
          pat_list: [{(i686)}]
          action: [
            (command.ShAssignment
              pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:chip) op:Equal rhs:{(ppro)})]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(gcc)} {(-c)} {(x86cpuid.c)})]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [(C {(gcc)} {(-o)} {(x86cpuid)} {(x86cpuid.o)})]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:x86cpuid)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Left_Backtick '`'>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(./x86cpuid)})
                                            (C {(tr)} {(/) (Lit_Other ':')} {(..)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$x86cpuid'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_QMark '?') (Lit_Star '*')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:chip)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_DollarName '$x86cpuid'))}
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
        )
      ]
    )
    (C {(rm)} {(-f)} {(x86cpuid)} {(x86cpuid.o)})
    (command.Pipeline
      children: [
        (C {(echo)} 
          {
            (DQ ($ VSub_DollarName '$oper') ('-:') ($ VSub_DollarName '$arch') ('-:') 
              ($ VSub_DollarName '$syst') ('-:') ($ VSub_DollarName '$chip') ('-:') ($ VSub_DollarName '$kern') (-)
            )
          }
        )
        (C {(tr)} {(SQ <' [A-Z]'>)} {(SQ <'.[a-z]'>)})
      ]
      negated: F
    )
  ]
)