(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'srcversion='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'srcversion='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcversion='> name:srcversion)
          op: assign_op.Equal
          rhs: {(SQ <'$MirOS: src/bin/mksh/Build.sh,v 1.697 2016/03/04 18:28:39 tg Exp $'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LC_ALL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LC_ALL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LC_ALL='> name:LC_ALL)
          op: assign_op.Equal
          rhs: {<C>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<LC_ALL>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {($ Id.VSub_DollarName ZSH_VERSION) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName VERSION)}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Colon ':'>
          pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <zsh> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ZSH_VERSION='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ZSH_VERSION='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZSH_VERSION='> name:ZSH_VERSION)
                  op: assign_op.Equal
                  rhs: {<2>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-n>}
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name ZSH_VERSION>
                                  var_name: ZSH_VERSION
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<x>})
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.Simple
                              blame_tok: <emulate>
                              more_env: []
                              words: [{<emulate>} {<sh>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Right_Subshell _>
                          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>}
                            )
                          ]
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <emulate>
              more_env: []
              words: [{<emulate>} {<sh>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NULLCMD='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NULLCMD='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NULLCMD='> name:NULLCMD)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
          ]
          spids: [110 139]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-d>} {<'/usr/xpg4/bin/.'>}]
                      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>}
                        )
                      ]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: {<'/usr/xpg4/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<PATH>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [153 168]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nl='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nl='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'safeIFS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'safeIFS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'safeIFS='> name:safeIFS)
          op: assign_op.Equal
          rhs: {(SQ <'\t'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'safeIFS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'safeIFS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'safeIFS='> name:safeIFS)
          op: assign_op.Equal
          rhs: {(DQ <' '> ($ Id.VSub_DollarName safeIFS) ($ Id.VSub_DollarName nl))}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IFS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IFS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName safeIFS)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'allu='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'allu='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'allu='> name:allu)
          op: assign_op.Equal
          rhs: {<QWERTYUIOPASDFGHJKLZXCVBNM>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'alll='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'alll='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'alll='> name:alll)
          op: assign_op.Equal
          rhs: {<qwertyuiopasdfghjklzxcvbnm>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'alln='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'alln='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'alln='> name:alln)
          op: assign_op.Equal
          rhs: {<0123456789>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'alls='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'alls='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'alls='> name:alls)
          op: assign_op.Equal
          rhs: {<______________________________________________________________>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <genopt_die>
      name: genopt_die
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'E: '> ($ Id.VSub_Star '*'))}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'E: in \''> ($ Id.VSub_DollarName srcfile) <'\': \''> 
                            ($ Id.VSub_DollarName line) <'\''>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  ]
                  spids: [228 239]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'E: invalid input in \''> ($ Id.VSub_DollarName srcfile) <'\': \''> 
                        ($ Id.VSub_DollarName line) <'\''>
                      )
                    }
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName bn) <.gen>)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <genopt_soptc>
      name: genopt_soptc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'optc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'optc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optc='> name:optc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(SQ <'s/^[<>]\\(.\\).*$/\\1/'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName optc))}
                    {<Id.Lit_Equals '='>}
                    {<x> (SQ <'|'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'optclo='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'optclo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optclo='> name:optclo)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName optc))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [
                                  {<tr>}
                                  {($ Id.VSub_DollarName allu)}
                                  {($ Id.VSub_DollarName alll)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_DollarName optc))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ ($ Id.VSub_DollarName optclo))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'islo='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'islo='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'islo='> name:islo)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [376 393]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'islo='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'islo='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'islo='> name:islo)
                      op: assign_op.Equal
                      rhs: {<0>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sym='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sym='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sym='> name:sym)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(SQ <'s/^[<>]/|/'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o_str='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o_str='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_str='> name:o_str)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName o_str) ($ Id.VSub_DollarName nl) 
                      (DQ <'<'> ($ Id.VSub_DollarName optclo) ($ Id.VSub_DollarName islo) 
                        ($ Id.VSub_DollarName sym)
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <genopt_scond>
      name: genopt_scond
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{<x> ($ Id.VSub_DollarName cond)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x> <Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {(DQ ($ Id.VSub_DollarName cond))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/^ //'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: {(DQ <'#if '> ($ Id.VSub_DollarName cond))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x> (SQ <'!'>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {(DQ ($ Id.VSub_DollarName cond))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/^!//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: {(DQ <'#ifndef '> ($ Id.VSub_DollarName cond))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cond='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cond='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                          op: assign_op.Equal
                          rhs: {(DQ <'#ifdef '> ($ Id.VSub_DollarName cond))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_genopt>
      name: do_genopt
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'srcfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'srcfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcfile='> name:srcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName srcfile))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <genopt_die>
                  more_env: []
                  words: [
                    {<genopt_die>}
                    {<Source>}
                    {<file>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <srcfile>}
                    {<not>}
                    {<set.>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'bn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'bn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bn='> name:bn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <basename>
                                more_env: []
                                words: [{<basename>} {(DQ ($ Id.VSub_DollarName srcfile))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(SQ <'s/.opt$//'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o_hdr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o_hdr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_hdr='> name:o_hdr)
                  op: assign_op.Equal
                  rhs: {(SQ <'/* +++ GENERATED FILE +++ DO NOT EDIT +++ */'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o_gen='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o_gen='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o_str='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o_str='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_str='> name:o_str)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o_sym='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o_sym='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_sym='> name:o_sym)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ddefs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ddefs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ddefs='> name:ddefs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'state='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'state='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'state='> name:state)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName srcfile))}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <read>
                          more_env: [(EnvPair left:<Id.Lit_VarLike 'IFS='> name:IFS val:(rhs_word__Empty))]
                          words: [{<read>} {<line>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName safeIFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName state) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName line)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <2>
                          pattern: 
                            (pat.Words
                              words: [{<2> <Id.Lit_Colon ':'> (SQ <'|'>) <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_sym='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_sym='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_sym='> name:o_sym)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/^.//'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#undef F0'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#undef FN'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName ddefs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'state='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'state='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'state='> name:state)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: 
                            (pat.Words
                              words: [{<1> <Id.Lit_Colon ':'> <Id.Lit_At '@'> <Id.Lit_At '@'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#endif'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#ifndef F0'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#define F0 FN'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ <'#endif'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'state='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'state='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'state='> name:state)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_At '@'> <Id.Lit_At '@'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <genopt_die>
                              more_env: []
                              words: [{<genopt_die>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <0>
                          pattern: 
                            (pat.Words
                              words: [
                                {<0> <Id.Lit_Colon ':'> <'/'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\*'>
                                    ch: '*'
                                  ) <->
                                }
                                {<0> <Id.Lit_Colon ':'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') <Id.Lit_Star '*'>
                                }
                                {<0> <Id.Lit_Colon ':'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_hdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_hdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_hdr='> name:o_hdr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_hdr) ($ Id.VSub_DollarName nl) 
                                      ($ Id.VSub_DollarName line)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <0>
                          pattern: 
                            (pat.Words
                              words: [
                                {<0> <Id.Lit_Colon ':'> <Id.Lit_At '@'> <Id.Lit_Star '*'>}
                                {<1> <Id.Lit_Colon ':'> <Id.Lit_At '@'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'sym='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'sym='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sym='> name:sym)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/^@//'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {($ Id.VSub_DollarName state)}
                                                {<Id.Lit_Equals '='>}
                                                {<0>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'o_gen='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'o_gen='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'o_gen='>
                                              name: o_gen
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                              (DQ <'#if defined('> ($ Id.VSub_DollarName sym) <')'>)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [864 875]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'o_gen='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'o_gen='>
                                          name: o_gen
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                          (DQ <'#elif defined('> ($ Id.VSub_DollarName sym) <')'>)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ddefs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ddefs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ddefs='> name:ddefs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName ddefs) ($ Id.VSub_DollarName nl) 
                                        <'#undef '> ($ Id.VSub_DollarName sym)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'state='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'state='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'state='> name:state)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <0>
                          pattern: 
                            (pat.Words
                              words: [
                                {<0> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                {<3> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <genopt_die>
                              more_env: []
                              words: [{<genopt_die>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      ($ Id.VSub_DollarName line)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <2>
                          pattern: 
                            (pat.Words
                              words: [
                                {<2> <Id.Lit_Colon ':'> (SQ <'<'>) <Id.Lit_Star '*'> (SQ <'|'>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <genopt_soptc>
                              more_env: []
                              words: [{<genopt_soptc>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <2>
                          pattern: 
                            (pat.Words
                              words: [
                                {<2> <Id.Lit_Colon ':'> (SQ <'>'>) <Id.Lit_Star '*'> (SQ <'|'>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <genopt_soptc>
                              more_env: []
                              words: [{<genopt_soptc>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cond='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cond='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cond='> name:cond)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/^[^|]*|//'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <genopt_scond>
                              more_env: []
                              words: [{<genopt_scond>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName optc)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ <'|'>)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'optc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'optc='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'optc='>
                                              name: optc
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'optc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'optc='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'optc='>
                                              name: optc
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\''>
                                                ch: '\''
                                              ) ($ Id.VSub_DollarName optc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <read>
                                  more_env: [(EnvPair left:<Id.Lit_VarLike 'IFS='> name:IFS val:(rhs_word__Empty))]
                                  words: [{<read>} {<line>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <genopt_die>
                                  more_env: []
                                  words: [{<genopt_die>} {<Unexpected>} {<EOF>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName safeIFS)}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName cond))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'o_gen='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'o_gen='>
                                          name: o_gen
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                          (DQ ($ Id.VSub_DollarName cond))
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o_gen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_gen='> name:o_gen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                      (DQ ($ Id.VSub_DollarName line) <', '> 
                                        ($ Id.VSub_DollarName optc) <')'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName cond))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'o_gen='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'o_gen='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'o_gen='>
                                          name: o_gen
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName o_gen) ($ Id.VSub_DollarName nl) 
                                          (DQ <'#endif'>)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName state) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName o_sym)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <3>
                  pattern: (pat.Words words:[{<3> <Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <genopt_die>
                      more_env: []
                      words: [{<genopt_die>} {<Expected>} {<optc>} {<sym>} {<at>} {<EOF>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <3>
                  pattern: (pat.Words words:[{<3> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <genopt_die>
                      more_env: []
                      words: [{<genopt_die>} {<Missing>} {<EOF>} {<marker>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName o_str))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sort>
                  more_env: []
                  words: [{<sort>}]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <read>
                              more_env: [
                                (EnvPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  name: IFS
                                  val: {(SQ <'|'>)}
                                )
                              ]
                              words: [{<read>} {<x>} {<opts>} {<cond>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName safeIFS)}
                            )
                          ]
                          redirects: []
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName x))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                        (command.Simple
                          blame_tok: <genopt_scond>
                          more_env: []
                          words: [{<genopt_scond>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName cond))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName cond))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                ($ Id.VSub_DollarName opts) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName cond))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'#endif'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName o_hdr))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'#ifndef '> ($ Id.VSub_DollarName o_sym) ($ Id.VSub_DollarName o_gen))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'#else'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'#undef '> ($ Id.VSub_DollarName o_sym))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'#endif'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName bn) <.gen>)}
                    )
                  ]
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName safeIFS)}
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_DollarName BUILDSH_RUN_GENOPT))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <1>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<x>} {<-G>} {(DQ ($ Id.VSub_DollarName srcfile))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1334 1351]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_Number 1))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <-G>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <do_genopt>
              more_env: []
              words: [{<do_genopt>} {(DQ ($ Id.VSub_Number 2))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          spids: [1369 1386]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'For the build logs, demonstrate that /dev/null and /dev/tty exist:'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ls>
      more_env: []
      words: [{<ls>} {<-l>} {<'/dev/null'>} {<'/dev/tty'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <v>
      name: v
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)} {(DQ ($ Id.VSub_Star '*'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <vv>
      name: vv
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_c='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_c='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_c='> name:_c)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {
                  (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <' '> 
                    ($ Id.VSub_Star '*')
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: [
                (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<vv.out>})
                (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [{<sed>} {(DQ <'s\x07^\x07'> (${ Id.VSub_Name _c) <' \x07'>)}]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<vv.out>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <vq>
      name: vq
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <rmf>
      name: rmf
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_f]
              iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _f)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Build.sh>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Build.sh>}
                                {<check.pl>}
                                {<check.t>}
                                {<dot.mkshrc>}
                                {<Id.Lit_Star '*'> <.1>}
                                {<Id.Lit_Star '*'> <.c>}
                                {<Id.Lit_Star '*'> <.h>}
                                {<Id.Lit_Star '*'> <.ico>}
                                {<Id.Lit_Star '*'> <.opt>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName _f))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tcfn='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tcfn='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'bi='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'bi='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bi='> name:bi)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ui='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ui='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ui='> name:ui)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ao='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ao='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ao='> name:ao)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'fx='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'fx='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fx='> name:fx)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'me='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'me='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'me='> name:me)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <basename>
                    more_env: []
                    words: [{<basename>} {(DQ ($ Id.VSub_Number 0))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'orig_CFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'orig_CFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'orig_CFLAGS='> name:orig_CFLAGS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName CFLAGS)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'phase='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'phase='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
          op: assign_op.Equal
          rhs: {<x>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'oldish_ed='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'oldish_ed='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldish_ed='> name:oldish_ed)
          op: assign_op.Equal
          rhs: {<stdout-ed> <Id.Lit_Comma ','> <no-stderr-ed>}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-t>} {<1>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'bi='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'bi='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bi='> name:bi)
                  op: assign_op.Equal
                  rhs: {(SQ <'\x1b[1m'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ui='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ui='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ui='> name:ui)
                  op: assign_op.Equal
                  rhs: {(SQ <'\x1b[4m'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ao='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ao='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ao='> name:ao)
                  op: assign_op.Equal
                  rhs: {(SQ <'\x1b[0m'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [1623 1632]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <upper>
      name: upper
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<Id.Lit_Colon ':'> (DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {(SQ <'s/^://'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {($ Id.VSub_DollarName alll)} {($ Id.VSub_DollarName allu)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_testdone>
      name: ac_testdone
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<HAVE_> ($ Id.VSub_DollarName fu) <Id.Lit_Equals '='> ($ Id.VSub_DollarName fv)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName fv)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                      op: assign_op.Equal
                      rhs: {<yes>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {
                  (DQ ($ Id.VSub_DollarName bi) <'==> '> ($ Id.VSub_DollarName fd) <...> 
                    ($ Id.VSub_DollarName ao) <' '> ($ Id.VSub_DollarName ui) ($ Id.VSub_DollarName fr) ($ Id.VSub_DollarName ao) 
                    ($ Id.VSub_DollarName fx)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fx='> name:fx)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_cache>
      name: ac_cache
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'f='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'f='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fu='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fu='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fu='> name:fu)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <upper>
                            more_env: []
                            words: [{<upper>} {($ Id.VSub_DollarName f)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'fv='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <HAVE_> ($ Id.VSub_DollarName fu)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName fv)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>} {<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fx='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fx='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fx='> name:fx)
                          op: assign_op.Equal
                          rhs: {(SQ <' (cached)'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_testinit>
      name: ac_testinit
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <ac_cache>
                              more_env: []
                              words: [{<ac_cache>} {($ Id.VSub_Number 1)}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<x> (DQ ($ Id.VSub_Number 2))}
                            {<Id.Lit_Equals '='>}
                            {<x> (DQ <'!'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<x> (DQ ($ Id.VSub_Number 2))} {<Id.Lit_Equals '='>} {<x> (DQ )}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fd='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fd='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fd='> name:fd)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 3>
                                var_name: 3
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Hyphen _>
                                    arg_word: {($ Id.VSub_DollarName f)}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <ac_testdone>
                      more_env: []
                      words: [{<ac_testdone>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1831 1838]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fc='> name:fc)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_Number 2))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ )}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ft='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ft='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ft='> name:ft)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1901 1917]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<x> (DQ ($ Id.VSub_Number 2))}
                                    {<Id.Lit_Equals '='>}
                                    {<x> (DQ <'!'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'fc='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'fc='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fc='> name:fc)
                              op: assign_op.Equal
                              rhs: {<1>}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      spids: [1927 1944]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {<Id.Lit_VarLike 'ft='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                        ch: '$'
                      ) <HAVE_> 
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <upper>
                            more_env: []
                            words: [{<upper>} {($ Id.VSub_Number 2)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fd='> name:fd)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 3>
                        var_name: 3
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {($ Id.VSub_DollarName f)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {($ Id.VSub_DollarName fc)}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName ft))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fx='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fx='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fx='> name:fx)
                          op: assign_op.Equal
                          rhs: {(SQ <' (implied)'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <ac_testdone>
                      more_env: []
                      words: [{<ac_testdone>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1985 1998]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)} {<Id.Lit_TDot ...>} {($ Id.VSub_DollarName fd)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_testnnd>
      name: ac_testnnd
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ <'!'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2046 2063]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                      op: assign_op.Equal
                      rhs: {<0>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <ac_testinit>
                  more_env: []
                  words: [{<ac_testinit>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<conftest.c>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <']'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' conftest.c '> 
                    ($ Id.VSub_DollarName LIBS) <' '> ($ Id.VSub_DollarName ccpr)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName tcfn)} {<Id.Lit_Equals '='>} {<no>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<a.out>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tcfn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tcfn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
                      op: assign_op.Equal
                      rhs: {<a.out>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName tcfn)} {<Id.Lit_Equals '='>} {<no>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<a.exe>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tcfn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tcfn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
                      op: assign_op.Equal
                      rhs: {<a.exe>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName tcfn)} {<Id.Lit_Equals '='>} {<no>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<conftest.exe>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tcfn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tcfn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
                      op: assign_op.Equal
                      rhs: {<conftest.exe>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName tcfn)} {<Id.Lit_Equals '='>} {<no>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<conftest>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tcfn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tcfn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
                      op: assign_op.Equal
                      rhs: {<conftest>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-f>} {($ Id.VSub_DollarName tcfn)}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName fr)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'fv='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'fv='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                              op: assign_op.Equal
                              rhs: {<1>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [2213 2222]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName fr)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'vscan='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'vscan='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vscan='> name:vscan)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {($ Id.VSub_DollarName phase)} {<Id.Lit_Equals '='>} {<u>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<gcc>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'vscan='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'vscan='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vscan='> name:vscan)
                              op: assign_op.Equal
                              rhs: {(SQ <'unrecogni[sz]ed'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<hpcc>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'vscan='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'vscan='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vscan='> name:vscan)
                              op: assign_op.Equal
                              rhs: {(SQ <unsupported>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<pcc>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'vscan='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'vscan='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vscan='> name:vscan)
                              op: assign_op.Equal
                              rhs: {(SQ <unsupported>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<sunpro>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'vscan='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'vscan='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vscan='> name:vscan)
                              op: assign_op.Equal
                              rhs: {(SQ <'-e ignored -e turned.off'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [2262 2273]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vscan))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {($ Id.VSub_DollarName vscan)} {<vv.out>}]
                  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>}
                    )
                  ]
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fv='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fv='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName fr)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_testn>
      name: ac_testn
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <ac_testnnd>
                  more_env: []
                  words: [{<ac_testnnd>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [
                {<rmf>}
                {<conftest.c>}
                {<conftest.o>}
                {(${ Id.VSub_Name tcfn) <Id.Lit_Star '*'>}
                {<vv.out>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testdone>
              more_env: []
              words: [{<ac_testdone>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_ifcpp>
      name: ac_ifcpp
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'expr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'expr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expr='> name:expr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [{<ac_testn>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#include <unistd.h>\n'>
                        <'extern int thiswillneverbedefinedIhope(void);\n'>
                        <'int main(void) { return (isatty(0) +\n'>
                        <'#'>
                        ($ Id.VSub_DollarName expr)
                        <'\n'>
                        <'    0\n'>
                        <'#else\n'>
                        <'/* force a failure: expr is false */\n'>
                        <'    thiswillneverbedefinedIhope()\n'>
                        <'#endif\n'>
                        <'    ); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<x> (DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<x> (DQ <'!'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'f='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'f='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fu='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fu='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fu='> name:fu)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <upper>
                            more_env: []
                            words: [{<upper>} {($ Id.VSub_DollarName f)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'fv='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <HAVE_> ($ Id.VSub_DollarName fu)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<x> (DQ ($ Id.VSub_DollarName fv))} {<Id.Lit_Equals '='>} {<x> (DQ <1>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <add_cppflags>
      name: add_cppflags
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CPPFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_Star '*'))}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_cppflags>
      name: ac_cppflags
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<x> (DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<x> (DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fu='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fu='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fu='> name:fu)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<x> (DQ ($ Id.VSub_Number 2))} {<Id.Lit_Equals '='>} {<x> (DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {<Id.Lit_VarLike 'fv='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                        ch: '$'
                      ) <HAVE_> ($ Id.VSub_DollarName fu)
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [
                {<add_cppflags>}
                {<-DHAVE_> ($ Id.VSub_DollarName fu) <Id.Lit_Equals '='> ($ Id.VSub_DollarName fv)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_test>
      name: ac_test
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [{<ac_testn>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_cppflags>
              more_env: []
              words: [{<ac_cppflags>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_flags>
      name: ac_flags
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ <->)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hf='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hf='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hf='> name:hf)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2622 2639]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'hf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'hf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hf='> name:hf)
                      op: assign_op.Equal
                      rhs: {<0>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fa='> name:fa)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'vn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'vn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vn='> name:vn)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'f='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'f='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ft='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ft='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ft='> name:ft)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fl='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fl='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fl='> name:fl)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 5)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<x> (DQ ($ Id.VSub_DollarName ft))} {<Id.Lit_Equals '='>} {<x> (DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'ft='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'ft='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ft='> name:ft)
                      op: assign_op.Equal
                      rhs: {(DQ <'if '> ($ Id.VSub_DollarName f) <' can be used'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_CFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_CFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_CFLAGS='> name:save_CFLAGS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName CFLAGS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName CFLAGS) <' '> ($ Id.VSub_DollarName f))}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName fl))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'save_LDFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'save_LDFLAGS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'save_LDFLAGS='>
                              name: save_LDFLAGS
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName LDFLAGS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LDFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LDFLAGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LDFLAGS='> name:LDFLAGS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName fl))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2714 2725]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName hf)}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <ac_testn>
                      more_env: []
                      words: [
                        {<ac_testn>}
                        {<can_> ($ Id.VSub_DollarName vn)}
                        {(SQ )}
                        {(DQ ($ Id.VSub_DollarName ft))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2743 2754]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <ac_testn>
                  more_env: []
                  words: [
                    {<ac_testn>}
                    {<can_> ($ Id.VSub_DollarName vn)}
                    {(SQ )}
                    {(DQ ($ Id.VSub_DollarName ft))}
                  ]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLessDash '<<-'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(SQ <EOF>)}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'/* evil apo\'stroph in comment test */\n'>
                            <'#include <unistd.h>\n'>
                            <'int main(void) { return (isatty(0)); }\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'fv='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <HAVE_CAN_> 
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <upper>
                        more_env: []
                        words: [{<upper>} {($ Id.VSub_DollarName vn)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName fl))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<11>}
                            {<Id.Lit_Equals '='>}
                            {($ Id.VSub_DollarName fa) ($ Id.VSub_DollarName fv)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'LDFLAGS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'LDFLAGS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LDFLAGS='> name:LDFLAGS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName save_LDFLAGS)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [2812 2823]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<11>}
                    {<Id.Lit_Equals '='>}
                    {($ Id.VSub_DollarName fa) ($ Id.VSub_DollarName fv)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'CFLAGS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName save_CFLAGS)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ac_header>
      name: ac_header
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ <'!'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'na='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'na='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'na='> name:na)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2871 2888]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'na='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'na='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'na='> name:na)
                      op: assign_op.Equal
                      rhs: {<0>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'hf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'hf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hf='> name:hf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'hv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'hv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hv='> name:hv)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName hf))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [{<tr>} {<-d>} {(SQ <'\\012\\015'>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [
                                  {<tr>}
                                  {<-c>}
                                  {($ Id.VSub_DollarName alll) ($ Id.VSub_DollarName allu) 
                                    ($ Id.VSub_DollarName alln)
                                  }
                                  {($ Id.VSub_DollarName alls)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'/* NeXTstep bug workaround */'>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <_time>
                          pattern: (pat.Words words:[{<_time>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#if HAVE_BOTH_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#include <sys/time.h>'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#include <time.h>'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#elif HAVE_SYS_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#include <sys/time.h>'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#elif HAVE_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#include <time.h>'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'#endif'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'#include <'> ($ Id.VSub_DollarName i) <'>'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<x>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'#include <'> ($ Id.VSub_DollarName hf) <'>'>)}]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'#include <unistd.h>'>)}]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'int main(void) { return (isatty(0)); }'>)}]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {(DQ ($ Id.VSub_DollarName hv))}
                {(DQ )}
                {(DQ <'<'> ($ Id.VSub_DollarName hf) <'>'>)}
              ]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [{<rmf>} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName na)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <ac_cppflags>
                  more_env: []
                  words: [{<ac_cppflags>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <addsrcs>
      name: addsrcs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<x> (DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {<x> (DQ <'!'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3168 3185]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fr='> name:fr)
                      op: assign_op.Equal
                      rhs: {<1>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'i='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) ($ Id.VSub_Number 1)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {($ Id.VSub_DollarName fr)}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName i))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName SRCS) <' '>)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: 
                        (pat.Words
                          words: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) ($ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                              <Id.Lit_Star '*'>
                            }
                          ]
                        )
                      middle: <Id.Right_CasePat _>
                      action: []
                      right: <Id.Op_DSemi _>
                    )
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'SRCS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'SRCS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCS='> name:SRCS)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName SRCS) <' '> ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'curdir='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'curdir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'curdir='> name:curdir)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <pwd>
                    more_env: []
                    words: [{<pwd>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
        (AssignPair
          left: <Id.Lit_VarLike 'srcdir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <dirname>
                    more_env: []
                    words: [{<dirname>} {(DQ ($ Id.VSub_Number 0))}]
                    redirects: [
                      (Redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{<x> ($ Id.VSub_DollarName srcdir)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <x>
          pattern: (pat.Words words:[{<x>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'srcdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'srcdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir)
                  op: assign_op.Equal
                  rhs: {<.>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                  <Id.Lit_Star '*'>
                }
                {<Id.Lit_Star '*'> (DQ <'\t'>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (DQ ($ Id.VSub_DollarName nl)) <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<Source>}
                {<directory>}
                {<should>}
                {<not>}
                {<contain>}
                {<space>}
                {<or>}
                {<tab>}
                {<or>}
                {<newline.>}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<Errors>} {<may>} {<occur.>}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <'\''>) <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<Source>} {<directory>} {<must>} {<not>} {<contain>} {<single>} {<quotes.>}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'dstversion='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'dstversion='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dstversion='> name:dstversion)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <sed>
                    more_env: []
                    words: [
                      {<sed>}
                      {<-n>}
                      {(SQ <'/define MKSH_VERSION/s/^.*"\\([^"]*\\)".*$/\\1/p'>)}
                      {(DQ ($ Id.VSub_DollarName srcdir) <'/sh.h'>)}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <add_cppflags>
      more_env: []
      words: [{<add_cppflags>} {<-DMKSH_BUILDSH>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'e='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'e='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
          op: assign_op.Equal
          rhs: {<echo>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'r='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'r='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'eq='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'eq='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eq='> name:eq)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'pm='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'pm='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pm='> name:pm)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cm='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cm='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
          op: assign_op.Equal
          rhs: {<normal>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'optflags='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'optflags='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optflags='> name:optflags)
          op: assign_op.Equal
          rhs: {<-std-compile-opts>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'check_categories='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'check_categories='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'last='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'last='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tfn='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tfn='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tfn='> name:tfn)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'legacy='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'legacy='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'legacy='> name:legacy)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [i]
      iterable: (for_iter__Args)
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName last) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName i)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <c>
                  pattern: 
                    (pat.Words
                      words: [
                        {<c> <Id.Lit_Colon ':'> <combine>}
                        {<c> <Id.Lit_Colon ':'> <dragonegg>}
                        {<c> <Id.Lit_Colon ':'> <llvm>}
                        {<c> <Id.Lit_Colon ':'> <lto>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cm='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cm='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName i)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <c>
                  pattern: (pat.Words words:[{<c> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName me) <': Unknown option -c \''> 
                            ($ Id.VSub_DollarName i) <'\'!'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <o>
                  pattern: (pat.Words words:[{<o> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'optflags='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'optflags='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optflags='> name:optflags)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName i)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <t>
                  pattern: (pat.Words words:[{<t> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tfn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tfn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tfn='> name:tfn)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName i)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-c>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: {<c>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-G>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName me) <': Do not call me with \'-G\'!'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-g>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-DDEBUG>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CFLAGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName CFLAGS) <' -g3 -fno-builtin'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-j>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pm='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pm='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pm='> name:pm)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-L>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'legacy='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'legacy='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'legacy='> name:legacy)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <Id.Lit_Other '+'> <L>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'legacy='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'legacy='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'legacy='> name:legacy)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-M>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cm='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cm='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
                          op: assign_op.Equal
                          rhs: {<makefile>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-O>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'optflags='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'optflags='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optflags='> name:optflags)
                          op: assign_op.Equal
                          rhs: {<-std-compile-opts>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-o>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: {<o>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-Q>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'eq='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'eq='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eq='> name:eq)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-r>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-t>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'last='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'last='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last='> name:last)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <-v>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Build.sh '> ($ Id.VSub_DollarName srcversion))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'for mksh '> ($ Id.VSub_DollarName dstversion))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<0>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName me) <': Unknown option \''> 
                            ($ Id.VSub_DollarName i) <'\'!'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName me) <': Unknown option -\''> 
                            ($ Id.VSub_DollarName last) <'\' \''> ($ Id.VSub_DollarName i) <'\'!'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName last))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ ($ Id.VSub_DollarName me) <': Option -\''> ($ Id.VSub_DollarName last) 
                    <'\' not followed by argument!'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [3809 3820]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName tfn))}]
          redirects: []
          do_fork: T
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName legacy)} {<Id.Lit_Equals '='>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tfn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tfn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tfn='> name:tfn)
                      op: assign_op.Equal
                      rhs: {<mksh>}
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [3853 3864]
            )
          ]
          else_kw: <Id.KW_Else else>
          else_action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tfn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tfn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tfn='> name:tfn)
                  op: assign_op.Equal
                  rhs: {<lksh>}
                )
              ]
              redirects: []
            )
          ]
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName tfn)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName tfn) <.exe>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ ($ Id.VSub_DollarName me) <': Error: ./'> ($ Id.VSub_DollarName tfn) 
                    <' is a directory!'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [3878 3896]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <rmf>
      more_env: []
      words: [
        {<rmf>}
        {<a.exe> <Id.Lit_Star '*'>}
        {<a.out> <Id.Lit_Star '*'>}
        {<conftest.c>}
        {<conftest.exe> <Id.Lit_Star '*'>}
        {<Id.Lit_Star '*'> <core>}
        {<core.> <Id.Lit_Star '*'>}
        {(${ Id.VSub_Name tfn) <Id.Lit_Star '*'>}
        {<Id.Lit_Star '*'> <.bc>}
        {<Id.Lit_Star '*'> <.dbg>}
        {<Id.Lit_Star '*'> <.ll>}
        {<Id.Lit_Star '*'> <.o>}
        {<Id.Lit_Star '*'> <.gen>}
        {<Rebuild.sh>}
        {<lft>}
        {<no>}
        {<signames.inc>}
        {<test.sh>}
        {<x>}
        {<vv.out>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SRCS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SRCS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCS='> name:SRCS)
          op: assign_op.Equal
          rhs: {(DQ <'lalloc.c eval.c exec.c expr.c funcs.c histrap.c jobs.c'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SRCS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SRCS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCS='> name:SRCS)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName SRCS) <' lex.c main.c misc.c shf.c syn.c tree.c var.c'>)}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName legacy)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SRCS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SRCS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCS='> name:SRCS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName SRCS) <' edit.c'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'check_categories='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'check_categories='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'check_categories='>
                      name: check_categories
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' shell:legacy-no int:32'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [3986 3997]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' shell:legacy-yes'>)}
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <add_cppflags>
          more_env: []
          words: [{<add_cppflags>} {<-DMKSH_LEGACY_MODE>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'HAVE_PERSISTENT_HISTORY='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'HAVE_PERSISTENT_HISTORY='>
              lhs: 
                (sh_lhs_expr.Name
                  left: <Id.Lit_VarLike 'HAVE_PERSISTENT_HISTORY='>
                  name: HAVE_PERSISTENT_HISTORY
                )
              op: assign_op.Equal
              rhs: {<0>}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
              lhs: 
                (sh_lhs_expr.Name
                  left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
                  name: HAVE_ISSET_MKSH_CONSERVATIVE_FDS
                )
              op: assign_op.Equal
              rhs: {<1>}
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_DollarName srcdir))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <.>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CPPFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                  op: assign_op.Equal
                  rhs: {(DQ <'-I. '> ($ Id.VSub_DollarName CPPFLAGS))}
                )
              ]
              redirects: []
            )
          ]
          spids: [4041 4058]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'CPPFLAGS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'CPPFLAGS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ <'-I. -I\''> ($ Id.VSub_DollarName srcdir) <'\' '> ($ Id.VSub_DollarName CPPFLAGS))
                }
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LDSTATIC))}]
          redirects: []
          do_fork: T
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LDFLAGS))}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'LDFLAGS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'LDFLAGS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LDFLAGS='> name:LDFLAGS)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName LDSTATIC))}
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [4090 4101]
            )
          ]
          else_kw: <Id.KW_Else else>
          else_action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LDFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LDFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LDFLAGS='> name:LDFLAGS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LDSTATIC)}
                )
              ]
              redirects: []
            )
          ]
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName TARGET_OS))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>} {<-s>}]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DPipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName x))}
                    {<Id.Lit_Equals '='>}
                    {<x> 
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_Backtick '`'>
                          child: 
                            (command.Simple
                              blame_tok: <uname>
                              more_env: []
                              words: [{<uname>} {<-n>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          right: <Id.Backtick_Right '`'>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'TARGET_OS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'TARGET_OS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OS='> name:TARGET_OS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName x)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          spids: [4120 4131]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName TARGET_OS))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ ($ Id.VSub_DollarName me) <': Set TARGET_OS, your uname is broken!'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [4181 4192]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'oswarn='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'oswarn='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ccpc='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ccpc='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpc='> name:ccpc)
          op: assign_op.Equal
          rhs: {<-Wc> <Id.Lit_Comma ','>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ccpl='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ccpl='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpl='> name:ccpl)
          op: assign_op.Equal
          rhs: {<-Wl> <Id.Lit_Comma ','>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tsts='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tsts='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tsts='> name:tsts)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ccpr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ccpr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpr='> name:ccpr)
          op: assign_op.Equal
          rhs: 
            {
              (SQ 
                <
'|| for _f in ${tcfn}*; do case $_f in Build.sh|check.pl|check.t|dot.mkshrc|*.1|*.c|*.h|*.ico|*.opt) ;; *) rm -f "$_f" ;; esac; done'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_DollarName TARGET_OS))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <Android>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'check_categories='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'check_categories='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'check_categories='>
                      name: check_categories
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' android'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET_OS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET_OS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OS='> name:TARGET_OS)
                  op: assign_op.Equal
                  rhs: {<Linux>}
                )
              ]
              redirects: []
            )
          ]
          spids: [4233 4250]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_DollarName TARGET_OS))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <Minix>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'\n'> <'WARNING: additional checks before running Build.sh required!\n'> 
                    <'You can avoid these by calling Build.sh correctly, see below.\n'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<conftest.c>}
                )
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#include <sys/types.h>\n'>
                        <'const char *\n'>
                        <'#ifdef _NETBSD_SOURCE\n'>
                        <'ct="Ninix3"\n'>
                        <'#else\n'>
                        <'ct="Minix3"\n'>
                        <'#endif\n'>
                        <';\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ct='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ct='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ct='> name:ct)
                  op: assign_op.Equal
                  rhs: {<unknown>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <']'>)}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CC>
                      var_name: CC
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<cc>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <' -E '> ($ Id.VSub_DollarName CFLAGS) <' '> ($ Id.VSub_DollarName CPPFLAGS) <' '> 
                    ($ Id.VSub_DollarName NOWARN) <' conftest.c | grep ct= | tr -d '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'015 >x'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [{<sed>} {(SQ <'s/^/[ /'>)} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <cat>
                        more_env: []
                        words: [{<cat>} {<x>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [{<rmf>} {<x>} {<vv.out>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Minix3>
                  pattern: (pat.Words words:[{<Minix3>} {<Ninix3>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'\n'> <'Warning: you set TARGET_OS to '> 
                            ($ Id.VSub_DollarName TARGET_OS) <' but that is ambiguous.\n'> <'Please set it to either Minix3 or Ninix3, whereas the latter is\n'> 
                            <'all versions of Minix with even partial NetBSD(R) userland. The\n'> <'value determined from your compiler for the current compilation\n'> <'(which may be wrong) is: '> 
                            ($ Id.VSub_DollarName ct) <'\n'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TARGET_OS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TARGET_OS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OS='> name:TARGET_OS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName ct)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'\n'> <'Warning: you set TARGET_OS to '> 
                            ($ Id.VSub_DollarName TARGET_OS) <' but that is ambiguous.\n'> <'Please set it to either Minix3 or Ninix3, whereas the latter is\n'> 
                            <'all versions of Minix with even partial NetBSD(R) userland. The\n'> <'proper value couldn\'t be determined, continue at your own risk.\n'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          spids: [4269 4286]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OS)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <NEXTSTEP>
          pattern: (pat.Words words:[{<NEXTSTEP>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName TARGET_OSREV))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'TARGET_OSREV='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'TARGET_OSREV='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OSREV='> name:TARGET_OSREV)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <hostinfo>
                                    more_env: []
                                    words: [{<hostinfo>}]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<1>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <grep>
                                    more_env: []
                                    words: [{<grep>} {(SQ <'NeXT Mach [0-9][0-9.]*:'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {(SQ <'s/^.*NeXT Mach \\([0-9][0-9.]*\\):.*$/\\1/'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <QNX>
          pattern: (pat.Words words:[{<QNX>} {<SCO_SV>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName TARGET_OSREV))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'TARGET_OSREV='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'TARGET_OSREV='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OSREV='> name:TARGET_OSREV)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>} {<-r>}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OS)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <386BSD>
          pattern: (pat.Words words:[{<386BSD>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_CAN_OTWO>
                      var_name: HAVE_CAN_OTWO
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_SIGSETJMP>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_TYPEDEF_SIG_ATOMIC_T> <Id.Lit_Equals '='> <int>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <AIX>
          pattern: (pat.Words words:[{<AIX>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_ALL_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <BeOS>
          pattern: (pat.Words words:[{<BeOS>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KSH_VERSION)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <MIRBSD> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <KSH> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: {(DQ <'; it has minor issues'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: {(DQ <'; you must recompile mksh with'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName oswarn) (${ Id.VSub_Name nl) 
                                <'itself in a second stage'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_DISABLE_TTY_WARNING>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_SETEUGID>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <'BSD/OS'>
          pattern: (pat.Words words:[{<'BSD/OS'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Coherent>
          pattern: (pat.Words words:[{<Coherent>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it has major issues'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_SYMLINK>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'check_categories='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'check_categories='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'check_categories='>
                      name: check_categories
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' nosymlink'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_SETEUGID>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_DISABLE_TTY_WARNING>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <CYGWIN>
          pattern: (pat.Words words:[{<CYGWIN> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Darwin>
          pattern: (pat.Words words:[{<Darwin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_DARWIN_C_SOURCE>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <DragonFly>
          pattern: (pat.Words words:[{<DragonFly>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <FreeBSD>
          pattern: (pat.Words words:[{<FreeBSD>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <FreeMiNT>
          pattern: (pat.Words words:[{<FreeMiNT>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it has minor issues'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_GNU_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <GNU>
          pattern: (pat.Words words:[{<GNU>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <tendracc> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-D_GNU_SOURCE>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DSETUID_CAN_FAIL_WITH_EAGAIN>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_PATH_MAX>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <'GNU/kFreeBSD'>
          pattern: (pat.Words words:[{<'GNU/kFreeBSD'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <tendracc> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-D_GNU_SOURCE>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DSETUID_CAN_FAIL_WITH_EAGAIN>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Haiku>
          pattern: (pat.Words words:[{<Haiku>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <add_cppflags>
                  more_env: []
                  words: [{<add_cppflags>} {<-DMKSH_ASSUME_UTF8>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                      name: HAVE_ISSET_MKSH_ASSUME_UTF8
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <HP-UX>
          pattern: (pat.Words words:[{<HP-UX>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Interix>
          pattern: (pat.Words words:[{<Interix>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ccpc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ccpc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpc='> name:ccpc)
                  op: assign_op.Equal
                  rhs: {(SQ <'-X '>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ccpl='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ccpl='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpl='> name:ccpl)
                  op: assign_op.Equal
                  rhs: {(SQ <'-Y '>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_ALL_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name LIBS>
                      var_name: LIBS
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<-lcrypt>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <IRIX>
          pattern: (pat.Words words:[{<IRIX> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Linux>
          pattern: (pat.Words words:[{<Linux>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <tendracc> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-D_GNU_SOURCE>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DSETUID_CAN_FAIL_WITH_EAGAIN>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_REVOKE>
                      var_name: HAVE_REVOKE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <LynxOS>
          pattern: (pat.Words words:[{<LynxOS>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it has minor issues'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <MidnightBSD>
          pattern: (pat.Words words:[{<MidnightBSD>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Minix-vmd>
          pattern: (pat.Words words:[{<Minix-vmd>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_SETEUGID>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_MINIX_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oldish_ed='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oldish_ed='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldish_ed='> name:oldish_ed)
                  op: assign_op.Equal
                  rhs: {<no-stderr-ed>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Minix3>
          pattern: (pat.Words words:[{<Minix3>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_LIMITS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [
                {<add_cppflags>}
                {<-D_POSIX_SOURCE>}
                {<-D_POSIX_1_SOURCE> <Id.Lit_Equals '='> <2>}
                {<-D_MINIX>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oldish_ed='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oldish_ed='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldish_ed='> name:oldish_ed)
                  op: assign_op.Equal
                  rhs: {<no-stderr-ed>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <MirBSD>
          pattern: (pat.Words words:[{<MirBSD>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <MSYS_>
          pattern: (pat.Words words:[{<MSYS_> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <add_cppflags>
                  more_env: []
                  words: [{<add_cppflags>} {<-DMKSH_ASSUME_UTF8> <Id.Lit_Equals '='> <0>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                      name: HAVE_ISSET_MKSH_ASSUME_UTF8
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_STDINT_H>
                      var_name: HAVE_STDINT_H
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <NetBSD>
          pattern: (pat.Words words:[{<NetBSD>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <NEXTSTEP>
          pattern: (pat.Words words:[{<NEXTSTEP>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_NEXT_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_POSIX_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name AWK>
                      var_name: AWK
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<gawk>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CC>
                      var_name: CC
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<'cc -posix'>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_SIGSETJMP>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OSREV)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <4.2>
                  pattern: (pat.Words words:[{<4.2> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: {(DQ <'; it needs libposix.a'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Ninix3>
          pattern: (pat.Words words:[{<Ninix3>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_LIMITS>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it has unknown issues'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <OpenBSD>
          pattern: (pat.Words words:[{<OpenBSD>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <'OS/2'>
          pattern: (pat.Words words:[{<'OS/2'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_TERMIOS_H='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_TERMIOS_H='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_TERMIOS_H='> name:HAVE_TERMIOS_H)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_MKNOD='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_MKNOD='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_MKNOD='> name:HAVE_MKNOD)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it is currently being ported'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'check_categories='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'check_categories='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'check_categories='>
                      name: check_categories
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' nosymlink'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CC>
                      var_name: CC
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<gcc>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name SIZE>
                      var_name: SIZE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<': size'>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NOPROSPECTOFWORK>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <OSF1>
          pattern: (pat.Words words:[{<OSF1>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_SIG_T='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_SIG_T='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_SIG_T='> name:HAVE_SIG_T)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_OSF_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_POSIX_C_SOURCE> <Id.Lit_Equals '='> <200112L>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_XOPEN_SOURCE> <Id.Lit_Equals '='> <600>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_XOPEN_SOURCE_EXTENDED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Plan9>
          pattern: (pat.Words words:[{<Plan9>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_POSIX_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_LIMITS_EXTENSION>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_BSD_EXTENSION>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_SUSV2_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <add_cppflags>
                  more_env: []
                  words: [{<add_cppflags>} {<-DMKSH_ASSUME_UTF8>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_ASSUME_UTF8='>
                      name: HAVE_ISSET_MKSH_ASSUME_UTF8
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_CMDLINE_EDITING>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH__NO_SETEUGID>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(SQ <' and will currently not work'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_MAYBE_KENCC>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <PW32>
          pattern: (pat.Words words:[{<PW32> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_SIG_T='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_SIG_T='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_SIG_T='> name:HAVE_SIG_T)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(SQ <' and will currently not work'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <QNX>
          pattern: (pat.Words words:[{<QNX>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D__NO_EXT_QNX>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D__EXT_UNIX_MISC>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OSREV)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <012345> <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>}
                        {<6.> <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>}
                        {<6.4.> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oldish_ed='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oldish_ed='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldish_ed='> name:oldish_ed)
                          op: assign_op.Equal
                          rhs: {<no-stderr-ed>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <SCO_SV>
          pattern: (pat.Words words:[{<SCO_SV>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OSREV)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <3.2>
                  pattern: (pat.Words words:[{<3.2> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-DMKSH_UNEMPLOYED>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <5>
                  pattern: (pat.Words words:[{<5> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: {(SQ <'; this is an unknown version of'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oswarn='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oswarn='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName oswarn) ($ Id.VSub_DollarName nl) 
                                ($ Id.VSub_DollarName TARGET_OS) <' '> (${ Id.VSub_Name TARGET_OSREV) <', please tell me what to do'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SYS_SIGLIST>
                      var_name: HAVE_SYS_SIGLIST
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    ) 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE__SYS_SIGLIST>
                      var_name: HAVE__SYS_SIGLIST
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <skyos>
          pattern: (pat.Words words:[{<skyos>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it has minor issues'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <SunOS>
          pattern: (pat.Words words:[{<SunOS>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_BSD_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D__EXTENSIONS__>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <syllable>
          pattern: (pat.Words words:[{<syllable>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_GNU_SOURCE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_SIGSUSPEND>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(SQ <' and will currently not work'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <ULTRIX>
          pattern: (pat.Words words:[{<ULTRIX>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CC>
                      var_name: CC
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<'cc -YPOSIX'>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_TYPEDEF_SSIZE_T> <Id.Lit_Equals '='> <int>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <UnixWare>
          pattern: (pat.Words words:[{<UnixWare>} {<UNIX_SV>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_CONSERVATIVE_FDS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SYS_SIGLIST>
                      var_name: HAVE_SYS_SIGLIST
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    ) 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE__SYS_SIGLIST>
                      var_name: HAVE__SYS_SIGLIST
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <UWIN>
          pattern: (pat.Words words:[{<UWIN> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ccpc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ccpc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpc='> name:ccpc)
                  op: assign_op.Equal
                  rhs: {(SQ <'-Yc,'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ccpl='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ccpl='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpl='> name:ccpl)
                  op: assign_op.Equal
                  rhs: {(SQ <'-Yl,'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tsts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tsts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tsts='> name:tsts)
                  op: assign_op.Equal
                  rhs: {(DQ <' 3<>/dev/tty'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(DQ <'; it will compile, but the target'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName oswarn) (${ Id.VSub_Name nl) 
                        <'platform itself is very flakey/unreliable'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                      var_name: HAVE_SETLOCALE_CTYPE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <_svr4>
          pattern: (pat.Words words:[{<_svr4>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(SQ <'; it may or may not work'>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName TARGET_OSREV))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'TARGET_OSREV='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'TARGET_OSREV='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OSREV='> name:TARGET_OSREV)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>} {<-r>}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oswarn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oswarn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oswarn='> name:oswarn)
                  op: assign_op.Equal
                  rhs: {(SQ <'; it may or may not work'>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName TARGET_OSREV))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'TARGET_OSREV='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'TARGET_OSREV='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_OSREV='> name:TARGET_OSREV)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>} {<-r>}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (DQ 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name HAVE_MKNOD>
              var_name: HAVE_MKNOD
              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
              right: <Id.Right_DollarBrace '}'>
            )
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (DQ 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name AWK>
              var_name: AWK
              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<awk>})
              right: <Id.Right_DollarBrace '}'>
            ) 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name CC>
              var_name: CC
              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<cc>})
              right: <Id.Right_DollarBrace '}'>
            ) 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name NROFF>
              var_name: NROFF
              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<nroff>})
              right: <Id.Right_DollarBrace '}'>
            ) 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name SIZE>
              var_name: SIZE
              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<size>})
              right: <Id.Right_DollarBrace '}'>
            )
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName r)}]
          redirects: []
          do_fork: T
        )
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$NROFF'>
              more_env: []
              words: [{($ Id.VSub_DollarName NROFF)} {<-v>}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <grep>
              more_env: []
              words: [{<grep>} {<GNU>}]
              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>})
              ]
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
        )
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$NROFF'>
              more_env: []
              words: [{($ Id.VSub_DollarName NROFF)} {<-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>})
              ]
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _>]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'NROFF='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'NROFF='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NROFF='> name:NROFF)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName NROFF) <' -c'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {
          (DQ <'Hi from'> ($ Id.VSub_DollarName ao) <' '> ($ Id.VSub_DollarName bi) 
            ($ Id.VSub_DollarName srcversion) ($ Id.VSub_DollarName ao) <' on:'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OS)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <AIX>
          pattern: (pat.Words words:[{<AIX>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'oslevel >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Darwin>
          pattern: (pat.Words words:[{<Darwin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'hwprefs machine_type os_type os_class >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'sw_vers >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {(DQ <'system_profiler SPSoftwareDataType SPHardwareDataType >&2'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'/bin/sh --version >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'xcodebuild -version >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ 
                    <
'sysctl kern.version hw.machine hw.model hw.memsize hw.availcpu hw.cpufrequency hw.byteorder hw.cpu64bit_capable >&2'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <IRIX>
          pattern: (pat.Words words:[{<IRIX> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'hinv -v >&2'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <OSF1>
          pattern: (pat.Words words:[{<OSF1>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'/usr/sbin/sizer -v >&2'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <SCO_SV>
          pattern: (pat.Words words:[{<SCO_SV>} {<UnixWare>} {<UNIX_SV>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -X >&2'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'uname -a >&2'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName oswarn))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [
            {<echo>}
            {
              (DQ <'\n'> <'Warning: mksh has not yet been ported to or tested on your\n'> 
                <'operating system \''> ($ Id.VSub_DollarName TARGET_OS) <'\''> ($ Id.VSub_DollarName oswarn) <'. If you can provide\n'> 
                <'a shell account to the developer, this may improve; please\n'> <'drop us a success or failure notice or even send in diffs.\n'>
              )
            }
          ]
          redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {
          (DQ ($ Id.VSub_DollarName bi) ($ Id.VSub_DollarName me) <': Building the MirBSD Korn Shell'> 
            ($ Id.VSub_DollarName ao) <' '> ($ Id.VSub_DollarName ui) ($ Id.VSub_DollarName dstversion) ($ Id.VSub_DollarName ao) <' on '> 
            ($ Id.VSub_DollarName TARGET_OS) <' '> (${ Id.VSub_Name TARGET_OSREV) <...>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {($ Id.VSub_DollarName bi) ($ Id.VSub_DollarName me) <Id.Lit_Colon ':'>}
        {<Scanning>}
        {<Id.KW_For for>}
        {<functions...>}
        {<please>}
        {<ignore>}
        {<any>}
        {<errors.> ($ Id.VSub_DollarName ao)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CPP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CPP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPP='> name:CPP)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName CC) <' -E'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {<Id.Lit_TDot ...>}
        {<which>}
        {<compiler>}
        {<seems>}
        {<to>}
        {<be>}
        {<used>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<conftest.c>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'const char *\n'>
                <'#if defined(__ICC) || defined(__INTEL_COMPILER)\n'>
                <'ct="icc"\n'>
                <'#elif defined(__xlC__) || defined(__IBMC__)\n'>
                <'ct="xlc"\n'>
                <'#elif defined(__SUNPRO_C)\n'>
                <'ct="sunpro"\n'>
                <'#elif defined(__ACK__)\n'>
                <'ct="ack"\n'>
                <'#elif defined(__BORLANDC__)\n'>
                <'ct="bcc"\n'>
                <'#elif defined(__WATCOMC__)\n'>
                <'ct="watcom"\n'>
                <'#elif defined(__MWERKS__)\n'>
                <'ct="metrowerks"\n'>
                <'#elif defined(__HP_cc)\n'>
                <'ct="hpcc"\n'>
                <'#elif defined(__DECC) || (defined(__osf__) && !defined(__GNUC__))\n'>
                <'ct="dec"\n'>
                <'#elif defined(__PGI)\n'>
                <'ct="pgi"\n'>
                <'#elif defined(__DMC__)\n'>
                <'ct="dmc"\n'>
                <'#elif defined(_MSC_VER)\n'>
                <'ct="msc"\n'>
                <
'#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)\n'
                >
                <'ct="adsp"\n'>
                <'#elif defined(__IAR_SYSTEMS_ICC__)\n'>
                <'ct="iar"\n'>
                <'#elif defined(SDCC)\n'>
                <'ct="sdcc"\n'>
                <'#elif defined(__PCC__)\n'>
                <'ct="pcc"\n'>
                <'#elif defined(__TenDRA__)\n'>
                <'ct="tendra"\n'>
                <'#elif defined(__TINYC__)\n'>
                <'ct="tcc"\n'>
                <'#elif defined(__llvm__) && defined(__clang__)\n'>
                <'ct="clang"\n'>
                <'#elif defined(__NWCC__)\n'>
                <'ct="nwcc"\n'>
                <'#elif defined(__GNUC__)\n'>
                <'ct="gcc"\n'>
                <'#elif defined(_COMPILER_VERSION)\n'>
                <'ct="mipspro"\n'>
                <'#elif defined(__sgi)\n'>
                <'ct="mipspro"\n'>
                <'#elif defined(__hpux) || defined(__hpua)\n'>
                <'ct="hpcc"\n'>
                <'#elif defined(__ultrix)\n'>
                <'ct="ucode"\n'>
                <'#elif defined(__USLC__)\n'>
                <'ct="uslc"\n'>
                <'#elif defined(__LCC__)\n'>
                <'ct="lcc"\n'>
                <'#elif defined(MKSH_MAYBE_KENCC)\n'>
                <'/* and none of the above matches */\n'>
                <'ct="kencc"\n'>
                <'#else\n'>
                <'ct="unknown"\n'>
                <'#endif\n'>
                <';\n'>
                <'const char *\n'>
                <'#if defined(__KLIBC__) && !defined(__OS2__)\n'>
                <'et="klibc"\n'>
                <'#else\n'>
                <'et="unknown"\n'>
                <'#endif\n'>
                <';\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ct='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ct='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ct='> name:ct)
          op: assign_op.Equal
          rhs: {<untested>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'et='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'et='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'et='> name:et)
          op: assign_op.Equal
          rhs: {<untested>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <vv>
      more_env: []
      words: [
        {<vv>}
        {(SQ <']'>)}
        {
          (DQ ($ Id.VSub_DollarName CPP) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
            ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' conftest.c | '> <'    sed -n \'/^ *[ce]t *= */s/^ *'> 
            <Id.Lit_BadBackslash '\\'> <'([ce]t'> <Id.Lit_BadBackslash '\\'> <') *= */'> <Id.Lit_BadBackslash '\\'> <'1=/p\' | tr -d '> 
            (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'015 >x'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <sed>
      more_env: []
      words: [{<sed>} {(SQ <'s/^/[ /'>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {
          (CommandSub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Simple
                blame_tok: <cat>
                more_env: []
                words: [{<cat>} {<x>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Backtick_Right '`'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rmf>
      more_env: []
      words: [{<rmf>} {<x>} {<vv.out>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<conftest.c>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#include <unistd.h>\n'> <'int main(void) { return (isatty(0)); }\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <ack>
          pattern: (pat.Words words:[{<ack>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CPPFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                  op: assign_op.Equal
                  rhs: {(DQ <'-Dconst= '> ($ Id.VSub_DollarName CPPFLAGS))}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <adsp>
          pattern: (pat.Words words:[{<adsp>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'Warning: Analog Devices C++ compiler for Blackfin, TigerSHARC\n'> 
                    <'    and SHARC (21000) DSPs detected. This compiler has not yet\n'> <'    been tested for compatibility with mksh. Continue at your\n'> 
                    <'    own risk, please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <bcc>
          pattern: (pat.Words words:[{<bcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Warning: Borland C++ Builder detected. This compiler might\n'> 
                    <'    produce broken executables. Continue at your own risk,\n'> <'    please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <clang>
          pattern: (pat.Words words:[{<clang>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -version'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CLANG>
                      var_name: CLANG
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<clang>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <' -version'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CLANG>
                      var_name: CLANG
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<clang>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <' --version'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName CCC_CC) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName CCC_LD)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'CCC_LD='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'CCC_LD='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CCC_LD='> name:CCC_LD)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName CCC_CC)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<CCC_LD>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dec>
          pattern: (pat.Words words:[{<dec>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -V'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -Wl,-V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dmc>
          pattern: (pat.Words words:[{<dmc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Warning: Digital Mars Compiler detected. When running under'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'    UWIN, mksh tends to be unstable due to the limitations'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'    of this platform. Continue at your own risk,'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'    please report success/failure to the developers.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <gcc>
          pattern: (pat.Words words:[{<gcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -v conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (SQ <'echo `$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS \\\n'> 
                    <'\t    -dumpmachine` gcc`$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN \\\n'> <'\t    $LIBS -dumpversion`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <hpcc>
          pattern: (pat.Words words:[{<hpcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <iar>
          pattern: (pat.Words words:[{<iar>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'Warning: IAR Systems (http://www.iar.com) compiler for embedded\n'> 
                    <'    systems detected. This unsupported compiler has not yet\n'> <'    been tested for compatibility with mksh. Continue at your\n'> 
                    <'    own risk, please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <icc>
          pattern: (pat.Words words:[{<icc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -V'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <kencc>
          pattern: (pat.Words words:[{<kencc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -v conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <lcc>
          pattern: (pat.Words words:[{<lcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -v conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D__inline__> <Id.Lit_Equals '='> <__inline>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <metrowerks>
          pattern: (pat.Words words:[{<metrowerks>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'Warning: Metrowerks C compiler detected. This has not yet\n'> 
                    <'    been tested for compatibility with mksh. Continue at your\n'> <'    own risk, please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <mipspro>
          pattern: (pat.Words words:[{<mipspro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -version'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <msc>
          pattern: (pat.Words words:[{<msc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ccpr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ccpr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccpr='> name:ccpr)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_OS)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Interix>
                  pattern: (pat.Words words:[{<Interix>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName C89_COMPILER)}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'C89_COMPILER='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'C89_COMPILER='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'C89_COMPILER='>
                                      name: C89_COMPILER
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ntpath2posix>
                                            more_env: []
                                            words: [
                                              {<ntpath2posix>}
                                              {<-c>}
                                              {(DQ ($ Id.VSub_DollarName C89_COMPILER))}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7097 7108]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'C89_COMPILER='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'C89_COMPILER='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'C89_COMPILER='>
                                  name: C89_COMPILER
                                )
                              op: assign_op.Equal
                              rhs: {<CL.EXE>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName C89_LINKER)}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'C89_LINKER='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'C89_LINKER='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'C89_LINKER='>
                                      name: C89_LINKER
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ntpath2posix>
                                            more_env: []
                                            words: [
                                              {<ntpath2posix>}
                                              {<-c>}
                                              {(DQ ($ Id.VSub_DollarName C89_LINKER))}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7135 7146]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'C89_LINKER='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'C89_LINKER='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'C89_LINKER='>
                                  name: C89_LINKER
                                )
                              op: assign_op.Equal
                              rhs: {<LINK.EXE>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <vv>
                      more_env: []
                      words: [
                        {<vv>}
                        {(SQ <'|'>)}
                        {(DQ ($ Id.VSub_DollarName C89_COMPILER) <' /HELP >&2'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <vv>
                      more_env: []
                      words: [{<vv>} {(SQ <'|'>)} {(DQ ($ Id.VSub_DollarName C89_LINKER) <' /LINK >&2'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <nwcc>
          pattern: (pat.Words words:[{<nwcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -version'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <pcc>
          pattern: (pat.Words words:[{<pcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -v'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <pgi>
          pattern: (pat.Words words:[{<pgi>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'Warning: PGI detected. This unknown compiler has not yet\n'> 
                    <'    been tested for compatibility with mksh. Continue at your\n'> <'    own risk, please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <sdcc>
          pattern: (pat.Words words:[{<sdcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'Warning: sdcc (http://sdcc.sourceforge.net), the small devices\n'> 
                    <'    C compiler for embedded systems detected. This has not yet\n'> <'    been tested for compatibility with mksh. Continue at your\n'> 
                    <'    own risk, please report success/failure to the developers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <sunpro>
          pattern: (pat.Words words:[{<sunpro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <tcc>
          pattern: (pat.Words words:[{<tcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -v'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <tendra>
          pattern: (pat.Words words:[{<tendra>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -V 2>&1 | '> <'\t    grep -F -i -e version -e release'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <ucode>
          pattern: (pat.Words words:[{<ucode>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -V'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -Wl,-V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <uslc>
          pattern: (pat.Words words:[{<uslc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName TARGET_OS) <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName TARGET_OSREV)
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <SCO_SV>
                  pattern: (pat.Words words:[{<SCO_SV> <Id.Lit_Colon ':'> <3.2> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CFLAGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName CFLAGS) <' -g'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [
                        {<Id.Lit_Colon ':'>}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name HAVE_CAN_OTWO>
                              var_name: HAVE_CAN_OTWO
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                              right: <Id.Right_DollarBrace '}'>
                            ) 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name HAVE_CAN_OPTIMISE>
                              var_name: HAVE_CAN_OPTIMISE
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <watcom>
          pattern: (pat.Words words:[{<watcom>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -v conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <xlc>
          pattern: (pat.Words words:[{<xlc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -qversion'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' '> ($ Id.VSub_DollarName LIBS) 
                    <' -qversion=verbose'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'ld -V'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName ct))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ <untested>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$e'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName e)} {(DQ <'!!! detecting preprocessor failed'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ct='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ct='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ct='> name:ct)
                  op: assign_op.Equal
                  rhs: {<unknown>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(DQ ($ Id.VSub_DollarName CC) <' --version'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -v conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [
                {<vv>}
                {(SQ <'|'>)}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -V conftest.c '> 
                    ($ Id.VSub_DollarName LIBS)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <dragonegg>
          pattern: (pat.Words words:[{<dragonegg>} {<llvm>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <vv>
              more_env: []
              words: [{<vv>} {(SQ <'|'>)} {(DQ <'llc -version'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'etd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'etd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'etd='> name:etd)
          op: assign_op.Equal
          rhs: {(DQ <' on '> ($ Id.VSub_DollarName et))}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName et)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <klibc>
          pattern: (pat.Words words:[{<klibc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_NO_LIMITS>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <unknown>
          pattern: (pat.Words words:[{<unknown>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'etd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'etd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'etd='> name:etd)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {
          (DQ ($ Id.VSub_DollarName bi) <'==> which compiler seems to be used...'> 
            ($ Id.VSub_DollarName ao) <' '> ($ Id.VSub_DollarName ui) ($ Id.VSub_DollarName ct) ($ Id.VSub_DollarName etd) 
            ($ Id.VSub_DollarName ao)
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rmf>
      more_env: []
      words: [
        {<rmf>}
        {<conftest.c>}
        {<conftest.o>}
        {<conftest>}
        {<a.out> <Id.Lit_Star '*'>}
        {<a.exe> <Id.Lit_Star '*'>}
        {<conftest.exe> <Id.Lit_Star '*'>}
        {<vv.out>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'save_NOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'save_NOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName NOWARN)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOWARN='> name:NOWARN)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_flags>
      more_env: []
      words: [{<ac_flags>} {<0>} {<compiler_works>} {(SQ )} {(SQ <'if the compiler works'>)}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_COMPILER_WORKS)}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
              name: HAVE_COMPILER_KNOWN
            )
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<unknown>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
              lhs: 
                (sh_lhs_expr.Name
                  left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
                  name: HAVE_COMPILER_KNOWN
                )
              op: assign_op.Equal
              rhs: {<1>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <ac_ifcpp>
                      more_env: []
                      words: [
                        {<ac_ifcpp>}
                        {(SQ <'if 0'>)}
                        {<compiler_fails>}
                        {(SQ )}
                        {(SQ <'if the compiler does not fail correctly'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_CFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_CFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_CFLAGS='> name:save_CFLAGS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName CFLAGS)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_CAN_DELEXE>
                      var_name: HAVE_CAN_DELEXE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<x>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <dec>
                  pattern: (pat.Words words:[{<dec>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CFLAGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName CFLAGS) <' '> (${ Id.VSub_Name ccpl) 
                                <-non_shared>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <ac_testn>
                      more_env: []
                      words: [
                        {<ac_testn>}
                        {<can_delexe>}
                        {<compiler_fails>}
                        {<0>}
                        {(SQ <'for the -non_shared linker option'>)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLessDash '<<-'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'#include <unistd.h>\n'>
                                <'int main(void) { return (isatty(0)); }\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <dmc>
                  pattern: (pat.Words words:[{<dmc>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CFLAGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName CFLAGS) <' '> (${ Id.VSub_Name ccpl) 
                                <'/DELEXECUTABLE'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <ac_testn>
                      more_env: []
                      words: [
                        {<ac_testn>}
                        {<can_delexe>}
                        {<compiler_fails>}
                        {<0>}
                        {(SQ <'for the /DELEXECUTABLE linker option'>)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLessDash '<<-'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'#include <unistd.h>\n'>
                                <'int main(void) { return (isatty(0)); }\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_DELEXE)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'CFLAGS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'CFLAGS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName save_CFLAGS)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<compiler_still_fails>}
                {(SQ )}
                {(SQ <'if the compiler still does not fail correctly'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: []
                    )
                )
              ]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<1>}
                    {<Id.Lit_Equals '='>}
                    {($ Id.VSub_DollarName HAVE_COMPILER_STILL_FAILS)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          spids: [7848 7868]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <ac_ifcpp>
                      more_env: []
                      words: [
                        {<ac_ifcpp>}
                        {(SQ <'ifdef __TINYC__'>)}
                        {<couldbe_tcc>}
                        {(SQ <'!'>)}
                        {<compiler_known>}
                        {<0>}
                        {(SQ <'if this could be tcc'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ct='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ct='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ct='> name:ct)
                  op: assign_op.Equal
                  rhs: {<tcc>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CPP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CPP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPP='> name:CPP)
                  op: assign_op.Equal
                  rhs: {(SQ <'cpp -D__TINYC__'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_COMPILER_KNOWN='>
                      name: HAVE_COMPILER_KNOWN
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [8031 8056]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <bcc>
          pattern: (pat.Words words:[{<bcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <-w>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <'-w!'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dec>
          pattern: (pat.Words words:[{<dec>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dmc>
          pattern: (pat.Words words:[{<dmc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <-w>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <-wx>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <hpcc>
          pattern: (pat.Words words:[{<hpcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Other '+'> <We>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <kencc>
          pattern: (pat.Words words:[{<kencc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <mipspro>
          pattern: (pat.Words words:[{<mipspro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ <'-diag_error 1-10000'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <msc>
          pattern: (pat.Words words:[{<msc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <'/w'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name ccpc) <'/WX'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <sunpro>
          pattern: (pat.Words words:[{<sunpro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName save_NOWARN))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'save_NOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                      op: assign_op.Equal
                      rhs: {(SQ <'-errwarn=%none'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<errwarnnone>} {(DQ ($ Id.VSub_DollarName save_NOWARN))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<1>}
                    {<Id.Lit_Equals '='>}
                    {($ Id.VSub_DollarName HAVE_CAN_ERRWARNNONE)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'save_NOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<errwarnall>} {(DQ <'-errwarn=%all'>)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<1>}
                    {<Id.Lit_Equals '='>}
                    {($ Id.VSub_DollarName HAVE_CAN_ERRWARNALL)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'DOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'DOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                      op: assign_op.Equal
                      rhs: {(DQ <'-errwarn=%all'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <tendra>
          pattern: (pat.Words words:[{<tendra>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: {<-w>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <ucode>
          pattern: (pat.Words words:[{<ucode>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {<-w2>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <watcom>
          pattern: (pat.Words words:[{<watcom>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {<-Wc> <Id.Lit_Comma ','> <-we>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <xlc>
          pattern: (pat.Words words:[{<xlc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'save_NOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                  op: assign_op.Equal
                  rhs: {<-qflag> <Id.Lit_Equals '='> <i> <Id.Lit_Colon ':'> <e>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DOWARN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DOWARN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                  op: assign_op.Equal
                  rhs: {<-qflag> <Id.Lit_Equals '='> <i> <Id.Lit_Colon ':'> <i>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<x> (DQ ($ Id.VSub_DollarName save_NOWARN))}
                    {<Id.Lit_Equals '='>}
                    {<x> (DQ )}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'save_NOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                      op: assign_op.Equal
                      rhs: {<-Wno-error>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<wnoerror>} {(DQ ($ Id.VSub_DollarName save_NOWARN))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_WNOERROR)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'save_NOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'save_NOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_NOWARN='> name:save_NOWARN)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<werror>} {<-Werror>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_WERROR)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'DOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'DOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                      op: assign_op.Equal
                      rhs: {<-Werror>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<icc>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'DOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'DOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOWARN='> name:DOWARN)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName DOWARN) <' -wd1419'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOWARN='> name:NOWARN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName save_NOWARN)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'i='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'i='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {<Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName orig_CFLAGS))}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <sed>
                        more_env: []
                        words: [{<sed>} {(SQ <'s/^://'>)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <tr>
                        more_env: []
                        words: [
                          {<tr>}
                          {<-c>}
                          {<-d>}
                          {($ Id.VSub_DollarName alll) ($ Id.VSub_DollarName allu) 
                            ($ Id.VSub_DollarName alln)
                          }
                        ]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<x> (DQ ($ Id.VSub_DollarName i))} {<Id.Lit_Equals '='>} {<x> (DQ )}]
          redirects: []
          do_fork: T
        )
        (command.Case
          case_kw: <Id.KW_Case case>
          to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
          arms_start: <Id.KW_In in>
          arms: [
            (CaseArm
              left: <hpcc>
              pattern: (pat.Words words:[{<hpcc>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'phase='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'phase='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                      op: assign_op.Equal
                      rhs: {<u>}
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <ac_flags>
                  more_env: []
                  words: [{<ac_flags>} {<1>} {<otwo>} {<Id.Lit_Other '+'> <O2>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'phase='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'phase='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                      op: assign_op.Equal
                      rhs: {<x>}
                    )
                  ]
                  redirects: []
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <kencc>
              pattern: (pat.Words words:[{<kencc>} {<tcc>} {<tendra>}])
              middle: <Id.Right_CasePat _>
              action: []
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <sunpro>
              pattern: (pat.Words words:[{<sunpro>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<x>}
                    )
                    (Redir
                      op: <Id.Redir_DLessDash '<<-'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(SQ <EOF>)}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'#include <unistd.h>\n'>
                            <'int main(void) { return (isatty(0)); }\n'>
                            <'#define __IDSTRING_CONCAT(l,p)\t__LINTED__ ## l ## _ ## p\n'>
                            <'#define __IDSTRING_EXPAND(l,p)\t__IDSTRING_CONCAT(l,p)\n'>
                            <'#define pad\t\t\tvoid __IDSTRING_EXPAND(__LINE__,x)(void) { }\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <yes>
                      more_env: []
                      words: [{<yes>} {<pad>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <head>
                      more_env: []
                      words: [{<head>} {<-n>} {<256>}]
                      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <ac_flags>
                  more_env: []
                  words: [{<ac_flags>} {<->} {<1>} {<otwo>} {<-xO2>}]
                  redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rmf>
                  more_env: []
                  words: [{<rmf>} {<x>}]
                  redirects: []
                  do_fork: T
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <xlc>
              pattern: (pat.Words words:[{<xlc>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.Simple
                  blame_tok: <ac_flags>
                  more_env: []
                  words: [{<ac_flags>} {<1>} {<othree>} {(DQ <'-O3 -qstrict'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<1>}
                        {<Id.Lit_Equals '='>}
                        {($ Id.VSub_DollarName HAVE_CAN_OTHREE)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <ac_flags>
                      more_env: []
                      words: [{<ac_flags>} {<1>} {<otwo>} {<-O2>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <Id.Lit_Star '*'>
              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.Simple
                  blame_tok: <ac_flags>
                  more_env: []
                  words: [{<ac_flags>} {<1>} {<otwo>} {<-O2>}]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_OTWO)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <ac_flags>
                      more_env: []
                      words: [{<ac_flags>} {<1>} {<optimise>} {<-O>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              right: <Id.Op_DSemi _>
            )
          ]
          arms_end: <Id.KW_Esac esac>
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'i='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'i='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ct)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <bcc>
          pattern: (pat.Words words:[{<bcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<strpool>}
                {(DQ (${ Id.VSub_Name ccpc) <-d>)}
                {(SQ <'if string pooling can be enabled'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <clang>
          pattern: (pat.Words words:[{<clang>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dec>
          pattern: (pat.Words words:[{<dec>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<verb>} {<-verbose>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<rodata>} {<-readonly_strings>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <dmc>
          pattern: (pat.Words words:[{<dmc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<decl>}
                {(DQ (${ Id.VSub_Name ccpc) <-r>)}
                {(SQ <'for strict prototype checks'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<schk>}
                {(DQ (${ Id.VSub_Name ccpc) <-s>)}
                {(SQ <'for stack overflow checking'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <gcc>
          pattern: (pat.Words words:[{<gcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'NOWARN='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'NOWARN='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOWARN='> name:NOWARN)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName DOWARN)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'phase='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'phase='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                  op: assign_op.Equal
                  rhs: {<u>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<wnodeprecateddecls>} {<-Wno-deprecated-declarations>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<no_eh_frame>} {<-fno-asynchronous-unwind-tables>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fnostrictaliasing>} {<-fno-strict-aliasing>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fstackprotectorstrong>} {<-fstack-protector-strong>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<1>}
                    {<Id.Lit_Equals '='>}
                    {($ Id.VSub_DollarName HAVE_CAN_FSTACKPROTECTORSTRONG)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <ac_flags>
                  more_env: []
                  words: [{<ac_flags>} {<1>} {<fstackprotectorall>} {<-fstack-protector-all>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<dragonegg>}]
                  redirects: []
                  do_fork: T
                )
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: 
                    (case_arg.Word
                      w: 
                        {
                          (DQ <' '> ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName LDFLAGS) <' '>
                          )
                        }
                    )
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: 
                        (pat.Words
                          words: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <-fplugin> <Id.Lit_Equals '='> <Id.Lit_Star '*'> <dragonegg> <Id.Lit_Star '*'>
                            }
                          ]
                        )
                      middle: <Id.Right_CasePat _>
                      action: []
                      right: <Id.Op_DSemi _>
                    )
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.Simple
                          blame_tok: <ac_flags>
                          more_env: []
                          words: [
                            {<ac_flags>}
                            {<1>}
                            {<fplugin_dragonegg>}
                            {<-fplugin> <Id.Lit_Equals '='> <dragonegg>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <combine>
                  pattern: (pat.Words words:[{<combine>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'checks='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'checks='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checks='> name:checks)
                          op: assign_op.Equal
                          rhs: {(SQ <'7 8'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <lto>
                  pattern: (pat.Words words:[{<lto>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'checks='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'checks='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checks='> name:checks)
                          op: assign_op.Equal
                          rhs: {(SQ <'1 2 3 4 5 6 7 8'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<1>}]
                  redirects: []
                  do_fork: T
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [what]
                  iterable: (for_iter.Words words:[{($ Id.VSub_DollarName checks)}])
                  semi_tok: <Id.Op_Semi _>
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<1>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName what)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <1>
                              pattern: (pat.Words words:[{<1>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_ldflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltojs_lp>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <2>
                              pattern: (pat.Words words:[{<2>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ )}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltojs_nn>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <3>
                              pattern: (pat.Words words:[{<3>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_ldflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-fno-use-linker-plugin -fwhole-program'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltojs_np>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <4>
                              pattern: (pat.Words words:[{<4>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <-flto>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_ldflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltons_lp>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <5>
                              pattern: (pat.Words words:[{<5>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <-flto>)}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ )}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltons_nn>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <6>
                              pattern: (pat.Words words:[{<6>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <-flto>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_ldflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-fno-use-linker-plugin -fwhole-program'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<fltons_np>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <7>
                              pattern: (pat.Words words:[{<7>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_cflags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_cflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_cflags='>
                                          name: t_cflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'-fwhole-program --combine'>)}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_ldflags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_ldflags='>
                                          name: t_ldflags
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ )}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't_use='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_use='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_use='>
                                          name: t_use
                                        )
                                      op: assign_op.Equal
                                      rhs: {<0>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't_name='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 't_name='>
                                          name: t_name
                                        )
                                      op: assign_op.Equal
                                      rhs: {<combine>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cm='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
                                      op: assign_op.Equal
                                      rhs: {<combine>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <8>
                              pattern: (pat.Words words:[{<8>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'fv='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'fv='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cm='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
                                      op: assign_op.Equal
                                      rhs: {<normal>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<1>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                        (command.Simple
                          blame_tok: <ac_flags>
                          more_env: []
                          words: [
                            {<ac_flags>}
                            {($ Id.VSub_DollarName t_use)}
                            {($ Id.VSub_DollarName t_name)}
                            {(DQ ($ Id.VSub_DollarName t_cflags))}
                            {
                              (DQ <'if gcc supports '> ($ Id.VSub_DollarName t_cflags) <' '> 
                                ($ Id.VSub_DollarName t_ldflags)
                              )
                            }
                            {(DQ ($ Id.VSub_DollarName t_ldflags))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <hpcc>
          pattern: (pat.Words words:[{<hpcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'phase='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'phase='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                  op: assign_op.Equal
                  rhs: {<u>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'phase='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'phase='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                  op: assign_op.Equal
                  rhs: {<x>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <icc>
          pattern: (pat.Words words:[{<icc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fnobuiltinsetmode>} {<-fno-builtin-setmode>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fnostrictaliasing>} {<-fno-strict-aliasing>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fstacksecuritycheck>} {<-fstack-security-check>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <mipspro>
          pattern: (pat.Words words:[{<mipspro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fullwarn>} {<-fullwarn>} {(SQ <'for remark output support'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <msc>
          pattern: (pat.Words words:[{<msc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<strpool>}
                {(DQ (${ Id.VSub_Name ccpc) <'/GF'>)}
                {(SQ <'if string pooling can be enabled'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'int main(void) { char test[64] = ""; return (*test); }'>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<->}
                {<1>}
                {<stackon>}
                {(DQ (${ Id.VSub_Name ccpc) <'/GZ'>)}
                {(SQ <'if stack checks can be enabled'>)}
              ]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<->}
                {<1>}
                {<stckall>}
                {(DQ (${ Id.VSub_Name ccpc) <'/Ge'>)}
                {(SQ <'stack checks for all functions'>)}
              ]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<->}
                {<1>}
                {<secuchk>}
                {(DQ (${ Id.VSub_Name ccpc) <'/GS'>)}
                {(SQ <'for compiler security checks'>)}
              ]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [{<rmf>} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<wall>}
                {(DQ (${ Id.VSub_Name ccpc) <'/Wall'>)}
                {(SQ <'to enable all warnings'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [
                {<ac_flags>}
                {<1>}
                {<wp64>}
                {(DQ (${ Id.VSub_Name ccpc) <'/Wp64'>)}
                {(SQ <'to enable 64-bit warnings'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <nwcc>
          pattern: (pat.Words words:[{<nwcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <sunpro>
          pattern: (pat.Words words:[{<sunpro>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'phase='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'phase='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                  op: assign_op.Equal
                  rhs: {<u>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<v>} {<-v>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<ipo>} {<-xipo>} {(SQ <'for cross-module optimisation'>)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'phase='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'phase='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
                  op: assign_op.Equal
                  rhs: {<x>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <tcc>
          pattern: (pat.Words words:[{<tcc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <tendra>
          pattern: (pat.Words words:[{<tendra>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<0>} {<ysystem>} {<-Ysystem>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_YSYSTEM)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'CPPFLAGS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                      op: assign_op.Equal
                      rhs: {(DQ <'-Ysystem '> ($ Id.VSub_DollarName CPPFLAGS))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<extansi>} {<-Xa>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <xlc>
          pattern: (pat.Words words:[{<xlc>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<rodata>} {(DQ <'-qro -qroconst -qroptr'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<rtcheck>} {<-qcheck> <Id.Lit_Equals '='> <all>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<wformat>} {(DQ <'-qformat=all -qformat=nozln'>)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName i)}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<wall>} {<-Wall>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_flags>
              more_env: []
              words: [{<ac_flags>} {<1>} {<fwrapv>} {<-fwrapv>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [9615 9626]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'phase='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'phase='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
          op: assign_op.Equal
          rhs: {<x>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOWARN='> name:NOWARN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName DOWARN)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {($ Id.VSub_DollarName ct)} {<Id.Lit_Equals '='>} {<pcc>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'phase='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'phase='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
              op: assign_op.Equal
              rhs: {<u>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_bounded>} {(SQ )} {(SQ <'for __attribute__((__bounded__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#include <string.h>\n'>
                <'#undef __attribute__\n'>
                <'int xcopy(const void *, void *, size_t)\n'>
                <'    __attribute__((__bounded__(__buffer__, 1, 3)))\n'>
                <'    __attribute__((__bounded__(__buffer__, 2, 3)));\n'>
                <'int main(int ac, char *av[]) { return (xcopy(av[0], av[--ac], 1)); }\n'>
                <'int xcopy(const void *s, void *d, size_t n) {\n'>
                <'/*\n'>
                <' * if memmove does not exist, we are not on a system\n'>
                <' * with GCC with __bounded__ attribute either so poo\n'>
                <' */\n'>
                <'memmove(d, s, n); return ((int)n);\n'>
                <'}\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_format>} {(SQ )} {(SQ <'for __attribute__((__format__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#define fprintf printfoo\n'>
                <'#include <stdio.h>\n'>
                <'#undef __attribute__\n'>
                <'#undef fprintf\n'>
                <'extern int fprintf(FILE *, const char *format, ...)\n'>
                <'    __attribute__((__format__(__printf__, 2, 3)));\n'>
                <'int main(int ac, char **av) { return (fprintf(stderr, "%s%d", *av, ac)); }\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_noreturn>} {(SQ )} {(SQ <'for __attribute__((__noreturn__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#include <stdlib.h>\n'>
                <'#undef __attribute__\n'>
                <'void fnord(void) __attribute__((__noreturn__));\n'>
                <'int main(void) { fnord(); }\n'>
                <'void fnord(void) { exit(0); }\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_pure>} {(SQ )} {(SQ <'for __attribute__((__pure__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#include <unistd.h>\n'>
                <'#undef __attribute__\n'>
                <'int foo(const char *) __attribute__((__pure__));\n'>
                <'int main(int ac, char **av) { return (foo(av[ac - 1]) + isatty(0)); }\n'>
                <'int foo(const char *s) { return ((int)s[0]); }\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_unused>} {(SQ )} {(SQ <'for __attribute__((__unused__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#include <unistd.h>\n'>
                <'#undef __attribute__\n'>
                <'int main(int ac __attribute__((__unused__)), char **av\n'>
                <'    __attribute__((__unused__))) { return (isatty(0)); }\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<attribute_used>} {(SQ )} {(SQ <'for __attribute__((__used__))'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2))\n'>
                <'extern int thiswillneverbedefinedIhope(void);\n'>
                <'/* force a failure: TenDRA and gcc 1.42 have false positive here */\n'>
                <'int main(void) { return (thiswillneverbedefinedIhope()); }\n'>
                <'#else\n'>
                <'#include <unistd.h>\n'>
                <'#undef __attribute__\n'>
                <'static const char fnord[] __attribute__((__used__)) = "42";\n'>
                <'int main(void) { return (isatty(0)); }\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NOWARN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NOWARN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOWARN='> name:NOWARN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName save_NOWARN)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'phase='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'phase='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'phase='> name:phase)
          op: assign_op.Equal
          rhs: {<x>}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <ac_ifcpp>
                      more_env: []
                      words: [
                        {<ac_ifcpp>}
                        {(SQ <'ifdef MKSH_SMALL'>)}
                        {<isset_MKSH_SMALL>}
                        {(SQ )}
                        {(DQ <'if a reduced-feature mksh is requested'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_NICE>
                      var_name: HAVE_NICE
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name HAVE_PERSISTENT_HISTORY>
                      var_name: HAVE_PERSISTENT_HISTORY
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'check_categories='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'check_categories='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'check_categories='>
                      name: check_categories
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' smksh'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_ISSET_MKSH_CONSERVATIVE_FDS='>
                      name: HAVE_ISSET_MKSH_CONSERVATIVE_FDS
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [9877 9897]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'if defined(MKSH_BINSHPOSIX) || defined(MKSH_BINSHREDUCED)'>)}
            {<isset_MKSH_BINSH>}
            {(SQ )}
            {(SQ <'if invoking as sh should be handled specially'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' binsh'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'ifdef MKSH_UNEMPLOYED'>)}
            {<isset_MKSH_UNEMPLOYED>}
            {(SQ )}
            {(DQ <'if mksh will be built without job control'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' arge'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'ifdef MKSH_NOPROSPECTOFWORK'>)}
            {<isset_MKSH_NOPROSPECTOFWORK>}
            {(SQ )}
            {(DQ <'if mksh will be built without job signals'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' arge nojsig'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'ifdef MKSH_ASSUME_UTF8'>)}
            {<isset_MKSH_ASSUME_UTF8>}
            {(SQ )}
            {(SQ <'if the default UTF-8 mode is specified'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.Lit_Colon ':'>
          more_env: []
          words: [
            {<Id.Lit_Colon ':'>}
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name HAVE_SETLOCALE_CTYPE>
                  var_name: HAVE_SETLOCALE_CTYPE
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'ifdef MKSH_CONSERVATIVE_FDS'>)}
            {<isset_MKSH_CONSERVATIVE_FDS>}
            {(SQ )}
            {(SQ <'if traditional/conservative fd use is requested'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' convfds'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_ifcpp>
          more_env: []
          words: [
            {<ac_ifcpp>}
            {(SQ <'ifdef MKSH_MIDNIGHTBSD01ASH_COMPAT'>)}
            {<isset_MKSH_MIDNIGHTBSD01ASH_COMPAT>}
            {(SQ )}
            {(SQ <'if the MidnightBSD 0.1 ash compatibility mode is requested'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' mnbsdash'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/time.h'>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<time.h>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [
            {<test>}
            {(DQ <11>)}
            {<Id.Lit_Equals '='>}
            {(DQ ($ Id.VSub_DollarName HAVE_SYS_TIME_H) ($ Id.VSub_DollarName HAVE_TIME_H))}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'HAVE_BOTH_TIME_H='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'HAVE_BOTH_TIME_H='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_BOTH_TIME_H='> name:HAVE_BOTH_TIME_H)
              op: assign_op.Equal
              rhs: {<0>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<both_time_h>}
        {(SQ )}
        {(SQ <'whether <sys/time.h> and <time.h> can both be included'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <sys/time.h>\n'>
                <'#include <time.h>\n'>
                <'#include <unistd.h>\n'>
                <'int main(void) { struct tm tm; return ((int)sizeof(tm) + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/bsdtypes.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/file.h'>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/mkdev.h'>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/mman.h'>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/param.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/resource.h'>} {<'sys/types.h'>} {<_time>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/select.h'>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<'sys/sysmacros.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<bstring.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<grp.h>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<io.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<libgen.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<libutil.h>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<paths.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<stdint.h>} {<stdarg.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<strings.h>} {<'sys/types.h'>} {<string.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<termios.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<ulimit.h>} {<'sys/types.h'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_header>
      more_env: []
      words: [{<ac_header>} {<values.h>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {
          (SQ <'#include <sys/types.h>\n'> <'#include <unistd.h>\n'> 
            <'/* check that off_t can represent 2^63-1 correctly, thx FSF */\n'> <'#define LARGE_OFF_T ((((off_t)1 << 31) << 31) - 1 + (((off_t)1 << 31) << 31))\n'> 
            <'int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 &&\n'> <'    LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];\n'> <'int main(void) { return (isatty(0)); }'>
          )
        }
      ]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<lft.c>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [{<ac_testn>} {<can_lfs>} {(SQ )} {(DQ <'for large file support'>)}]
      redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<lft.c>})]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'save_CPPFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'save_CPPFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_CPPFLAGS='> name:save_CPPFLAGS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName CPPFLAGS)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <add_cppflags>
      more_env: []
      words: [{<add_cppflags>} {<-D_FILE_OFFSET_BITS> <Id.Lit_Equals '='> <64>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [
        {<ac_testn>}
        {<can_lfs_sus>}
        {(SQ <'!'>)}
        {<can_lfs>}
        {<0>}
        {(DQ <'... with -D_FILE_OFFSET_BITS=64'>)}
      ]
      redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<lft.c>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<0>}
                        {<Id.Lit_Equals '='>}
                        {($ Id.VSub_DollarName HAVE_CAN_LFS_SUS)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CPPFLAGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName save_CPPFLAGS)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-D_LARGE_FILES> <Id.Lit_Equals '='> <1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<can_lfs_aix>}
                {(SQ <'!'>)}
                {<can_lfs>}
                {<0>}
                {(DQ <'... with -D_LARGE_FILES=1'>)}
              ]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<lft.c>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CAN_LFS_AIX)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'CPPFLAGS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'CPPFLAGS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPPFLAGS='> name:CPPFLAGS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName save_CPPFLAGS)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          spids: [10351 10362]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<lft.c>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rmf>
      more_env: []
      words: [{<rmf>} {<lft> <Id.Lit_Star '*'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<can_inttypes>}
        {(SQ <'!'>)}
        {<stdint_h>}
        {<1>}
        {(DQ <'for standard 32-bit integer types'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(int ac, char **av) { return ((uint32_t)(size_t)*av + (int32_t)ac); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<can_ucbints>}
        {(SQ <'!'>)}
        {<can_inttypes>}
        {<1>}
        {(DQ <'for UCB 32-bit integer types'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(int ac, char **av) { return ((u_int32_t)(size_t)*av + (int32_t)ac); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<can_int8type>}
        {(SQ <'!'>)}
        {<stdint_h>}
        {<1>}
        {(DQ <'for standard 8-bit integer type'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(int ac, char **av) { return ((uint8_t)(size_t)av[ac]); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<can_ucbint8>}
        {(SQ <'!'>)}
        {<can_int8type>}
        {<1>}
        {(DQ <'for UCB 8-bit integer type'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(int ac, char **av) { return ((u_int8_t)(size_t)av[ac]); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<rlim_t>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#if HAVE_BOTH_TIME_H\n'>
                <'#include <sys/time.h>\n'>
                <'#include <time.h>\n'>
                <'#elif HAVE_SYS_TIME_H\n'>
                <'#include <sys/time.h>\n'>
                <'#elif HAVE_TIME_H\n'>
                <'#include <time.h>\n'>
                <'#endif\n'>
                <'#if HAVE_SYS_RESOURCE_H\n'>
                <'#include <sys/resource.h>\n'>
                <'#endif\n'>
                <'#include <unistd.h>\n'>
                <'int main(void) { return (((int)(rlim_t)0) + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [{<ac_testn>} {<sig_t>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <signal.h>\n'>
                <'#include <stddef.h>\n'>
                <'volatile sig_t foo = (sig_t)0;\n'>
                <'int main(void) { return (foo == (sig_t)0); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [{<ac_testn>} {<sighandler_t>} {(SQ <'!'>)} {<sig_t>} {<0>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <signal.h>\n'>
                <'#include <stddef.h>\n'>
                <'volatile sighandler_t foo = (sighandler_t)0;\n'>
                <'int main(void) { return (foo == (sighandler_t)0); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<1>}
                        {<Id.Lit_Equals '='>}
                        {($ Id.VSub_DollarName HAVE_SIGHANDLER_T)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-Dsig_t> <Id.Lit_Equals '='> <sighandler_t>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_SIG_T='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_SIG_T='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_SIG_T='> name:HAVE_SIG_T)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [10603 10614]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [{<ac_testn>} {<__sighandler_t>} {(SQ <'!'>)} {<sig_t>} {<0>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <signal.h>\n'>
                <'#include <stddef.h>\n'>
                <'volatile __sighandler_t foo = (__sighandler_t)0;\n'>
                <'int main(void) { return (foo == (__sighandler_t)0); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<1>}
                        {<Id.Lit_Equals '='>}
                        {($ Id.VSub_DollarName HAVE___SIGHANDLER_T)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-Dsig_t> <Id.Lit_Equals '='> <__sighandler_t>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_SIG_T='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_SIG_T='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_SIG_T='> name:HAVE_SIG_T)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [10653 10664]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_SIG_T)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <add_cppflags>
          more_env: []
          words: [{<add_cppflags>} {<-Dsig_t> <Id.Lit_Equals '='> <nosig_t>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <ac_cppflags>
      more_env: []
      words: [{<ac_cppflags>} {<SIG_T>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<makefile>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>} {<nothing>} {<to>} {<check>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [10710 10721]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'HAVE_LINK_WORKS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'HAVE_LINK_WORKS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HAVE_LINK_WORKS='> name:HAVE_LINK_WORKS)
              op: assign_op.Equal
              rhs: {<x>}
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <ac_testinit>
          more_env: []
          words: [
            {<ac_testinit>}
            {<link_works>}
            {(SQ )}
            {(SQ <'checking if the final link command may succeed'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'fv='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'fv='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
              op: assign_op.Equal
              rhs: {<1>}
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <cat>
          more_env: []
          words: [{<cat>}]
          redirects: [
            (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<conftest.c>})
            (Redir
              op: <Id.Redir_DLessDash '<<-'>
              loc: (redir_loc.Fd fd:0)
              arg: 
                (redir_param.HereDoc
                  here_begin: {<EOF>}
                  here_end_tok: <Id.Undefined_Tok ''>
                  stdin_parts: [
                    <'#define EXTERN\n'>
                    <'#define MKSH_INCLUDES_ONLY\n'>
                    <'#include '>
                    <Id.Right_DoubleQuote '"'>
                    <sh.h>
                    <Id.Right_DoubleQuote '"'>
                    <'\n'>
                    <'__RCSID('>
                    <Id.Right_DoubleQuote '"'>
                    ($ Id.VSub_DollarName srcversion)
                    <Id.Right_DoubleQuote '"'>
                    <');\n'>
                    <'int main(void) { printf('>
                    <Id.Right_DoubleQuote '"'>
                    <'Hello, World!'>
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    )
                    <n>
                    <Id.Right_DoubleQuote '"'>
                    <'); return (isatty(0)); }\n'>
                  ]
                )
            )
          ]
          do_fork: T
        )
        (command.Case
          case_kw: <Id.KW_Case case>
          to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
          arms_start: <Id.KW_In in>
          arms: [
            (CaseArm
              left: <llvm>
              pattern: (pat.Words words:[{<llvm>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -emit-llvm -c conftest.c'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.Simple
                  blame_tok: <rmf>
                  more_env: []
                  words: [{<rmf>} {($ Id.VSub_DollarName tfn) <.s>}]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ <'llvm-link -o - conftest.o | opt '> ($ Id.VSub_DollarName optflags) 
                            <' | llc -o '> ($ Id.VSub_DollarName tfn) <.s>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName LDFLAGS) <' -o '> ($ Id.VSub_DollarName tcfn) <' '> ($ Id.VSub_DollarName tfn) <'.s '> ($ Id.VSub_DollarName LIBS) 
                            <' '> ($ Id.VSub_DollarName ccpr)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <dragonegg>
              pattern: (pat.Words words:[{<dragonegg>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -S -flto conftest.c'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [{<v>} {(DQ <'mv conftest.s conftest.ll'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [{<v>} {(DQ <'llvm-as conftest.ll'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                )
                (command.Simple
                  blame_tok: <rmf>
                  more_env: []
                  words: [{<rmf>} {($ Id.VSub_DollarName tfn) <.s>}]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ <'llvm-link -o - conftest.bc | opt '> ($ Id.VSub_DollarName optflags) 
                            <' | llc -o '> ($ Id.VSub_DollarName tfn) <.s>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName LDFLAGS) <' -o '> ($ Id.VSub_DollarName tcfn) <' '> ($ Id.VSub_DollarName tfn) <'.s '> ($ Id.VSub_DollarName LIBS) 
                            <' '> ($ Id.VSub_DollarName ccpr)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <combine>
              pattern: (pat.Words words:[{<combine>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.Simple
                  blame_tok: <v>
                  more_env: []
                  words: [
                    {<v>}
                    {
                      (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                        ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' -fwhole-program --combine '> ($ Id.VSub_DollarName NOWARN) 
                        <' -o '> ($ Id.VSub_DollarName tcfn) <' conftest.c '> ($ Id.VSub_DollarName LIBS) <' '> 
                        ($ Id.VSub_DollarName ccpr)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              right: <Id.Op_DSemi _>
            )
            (CaseArm
              left: <lto>
              pattern: (pat.Words words:[{<lto>} {<normal>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cm='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cm='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cm='> name:cm)
                      op: assign_op.Equal
                      rhs: {<normal>}
                    )
                  ]
                  redirects: []
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -c conftest.c'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName LDFLAGS) <' -o '> ($ Id.VSub_DollarName tcfn) <' conftest.o '> ($ Id.VSub_DollarName LIBS) <' '> 
                            ($ Id.VSub_DollarName ccpr)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              right: <Id.Op_DSemi _>
            )
          ]
          arms_end: <Id.KW_Esac esac>
          redirects: []
        )
        (command.AndOr
          children: [
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<-f>} {($ Id.VSub_DollarName tcfn)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'fv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'fv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
          ]
          ops: [<Id.Op_DPipe _>]
        )
        (command.Simple
          blame_tok: <ac_testdone>
          more_env: []
          words: [{<ac_testdone>}]
          redirects: []
          do_fork: T
        )
        (command.AndOr
          children: [
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {($ Id.VSub_DollarName fv)} {<Id.Lit_Equals '='>} {<1>}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          ops: [<Id.Op_DPipe _>]
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [
            {<test>}
            {<x> (DQ <NetBSD>)}
            {<Id.Lit_Equals '='>}
            {<x> (DQ ($ Id.VSub_DollarName TARGET_OS))}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.VSub_DollarName '$e'>
          more_env: []
          words: [{($ Id.VSub_DollarName e)} {<Ignore>} {<the>} {<compatibility>} {<warning.>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [{<ac_testn>} {<sys_errlist>} {(SQ )} {(DQ <'the sys_errlist[] array and sys_nerr'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'extern const int sys_nerr;\n'>
                <'extern const char * const sys_errlist[];\n'>
                <'extern int isatty(int);\n'>
                <'int main(void) { return (*sys_errlist[sys_nerr - 1] + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [
        {<ac_testn>}
        {<_sys_errlist>}
        {(SQ <'!'>)}
        {<sys_errlist>}
        {<0>}
        {(DQ <'the _sys_errlist[] array and _sys_nerr'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'extern const int _sys_nerr;\n'>
                <'extern const char * const _sys_errlist[];\n'>
                <'extern int isatty(int);\n'>
                <'int main(void) { return (*_sys_errlist[_sys_nerr - 1] + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<1>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName HAVE__SYS_ERRLIST))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-Dsys_nerr> <Id.Lit_Equals '='> <_sys_nerr>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-Dsys_errlist> <Id.Lit_Equals '='> <_sys_errlist>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HAVE_SYS_ERRLIST='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HAVE_SYS_ERRLIST='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HAVE_SYS_ERRLIST='>
                      name: HAVE_SYS_ERRLIST
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [11210 11223]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_cppflags>
      more_env: []
      words: [{<ac_cppflags>} {<SYS_ERRLIST>}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [what]
      iterable: (for_iter.Words words:[{<name>} {<list>}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'uwhat='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'uwhat='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uwhat='> name:uwhat)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <upper>
                            more_env: []
                            words: [{<upper>} {($ Id.VSub_DollarName what)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<sys_sig> ($ Id.VSub_DollarName what)}
                {(SQ )}
                {(DQ <'the sys_sig'> (${ Id.VSub_Name what) <'[] array'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'extern const char * const sys_sig'>
                        (${ Id.VSub_Name what)
                        <'[];\n'>
                        <'extern int isatty(int);\n'>
                        <'int main(void) { return (sys_sig'>
                        (${ Id.VSub_Name what)
                        <'[0][0] + isatty(0)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<_sys_sig> ($ Id.VSub_DollarName what)}
                {(SQ <'!'>)}
                {<sys_sig> ($ Id.VSub_DollarName what)}
                {<0>}
                {(DQ <'the _sys_sig'> (${ Id.VSub_Name what) <'[] array'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'extern const char * const _sys_sig'>
                        (${ Id.VSub_Name what)
                        <'[];\n'>
                        <'extern int isatty(int);\n'>
                        <'int main(void) { return (_sys_sig'>
                        (${ Id.VSub_Name what)
                        <'[0][0] + isatty(0)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'uwhat_v='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <HAVE__SYS_SIG> ($ Id.VSub_DollarName uwhat)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<1>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName uwhat_v))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [
                        {<add_cppflags>}
                        {<-Dsys_sig> ($ Id.VSub_DollarName what) <Id.Lit_Equals '='> <_sys_sig> 
                          ($ Id.VSub_DollarName what)
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<HAVE_SYS_SIG> ($ Id.VSub_DollarName uwhat) <Id.Lit_Equals '='> <1>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [11354 11367]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <ac_cppflags>
              more_env: []
              words: [{<ac_cppflags>} {<SYS_SIG> ($ Id.VSub_DollarName uwhat)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<flock>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <fcntl.h>\n'>
                <'#undef flock\n'>
                <'#if HAVE_SYS_FILE_H\n'>
                <'#include <sys/file.h>\n'>
                <'#endif\n'>
                <'int main(void) { return (flock(0, LOCK_EX | LOCK_UN)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<lock_fcntl>}
        {(SQ <'!'>)}
        {<flock>}
        {<1>}
        {(SQ <'whether we can lock files with fcntl'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <fcntl.h>\n'>
                <'#undef flock\n'>
                <'int main(void) {\n'>
                <'struct flock lks;\n'>
                <'lks.l_type = F_WRLCK | F_UNLCK;\n'>
                <'return (fcntl(0, F_SETLKW, &lks));\n'>
                <'}\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<getrusage>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(void) {\n'>
                <'struct rusage ru;\n'>
                <'return (getrusage(RUSAGE_SELF, &ru) +\n'>
                <'    getrusage(RUSAGE_CHILDREN, &ru));\n'>
                <'}\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<getsid>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <unistd.h>\n'>
                <'int main(void) { return ((int)getsid(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<gettimeofday>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(void) { struct timeval tv; return (gettimeofday(&tv, NULL)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<killpg>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <signal.h>\n'>
                <'int main(int ac, char *av[]) { return (av[0][killpg(123, ac)]); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<memmove>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <stddef.h>\n'>
                <'#include <string.h>\n'>
                <'#if HAVE_STRINGS_H\n'>
                <'#include <strings.h>\n'>
                <'#endif\n'>
                <'int main(int ac, char *av[]) {\n'>
                <'return (*(int *)(void *)memmove(av[0], av[1], (size_t)ac));\n'>
                <'}\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<mknod>} {(SQ )} {(SQ <'if to use mknod(), makedev() and friends'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(int ac, char *av[]) {\n'>
                <'dev_t dv;\n'>
                <'dv = makedev((unsigned int)ac, (unsigned int)av[0][0]);\n'>
                <'return (mknod(av[0], (mode_t)0, dv) ? (int)major(dv) :\n'>
                <'    (int)minor(dv));\n'>
                <'}\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<mmap>} {<lock_fcntl>} {<0>} {(SQ <'for mmap and munmap'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#if HAVE_SYS_FILE_H\n'>
                <'#include <sys/file.h>\n'>
                <'#endif\n'>
                <'#if HAVE_SYS_MMAN_H\n'>
                <'#include <sys/mman.h>\n'>
                <'#endif\n'>
                <'#include <stddef.h>\n'>
                <'#include <stdlib.h>\n'>
                <'int main(void) { return ((void *)mmap(NULL, (size_t)0,\n'>
                <'    PROT_READ, MAP_PRIVATE, 0, (off_t)0) == (void *)NULL ? 1 :\n'>
                <'    munmap(NULL, 0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<nice>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#include <unistd.h>\n'> <'int main(void) { return (nice(4)); }\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<revoke>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#if HAVE_LIBUTIL_H\n'>
                <'#include <libutil.h>\n'>
                <'#endif\n'>
                <'#include <unistd.h>\n'>
                <'int main(int ac, char *av[]) { return (ac + revoke(av[0])); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<setlocale_ctype>} {(SQ )} {(SQ <'setlocale(LC_CTYPE, "")'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <locale.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(void) { return ((int)(size_t)(void *)setlocale(LC_CTYPE, "")); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<langinfo_codeset>} {<setlocale_ctype>} {<0>} {(SQ <'nl_langinfo(CODESET)'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <langinfo.h>\n'>
                <'#include <stddef.h>\n'>
                <'int main(void) { return ((int)(size_t)(void *)nl_langinfo(CODESET)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<select>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#if HAVE_BOTH_TIME_H\n'>
                <'#include <sys/time.h>\n'>
                <'#include <time.h>\n'>
                <'#elif HAVE_SYS_TIME_H\n'>
                <'#include <sys/time.h>\n'>
                <'#elif HAVE_TIME_H\n'>
                <'#include <time.h>\n'>
                <'#endif\n'>
                <'#if HAVE_SYS_BSDTYPES_H\n'>
                <'#include <sys/bsdtypes.h>\n'>
                <'#endif\n'>
                <'#if HAVE_SYS_SELECT_H\n'>
                <'#include <sys/select.h>\n'>
                <'#endif\n'>
                <'#if HAVE_BSTRING_H\n'>
                <'#include <bstring.h>\n'>
                <'#endif\n'>
                <'#include <stddef.h>\n'>
                <'#include <stdlib.h>\n'>
                <'#include <string.h>\n'>
                <'#if HAVE_STRINGS_H\n'>
                <'#include <strings.h>\n'>
                <'#endif\n'>
                <'#include <unistd.h>\n'>
                <'int main(void) {\n'>
                <'struct timeval tv = { 1, 200000 };\n'>
                <'fd_set fds; FD_ZERO(&fds); FD_SET(0, &fds);\n'>
                <'return (select(FD_SETSIZE, &fds, NULL, NULL, &tv));\n'>
                <'}\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<setresugid>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#include <unistd.h>\n'>
                <'int main(void) { return (setresuid(0,0,0) + setresgid(0,0,0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<setgroups>} {<setresugid>} {<0>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <sys/types.h>\n'>
                <'#if HAVE_GRP_H\n'>
                <'#include <grp.h>\n'>
                <'#endif\n'>
                <'#include <unistd.h>\n'>
                <'int main(void) { gid_t gid = 0; return (setgroups(0, &gid)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<x> (DQ ($ Id.VSub_DollarName et))}
                        {<Id.Lit_Equals '='>}
                        {<x> (DQ <klibc>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [{<ac_testn>} {<__rt_sigsuspend>} {(SQ )} {(SQ <'whether klibc uses RT signals'>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#define MKSH_INCLUDES_ONLY\n'>
                        <'#include "sh.h"\n'>
                        <'extern int __rt_sigsuspend(const sigset_t *, size_t);\n'>
                        <'int main(void) { return (__rt_sigsuspend(NULL, 0)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<__sigsuspend_s>}
                {(SQ <'!'>)}
                {<__rt_sigsuspend>}
                {<1>}
                {(SQ <'whether sigsuspend is usable (1/2)'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#define MKSH_INCLUDES_ONLY\n'>
                        <'#include "sh.h"\n'>
                        <'extern int __sigsuspend_s(sigset_t);\n'>
                        <'int main(void) { return (__sigsuspend_s(0)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_testn>
              more_env: []
              words: [
                {<ac_testn>}
                {<__sigsuspend_xxs>}
                {(SQ <'!'>)}
                {<__sigsuspend_s>}
                {<1>}
                {(SQ <'whether sigsuspend is usable (2/2)'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#define MKSH_INCLUDES_ONLY\n'>
                        <'#include "sh.h"\n'>
                        <'extern int __sigsuspend_xxs(int, int, sigset_t);\n'>
                        <'int main(void) { return (__sigsuspend_xxs(0, 0, 0)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ <000>)}
                                {<Id.Lit_Equals '='>}
                                {
                                  (DQ ($ Id.VSub_DollarName HAVE___RT_SIGSUSPEND) 
                                    ($ Id.VSub_DollarName HAVE___SIGSUSPEND_S) ($ Id.VSub_DollarName HAVE___SIGSUSPEND_XXS)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <add_cppflags>
                      more_env: []
                      words: [{<add_cppflags>} {<-DMKSH_NO_SIGSUSPEND>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [11847 11864]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [11739 11756]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<strerror>} {(SQ <'!'>)} {<sys_errlist>} {<0>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'extern char *strerror(int);\n'>
                <'int main(int ac, char *av[]) { return (*strerror(*av[ac])); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<strsignal>} {(SQ <'!'>)} {<sys_siglist>} {<0>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <string.h>\n'>
                <'#include <signal.h>\n'>
                <'int main(void) { return (strsignal(1)[0]); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<strlcpy>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#include <string.h>\n'>
                <'int main(int ac, char *av[]) { return (strlcpy(*av, av[1],\n'>
                <'    (size_t)ac)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<flock_decl>} {<flock>} {<1>} {(SQ <'for declaration of flock()'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'#if HAVE_SYS_FILE_H\n'>
                <'#include <sys/file.h>\n'>
                <'#endif\n'>
                <'int main(void) { return ((flock)(0, 0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [{<ac_test>} {<revoke_decl>} {<revoke>} {<1>} {(SQ <'for declaration of revoke()'>)}]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(void) { return ((revoke)("")); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<sys_errlist_decl>}
        {<sys_errlist>}
        {<0>}
        {(DQ <'for declaration of sys_errlist[] and sys_nerr'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(void) { return (*sys_errlist[sys_nerr - 1] + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_test>
      more_env: []
      words: [
        {<ac_test>}
        {<sys_siglist_decl>}
        {<sys_siglist>}
        {<0>}
        {(SQ <'for declaration of sys_siglist[]'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'int main(void) { return (sys_siglist[0][0] + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'fd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'fd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fd='> name:fd)
          op: assign_op.Equal
          rhs: {(SQ <'if to use persistent history'>)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <ac_cache>
          more_env: []
          words: [{<ac_cache>} {<PERSISTENT_HISTORY>}]
          redirects: []
          do_fork: T
        )
        (command.Case
          case_kw: <Id.KW_Case case>
          to_match: 
            (case_arg.Word
              w: 
                {($ Id.VSub_DollarName HAVE_MMAP) ($ Id.VSub_DollarName HAVE_FLOCK) 
                  ($ Id.VSub_DollarName HAVE_LOCK_FCNTL)
                }
            )
          arms_start: <Id.KW_In in>
          arms: [
            (CaseArm
              left: <11>
              pattern: (pat.Words words:[{<11> <Id.Lit_Star '*'>} {<101>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fv='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fv='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                      op: assign_op.Equal
                      rhs: {<1>}
                    )
                  ]
                  redirects: []
                )
              ]
              right: <Id.Op_DSemi _>
            )
          ]
          arms_end: <Id.KW_Esac esac>
          redirects: []
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName fv)}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' no-histfile'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <ac_testdone>
      more_env: []
      words: [{<ac_testdone>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ac_cppflags>
      more_env: []
      words: [{<ac_cppflags>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'save_CFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'save_CFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_CFLAGS='> name:save_CFLAGS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName CFLAGS)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <ac_testn>
      more_env: []
      words: [
        {<ac_testn>}
        {<compile_time_asserts_> ($ Id.VSub_Dollar '$')}
        {(SQ )}
        {(SQ <'whether compile-time assertions pass'>)}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#define MKSH_INCLUDES_ONLY\n'>
                <'#include "sh.h"\n'>
                <'#ifndef CHAR_BIT\n'>
                <'#define CHAR_BIT 8\t/* defuse this test on really legacy systems */\n'>
                <'#endif\n'>
                <'struct ctasserts {\n'>
                <'#define cta(name, assertion) char name[(assertion) ? 1 : -1]\n'>
                <'/* this one should be defined by the standard */\n'>
                <'cta(char_is_1_char, (sizeof(char) == 1) && (sizeof(signed char) == 1) &&\n'>
                <'    (sizeof(unsigned char) == 1));\n'>
                <'cta(char_is_8_bits, ((CHAR_BIT) == 8) && ((int)(unsigned char)0xFF == 0xFF) &&\n'>
                <
'    ((int)(unsigned char)0x100 == 0) && ((int)(unsigned char)(int)-1 == 0xFF));\n'
                >
                <'/* the next assertion is probably not really needed */\n'>
                <'cta(short_is_2_char, sizeof(short) == 2);\n'>
                <
'cta(short_size_no_matter_of_signedness, sizeof(short) == sizeof(unsigned short));\n'
                >
                <'/* the next assertion is probably not really needed */\n'>
                <'cta(int_is_4_char, sizeof(int) == 4);\n'>
                <'cta(int_size_no_matter_of_signedness, sizeof(int) == sizeof(unsigned int));\n'>
                <'\n'>
                <'cta(long_ge_int, sizeof(long) >= sizeof(int));\n'>
                <'cta(long_size_no_matter_of_signedness, sizeof(long) == sizeof(unsigned long));\n'>
                <'\n'>
                <'#ifndef MKSH_LEGACY_MODE\n'>
                <'/* the next assertion is probably not really needed */\n'>
                <'cta(ari_is_4_char, sizeof(mksh_ari_t) == 4);\n'>
                <'/* but this is */\n'>
                <
'cta(ari_has_31_bit, 0 < (mksh_ari_t)(((((mksh_ari_t)1 << 15) << 15) - 1) * 2 + 1));\n'
                >
                <'/* the next assertion is probably not really needed */\n'>
                <'cta(uari_is_4_char, sizeof(mksh_uari_t) == 4);\n'>
                <'/* but the next three are; we REQUIRE unsigned integer wraparound */\n'>
                <
'cta(uari_has_31_bit, 0 < (mksh_uari_t)(((((mksh_uari_t)1 << 15) << 15) - 1) * 2 + 1));\n'
                >
                <
'cta(uari_has_32_bit, 0 < (mksh_uari_t)(((((mksh_uari_t)1 << 15) << 15) - 1) * 4 + 3));\n'
                >
                <'cta(uari_wrap_32_bit,\n'>
                <'    (mksh_uari_t)(((((mksh_uari_t)1 << 15) << 15) - 1) * 4 + 3) >\n'>
                <'    (mksh_uari_t)(((((mksh_uari_t)1 << 15) << 15) - 1) * 4 + 4));\n'>
                <'#define NUM 22\n'>
                <'#else\n'>
                <'#define NUM 16\n'>
                <'#endif\n'>
                <'/* these are always required */\n'>
                <'cta(ari_is_signed, (mksh_ari_t)-1 < (mksh_ari_t)0);\n'>
                <'cta(uari_is_unsigned, (mksh_uari_t)-1 > (mksh_uari_t)0);\n'>
                <
'/* we require these to have the precisely same size and assume 2s complement */\n'
                >
                <
'cta(ari_size_no_matter_of_signedness, sizeof(mksh_ari_t) == sizeof(mksh_uari_t));\n'
                >
                <'\n'>
                <'cta(sizet_size_no_matter_of_signedness, sizeof(ssize_t) == sizeof(size_t));\n'>
                <'cta(sizet_voidptr_same_size, sizeof(size_t) == sizeof(void *));\n'>
                <'cta(sizet_funcptr_same_size, sizeof(size_t) == sizeof(void (*)(void)));\n'>
                <'/* our formatting routines assume this */\n'>
                <'cta(ptr_fits_in_long, sizeof(size_t) <= sizeof(long));\n'>
                <'cta(ari_fits_in_long, sizeof(mksh_ari_t) <= sizeof(long));\n'>
                <'/* for struct alignment people */\n'>
                <'char padding[64 - NUM];\n'>
                <'};\n'>
                <'char ctasserts_dblcheck[sizeof(struct ctasserts) == 64 ? 1 : -1];\n'>
                <'int main(void) { return (sizeof(ctasserts_dblcheck) + isatty(0)); }\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName save_CFLAGS)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <eval>
          more_env: []
          words: [
            {<eval>}
            {<test>}
            {<1>}
            {<Id.Lit_Equals '='>}
            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
              <HAVE_COMPILE_TIME_ASSERTS_> ($ Id.VSub_Dollar '$')
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName legacy)} {<Id.Lit_Equals '='>} {<1>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ac_test>
              more_env: []
              words: [{<ac_test>} {<long_32bit>} {(SQ )} {(SQ <'whether long is 32 bit wide'>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#define MKSH_INCLUDES_ONLY\n'>
                        <'#include "sh.h"\n'>
                        <'#ifndef CHAR_BIT\n'>
                        <'#define CHAR_BIT 0\n'>
                        <'#endif\n'>
                        <'struct ctasserts {\n'>
                        <'#define cta(name, assertion) char name[(assertion) ? 1 : -1]\n'>
                        <'cta(char_is_8_bits, (CHAR_BIT) == 8);\n'>
                        <'cta(long_is_32_bits, sizeof(long) == 4);\n'>
                        <'};\n'>
                        <'int main(void) { return (sizeof(struct ctasserts)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <ac_test>
              more_env: []
              words: [
                {<ac_test>}
                {<long_64bit>}
                {(SQ <'!'>)}
                {<long_32bit>}
                {<0>}
                {(SQ <'whether long is 64 bit wide'>)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#define MKSH_INCLUDES_ONLY\n'>
                        <'#include "sh.h"\n'>
                        <'#ifndef CHAR_BIT\n'>
                        <'#define CHAR_BIT 0\n'>
                        <'#endif\n'>
                        <'struct ctasserts {\n'>
                        <'#define cta(name, assertion) char name[(assertion) ? 1 : -1]\n'>
                        <'cta(char_is_8_bits, (CHAR_BIT) == 8);\n'>
                        <'cta(long_is_64_bits, sizeof(long) == 8);\n'>
                        <'};\n'>
                        <'int main(void) { return (sizeof(struct ctasserts)); }\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName HAVE_LONG_32BIT) ($ Id.VSub_DollarName HAVE_LONG_64BIT)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <10>
                  pattern: (pat.Words words:[{<10>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'check_categories='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'check_categories='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'check_categories='>
                              name: check_categories
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' int:32'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <01>
                  pattern: (pat.Words words:[{<01>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'check_categories='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'check_categories='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'check_categories='>
                              name: check_categories
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' int:64'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'check_categories='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'check_categories='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'check_categories='>
                              name: check_categories
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName check_categories) <' int:u'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          spids: [12205 12216]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_SYS_SIGNAME)}]
          redirects: []
          do_fork: T
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <ac_testinit>
                          more_env: []
                          words: [
                            {<ac_testinit>}
                            {<cpp_dd>}
                            {(SQ )}
                            {(SQ <'checking if the C Preprocessor supports -dD'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#define foo bar'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<conftest.c>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <vv>
                  more_env: []
                  words: [
                    {<vv>}
                    {(SQ <']'>)}
                    {
                      (DQ ($ Id.VSub_DollarName CPP) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                        ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -dD conftest.c >x'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <grep>
                      more_env: []
                      words: [{<grep>} {(SQ <'#define foo bar'>)} {<x>}]
                      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>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fv='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fv='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fv='> name:fv)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
                (command.Simple
                  blame_tok: <rmf>
                  more_env: []
                  words: [{<rmf>} {<conftest.c>} {<x>} {<vv.out>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <ac_testdone>
                  more_env: []
                  words: [{<ac_testdone>}]
                  redirects: []
                  do_fork: T
                )
              ]
              spids: [12352 12368]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)} {<Id.Lit_TDot ...>} {<done.>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<wq>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <ed>
              more_env: []
              words: [{<ed>} {<x>}]
              redirects: [
                (Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})
                (Redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <grep>
              more_env: []
              words: [{<grep>} {<3>}]
              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>})
              ]
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _>]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'check_categories='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'check_categories='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'check_categories='> name:check_categories)
              op: assign_op.Equal
              rhs: 
                {(DQ ($ Id.VSub_DollarName check_categories) <' '> ($ Id.VSub_DollarName oldish_ed))}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <rmf>
      more_env: []
      words: [{<rmf>} {<x>} {<vv.out>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<0>}
                        {<Id.Lit_Equals '='>}
                        {($ Id.VSub_DollarName HAVE_SYS_SIGNAME)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<1>}
                                {<Id.Lit_Equals '='>}
                                {($ Id.VSub_DollarName HAVE_CPP_DD)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$e'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName e)}
                        {<Generating>}
                        {<list>}
                        {<of>}
                        {<signal>}
                        {<names...>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [12516 12527]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$e'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName e)}
                    {<No>}
                    {<list>}
                    {<of>}
                    {<signal>}
                    {<names>}
                    {<available>}
                    {<via>}
                    {<cpp.>}
                    {<Falling>}
                    {<back...>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigseenone='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigseenone='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigseenone='> name:sigseenone)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigseentwo='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigseentwo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigseentwo='> name:sigseentwo)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SQ <'#include <signal.h>\n'> <'#if defined(NSIG_MAX)\n'> 
                    <'#define cfg_NSIG NSIG_MAX\n'> <'#elif defined(NSIG)\n'> <'#define cfg_NSIG NSIG\n'> <'#elif defined(_NSIG)\n'> 
                    <'#define cfg_NSIG _NSIG\n'> <'#elif defined(SIGMAX)\n'> <'#define cfg_NSIG (SIGMAX + 1)\n'> <'#elif defined(_SIGMAX)\n'> 
                    <'#define cfg_NSIG (_SIGMAX + 1)\n'> <'#else\n'> <'/*XXX better error out, see sh.h */\n'> <'#define cfg_NSIG 64\n'> <'#endif\n'> <'int\n'> 
                    <'mksh_cfg= cfg_NSIG\n'> <';'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<conftest.c>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NSIG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NSIG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NSIG='> name:NSIG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <vq>
                                more_env: []
                                words: [
                                  {<vq>}
                                  {
                                    (DQ ($ Id.VSub_DollarName CPP) <' '> ($ Id.VSub_DollarName CFLAGS) 
                                      <' '> ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' conftest.c'>
                                    )
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {<-v>} {(SQ <'^#'>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [
                                  {<sed>}
                                  {
                                    (SQ <'/mksh_cfg.*= *$/{\n'> <'\t\tN\n'> <'\t\ts/\\n/ /\n'> <'\t\t}'>)
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(SQ <'^ *mksh_cfg *='>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [
                                  {<sed>}
                                  {
                                    (SQ 
                                      <
's/^ *mksh_cfg *=[\t ]*\\([()0-9x+-][()0-9x+\t -]*\\).*$/\\1/'
                                      >
                                    )
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName NSIG)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <mksh_cfg> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$e'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName e)}
                            {(DQ <'Error: NSIG=\''> ($ Id.VSub_DollarName NSIG) <'\''>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'NSIG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'NSIG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NSIG='> name:NSIG)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\)'>
                            ch: ')'
                          ) <Id.Lit_Other '+'> <-> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'NSIG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'NSIG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NSIG='> name:NSIG)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.Left_DoubleQuote '"'>
                                    more_env: []
                                    words: [
                                      {(DQ ($ Id.VSub_DollarName AWK))}
                                      {(DQ <'BEGIN { print '> ($ Id.VSub_DollarName NSIG) <' }'>)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Less '<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'printf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'printf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'printf='> name:printf)
                  op: assign_op.Equal
                  rhs: {<printf>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {<hallo>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  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>}
                    )
                  ]
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'printf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'printf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'printf='> name:printf)
                      op: assign_op.Equal
                      rhs: {<echo>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName printf)} {<Id.Lit_Equals '='>} {<echo>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_Backtick '`'>
                          child: 
                            (command.Simple
                              blame_tok: <printf>
                              more_env: []
                              words: [{<printf>} {<Id.Lit_Other '%'> <d>} {<42>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Backtick_Right '`'>
                        )
                      )
                    }
                    {<Id.Lit_Equals '='>}
                    {<42>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'printf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'printf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'printf='> name:printf)
                      op: assign_op.Equal
                      rhs: {<echo>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName printf)} {<Id.Lit_Equals '='>} {<echo>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'NSIG='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'NSIG='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NSIG='> name:NSIG)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <printf>
                                more_env: []
                                words: [
                                  {<printf>}
                                  {<Id.Lit_Other '%'> <d>}
                                  {(DQ ($ Id.VSub_DollarName NSIG))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$printf'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName printf)}
                {(DQ <'NSIG='> ($ Id.VSub_DollarName NSIG) <' ... '>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                  op: assign_op.Equal
                  rhs: {(DQ <'ABRT FPE ILL INT SEGV TERM ALRM BUS CHLD CONT HUP KILL PIPE QUIT'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName sigs) 
                        <' STOP TSTP TTIN TTOU USR1 USR2 POLL PROF SYS TRAP URG VTALRM'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName sigs) 
                        <' XCPU XFSZ INFO WINCH EMT IO DIL LOST PWR SAK CLD IOT STKFLT'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sigs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sigs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName sigs) 
                        <' ABND DCE DUMP IOERR TRACE DANGER THCONT THSTOP RESV UNUSED'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_CPP_DD)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName NSIG)} {<-gt>} {<1>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'sigs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'sigs='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                      op: assign_op.Equal
                      rhs: 
                        {(DQ ($ Id.VSub_DollarName sigs) <' '>) 
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <vq>
                                    more_env: []
                                    words: [
                                      {<vq>}
                                      {
                                        (DQ ($ Id.VSub_DollarName CPP) <' '> 
                                          ($ Id.VSub_DollarName CFLAGS) <' '> ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' -dD conftest.c'>
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <grep>
                                    more_env: []
                                    words: [{<grep>} {(SQ <'[\t ]SIG[A-Z0-9][A-Z0-9]*[\t ]'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {(SQ <'s/^.*[\t ]SIG\\([A-Z0-9][A-Z0-9]*\\)[\t ].*$/\\1/'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sort>
                                    more_env: []
                                    words: [{<sort>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName NSIG)} {<-gt>} {<1>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'sigs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'sigs='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sigs='> name:sigs)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Pipeline
              children: [
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [name]
                  iterable: (for_iter.Words words:[{($ Id.VSub_DollarName sigs)}])
                  semi_tok: <Id.Op_Semi _>
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName sigseenone)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName name) 
                                      <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'sigseenone='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'sigseenone='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'sigseenone='>
                                  name: sigseenone
                                )
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName sigseenone) ($ Id.VSub_DollarName name) 
                                  <Id.Lit_Colon ':'>
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(SQ <'#include <signal.h>'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<conftest.c>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<int>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<conftest.c>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {<Id.Lit_VarLike 'mksh_cfg='>}
                            {<SIG> ($ Id.VSub_DollarName name)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<conftest.c>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(SQ <';'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<conftest.c>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <vq>
                              more_env: []
                              words: [
                                {<vq>}
                                {
                                  (DQ ($ Id.VSub_DollarName CPP) <' '> ($ Id.VSub_DollarName CFLAGS) 
                                    <' '> ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName NOWARN) <' conftest.c'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              words: [{<grep>} {<-v>} {(SQ <'^#'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sed>
                              more_env: []
                              words: [
                                {<sed>}
                                {
                                  (SQ <'/mksh_cfg.*= *$/{\n'> <'\t\t\tN\n'> <'\t\t\ts/\\n/ /\n'> 
                                    <'\t\t\t}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              words: [{<grep>} {(SQ <'^ *mksh_cfg *='>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sed>
                              more_env: []
                              words: [
                                {<sed>}
                                {(SQ <'s/^ *mksh_cfg *=[\t ]*\\([0-9][0-9x]*\\).*$/:\\1 '>) 
                                  ($ Id.VSub_DollarName name) <'/'>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-n>} {(SQ <'/^:[^ ]/s/^://p'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<nr>} {<name>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {($ Id.VSub_DollarName printf)}
                                {<Id.Lit_Equals '='>}
                                {<echo>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'nr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'nr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nr='> name:nr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <printf>
                                            more_env: []
                                            words: [
                                              {<printf>}
                                              {<Id.Lit_Other '%'> <d>}
                                              {(DQ ($ Id.VSub_DollarName nr))}
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {($ Id.VSub_DollarName nr)} {<-gt>} {<0>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {($ Id.VSub_DollarName nr)}
                                {<-lt>}
                                {($ Id.VSub_DollarName NSIG)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName sigseentwo)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName nr) 
                                      <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ <'\t\t{ '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', '> 
                                        ($ Id.VSub_DollarName nr) <' },'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'sigseentwo='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'sigseentwo='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'sigseentwo='>
                                          name: sigseentwo
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName sigseentwo) ($ Id.VSub_DollarName nr) 
                                          <Id.Lit_Colon ':'>
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$printf'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName printf)}
                                    {
                                      (DQ ($ Id.VSub_DollarName name) <'='> ($ Id.VSub_DollarName nr) 
                                        <' '>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: [
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<signames.inc>}
                    )
                  ]
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [{<rmf>} {<conftest.c>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)} {<done.>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [12502 12513]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <addsrcs>
      more_env: []
      words: [{<addsrcs>} {(SQ <'!'>)} {<HAVE_STRLCPY>} {<strlcpy.c>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <addsrcs>
      more_env: []
      words: [{<addsrcs>} {<USE_PRINTF_BUILTIN>} {<printf.c>}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName USE_PRINTF_BUILTIN))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <add_cppflags>
          more_env: []
          words: [{<add_cppflags>} {<-DMKSH_PRINTF_BUILTIN>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName HAVE_CAN_VERB))}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'CFLAGS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'CFLAGS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CFLAGS='> name:CFLAGS)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName CFLAGS) <' -verbose'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <add_cppflags>
      more_env: []
      words: [{<add_cppflags>} {<-DMKSH_BUILD_R> <Id.Lit_Equals '='> <523>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {($ Id.VSub_DollarName bi) ($ Id.VSub_DollarName me) <Id.Lit_Colon ':'>}
        {<Finished>}
        {<configuration>}
        {<testing> <Id.Lit_Comma ','>}
        {<now>}
        {<producing>}
        {<output.> ($ Id.VSub_DollarName ao)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'files='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'files='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'objs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'objs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sp='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sp='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sp='> name:sp)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName tcfn)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <a.exe>
          pattern: (pat.Words words:[{<a.exe>} {<conftest.exe>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'mkshexe='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'mkshexe='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mkshexe='> name:mkshexe)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName tfn) <.exe>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <add_cppflags>
              more_env: []
              words: [{<add_cppflags>} {<-DMKSH_EXE_EXT>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'mkshexe='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'mkshexe='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mkshexe='> name:mkshexe)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName tfn)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName curdir)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'mkshshebang='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'mkshshebang='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mkshshebang='> name:mkshshebang)
                  op: assign_op.Equal
                  rhs: {(DQ <'#!./'> ($ Id.VSub_DollarName mkshexe))}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'mkshshebang='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'mkshshebang='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mkshshebang='> name:mkshshebang)
                  op: assign_op.Equal
                  rhs: {(DQ <'#!'> ($ Id.VSub_DollarName curdir) <'/'> ($ Id.VSub_DollarName mkshexe))}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<test.sh>})
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                ($ Id.VSub_DollarName mkshshebang)
                <'\n'>
                <'LC_ALL=C PATH=\''>
                ($ Id.VSub_DollarName PATH)
                <'\'; export LC_ALL PATH\n'>
                <'test -n '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <KSH_VERSION>
                <Id.Right_DoubleQuote '"'>
                <' || exit 1\n'>
                <'set -A check_categories -- '>
                ($ Id.VSub_DollarName check_categories)
                <'\n'>
                <'pflag=\''>
                ($ Id.VSub_DollarName curdir)
                <'/'>
                ($ Id.VSub_DollarName mkshexe)
                <'\'\n'>
                <'sflag=\''>
                ($ Id.VSub_DollarName srcdir)
                <'/check.t\'\n'>
                <'usee=0 Pflag=0 Sflag=0 uset=0 vflag=1 xflag=0\n'>
                <'while getopts '>
                <Id.Right_DoubleQuote '"'>
                <'C:e:fPp:QSs:t:v'>
                <Id.Right_DoubleQuote '"'>
                <' ch; do case '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'ch {\n'>
                <'(C)\tcheck_categories['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#check_categories[*]}]='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'OPTARG ;;\n'>
                <'(e)\tusee=1; eflag='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'OPTARG ;;\n'>
                <'(f)\tcheck_categories['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#check_categories[*]}]=fastbox ;;\n'>
                <'(P)\tPflag=1 ;;\n'>
                <'(+P)\tPflag=0 ;;\n'>
                <'(p)\tpflag='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'OPTARG ;;\n'>
                <'(Q)\tvflag=0 ;;\n'>
                <'(+Q)\tvflag=1 ;;\n'>
                <'(S)\tSflag=1 ;;\n'>
                <'(+S)\tSflag=0 ;;\n'>
                <'(s)\tsflag='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'OPTARG ;;\n'>
                <'(t)\tuset=1; tflag='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'OPTARG ;;\n'>
                <'(v)\tvflag=1 ;;\n'>
                <'(+v)\tvflag=0 ;;\n'>
                <'(*)\txflag=1 ;;\n'>
                <'}\n'>
                <'done\n'>
                <'shift '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'((OPTIND - 1))\n'>
                <'set -A args -- \''>
                ($ Id.VSub_DollarName srcdir)
                <'/check.pl\' -p '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <pflag>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'x=\n'>
                <'for y in '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{check_categories[@]}'>
                <Id.Right_DoubleQuote '"'>
                <'; do\n'>
                <'x='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'x,'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'y\n'>
                <'done\n'>
                <'if [[ -n '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'x ]]; then\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-C\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{x#,}\n'>
                <'fi\n'>
                <'if (( usee )); then\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-e\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'eflag\n'>
                <'fi\n'>
                <'(( Pflag )) && args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-P\n'>
                <'if (( uset )); then\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-t\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'tflag\n'>
                <'fi\n'>
                <'(( vflag )) && args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-v\n'>
                <'(( xflag )) && args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-x\t# force usage by synerr\n'>
                <'if [[ -n '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'TMPDIR && -d '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'TMPDIR/. ]]; then\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]=-T\n'>
                <'args['>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{#args[*]}]='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'TMPDIR\n'>
                <'fi\n'>
                <'print Testing mksh for conformance:\n'>
                <'grep -F -e Mir\'\'OS: -e MIRBSD '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <sflag>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'print '>
                <Id.Right_DoubleQuote '"'>
                <'This shell is actually:'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\')
                <n>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\')
                <t>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <KSH_VERSION>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'print \'test.sh built for mksh '>
                ($ Id.VSub_DollarName dstversion)
                <'\'\n'>
                <'cstr=\''>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'os = defined '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'^O ? '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'^O : '>
                <Id.Right_DoubleQuote '"'>
                <unknown>
                <Id.Right_DoubleQuote '"'>
                <';\'\n'>
                <'cstr='>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <cstr>
                <Id.Right_DoubleQuote '"'>
                <'\'print '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'os . '>
                <Id.Right_DoubleQuote '"'>
                <', Perl version '>
                <Id.Right_DoubleQuote '"'>
                <' . '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'];\'\n'>
                <'for perli in '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'PERL perl5 perl no; do\n'>
                <'if [[ '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli = no ]]; then\n'>
                <'print Cannot find a working Perl interpreter, aborting.\n'>
                <'exit 1\n'>
                <'fi\n'>
                <'print '>
                <Id.Right_DoubleQuote '"'>
                <'Trying Perl interpreter \''>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli\'...'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'perlos='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'('>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli -e '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <cstr>
                <Id.Right_DoubleQuote '"'>
                <')\n'>
                <'rv='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'print '>
                <Id.Right_DoubleQuote '"'>
                <'Errorlevel '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'rv, running on \''>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perlos\''>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'if (( rv )); then\n'>
                <'print '>
                <Id.Right_DoubleQuote '"'>
                <'=> not using'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'continue\n'>
                <'fi\n'>
                <'if [[ -n '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perlos ]]; then\n'>
                <'print '>
                <Id.Right_DoubleQuote '"'>
                <'=> using it'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'break\n'>
                <'fi\n'>
                <'done\n'>
                <'(( Sflag )) || echo + '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{args[@]}'>
                <Id.Right_DoubleQuote '"'>
                <' -s '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <sflag>
                <Id.Right_DoubleQuote '"'>
                <' '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'@'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'(( Sflag )) || exec '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{args[@]}'>
                <Id.Right_DoubleQuote '"'>
                <' -s '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <sflag>
                <Id.Right_DoubleQuote '"'>
                <' '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'@'>
                <Id.Right_DoubleQuote '"'>
                ($ Id.VSub_DollarName tsts)
                <'\n'>
                <'# use of the -S option for check.t split into multiple chunks\n'>
                <'rv=0\n'>
                <'for s in '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <sflag>
                <Id.Right_DoubleQuote '"'>
                <'.*; do\n'>
                <'echo + '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{args[@]}'>
                <Id.Right_DoubleQuote '"'>
                <' -s '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <s>
                <Id.Right_DoubleQuote '"'>
                <' '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'@'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'perli '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'{args[@]}'>
                <Id.Right_DoubleQuote '"'>
                <' -s '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <s>
                <Id.Right_DoubleQuote '"'>
                <' '>
                <Id.Right_DoubleQuote '"'>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'@'>
                <Id.Right_DoubleQuote '"'>
                ($ Id.VSub_DollarName tsts)
                <'\n'>
                <'rc='>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'(( rv = rv ? rv : rc ))\n'>
                <'done\n'>
                <'exit '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'rv\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<755>} {<test.sh>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <dragonegg>
          pattern: (pat.Words words:[{<dragonegg>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'emitbc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'emitbc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'emitbc='> name:emitbc)
                  op: assign_op.Equal
                  rhs: {(DQ <'-S -flto'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <llvm>
          pattern: (pat.Words words:[{<llvm>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'emitbc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'emitbc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'emitbc='> name:emitbc)
                  op: assign_op.Equal
                  rhs: {(DQ <'-emit-llvm -c'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'emitbc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'emitbc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'emitbc='> name:emitbc)
                  op: assign_op.Equal
                  rhs: {<-c>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <': # work around NeXTstep bug'>)}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <cd>
      more_env: []
      words: [{<cd>} {(DQ ($ Id.VSub_DollarName srcdir))}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'optfiles='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'optfiles='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optfiles='> name:optfiles)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <echo>
                    more_env: []
                    words: [{<echo>} {<Id.Lit_Star '*'> <.opt>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <cd>
      more_env: []
      words: [{<cd>} {(DQ ($ Id.VSub_DollarName curdir))}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [file]
      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName optfiles)}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'echo + Running genopt on \''> ($ Id.VSub_DollarName file) <'\'...'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'(srcfile=\''> ($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file) 
                    <'\'; BUILDSH_RUN_GENOPT=1; . \''> ($ Id.VSub_DollarName srcdir) <'/Build.sh\')'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<set>} {<-x>}]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [file]
      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName SRCS)}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'op='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'op='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {<x> (DQ ($ Id.VSub_DollarName file))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(SQ <'s/^x\\(.*\\)\\.c$/\\1./'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName file)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'file='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'file='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName files) ($ Id.VSub_DollarName sp) 
                        ($ Id.VSub_DollarName file)
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sp='> name:sp)
                  op: assign_op.Equal
                  rhs: {(SQ <' '>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName emitbc) <' '> ($ Id.VSub_DollarName file) <' || exit 1'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {($ Id.VSub_DollarName cm)}
                                {<Id.Lit_Equals '='>}
                                {<dragonegg>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'mv '> (${ Id.VSub_Name op) <'s '> (${ Id.VSub_Name op) <ll>)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<Rebuild.sh>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'llvm-as '> (${ Id.VSub_Name op) <'ll || exit 1'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<Rebuild.sh>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'objs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'objs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName objs) ($ Id.VSub_DollarName sp) 
                                (${ Id.VSub_Name op) <bc>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13988 13999]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'objs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'objs='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName objs) ($ Id.VSub_DollarName sp) 
                            (${ Id.VSub_Name op) <o>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <dragonegg>
          pattern: (pat.Words words:[{<dragonegg>} {<llvm>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'rm -f '> ($ Id.VSub_DollarName tfn) <.s>)}]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'llvm-link -o - '> ($ Id.VSub_DollarName objs) <' | opt '> 
                    ($ Id.VSub_DollarName optflags) <' | llc -o '> ($ Id.VSub_DollarName tfn) <.s>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lobjs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lobjs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lobjs='> name:lobjs)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName tfn) <.s>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lobjs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lobjs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lobjs='> name:lobjs)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName objs)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<Id.Lit_VarLike 'tcfn='> ($ Id.VSub_DollarName mkshexe)}]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {
          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
            ($ Id.VSub_DollarName LDFLAGS) <' -o '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'tcfn '> 
            ($ Id.VSub_DollarName lobjs) <' '> ($ Id.VSub_DollarName LIBS) <' '> ($ Id.VSub_DollarName ccpr)
          )
        }
      ]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {
          (DQ <'test -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
            <'tcfn || exit 1; '> ($ Id.VSub_DollarName SIZE) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
            <tcfn>
          )
        }
      ]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<Rebuild.sh>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<makefile>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'extras='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'extras='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extras='> name:extras)
                  op: assign_op.Equal
                  rhs: {(SQ <'emacsfn.h rlimits.opt sh.h sh_flags.opt var_spec.h'>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName HAVE_SYS_SIGNAME)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'extras='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'extras='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extras='> name:extras)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName extras) <' signames.inc'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'gens='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'gens='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gens='> name:gens)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'genq='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'genq='> name:genq)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName optfiles)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'genf='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'genf='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'genf='> name:genf)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <basename>
                                        more_env: []
                                        words: [{<basename>} {(DQ ($ Id.VSub_DollarName file))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/.opt$/.gen/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'gens='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'gens='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gens='> name:gens)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName gens) <' '> ($ Id.VSub_DollarName genf))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'genq='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'genq='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'genq='> name:genq)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName genq) ($ Id.VSub_DollarName nl) 
                                ($ Id.VSub_DollarName genf) <': '> ($ Id.VSub_DollarName srcdir) <'/Build.sh '> ($ Id.VSub_DollarName srcdir) <'/'> 
                                ($ Id.VSub_DollarName file) <'\n'> <'\t\t\tsrcfile='> ($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file) 
                                <'; BUILDSH_RUN_GENOPT=1; . '> ($ Id.VSub_DollarName srcdir) <'/Build.sh'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<Makefrag.inc>}
                )
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'# Makefile fragment for building mksh '>
                        ($ Id.VSub_DollarName dstversion)
                        <'\n'>
                        <'\n'>
                        <'PROG=\t\t'>
                        ($ Id.VSub_DollarName mkshexe)
                        <'\n'>
                        <'MAN=\t\tmksh.1\n'>
                        <'SRCS=\t\t'>
                        ($ Id.VSub_DollarName SRCS)
                        <'\n'>
                        <'SRCS_FP=\t'>
                        ($ Id.VSub_DollarName files)
                        <'\n'>
                        <'OBJS_BP=\t'>
                        ($ Id.VSub_DollarName objs)
                        <'\n'>
                        <'INDSRCS=\t'>
                        ($ Id.VSub_DollarName extras)
                        <'\n'>
                        <'NONSRCS_INST=\tdot.mkshrc '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(MAN)\n'>
                        <'NONSRCS_NOINST=\tBuild.sh Makefile Rebuild.sh check.pl check.t test.sh\n'>
                        <'CC=\t\t'>
                        ($ Id.VSub_DollarName CC)
                        <'\n'>
                        <'CFLAGS=\t\t'>
                        ($ Id.VSub_DollarName CFLAGS)
                        <'\n'>
                        <'CPPFLAGS=\t'>
                        ($ Id.VSub_DollarName CPPFLAGS)
                        <'\n'>
                        <'LDFLAGS=\t'>
                        ($ Id.VSub_DollarName LDFLAGS)
                        <'\n'>
                        <'LIBS=\t\t'>
                        ($ Id.VSub_DollarName LIBS)
                        <'\n'>
                        <'\n'>
                        <'.depend '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(OBJS_BP):'>
                        ($ Id.VSub_DollarName gens)
                        ($ Id.VSub_DollarName genq)
                        <'\n'>
                        <'\n'>
                        <'# not BSD make only:\n'>
                        <'#VPATH=\t\t'>
                        ($ Id.VSub_DollarName srcdir)
                        <'\n'>
                        <'#all: '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(PROG)\n'>
                        <'#'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(PROG): '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(OBJS_BP)\n'>
                        <'#\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(CC) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(CFLAGS) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(LDFLAGS) -o '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'@ '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(OBJS_BP) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(LIBS)\n'>
                        <'#'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(OBJS_BP): '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(SRCS_FP) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(NONSRCS)\n'>
                        <'#.c.o:\n'>
                        <'#\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(CC) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(CFLAGS) '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(CPPFLAGS) -c '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'<\n'>
                        <'\n'>
                        <'# for all make variants:\n'>
                        <'#REGRESS_FLAGS=\t-f\n'>
                        <'#regress:\n'>
                        <'#\t./test.sh '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                        <'(REGRESS_FLAGS)\n'>
                        <'check_categories='>
                        ($ Id.VSub_DollarName check_categories)
                        <'\n'>
                        <'\n'>
                        <'# for BSD make only:\n'>
                        <'#.PATH: '>
                        ($ Id.VSub_DollarName srcdir)
                        <'\n'>
                        <'#.include <bsd.prog.mk>\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)} {<Generated>} {<Makefrag.inc>} {<successfully.>}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [14166 14177]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [file]
      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName optfiles)}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {(DQ <'+ Running genopt on \''> ($ Id.VSub_DollarName file) <'\'...'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <do_genopt>
                  more_env: []
                  words: [
                    {<do_genopt>}
                    {(DQ ($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<combine>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'objs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'objs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                  op: assign_op.Equal
                  rhs: {(DQ <'-o '> ($ Id.VSub_DollarName mkshexe))}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName SRCS)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName file)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'file='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'file='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'objs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'objs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName objs) <' '> ($ Id.VSub_DollarName file))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'emitbc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'emitbc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'emitbc='> name:emitbc)
                  op: assign_op.Equal
                  rhs: {(DQ <'-fwhole-program --combine'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <v>
              more_env: []
              words: [
                {<v>}
                {
                  (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                    ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName LDFLAGS) <' '> ($ Id.VSub_DollarName emitbc) <' '> ($ Id.VSub_DollarName objs) 
                    <' '> ($ Id.VSub_DollarName LIBS) <' '> ($ Id.VSub_DollarName ccpr)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [14444 14455]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName pm)}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName SRCS)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName file)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'file='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'file='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <v>
                          more_env: []
                          words: [
                            {<v>}
                            {
                              (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                                ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName emitbc) <' '> ($ Id.VSub_DollarName file)
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Amp _>
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <wait>
              more_env: []
              words: [{<wait>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [14528 14539]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ForEach
          keyword: <Id.KW_For for>
          iter_names: [file]
          iterable: (for_iter.Words words:[{($ Id.VSub_DollarName SRCS)}])
          semi_tok: <Id.Op_Semi _>
          body: 
            (command.DoGroup
              left: <Id.KW_Do do>
              children: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<dragonegg>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'op='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'op='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {<x> (DQ ($ Id.VSub_DollarName file))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/^x\\(.*\\)\\.c$/\\1./'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-f>} {($ Id.VSub_DollarName file)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName srcdir) <'/'> ($ Id.VSub_DollarName file)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <v>
                      more_env: []
                      words: [
                        {<v>}
                        {
                          (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                            ($ Id.VSub_DollarName CPPFLAGS) <' '> ($ Id.VSub_DollarName emitbc) <' '> ($ Id.VSub_DollarName file)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {($ Id.VSub_DollarName cm)}
                                    {<Id.Lit_Equals '='>}
                                    {<dragonegg>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <v>
                          more_env: []
                          words: [
                            {<v>}
                            {(DQ <'mv '> (${ Id.VSub_Name op) <'s '> (${ Id.VSub_Name op) <ll>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <v>
                              more_env: []
                              words: [{<v>} {(DQ <'llvm-as '> (${ Id.VSub_Name op) <ll>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                      spids: [14681 14692]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
              ]
              right: <Id.KW_Done done>
            )
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cm)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <dragonegg>
          pattern: (pat.Words words:[{<dragonegg>} {<llvm>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <rmf>
              more_env: []
              words: [{<rmf>} {($ Id.VSub_DollarName tfn) <.s>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <v>
              more_env: []
              words: [
                {<v>}
                {
                  (DQ <'llvm-link -o - '> ($ Id.VSub_DollarName objs) <' | opt '> 
                    ($ Id.VSub_DollarName optflags) <' | llc -o '> ($ Id.VSub_DollarName tfn) <.s>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tcfn='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tcfn='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tcfn='> name:tcfn)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName mkshexe)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {($ Id.VSub_DollarName cm)} {<Id.Lit_Equals '='>} {<combine>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <v>
          more_env: []
          words: [
            {<v>}
            {
              (DQ ($ Id.VSub_DollarName CC) <' '> ($ Id.VSub_DollarName CFLAGS) <' '> 
                ($ Id.VSub_DollarName LDFLAGS) <' -o '> ($ Id.VSub_DollarName tcfn) <' '> ($ Id.VSub_DollarName lobjs) <' '> ($ Id.VSub_DollarName LIBS) 
                <' '> ($ Id.VSub_DollarName ccpr)
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-f>} {($ Id.VSub_DollarName tcfn)}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName r)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <v>
          more_env: []
          words: [
            {<v>}
            {
              (DQ ($ Id.VSub_DollarName NROFF) <' -mdoc <\''> ($ Id.VSub_DollarName srcdir) 
                <'/mksh.1\' >'> ($ Id.VSub_DollarName tfn) <.cat1>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <rmf>
          more_env: []
          words: [{<rmf>} {($ Id.VSub_DollarName tfn) <.cat1>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<0>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName eq)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <v>
          more_env: []
          words: [{<v>} {($ Id.VSub_DollarName SIZE)} {($ Id.VSub_DollarName tcfn)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'i='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'i='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
          op: assign_op.Equal
          rhs: {<install>}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-f>} {<'/usr/ucb/'> ($ Id.VSub_DollarName i)}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'i='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'i='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
              op: assign_op.Equal
              rhs: {<'/usr/ucb/'> ($ Id.VSub_DollarName i)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<1>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName eq)}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'e='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'e='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
              op: assign_op.Equal
              rhs: {<Id.Lit_Colon ':'>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)} {<Installing>} {<the>} {<shell> <Id.Lit_Colon ':'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {
          (DQ <'# '> ($ Id.VSub_DollarName i) <' -c -s -o root -g bin -m 555 '> 
            ($ Id.VSub_DollarName tfn) <' /bin/'> ($ Id.VSub_DollarName tfn)
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName legacy)} {<Id.Lit_Equals '='>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {
                  (DQ <'# grep -x /bin/'> ($ Id.VSub_DollarName tfn) 
                    <' /etc/shells >/dev/null || echo /bin/'> ($ Id.VSub_DollarName tfn) <' >>/etc/shells'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {
                  (DQ <'# '> ($ Id.VSub_DollarName i) 
                    <' -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [14909 14920]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)} {<Installing>} {<the>} {<manual> <Id.Lit_Colon ':'>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-f>} {($ Id.VSub_DollarName tfn) <.cat1>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName e)}
                {
                  (DQ <'# '> ($ Id.VSub_DollarName i) <' -c -o root -g bin -m 444 '> 
                    ($ Id.VSub_DollarName tfn) <.cat1>
                  )
                }
                {(DQ <'/usr/share/man/cat1/'> ($ Id.VSub_DollarName tfn) <.0>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$e'>
              more_env: []
              words: [{($ Id.VSub_DollarName e)} {<or>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [14955 14965]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {
          (DQ <'# '> ($ Id.VSub_DollarName i) <' -c -o root -g bin -m 444 '> ($ Id.VSub_DollarName tfn) 
            <'.1 /usr/share/man/man1/'> ($ Id.VSub_DollarName tfn) <.1>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [{($ Id.VSub_DollarName e)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {<Run>}
        {<the>}
        {<regression>}
        {<test>}
        {<suite> <Id.Lit_Colon ':'>}
        {<'./test.sh'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.VSub_DollarName '$e'>
      more_env: []
      words: [
        {($ Id.VSub_DollarName e)}
        {<Please>}
        {<also>}
        {<read>}
        {<the>}
        {<sample>}
        {<file>}
        {<dot.mkshrc>}
        {<and>}
        {<the>}
        {<fine>}
        {<manual.>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [{<Id.Lit_Colon ':'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOD>)}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'\n'>
                <'=== Environment used ===\n'>
                <'\n'>
                <'==== build environment ====\n'>
                <'AWK\t\t\t\tdefault: awk\n'>
                <'CC\t\t\t\tdefault: cc\n'>
                <'CFLAGS\t\t\t\tif empty, defaults to -xO2 or +O2\n'>
                <'\t\t\t\tor -O3 -qstrict or -O2, per compiler\n'>
                <'CPPFLAGS\t\t\tdefault empty\n'>
                <'LDFLAGS\t\t\t\tdefault empty; added before sources\n'>
                <'LDSTATIC\t\t\tset this to \'-static\'; default unset\n'>
                <'LIBS\t\t\t\tdefault empty; added after sources\n'>
                <'\t\t\t\t[Interix] default: -lcrypt (XXX still needed?)\n'>
                <'NOWARN\t\t\t\t-Wno-error or similar\n'>
                <'NROFF\t\t\t\tdefault: nroff\n'>
                <'TARGET_OS\t\t\tdefault: $(uname -s || uname)\n'>
                <'TARGET_OSREV\t\t\t[QNX] default: $(uname -r)\n'>
                <'\n'>
                <'==== feature selectors ====\n'>
                <'USE_PRINTF_BUILTIN\t\t1 to include (unsupported) printf(1) as builtin\n'>
                <'===== general format =====\n'>
                <'HAVE_STRLEN\t\t\tac_test\n'>
                <'HAVE_STRING_H\t\t\tac_header\n'>
                <'HAVE_CAN_FSTACKPROTECTORALL\tac_flags\n'>
                <'\n'>
                <'==== cpp definitions ====\n'>
                <'DEBUG\t\t\t\tdont use in production, wants gcc, implies:\n'>
                <'DEBUG_LEAKS\t\t\tenable freeing resources before exiting\n'>
                <'MKSHRC_PATH\t\t\t"~/.mkshrc" (do not change)\n'>
                <'MKSH_A4PB\t\t\tforce use of arc4random_pushb\n'>
                <'MKSH_ASSUME_UTF8\t\t(0=disabled, 1=enabled; default: unset)\n'>
                <'MKSH_BINSHPOSIX\t\t\tif */sh or */-sh, enable set -o posix\n'>
                <'MKSH_BINSHREDUCED\t\tif */sh or */-sh, enable set -o sh\n'>
                <'MKSH_CLRTOEOL_STRING\t\t"\\033[K"\n'>
                <'MKSH_CLS_STRING\t\t\t"\\033[;H\\033[J"\n'>
                <'MKSH_CONSERVATIVE_FDS\t\tfd 0-9 for scripts, shell only up to 31\n'>
                <'MKSH_DEFAULT_EXECSHELL\t\t"/bin/sh" (do not change)\n'>
                <'MKSH_DEFAULT_PROFILEDIR\t\t"/etc" (do not change)\n'>
                <'MKSH_DEFAULT_TMPDIR\t\t"/tmp" (do not change)\n'>
                <'MKSH_DISABLE_DEPRECATED\t\tdisable code paths scheduled for later removal\n'>
                <'MKSH_DISABLE_EXPERIMENTAL\tdisable code not yet comfy for (LTS) snapshots\n'>
                <'MKSH_DISABLE_TTY_WARNING\tshut up warning about ctty if OS cant be fixed\n'>
                <'MKSH_DONT_EMIT_IDSTRING\t\tomit RCS IDs from binary\n'>
                <'MKSH_MIDNIGHTBSD01ASH_COMPAT\tset -o sh: additional compatibility quirk\n'>
                <'MKSH_NOPROSPECTOFWORK\t\tdisable jobs, co-processes, etc. (do not use)\n'>
                <'MKSH_NOPWNAM\t\t\tskip PAM calls, for -static on glibc or Solaris\n'>
                <'MKSH_NO_CMDLINE_EDITING\t\tdisable command line editing code entirely\n'>
                <'MKSH_NO_DEPRECATED_WARNING\tomit warning when deprecated stuff is run\n'>
                <'MKSH_NO_LIMITS\t\t\tomit ulimit code\n'>
                <'MKSH_NO_SIGSETJMP\t\tdefine if sigsetjmp is broken or not available\n'>
                <'MKSH_NO_SIGSUSPEND\t\tuse sigprocmask+pause instead of sigsuspend\n'>
                <'MKSH_SMALL\t\t\tomit some code, optimise hard for size (slower)\n'>
                <'MKSH_SMALL_BUT_FAST\t\tdisable some hard-for-size optim. (modern sys.)\n'>
                <'MKSH_S_NOVI=1\t\t\tdisable Vi editing mode (default if MKSH_SMALL)\n'>
                <'MKSH_TYPEDEF_SIG_ATOMIC_T\tdefine to e.g. \'int\' if sig_atomic_t is missing\n'>
                <'MKSH_TYPEDEF_SSIZE_T\t\tdefine to e.g. \'long\' if your OS has no ssize_t\n'>
                <'MKSH_UNEMPLOYED\t\t\tdisable job control (but not jobs/co-processes)\n'>
                <'\n'>
                <'=== generic installation instructions ===\n'>
                <'\n'>
                <'Set CC and possibly CFLAGS, CPPFLAGS, LDFLAGS, LIBS. If cross-compiling,\n'>
                <'also set TARGET_OS. To disable tests, set e.g. HAVE_STRLCPY=0; to enable\n'>
                <'them, set to a value other than 0 or 1. Ensure /bin/ed is installed. For\n'>
                <'MKSH_SMALL but with Vi mode, add -DMKSH_S_NOVI=0 to CPPFLAGS as well.\n'>
                <'\n'>
                <'Normally, the following command is what you want to run, then:\n'>
                <'$ (sh Build.sh -r -c lto && ./test.sh -f) 2>&1 | tee log\n'>
                <'\n'>
                <'Copy dot.mkshrc to /etc/skel/.mkshrc; install mksh into $prefix/bin; or\n'>
                <'/bin; install the manpage, if omitting the -r flag a catmanpage is made\n'>
                <'using $NROFF. Consider using a forward script as /etc/skel/.mkshrc like\n'>
                <'http://anonscm.debian.org/cgit/collab-maint/mksh.git/plain/debian/.mkshrc\n'>
                <'and put dot.mkshrc as /etc/mkshrc so users need not keep up their HOME.\n'>
                <'\n'>
                <'You may also want to install the lksh binary (also as /bin/sh) built by:\n'>
                <'$ CPPFLAGS="$CPPFLAGS -DMKSH_BINSHPOSIX" sh Build.sh -L -r -c lto\n'>
                <'\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
  ]
)