(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:srcversion)
          op: Equal
          rhs: {(SQ <'$MirOS: src/bin/mksh/Build.sh,v 1.697 2016/03/04 18:28:39 tg Exp $'>)}
          spids: [3]
        )
      ]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LC_ALL) op:Equal rhs:{(C)} spids:[81])]
      spids: [81]
    )
    (C {(export)} {(LC_ALL)})
    (Case
      to_match: {($ VSub_Name '$ZSH_VERSION') (Lit_Other ':') ($ VSub_Name '$VERSION')}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other ':') (zsh) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ZSH_VERSION) op:Equal rhs:{(2)} spids:[102])]
              spids: [102]
            )
          ]
          spids: [97 100 105 16777215]
        )
      ]
      spids: [89 95 107]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {(-n)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name ZSH_VERSION>
                            suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)})
                            spids: [117 121]
                          )
                        )
                      }
                    )
                    (Subshell
                      child: (C {(emulate)} {(sh)})
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [132]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [135]
                        )
                      ]
                      spids: [126 130]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(emulate)} {(sh)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:NULLCMD)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [147]
                )
              ]
              spids: [147]
            )
          ]
          spids: [16777215 139]
        )
      ]
      spids: [16777215 150]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(test)} {(-d)} {(/usr/xpg4/bin/.)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [161]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[164])
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PATH)
                  op: Equal
                  rhs: {(/usr/xpg4/bin) (Lit_Other ':') ($ VSub_Name '$PATH')}
                  spids: [175]
                )
              ]
              spids: [175]
            )
            (C {(export)} {(PATH)})
          ]
          spids: [16777215 168]
        )
      ]
      spids: [16777215 185]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nl) op:Equal rhs:{(SQ <'\n'>)} spids:[188])]
      spids: [188]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:safeIFS) op:Equal rhs:{(SQ <'\t'>)} spids:[193])]
      spids: [193]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:safeIFS)
          op: Equal
          rhs: {(DQ (' ') ($ VSub_Name '$safeIFS') ($ VSub_Name '$nl'))}
          spids: [198]
        )
      ]
      spids: [198]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IFS)
          op: Equal
          rhs: {($ VSub_Name '$safeIFS')}
          spids: [205]
        )
      ]
      spids: [205]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:allu)
          op: Equal
          rhs: {(QWERTYUIOPASDFGHJKLZXCVBNM)}
          spids: [208]
        )
      ]
      spids: [208]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:alll)
          op: Equal
          rhs: {(qwertyuiopasdfghjklzxcvbnm)}
          spids: [211]
        )
      ]
      spids: [211]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:alln) op:Equal rhs:{(0123456789)} spids:[214])]
      spids: [214]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:alls)
          op: Equal
          rhs: {(______________________________________________________________)}
          spids: [217]
        )
      ]
      spids: [217]
    )
    (FuncDef
      name: genopt_die
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('E: ') ($ VSub_Star '$*'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[244])]
                    )
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ("E: in '") ($ VSub_Name '$srcfile') ("': '") ($ VSub_Name '$line') ("'"))
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[255])]
                    )
                  ]
                  spids: [16777215 239]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {
                      (DQ ("E: invalid input in '") ($ VSub_Name '$srcfile') ("': '") 
                        ($ VSub_Name '$line') ("'")
                      )
                    }
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[272])]
                )
              ]
              spids: [267 284]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$bn') (.gen))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [225]
        )
      spids: [221 224]
    )
    (FuncDef
      name: genopt_soptc
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:optc)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$line'))})
                                  (C {(sed)} {(SQ <'s/^[<>]\\(.\\).*$/\\1/'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [312 326]
                      )
                    }
                  spids: [311]
                )
              ]
              spids: [311]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$optc'))} {(Lit_Other '=')} {(x) (SQ <'|'>)})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:optclo)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$optc'))})
                                  (C {(tr)} {($ VSub_Name '$allu')} {($ VSub_Name '$alll')})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [349 363]
                      )
                    }
                  spids: [348]
                )
              ]
              spids: [348]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(x) (DQ ($ VSub_Name '$optc'))} {(Lit_Other '=')} 
                          {(x) (DQ ($ VSub_Name '$optclo'))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:islo) op:Equal rhs:{(1)} spids:[386])]
                      spids: [386]
                    )
                  ]
                  spids: [16777215 383]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:islo) op:Equal rhs:{(0)} spids:[393])]
                  spids: [393]
                )
              ]
              spids: [390 397]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sym)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$line'))})
                                  (C {(sed)} {(SQ <'s/^[<>]/|/'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [401 415]
                      )
                    }
                  spids: [400]
                )
              ]
              spids: [400]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:o_str)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$o_str') ($ VSub_Name '$nl') 
                      (DQ ('<') ($ VSub_Name '$optclo') ($ VSub_Name '$islo') ($ VSub_Name '$sym'))
                    }
                  spids: [418]
                )
              ]
              spids: [418]
            )
          ]
          spids: [308]
        )
      spids: [304 307]
    )
    (FuncDef
      name: genopt_scond
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(x) ($ VSub_Name '$cond')}
              arms: [
                (case_arm
                  pat_list: [{(x)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [450]
                        )
                      ]
                      spids: [450]
                    )
                  ]
                  spids: [446 447 453 16777215]
                )
                (case_arm
                  pat_list: [{(x) (Lit_Other '*') (SQ <' '>) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ ($ VSub_Name '$cond'))})
                                          (C {(sed)} {(SQ <'s/^ //'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [466 480]
                              )
                            }
                          spids: [465]
                        )
                      ]
                      spids: [465]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: {(DQ ('#if ') ($ VSub_Name '$cond'))}
                          spids: [483]
                        )
                      ]
                      spids: [483]
                    )
                  ]
                  spids: [456 462 490 16777215]
                )
                (case_arm
                  pat_list: [{(x) (SQ <'!'>) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ ($ VSub_Name '$cond'))})
                                          (C {(sed)} {(SQ <'s/^!//'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [502 516]
                              )
                            }
                          spids: [501]
                        )
                      ]
                      spids: [501]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: {(DQ ('#ifndef ') ($ VSub_Name '$cond'))}
                          spids: [519]
                        )
                      ]
                      spids: [519]
                    )
                  ]
                  spids: [493 498 526 16777215]
                )
                (case_arm
                  pat_list: [{(x) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cond)
                          op: Equal
                          rhs: {(DQ ('#ifdef ') ($ VSub_Name '$cond'))}
                          spids: [534]
                        )
                      ]
                      spids: [534]
                    )
                  ]
                  spids: [529 531 541 16777215]
                )
              ]
              spids: [438 443 544]
            )
          ]
          spids: [435]
        )
      spids: [431 434]
    )
    (FuncDef
      name: do_genopt
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcfile)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [556]
                )
              ]
              spids: [556]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$srcfile'))})
                (C {(genopt_die)} {(Source)} {(file)} 
                  {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (srcfile)} {(not)} {(set.)}
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:bn)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(basename)} {(DQ ($ VSub_Name '$srcfile'))})
                                  (C {(sed)} {(SQ <'s/.opt$//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [585 599]
                      )
                    }
                  spids: [584]
                )
              ]
              spids: [584]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:o_hdr)
                  op: Equal
                  rhs: {(SQ <'/* +++ GENERATED FILE +++ DO NOT EDIT +++ */'>)}
                  spids: [602]
                )
              ]
              spids: [602]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:o_gen) op:Equal rhs:{(EmptyPart)} spids:[608])]
              spids: [608]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:o_str) op:Equal rhs:{(EmptyPart)} spids:[611])]
              spids: [611]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:o_sym) op:Equal rhs:{(EmptyPart)} spids:[614])]
              spids: [614]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ddefs) op:Equal rhs:{(EmptyPart)} spids:[617])]
              spids: [617]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:state) op:Equal rhs:{(0)} spids:[620])]
              spids: [620]
            )
            (SimpleCommand
              words: [{(exec)}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$srcfile'))}
                  spids: [626]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(EmptyPart)} spids:[632])]
              spids: [632]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(read)} {(line)}]
                      more_env: [(env_pair name:IFS val:{(EmptyPart)} spids:[637])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$safeIFS')}
                          spids: [647]
                        )
                      ]
                      spids: [647]
                    )
                    (Case
                      to_match: {($ VSub_Name '$state') (Lit_Other ':') ($ VSub_Name '$line')}
                      arms: [
                        (case_arm
                          pat_list: [{(2) (Lit_Other ':') (SQ <'|'>) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_sym)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$line'))})
                                                  (C {(sed)} {(SQ <'s/^.//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [674 688]
                                      )
                                    }
                                  spids: [673]
                                )
                              ]
                              spids: [673]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#undef F0'))}
                                  spids: [691]
                                )
                              ]
                              spids: [691]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#undef FN'))}
                                  spids: [699]
                                )
                              ]
                              spids: [699]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$ddefs')}
                                  spids: [707]
                                )
                              ]
                              spids: [707]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:state)
                                  op: Equal
                                  rhs: {(3)}
                                  spids: [712]
                                )
                              ]
                              spids: [712]
                            )
                          ]
                          spids: [660 666 716 16777215]
                        )
                        (case_arm
                          pat_list: [{(1) (Lit_Other ':') (Lit_Other '@') (Lit_Other '@')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#endif'))}
                                  spids: [730]
                                )
                              ]
                              spids: [730]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#ifndef F0'))}
                                  spids: [738]
                                )
                              ]
                              spids: [738]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: 
                                    {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#define F0 FN'))}
                                  spids: [746]
                                )
                              ]
                              spids: [746]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#endif'))}
                                  spids: [754]
                                )
                              ]
                              spids: [754]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:state)
                                  op: Equal
                                  rhs: {(2)}
                                  spids: [762]
                                )
                              ]
                              spids: [762]
                            )
                          ]
                          spids: [719 723 766 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (Lit_Other ':') (Lit_Other '@') (Lit_Other '@') 
                              (Lit_Other '*')
                            }
                          ]
                          action: [(C {(genopt_die)})]
                          spids: [769 774 779 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(0) (Lit_Other ':') (/) (EscapedLiteralPart token:<Lit_EscapedChar '\\*'>) 
                              (-)
                            }
                            {(0) (Lit_Other ':') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\*'>
                              ) (Lit_Other '*')
                            }
                            {(0) (Lit_Other ':')}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_hdr)
                                  op: Equal
                                  rhs: 
                                    {($ VSub_Name '$o_hdr') ($ VSub_Name '$nl') ($ VSub_Name '$line')}
                                  spids: [799]
                                )
                              ]
                              spids: [799]
                            )
                          ]
                          spids: [782 796 805 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(0) (Lit_Other ':') (Lit_Other '@') (Lit_Other '*')}
                            {(1) (Lit_Other ':') (Lit_Other '@') (Lit_Other '*')}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:sym)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$line'))})
                                                  (C {(sed)} {(SQ <'s/^@//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [825 839]
                                      )
                                    }
                                  spids: [824]
                                )
                              ]
                              spids: [824]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {($ VSub_Name '$state')} {(Lit_Other '=')} {(0)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:o_gen)
                                          op: Equal
                                          rhs: 
                                            {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') 
                                              (DQ ('#if defined(') ($ VSub_Name '$sym') (')'))
                                            }
                                          spids: [856]
                                        )
                                      ]
                                      spids: [856]
                                    )
                                  ]
                                  spids: [16777215 853]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:o_gen)
                                      op: Equal
                                      rhs: 
                                        {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') 
                                          (DQ ('#elif defined(') ($ VSub_Name '$sym') (')'))
                                        }
                                      spids: [869]
                                    )
                                  ]
                                  spids: [869]
                                )
                              ]
                              spids: [866 879]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ddefs)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$ddefs') ($ VSub_Name '$nl') ('#undef ') 
                                        ($ VSub_Name '$sym')
                                      )
                                    }
                                  spids: [882]
                                )
                              ]
                              spids: [882]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:state)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [891]
                                )
                              ]
                              spids: [891]
                            )
                          ]
                          spids: [808 817 895 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(0) (Lit_Other ':') (Lit_Other '*')}
                            {(3) (Lit_Other ':') (Lit_Other '*')}
                          ]
                          action: [(C {(genopt_die)})]
                          spids: [898 905 910 16777215]
                        )
                        (case_arm
                          pat_list: [{(1) (Lit_Other ':') (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: 
                                    {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') ($ VSub_Name '$line')}
                                  spids: [923]
                                )
                              ]
                              spids: [923]
                            )
                          ]
                          spids: [913 916 929 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(2) (Lit_Other ':') (SQ <'<'>) (Lit_Other '*') (SQ <'|'>) (Lit_Other '*')}
                          ]
                          action: [(C {(genopt_soptc)})]
                          spids: [932 942 948 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(2) (Lit_Other ':') (SQ <'>'>) (Lit_Other '*') (SQ <'|'>) (Lit_Other '*')}
                          ]
                          action: [
                            (C {(genopt_soptc)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cond)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$line'))})
                                                  (C {(sed)} {(SQ <'s/^[^|]*|//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [968 982]
                                      )
                                    }
                                  spids: [967]
                                )
                              ]
                              spids: [967]
                            )
                            (C {(genopt_scond)})
                            (Case
                              to_match: {($ VSub_Name '$optc')}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ <'|'>)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:optc)
                                          op: Equal
                                          rhs: {(0)}
                                          spids: [1000]
                                        )
                                      ]
                                      spids: [1000]
                                    )
                                  ]
                                  spids: [996 998 1003 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:optc)
                                          op: Equal
                                          rhs: 
                                            {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">) 
                                              ($ VSub_Name '$optc') (EscapedLiteralPart token:<Lit_EscapedChar "\\'">)
                                            }
                                          spids: [1009]
                                        )
                                      ]
                                      spids: [1009]
                                    )
                                  ]
                                  spids: [1006 1007 1014 16777215]
                                )
                              ]
                              spids: [988 992 1017]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{(read)} {(line)}]
                                  more_env: [(env_pair name:IFS val:{(EmptyPart)} spids:[1020])]
                                )
                                (C {(genopt_die)} {(Unexpected)} {(EOF)})
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {($ VSub_Name '$safeIFS')}
                                  spids: [1035]
                                )
                              ]
                              spids: [1035]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$cond'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:o_gen)
                                      op: Equal
                                      rhs: 
                                        {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') 
                                          (DQ ($ VSub_Name '$cond'))
                                        }
                                      spids: [1049]
                                    )
                                  ]
                                  spids: [1049]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:o_gen)
                                  op: Equal
                                  rhs: 
                                    {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') 
                                      (DQ ($ VSub_Name '$line') (', ') ($ VSub_Name '$optc') (')'))
                                    }
                                  spids: [1057]
                                )
                              ]
                              spids: [1057]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$cond'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:o_gen)
                                      op: Equal
                                      rhs: {($ VSub_Name '$o_gen') ($ VSub_Name '$nl') (DQ ('#endif'))}
                                      spids: [1078]
                                    )
                                  ]
                                  spids: [1078]
                                )
                              ]
                            )
                          ]
                          spids: [951 961 1086 16777215]
                        )
                      ]
                      spids: [651 657 1089]
                    )
                  ]
                  spids: [644 1092]
                )
            )
            (Case
              to_match: {($ VSub_Name '$state') (Lit_Other ':') ($ VSub_Name '$o_sym')}
              arms: [
                (case_arm
                  pat_list: [{(3) (Lit_Other ':')}]
                  action: [(C {(genopt_die)} {(Expected)} {(optc)} {(sym)} {(at)} {(EOF)})]
                  spids: [1104 1106 1120 16777215]
                )
                (case_arm
                  pat_list: [{(3) (Lit_Other ':') (Lit_Other '*')}]
                  spids: [1123 1126 1128 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(genopt_die)} {(Missing)} {(EOF)} {(marker)})]
                  spids: [1131 1132 1142 16777215]
                )
              ]
              spids: [1095 1101 1145]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Name '$o_str'))})
                (C {(sort)})
                (While
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(read)} {(x)} {(opts)} {(cond)}]
                          more_env: [(env_pair name:IFS val:{(SQ <'|'>)} spids:[1162])]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:IFS)
                              op: Equal
                              rhs: {($ VSub_Name '$safeIFS')}
                              spids: [1179]
                            )
                          ]
                          spids: [1179]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$x'))})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                        )
                        (C {(genopt_scond)})
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$cond'))})
                            (C {(echo)} {(DQ ($ VSub_Name '$cond'))})
                          ]
                        )
                        (C {(echo)} 
                          {
                            (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                              ($ VSub_Name '$opts') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$cond'))})
                            (C {(echo)} {(DQ ('#endif'))})
                          ]
                        )
                      ]
                      spids: [1176 1242]
                    )
                )
                (BraceGroup
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$o_hdr'))})
                    (C {(echo)} {(DQ ('#ifndef ') ($ VSub_Name '$o_sym') ($ VSub_Name '$o_gen'))})
                    (C {(echo)} {(DQ ('#else'))})
                    (C {(cat)})
                    (C {(echo)} {(DQ ('#undef ') ($ VSub_Name '$o_sym'))})
                    (C {(echo)} {(DQ ('#endif'))})
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$bn') (.gen))}
                      spids: [1292]
                    )
                  ]
                  spids: [1246]
                )
              ]
              negated: F
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$safeIFS')}
                  spids: [1299]
                )
              ]
              spids: [1299]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [553]
        )
      spids: [549 552]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(x) (DQ ($ VSub_Name '$BUILDSH_RUN_GENOPT'))} {(Lit_Other '=')} 
                  {(x) (DQ (1))}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(set)} {(x)} {(-G)} {(DQ ($ VSub_Name '$srcfile'))}) (C {(shift)})]
          spids: [16777215 1327]
        )
      ]
      spids: [16777215 1343]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ (-G))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(do_genopt)} {(DQ ($ VSub_Number '$2'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [16777215 1362]
        )
      ]
      spids: [16777215 1376]
    )
    (C {(echo)} {(DQ ('For the build logs, demonstrate that /dev/null and /dev/tty exist:'))})
    (C {(ls)} {(-l)} {(/dev/null)} {(/dev/tty)})
    (FuncDef
      name: v
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$e')} {(DQ ($ VSub_Star '$*'))})
            (C {(eval)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [1398]
        )
      spids: [1394 1397]
    )
    (FuncDef
      name: vv
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_c)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1424]
                )
              ]
              spids: [1424]
            )
            (C {(shift)})
            (SimpleCommand
              words: [
                {($ VSub_Name '$e')}
                {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (' ') ($ VSub_Star '$*'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1439])]
            )
            (SimpleCommand
              words: [{(eval)} {(DQ ($ VSub_At '$@'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(vv.out)}
                  spids: [1449]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1452])
              ]
            )
            (SimpleCommand
              words: [{(sed)} {(DQ ('s\x07^\x07') (${ VSub_Name _c) (' \x07'))}]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(vv.out)} spids:[1466])]
            )
          ]
          spids: [1421]
        )
      spids: [1417 1420]
    )
    (FuncDef
      name: vq
      body: (BraceGroup children:[(C {(eval)} {(DQ ($ VSub_At '$@'))})] spids:[1476])
      spids: [1472 1475]
    )
    (FuncDef
      name: rmf
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: _f
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$_f')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Build.sh)}
                            {(check.pl)}
                            {(check.t)}
                            {(dot.mkshrc)}
                            {(Lit_Other '*') (.1)}
                            {(Lit_Other '*') (.c)}
                            {(Lit_Other '*') (.h)}
                            {(Lit_Other '*') (.ico)}
                            {(Lit_Other '*') (.opt)}
                          ]
                          spids: [1516 1538 1540 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$_f'))})]
                          spids: [1543 1544 1554 16777215]
                        )
                      ]
                      spids: [1509 1513 1557]
                    )
                  ]
                  spids: [1506 1560]
                )
              spids: [1500 1504]
            )
          ]
          spids: [1492]
        )
      spids: [1488 1491]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tcfn) op:Equal rhs:{(no)} spids:[1565])]
      spids: [1565]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:bi) op:Equal rhs:{(EmptyPart)} spids:[1568])]
      spids: [1568]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ui) op:Equal rhs:{(EmptyPart)} spids:[1570])]
      spids: [1570]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ao) op:Equal rhs:{(EmptyPart)} spids:[1572])]
      spids: [1572]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:fx) op:Equal rhs:{(EmptyPart)} spids:[1574])]
      spids: [1574]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:me)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Number '$0'))})])
                left_token: <Left_Backtick '`'>
                spids: [1577 1583]
              )
            }
          spids: [1576]
        )
      ]
      spids: [1576]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:orig_CFLAGS)
          op: Equal
          rhs: {($ VSub_Name '$CFLAGS')}
          spids: [1585]
        )
      ]
      spids: [1585]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[1588])]
      spids: [1588]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:oldish_ed)
          op: Equal
          rhs: {(stdout-ed) (Lit_Comma ',') (no-stderr-ed)}
          spids: [1591]
        )
      ]
      spids: [1591]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-t)} {(1)}) terminator:<Op_Semi ';'>)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:bi)
                  op: Equal
                  rhs: {(SQ <'\x1b[1m'>)}
                  spids: [1609]
                )
              ]
              spids: [1609]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ui)
                  op: Equal
                  rhs: {(SQ <'\x1b[4m'>)}
                  spids: [1615]
                )
              ]
              spids: [1615]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ao)
                  op: Equal
                  rhs: {(SQ <'\x1b[0m'>)}
                  spids: [1621]
                )
              ]
              spids: [1621]
            )
          ]
          spids: [16777215 1606]
        )
      ]
      spids: [16777215 1626]
    )
    (FuncDef
      name: upper
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(Lit_Other ':') (DQ ($ VSub_At '$@'))})
                (C {(sed)} {(SQ <'s/^://'>)})
                (C {(tr)} {($ VSub_Name '$alll')} {($ VSub_Name '$allu')})
              ]
              negated: F
            )
          ]
          spids: [1633]
        )
      spids: [1629 1632]
    )
    (FuncDef
      name: ac_testdone
      body: 
        (BraceGroup
          children: [
            (C {(eval)} {(HAVE_) ($ VSub_Name '$fu') (Lit_Other '=') ($ VSub_Name '$fv')})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(no)} spids:[1680])]
              spids: [1680]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$fv')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(yes)} spids:[1694])]
                  spids: [1694]
                )
              ]
            )
            (C {($ VSub_Name '$e')} 
              {
                (DQ ($ VSub_Name '$bi') ('==> ') ($ VSub_Name '$fd') (...) ($ VSub_Name '$ao') (' ') 
                  ($ VSub_Name '$ui') ($ VSub_Name '$fr') ($ VSub_Name '$ao') ($ VSub_Name '$fx')
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fx) op:Equal rhs:{(EmptyPart)} spids:[1714])]
              spids: [1714]
            )
          ]
          spids: [1669]
        )
      spids: [1665 1668]
    )
    (FuncDef
      name: ac_cache
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1729]
                )
              ]
              spids: [1729]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fu)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(upper)} {($ VSub_Name '$f')})])
                        left_token: <Left_Backtick '`'>
                        spids: [1734 1738]
                      )
                    }
                  spids: [1733]
                )
              ]
              spids: [1733]
            )
            (C {(eval)} 
              {(Lit_VarLike 'fv=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_) 
                ($ VSub_Name '$fu')
              }
            )
            (Case
              to_match: {($ VSub_Name '$fv')}
              arms: [
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fx)
                          op: Equal
                          rhs: {(SQ <' (cached)'>)}
                          spids: [1762]
                        )
                      ]
                      spids: [1762]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [1756 1759 1773 16777215]
                )
              ]
              spids: [1749 1753 1776]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[1779])]
              spids: [1779]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1726]
        )
      spids: [1722 1725]
    )
    (FuncDef
      name: ac_testinit
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(ac_cache)} {($ VSub_Number '$1')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(x) (DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                        (C {(shift)})
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(x) (DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(x) (DQ )})
                        (C {(shift)})
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fd)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_Hyphen
                                    arg_word: {($ VSub_Name '$f')}
                                  )
                                spids: [1851 1855]
                              )
                            }
                          spids: [1850]
                        )
                      ]
                      spids: [1850]
                    )
                    (C {(ac_testdone)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1810]
                )
              ]
              spids: [16777215 1866]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fc) op:Equal rhs:{(0)} spids:[1869])]
              spids: [1869]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(x) (DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(x) (DQ )})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:ft) op:Equal rhs:{(1)} spids:[1892])]
                      spids: [1892]
                    )
                  ]
                  spids: [16777215 1889]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(test)} {(x) (DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LhsName name:fc) op:Equal rhs:{(1)} spids:[1919])]
                          spids: [1919]
                        )
                        (C {(shift)})
                      ]
                      spids: [16777215 1916]
                    )
                  ]
                  spids: [16777215 1926]
                )
                (C {(eval)} 
                  {(Lit_VarLike 'ft=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_) 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(upper)} {($ VSub_Number '$2')})])
                      left_token: <Left_Backtick '`'>
                      spids: [1934 1938]
                    )
                  }
                )
                (C {(shift)})
              ]
              spids: [1896 1944]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fd)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 3>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{($ VSub_Name '$f')})
                        spids: [1948 1952]
                      )
                    }
                  spids: [1947]
                )
              ]
              spids: [1947]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {($ VSub_Name '$fc')} {(Lit_Other '=')} {(DQ ($ VSub_Name '$ft'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fv)
                          op: Equal
                          rhs: {($ VSub_Number '$2')}
                          spids: [1971]
                        )
                      ]
                      spids: [1971]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fx)
                          op: Equal
                          rhs: {(SQ <' (implied)'>)}
                          spids: [1975]
                        )
                      ]
                      spids: [1975]
                    )
                    (C {(ac_testdone)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1968]
                )
              ]
              spids: [16777215 1989]
            )
            (C {($ VSub_Name '$e')} {(...)} {($ VSub_Name '$fd')})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1800]
        )
      spids: [1796 1799]
    )
    (FuncDef
      name: ac_testnnd
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(1)} spids:[2036])]
                      spids: [2036]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 2033]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(0)} spids:[2046])]
                  spids: [2046]
                )
              ]
              spids: [2043 2050]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(ac_testinit)} {(DQ ($ VSub_At '$@'))})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(conftest.c)} spids:[2068])]
            )
            (C {(vv)} {(SQ <']'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' conftest.c ') ($ VSub_Name '$LIBS') (' ') 
                  ($ VSub_Name '$ccpr')
                )
              }
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$tcfn')} {(Lit_Other '=')} {(no)})
                (C {(test)} {(-f)} {(a.out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:tcfn) op:Equal rhs:{(a.out)} spids:[2113])]
                  spids: [2113]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$tcfn')} {(Lit_Other '=')} {(no)})
                (C {(test)} {(-f)} {(a.exe)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:tcfn) op:Equal rhs:{(a.exe)} spids:[2135])]
                  spids: [2135]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$tcfn')} {(Lit_Other '=')} {(no)})
                (C {(test)} {(-f)} {(conftest.exe)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:tcfn)
                      op: Equal
                      rhs: {(conftest.exe)}
                      spids: [2157]
                    )
                  ]
                  spids: [2157]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$tcfn')} {(Lit_Other '=')} {(no)})
                (C {(test)} {(-f)} {(conftest)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:tcfn)
                      op: Equal
                      rhs: {(conftest)}
                      spids: [2179]
                    )
                  ]
                  spids: [2179]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-f)} {($ VSub_Name '$tcfn')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$fr')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[2205])]
                          spids: [2205]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2192]
                )
              ]
              else_action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$fr')})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[2222])]
                      spids: [2222]
                    )
                  ]
                )
              ]
              spids: [2209 2226]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:vscan) op:Equal rhs:{(EmptyPart)} spids:[2229])]
              spids: [2229]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {($ VSub_Name '$phase')} {(Lit_Other '=')} {(u)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(gcc)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:vscan)
                              op: Equal
                              rhs: {(SQ <'unrecogni[sz]ed'>)}
                              spids: [2256]
                            )
                          ]
                          spids: [2256]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(hpcc)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:vscan)
                              op: Equal
                              rhs: {(SQ <unsupported>)}
                              spids: [2272]
                            )
                          ]
                          spids: [2272]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(pcc)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:vscan)
                              op: Equal
                              rhs: {(SQ <unsupported>)}
                              spids: [2288]
                            )
                          ]
                          spids: [2288]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(sunpro)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:vscan)
                              op: Equal
                              rhs: {(SQ <'-e ignored -e turned.off'>)}
                              spids: [2304]
                            )
                          ]
                          spids: [2304]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2243]
                )
              ]
              spids: [16777215 2310]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$vscan'))})
                (SimpleCommand
                  words: [{(grep)} {($ VSub_Name '$vscan')} {(vv.out)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [2329]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2332])
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:fv)
                      op: Equal
                      rhs: {($ VSub_Name '$fr')}
                      spids: [2337]
                    )
                  ]
                  spids: [2337]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [2013]
        )
      spids: [2009 2012]
    )
    (FuncDef
      name: ac_testn
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(ac_testnnd)} {(DQ ($ VSub_At '$@'))})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
            )
            (C {(rmf)} {(conftest.c)} {(conftest.o)} {(${ VSub_Name tcfn) (Lit_Other '*')} {(vv.out)})
            (C {(ac_testdone)})
          ]
          spids: [2351]
        )
      spids: [2347 2350]
    )
    (FuncDef
      name: ac_ifcpp
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:expr)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [2394]
                    )
                  ]
                  spids: [2394]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (SimpleCommand
              words: [{(ac_testn)} {(DQ ($ VSub_At '$@'))}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {
                      (DQ ('#include <unistd.h>\n') 
                        ('extern int thiswillneverbedefinedIhope(void);\n') ('int main(void) { return (isatty(0) +\n') ('#') ($ VSub_Name '$expr') ('\n') ('    0\n') ('#else\n') 
                        ('/* force a failure: expr is false */\n') ('    thiswillneverbedefinedIhope()\n') ('#endif\n') ('    ); }\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [2407]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                (C {(shift)})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2443]
                )
              ]
              spids: [2443]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fu)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(upper)} {($ VSub_Name '$f')})])
                        left_token: <Left_Backtick '`'>
                        spids: [2448 2452]
                      )
                    }
                  spids: [2447]
                )
              ]
              spids: [2447]
            )
            (C {(eval)} 
              {(Lit_VarLike 'fv=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_) 
                ($ VSub_Name '$fu')
              }
            )
            (C {(test)} {(x) (DQ ($ VSub_Name '$fv'))} {(Lit_Other '=')} {(x) (DQ (1))})
          ]
          spids: [2391]
        )
      spids: [2387 2390]
    )
    (FuncDef
      name: add_cppflags
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPPFLAGS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Star '$*'))}
                  spids: [2487]
                )
              ]
              spids: [2487]
            )
          ]
          spids: [2484]
        )
      spids: [2480 2483]
    )
    (FuncDef
      name: ac_cppflags
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:fu)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [2519]
                    )
                  ]
                  spids: [2519]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fv)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [2523]
                )
              ]
              spids: [2523]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(x) (DQ )})
                (C {(eval)} 
                  {(Lit_VarLike 'fv=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_) 
                    ($ VSub_Name '$fu')
                  }
                )
              ]
            )
            (C {(add_cppflags)} {(-DHAVE_) ($ VSub_Name '$fu') (Lit_Other '=') ($ VSub_Name '$fv')})
          ]
          spids: [2501]
        )
      spids: [2497 2500]
    )
    (FuncDef
      name: ac_test
      body: 
        (BraceGroup
          children: [(C {(ac_testn)} {(DQ ($ VSub_At '$@'))}) (C {(ac_cppflags)})]
          spids: [2564]
        )
      spids: [2560 2563]
    )
    (FuncDef
      name: ac_flags
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ (-))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:hf) op:Equal rhs:{(1)} spids:[2612])]
                      spids: [2612]
                    )
                  ]
                  spids: [16777215 2606]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:hf) op:Equal rhs:{(0)} spids:[2619])]
                  spids: [2619]
                )
              ]
              spids: [2616 2623]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fa)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2626]
                )
              ]
              spids: [2626]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:vn)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [2630]
                )
              ]
              spids: [2630]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [2634]
                )
              ]
              spids: [2634]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ft)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [2638]
                )
              ]
              spids: [2638]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fl)
                  op: Equal
                  rhs: {($ VSub_Number '$5')}
                  spids: [2642]
                )
              ]
              spids: [2642]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$ft'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ft)
                      op: Equal
                      rhs: {(DQ ('if ') ($ VSub_Name '$f') (' can be used'))}
                      spids: [2661]
                    )
                  ]
                  spids: [2661]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_CFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name '$CFLAGS')}
                  spids: [2669]
                )
              ]
              spids: [2669]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CFLAGS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$f'))}
                  spids: [2673]
                )
              ]
              spids: [2673]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$fl'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:save_LDFLAGS)
                          op: Equal
                          rhs: {($ VSub_Name '$LDFLAGS')}
                          spids: [2695]
                        )
                      ]
                      spids: [2695]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LDFLAGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$fl'))}
                          spids: [2699]
                        )
                      ]
                      spids: [2699]
                    )
                  ]
                  spids: [16777215 2692]
                )
              ]
              spids: [16777215 2707]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$hf')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(ac_testn)} {(can_) ($ VSub_Name '$vn')} {(SQ )} {(DQ ($ VSub_Name '$ft'))})
                  ]
                  spids: [16777215 2721]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(ac_testn)} {(can_) ($ VSub_Name '$vn')} {(SQ )} {(DQ ($ VSub_Name '$ft'))}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLessDash
                      fd: 16777215
                      body: 
                        {("/* evil apo'stroph in comment test */\n") ('#include <unistd.h>\n') 
                          ('int main(void) { return (isatty(0)); }\n')
                        }
                      do_expansion: False
                      here_end: EOF
                      was_filled: T
                      spids: [2752]
                    )
                  ]
                )
              ]
              spids: [2737 2758]
            )
            (C {(eval)} 
              {(Lit_VarLike 'fv=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_CAN_) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(upper)} {($ VSub_Name '$vn')})])
                  left_token: <Left_Backtick '`'>
                  spids: [2766 2770]
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$fl'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(11)} {(Lit_Other '=')} {($ VSub_Name '$fa') ($ VSub_Name '$fv')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:LDFLAGS)
                              op: Equal
                              rhs: {($ VSub_Name '$save_LDFLAGS')}
                              spids: [2798]
                            )
                          ]
                          spids: [2798]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2784]
                )
              ]
              spids: [16777215 2802]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(11)} {(Lit_Other '=')} {($ VSub_Name '$fa') ($ VSub_Name '$fv')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CFLAGS)
                      op: Equal
                      rhs: {($ VSub_Name '$save_CFLAGS')}
                      spids: [2816]
                    )
                  ]
                  spids: [2816]
                )
              ]
            )
          ]
          spids: [2586]
        )
      spids: [2582 2585]
    )
    (FuncDef
      name: ac_header
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:na) op:Equal rhs:{(1)} spids:[2852])]
                      spids: [2852]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 2849]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:na) op:Equal rhs:{(0)} spids:[2862])]
                  spids: [2862]
                )
              ]
              spids: [2859 2866]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:hf)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [2869]
                    )
                  ]
                  spids: [2869]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hv)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$hf'))})
                                  (C {(tr)} {(-d)} {(SQ <'\\012\\015'>)})
                                  (C {(tr)} {(-c)} 
                                    {($ VSub_Name '$alll') ($ VSub_Name '$allu') 
                                      ($ VSub_Name '$alln')
                                    } {($ VSub_Name '$alls')}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2877 2905]
                      )
                    }
                  spids: [2876]
                )
              ]
              spids: [2876]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('/* NeXTstep bug workaround */'))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(x)} spids:[2914])]
            )
            (ForEach
              iter_name: i
              do_arg_iter: T
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$i')}
                      arms: [
                        (case_arm
                          pat_list: [{(_time)}]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#if HAVE_BOTH_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2943]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#include <sys/time.h>'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2953]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#include <time.h>'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2963]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#elif HAVE_SYS_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2973]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#include <sys/time.h>'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2983]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#elif HAVE_TIME_H'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [2993]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#include <time.h>'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [3003]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <'#endif'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [3013]
                                )
                              ]
                            )
                          ]
                          spids: [2933 2934 3017 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('#include <') ($ VSub_Name '$i') ('>'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(x)}
                                  spids: [3032]
                                )
                              ]
                            )
                          ]
                          spids: [3020 3021 3036 16777215]
                        )
                      ]
                      spids: [2926 2930 3039]
                    )
                  ]
                  spids: [2923 3042]
                )
              spids: [16777215 16777215]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('#include <') ($ VSub_Name '$hf') ('>'))}]
              redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(x)} spids:[3053])]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <'#include <unistd.h>'>)}]
              redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(x)} spids:[3063])]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <'int main(void) { return (isatty(0)); }'>)}]
              redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(x)} spids:[3073])]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(DQ ($ VSub_Name '$hv'))}
                {(DQ )}
                {(DQ ('<') ($ VSub_Name '$hf') ('>'))}
              ]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[3092])]
            )
            (C {(rmf)} {(x)})
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$na')}) (C {(ac_cppflags)})]
            )
          ]
          spids: [2829]
        )
      spids: [2825 2828]
    )
    (FuncDef
      name: addsrcs
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(x) (DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(x) (DQ ('!'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(0)} spids:[3143])]
                      spids: [3143]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 3140]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(1)} spids:[3153])]
                  spids: [3153]
                )
              ]
              spids: [3150 3157]
            )
            (C {(eval)} 
              {(Lit_VarLike 'i=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ($ VSub_Number '$1')
              }
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$fr')} {(Lit_Other '=')} {(DQ ($ VSub_Name '$i'))})
                (Case
                  to_match: {(DQ (' ') ($ VSub_Name '$SRCS') (' '))}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) 
                          ($ VSub_Number '$2') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')
                        }
                      ]
                      spids: [3190 3195 3197 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SRCS)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$SRCS') (' ') ($ VSub_Number '$2'))}
                              spids: [3203]
                            )
                          ]
                          spids: [3203]
                        )
                      ]
                      spids: [3200 3201 3210 16777215]
                    )
                  ]
                  spids: [3179 3187 3213]
                )
              ]
            )
          ]
          spids: [3120]
        )
      spids: [3116 3119]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:curdir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [3220 3222]
              )
            }
          spids: [3219]
        )
        (assign_pair
          lhs: (LhsName name:srcdir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [{(dirname)} {(DQ ($ VSub_Number '$0'))}]
                        redirects: [
                          (Redir
                            op_id: Redir_Great
                            fd: 2
                            arg_word: {(/dev/null)}
                            spids: [3232]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [3225 3234]
              )
            }
          spids: [3224]
        )
      ]
      spids: [3219]
    )
    (Case
      to_match: {(x) ($ VSub_Name '$srcdir')}
      arms: [
        (case_arm
          pat_list: [{(x)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:srcdir) op:Equal rhs:{(.)} spids:[3247])]
              spids: [3247]
            )
          ]
          spids: [3243 3244 3251 16777215]
        )
        (case_arm
          pat_list: [
            {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')}
            {(Lit_Other '*') (DQ ('\t')) (Lit_Other '*')}
            {(Lit_Other '*') (DQ ($ VSub_Name '$nl')) (Lit_Other '*')}
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(Source)}
                {(directory)}
                {(should)}
                {(not)}
                {(contain)}
                {(space)}
                {(or)}
                {(tab)}
                {(or)}
                {(newline.)}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[3273])]
            )
            (SimpleCommand
              words: [{(echo)} {(Errors)} {(may)} {(occur.)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[3299])]
            )
          ]
          spids: [3253 3268 3309 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (DQ ("'")) (Lit_Other '*')}]
          action: [
            (C {(echo)} {(Source)} {(directory)} {(must)} {(not)} {(contain)} {(single)} {(quotes.)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [3311 3316 3341 16777215]
        )
      ]
      spids: [3236 3241 3343]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:dstversion)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(sed)} {(-n)} {(SQ <'/define MKSH_VERSION/s/^.*"\\([^"]*\\)".*$/\\1/p'>)} 
                        {(DQ ($ VSub_Name '$srcdir') (/sh.h))}
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [3346 3359]
              )
            }
          spids: [3345]
        )
      ]
      spids: [3345]
    )
    (C {(add_cppflags)} {(-DMKSH_BUILDSH)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:e) op:Equal rhs:{(echo)} spids:[3366])]
      spids: [3366]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{(0)} spids:[3369])]
      spids: [3369]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:eq) op:Equal rhs:{(0)} spids:[3372])]
      spids: [3372]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pm) op:Equal rhs:{(0)} spids:[3375])]
      spids: [3375]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cm) op:Equal rhs:{(normal)} spids:[3378])]
      spids: [3378]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:optflags)
          op: Equal
          rhs: {(-std-compile-opts)}
          spids: [3381]
        )
      ]
      spids: [3381]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:check_categories)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [3384]
        )
      ]
      spids: [3384]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(EmptyPart)} spids:[3386])]
      spids: [3386]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tfn) op:Equal rhs:{(EmptyPart)} spids:[3388])]
      spids: [3388]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:legacy) op:Equal rhs:{(0)} spids:[3390])]
      spids: [3390]
    )
    (ForEach
      iter_name: i
      do_arg_iter: T
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$last') (Lit_Other ':') ($ VSub_Name '$i')}
              arms: [
                (case_arm
                  pat_list: [
                    {(c) (Lit_Other ':') (combine)}
                    {(c) (Lit_Other ':') (dragonegg)}
                    {(c) (Lit_Other ':') (llvm)}
                    {(c) (Lit_Other ':') (lto)}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cm)
                          op: Equal
                          rhs: {($ VSub_Name '$i')}
                          spids: [3428]
                        )
                      ]
                      spids: [3428]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:last)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [3432]
                        )
                      ]
                      spids: [3432]
                    )
                  ]
                  spids: [3410 3425 3435 16777215]
                )
                (case_arm
                  pat_list: [{(c) (Lit_Other ':') (Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name '$me') (": Unknown option -c '") ($ VSub_Name '$i') ("'!"))
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [3453]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [3438 3441 3462 16777215]
                )
                (case_arm
                  pat_list: [{(o) (Lit_Other ':') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:optflags)
                          op: Equal
                          rhs: {($ VSub_Name '$i')}
                          spids: [3471]
                        )
                      ]
                      spids: [3471]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:last)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [3475]
                        )
                      ]
                      spids: [3475]
                    )
                  ]
                  spids: [3465 3468 3478 16777215]
                )
                (case_arm
                  pat_list: [{(t) (Lit_Other ':') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tfn)
                          op: Equal
                          rhs: {($ VSub_Name '$i')}
                          spids: [3487]
                        )
                      ]
                      spids: [3487]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:last)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [3491]
                        )
                      ]
                      spids: [3491]
                    )
                  ]
                  spids: [3481 3484 3494 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-c)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(c)} spids:[3502])]
                      spids: [3502]
                    )
                  ]
                  spids: [3497 3499 3506 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-G)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$me') (": Do not call me with '-G'!"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [3521]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [3509 3511 3530 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-g)}]
                  action: [
                    (C {(add_cppflags)} {(-DDEBUG)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CFLAGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$CFLAGS') (' -g3 -fno-builtin'))}
                          spids: [3547]
                        )
                      ]
                      spids: [3547]
                    )
                  ]
                  spids: [3533 3535 3554 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-j)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:pm) op:Equal rhs:{(1)} spids:[3562])]
                      spids: [3562]
                    )
                  ]
                  spids: [3557 3559 3566 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-L)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:legacy) op:Equal rhs:{(1)} spids:[3574])]
                      spids: [3574]
                    )
                  ]
                  spids: [3569 3571 3578 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (Lit_Other '+') (L)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:legacy) op:Equal rhs:{(0)} spids:[3587])]
                      spids: [3587]
                    )
                  ]
                  spids: [3581 3584 3591 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-M)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cm)
                          op: Equal
                          rhs: {(makefile)}
                          spids: [3599]
                        )
                      ]
                      spids: [3599]
                    )
                  ]
                  spids: [3594 3596 3603 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-O)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:optflags)
                          op: Equal
                          rhs: {(-std-compile-opts)}
                          spids: [3611]
                        )
                      ]
                      spids: [3611]
                    )
                  ]
                  spids: [3606 3608 3615 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-o)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(o)} spids:[3623])]
                      spids: [3623]
                    )
                  ]
                  spids: [3618 3620 3627 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-Q)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:eq) op:Equal rhs:{(1)} spids:[3635])]
                      spids: [3635]
                    )
                  ]
                  spids: [3630 3632 3639 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-r)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{(1)} spids:[3647])]
                      spids: [3647]
                    )
                  ]
                  spids: [3642 3644 3651 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-t)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(t)} spids:[3659])]
                      spids: [3659]
                    )
                  ]
                  spids: [3654 3656 3663 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (-v)}]
                  action: [
                    (C {(echo)} {(DQ ('Build.sh ') ($ VSub_Name '$srcversion'))})
                    (C {(echo)} {(DQ ('for mksh ') ($ VSub_Name '$dstversion'))})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
                  ]
                  spids: [3666 3668 3692 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other ':') (Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(DQ ($ VSub_Name '$me') (": Unknown option '") ($ VSub_Name '$i') ("'!"))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [3709]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [3695 3697 3718 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name '$me') (": Unknown option -'") ($ VSub_Name '$last') ("' '") 
                            ($ VSub_Name '$i') ("'!")
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [3736]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [3721 3722 3745 16777215]
                )
              ]
              spids: [3401 3407 3748]
            )
          ]
          spids: [3398 3750]
        )
      spids: [16777215 16777215]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$last'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ($ VSub_Name '$me') (": Option -'") ($ VSub_Name '$last') 
                    ("' not followed by argument!")
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[3775])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 3763]
        )
      ]
      spids: [16777215 3783]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$tfn'))})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(test)} {($ VSub_Name '$legacy')} {(Lit_Other '=')} {(0)})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:tfn) op:Equal rhs:{(mksh)} spids:[3810])]
                  spids: [3810]
                )
              ]
              spids: [16777215 3807]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:tfn) op:Equal rhs:{(lksh)} spids:[3816])]
              spids: [3816]
            )
          ]
          spids: [3813 3819]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(-d)} {($ VSub_Name '$tfn')})
                    (C {(test)} {(-d)} {($ VSub_Name '$tfn') (.exe)})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ($ VSub_Name '$me') (': Error: ./') ($ VSub_Name '$tfn') (' is a directory!'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[3851])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 3839]
        )
      ]
      spids: [16777215 3859]
    )
    (C {(rmf)} {(a.exe) (Lit_Other '*')} {(a.out) (Lit_Other '*')} {(conftest.c)} 
      {(conftest.exe) (Lit_Other '*')} {(Lit_Other '*') (core)} {(core.) (Lit_Other '*')} {(${ VSub_Name tfn) (Lit_Other '*')} 
      {(Lit_Other '*') (.bc)} {(Lit_Other '*') (.dbg)} {(Lit_Other '*') (.ll)} {(Lit_Other '*') (.o)} {(Lit_Other '*') (.gen)} 
      {(Rebuild.sh)} {(lft)} {(no)} {(signames.inc)} {(test.sh)} {(x)} {(vv.out)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SRCS)
          op: Equal
          rhs: {(DQ ('lalloc.c eval.c exec.c expr.c funcs.c histrap.c jobs.c'))}
          spids: [3917]
        )
      ]
      spids: [3917]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SRCS)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$SRCS') (' lex.c main.c misc.c shf.c syn.c tree.c var.c'))}
          spids: [3922]
        )
      ]
      spids: [3922]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$legacy')} {(Lit_Other '=')} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SRCS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$SRCS') (' edit.c'))}
                  spids: [3943]
                )
              ]
              spids: [3943]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$check_categories') (' shell:legacy-no int:32'))}
                  spids: [3950]
                )
              ]
              spids: [3950]
            )
          ]
          spids: [16777215 3940]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' shell:legacy-yes'))}
              spids: [3959]
            )
          ]
          spids: [3959]
        )
        (C {(add_cppflags)} {(-DMKSH_LEGACY_MODE)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:HAVE_PERSISTENT_HISTORY)
              op: Equal
              rhs: {(0)}
              spids: [3971]
            )
          ]
          spids: [3971]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:HAVE_ISSET_MKSH_CONSERVATIVE_FDS)
              op: Equal
              rhs: {(1)}
              spids: [3975]
            )
          ]
          spids: [3975]
        )
      ]
      spids: [3956 3981]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(x) (DQ ($ VSub_Name '$srcdir'))} {(Lit_Other '=')} {(x) (DQ (.))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPPFLAGS)
                  op: Equal
                  rhs: {(DQ ('-I. ') ($ VSub_Name '$CPPFLAGS'))}
                  spids: [4004]
                )
              ]
              spids: [4004]
            )
          ]
          spids: [16777215 4001]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:CPPFLAGS)
              op: Equal
              rhs: {(DQ ("-I. -I'") ($ VSub_Name '$srcdir') ("' ") ($ VSub_Name '$CPPFLAGS'))}
              spids: [4013]
            )
          ]
          spids: [4013]
        )
      ]
      spids: [4010 4021]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LDSTATIC'))})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LDFLAGS'))})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:LDFLAGS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$LDSTATIC'))}
                      spids: [4047]
                    )
                  ]
                  spids: [4047]
                )
              ]
              spids: [16777215 4044]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LDFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name '$LDSTATIC')}
                  spids: [4057]
                )
              ]
              spids: [4057]
            )
          ]
          spids: [4054 4060]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$TARGET_OS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:x)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                ops: [Op_DPipe]
                                children: [
                                  (SimpleCommand
                                    words: [{(uname)} {(-s)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [4083]
                                      )
                                    ]
                                  )
                                  (C {(uname)})
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [4078 4089]
                      )
                    }
                  spids: [4077]
                )
              ]
              spids: [4077]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$x'))} {(Lit_Other '=')} 
                  {(x) 
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(uname)} {(-n)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [4108]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [4103 4110]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OS)
                      op: Equal
                      rhs: {($ VSub_Name '$x')}
                      spids: [4115]
                    )
                  ]
                  spids: [4115]
                )
              ]
            )
          ]
          spids: [16777215 4074]
        )
      ]
      spids: [16777215 4118]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$TARGET_OS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name '$me') (': Set TARGET_OS, your uname is broken!'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[4141])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 4131]
        )
      ]
      spids: [16777215 4149]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:oswarn) op:Equal rhs:{(EmptyPart)} spids:[4151])]
      spids: [4151]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ccpc) op:Equal rhs:{(-Wc) (Lit_Comma ',')} spids:[4153])]
      spids: [4153]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(-Wl) (Lit_Comma ',')} spids:[4157])]
      spids: [4157]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tsts) op:Equal rhs:{(EmptyPart)} spids:[4161])]
      spids: [4161]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ccpr)
          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'
                >
              )
            }
          spids: [4163]
        )
      ]
      spids: [4163]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OS'))} {(Lit_Other '=')} {(x) (DQ (Android))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$check_categories') (' android'))}
                  spids: [4192]
                )
              ]
              spids: [4192]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGET_OS) op:Equal rhs:{(Linux)} spids:[4199])]
              spids: [4199]
            )
          ]
          spids: [16777215 4189]
        )
      ]
      spids: [16777215 4202]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OS'))} {(Lit_Other '=')} {(x) (DQ (Minix))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[4230])]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(conftest.c)}
                  spids: [4242]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('#include <sys/types.h>\n') ('const char *\n') ('#ifdef _NETBSD_SOURCE\n') 
                      ('ct="Ninix3"\n') ('#else\n') ('ct="Minix3"\n') ('#endif\n') (';\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [4245]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(unknown)} spids:[4251])]
              spids: [4251]
            )
            (C {(vv)} {(SQ <']'>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(cc)})
                    spids: [4262 4266]
                  ) (' -E ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') 
                  (' conftest.c | grep ct= | tr -d ') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
                  ('015 >x')
                )
              }
            )
            (C {(sed)} {(SQ <'s/^/[ /'>)} {(x)})
            (C {(eval)} 
              {
                (CommandSubPart
                  command_list: (CommandList children:[(C {(cat)} {(x)})])
                  left_token: <Left_Backtick '`'>
                  spids: [4291 4295]
                )
              }
            )
            (C {(rmf)} {(x)} {(vv.out)})
            (Case
              to_match: {($ VSub_Name '$ct')}
              arms: [
                (case_arm
                  pat_list: [{(Minix3)} {(Ninix3)}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('\n') ('Warning: you set TARGET_OS to ') ($ VSub_Name '$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: ') 
                            ($ VSub_Name '$ct') ('\n')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [4320]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGET_OS)
                          op: Equal
                          rhs: {($ VSub_Name '$ct')}
                          spids: [4337]
                        )
                      ]
                      spids: [4337]
                    )
                  ]
                  spids: [4312 4315 4341 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('\n') ('Warning: you set TARGET_OS to ') ($ VSub_Name '$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
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [4350]
                        )
                      ]
                    )
                  ]
                  spids: [4344 4345 4364 16777215]
                )
              ]
              spids: [4305 4309 4367]
            )
          ]
          spids: [16777215 4225]
        )
      ]
      spids: [16777215 4369]
    )
    (Case
      to_match: {($ VSub_Name '$TARGET_OS')}
      arms: [
        (case_arm
          pat_list: [{(NEXTSTEP)}]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OSREV'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OSREV)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (SimpleCommand
                                        words: [{(hostinfo)}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_GreatAnd
                                            fd: 2
                                            arg_word: {(1)}
                                            spids: [4404]
                                          )
                                        ]
                                      )
                                      (C {(grep)} {(SQ <'NeXT Mach [0-9][0-9.]*:'>)})
                                      (C {(sed)} {(SQ <'s/^.*NeXT Mach \\([0-9][0-9.]*\\):.*$/\\1/'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [4401 4426]
                          )
                        }
                      spids: [4400]
                    )
                  ]
                  spids: [4400]
                )
              ]
            )
          ]
          spids: [4381 4382 4429 16777215]
        )
        (case_arm
          pat_list: [{(QNX)} {(SCO_SV)}]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OSREV'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OSREV)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(uname)} {(-r)})])
                            left_token: <Left_Backtick '`'>
                            spids: [4453 4457]
                          )
                        }
                      spids: [4452]
                    )
                  ]
                  spids: [4452]
                )
              ]
            )
          ]
          spids: [4431 4434 4460 16777215]
        )
      ]
      spids: [4375 4379 4462]
    )
    (Case
      to_match: {($ VSub_Name '$TARGET_OS')}
      arms: [
        (case_arm
          pat_list: [{(386BSD)}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_CAN_OTWO>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4481 4485]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_NO_SIGSETJMP)})
            (C {(add_cppflags)} {(-DMKSH_TYPEDEF_SIG_ATOMIC_T) (Lit_Other '=') (int)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
          ]
          spids: [4474 4475 4506 16777215]
        )
        (case_arm
          pat_list: [{(AIX)}]
          action: [
            (C {(add_cppflags)} {(-D_ALL_SOURCE)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4520 4524]
                  )
                )
              }
            )
          ]
          spids: [4508 4509 4528 16777215]
        )
        (case_arm
          pat_list: [{(BeOS)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$KSH_VERSION')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (MIRBSD) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (KSH) 
                      (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: {(DQ ('; it has minor issues'))}
                          spids: [4549]
                        )
                      ]
                      spids: [4549]
                    )
                  ]
                  spids: [4541 4546 4555 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: {(DQ ('; you must recompile mksh with'))}
                          spids: [4562]
                        )
                      ]
                      spids: [4562]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$oswarn') (${ VSub_Name nl) 
                                ('itself in a second stage')
                              )
                            }
                          spids: [4568]
                        )
                      ]
                      spids: [4568]
                    )
                  ]
                  spids: [4558 4559 4578 16777215]
                )
              ]
              spids: [4534 4538 4581]
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_DISABLE_TTY_WARNING)})
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
          ]
          spids: [4530 4531 4607 16777215]
        )
        (case_arm
          pat_list: [{(BSD/OS)}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4616 4620]
                  )
                )
              }
            )
          ]
          spids: [4609 4610 4624 16777215]
        )
        (case_arm
          pat_list: [{(Coherent)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it has major issues'))}
                  spids: [4630]
                )
              ]
              spids: [4630]
            )
            (C {(add_cppflags)} {(-DMKSH__NO_SYMLINK)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$check_categories') (' nosymlink'))}
                  spids: [4641]
                )
              ]
              spids: [4641]
            )
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(add_cppflags)} {(-DMKSH_DISABLE_TTY_WARNING)})
          ]
          spids: [4626 4627 4663 16777215]
        )
        (case_arm
          pat_list: [{(CYGWIN) (Lit_Other '*')}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4673 4677]
                  )
                )
              }
            )
          ]
          spids: [4665 4667 4681 16777215]
        )
        (case_arm
          pat_list: [{(Darwin)}]
          action: [(C {(add_cppflags)} {(-D_DARWIN_C_SOURCE)})]
          spids: [4683 4684 4692 16777215]
        )
        (case_arm pat_list:[{(DragonFly)}] spids:[4694 4695 4698 16777215])
        (case_arm pat_list:[{(FreeBSD)}] spids:[4700 4701 4704 16777215])
        (case_arm
          pat_list: [{(FreeMiNT)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it has minor issues'))}
                  spids: [4710]
                )
              ]
              spids: [4710]
            )
            (C {(add_cppflags)} {(-D_GNU_SOURCE)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4729 4733]
                  )
                )
              }
            )
          ]
          spids: [4706 4707 4737 16777215]
        )
        (case_arm
          pat_list: [{(GNU)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$CC')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (tendracc) (Lit_Other '*')}]
                  spids: [4750 4753 4755 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4758 4759 4765 16777215]
                )
              ]
              spids: [4743 4747 4768]
            )
            (C {(add_cppflags)} {(-DSETUID_CAN_FAIL_WITH_EAGAIN)})
            (C {(add_cppflags)} {(-DMKSH__NO_PATH_MAX)})
          ]
          spids: [4739 4740 4785 16777215]
        )
        (case_arm
          pat_list: [{(GNU/kFreeBSD)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$CC')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (tendracc) (Lit_Other '*')}]
                  spids: [4798 4801 4803 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4806 4807 4813 16777215]
                )
              ]
              spids: [4791 4795 4816]
            )
            (C {(add_cppflags)} {(-DSETUID_CAN_FAIL_WITH_EAGAIN)})
          ]
          spids: [4787 4788 4824 16777215]
        )
        (case_arm
          pat_list: [{(Haiku)}]
          action: [
            (Sentence
              child: (C {(add_cppflags)} {(-DMKSH_ASSUME_UTF8)})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_ISSET_MKSH_ASSUME_UTF8)
                  op: Equal
                  rhs: {(1)}
                  spids: [4835]
                )
              ]
              spids: [4835]
            )
          ]
          spids: [4826 4827 4839 16777215]
        )
        (case_arm pat_list:[{(HP-UX)}] spids:[4841 4842 4845 16777215])
        (case_arm
          pat_list: [{(Interix)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpc) op:Equal rhs:{(SQ <'-X '>)} spids:[4851])]
              spids: [4851]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(SQ <'-Y '>)} spids:[4857])]
              spids: [4857]
            )
            (C {(add_cppflags)} {(-D_ALL_SOURCE)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name LIBS>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(-lcrypt)})
                    spids: [4871 4875]
                  )
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4882 4886]
                  )
                )
              }
            )
          ]
          spids: [4847 4848 4890 16777215]
        )
        (case_arm
          pat_list: [{(IRIX) (Lit_Other '*')}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4900 4904]
                  )
                )
              }
            )
          ]
          spids: [4892 4894 4908 16777215]
        )
        (case_arm
          pat_list: [{(Linux)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$CC')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (tendracc) (Lit_Other '*')}]
                  spids: [4921 4924 4926 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4929 4930 4936 16777215]
                )
              ]
              spids: [4914 4918 4939]
            )
            (C {(add_cppflags)} {(-DSETUID_CAN_FAIL_WITH_EAGAIN)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_REVOKE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4950 4954]
                  )
                )
              }
            )
          ]
          spids: [4910 4911 4958 16777215]
        )
        (case_arm
          pat_list: [{(LynxOS)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it has minor issues'))}
                  spids: [4964]
                )
              ]
              spids: [4964]
            )
          ]
          spids: [4960 4961 4970 16777215]
        )
        (case_arm pat_list:[{(MidnightBSD)}] spids:[4972 4973 4976 16777215])
        (case_arm
          pat_list: [{(Minix-vmd)}]
          action: [
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(add_cppflags)} {(-D_MINIX_SOURCE)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oldish_ed)
                  op: Equal
                  rhs: {(no-stderr-ed)}
                  spids: [5002]
                )
              ]
              spids: [5002]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5012 5016]
                  )
                )
              }
            )
          ]
          spids: [4978 4979 5020 16777215]
        )
        (case_arm
          pat_list: [{(Minix3)}]
          action: [
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(add_cppflags)} {(-DMKSH_NO_LIMITS)})
            (C {(add_cppflags)} {(-D_POSIX_SOURCE)} {(-D_POSIX_1_SOURCE) (Lit_Other '=') (2)} 
              {(-D_MINIX)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oldish_ed)
                  op: Equal
                  rhs: {(no-stderr-ed)}
                  spids: [5052]
                )
              ]
              spids: [5052]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5062 5066]
                  )
                )
              }
            )
          ]
          spids: [5022 5023 5070 16777215]
        )
        (case_arm pat_list:[{(MirBSD)}] spids:[5072 5073 5076 16777215])
        (case_arm
          pat_list: [{(MSYS_) (Lit_Other '*')}]
          action: [
            (Sentence
              child: (C {(add_cppflags)} {(-DMKSH_ASSUME_UTF8) (Lit_Other '=') (0)})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_ISSET_MKSH_ASSUME_UTF8)
                  op: Equal
                  rhs: {(1)}
                  spids: [5090]
                )
              ]
              spids: [5090]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5101 5105]
                  )
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_STDINT_H>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5116 5120]
                  )
                )
              }
            )
          ]
          spids: [5078 5080 5124 16777215]
        )
        (case_arm pat_list:[{(NetBSD)}] spids:[5126 5127 5130 16777215])
        (case_arm
          pat_list: [{(NEXTSTEP)}]
          action: [
            (C {(add_cppflags)} {(-D_NEXT_SOURCE)})
            (C {(add_cppflags)} {(-D_POSIX_SOURCE)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name AWK>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(gawk)})
                    spids: [5149 5153]
                  )
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{('cc -posix')})
                    spids: [5160 5164]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_NO_SIGSETJMP)})
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (Case
              to_match: {($ VSub_Name '$TARGET_OSREV')}
              arms: [
                (case_arm
                  pat_list: [{(4.2) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: {(DQ ('; it needs libposix.a'))}
                          spids: [5198]
                        )
                      ]
                      spids: [5198]
                    )
                  ]
                  spids: [5189 5191 5204 16777215]
                )
              ]
              spids: [5182 5186 5207]
            )
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
          ]
          spids: [5132 5133 5215 16777215]
        )
        (case_arm
          pat_list: [{(Ninix3)}]
          action: [
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(add_cppflags)} {(-DMKSH_NO_LIMITS)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it has unknown issues'))}
                  spids: [5244]
                )
              ]
              spids: [5244]
            )
          ]
          spids: [5217 5218 5250 16777215]
        )
        (case_arm
          pat_list: [{(OpenBSD)}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5259 5263]
                  )
                )
              }
            )
          ]
          spids: [5252 5253 5267 16777215]
        )
        (case_arm
          pat_list: [{(OS/2)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_TERMIOS_H) op:Equal rhs:{(0)} spids:[5273])]
              spids: [5273]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_MKNOD) op:Equal rhs:{(0)} spids:[5277])]
              spids: [5277]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it is currently being ported'))}
                  spids: [5284]
                )
              ]
              spids: [5284]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$check_categories') (' nosymlink'))}
                  spids: [5290]
                )
              ]
              spids: [5290]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(gcc)})
                    spids: [5300 5304]
                  )
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name SIZE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(': size')})
                    spids: [5311 5315]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_NOPROSPECTOFWORK)})
          ]
          spids: [5269 5270 5329 16777215]
        )
        (case_arm
          pat_list: [{(OSF1)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_SIG_T) op:Equal rhs:{(0)} spids:[5335])]
              spids: [5335]
            )
            (C {(add_cppflags)} {(-D_OSF_SOURCE)})
            (C {(add_cppflags)} {(-D_POSIX_C_SOURCE) (Lit_Other '=') (200112L)})
            (C {(add_cppflags)} {(-D_XOPEN_SOURCE) (Lit_Other '=') (600)})
            (C {(add_cppflags)} {(-D_XOPEN_SOURCE_EXTENDED)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5369 5373]
                  )
                )
              }
            )
          ]
          spids: [5331 5332 5377 16777215]
        )
        (case_arm
          pat_list: [{(Plan9)}]
          action: [
            (C {(add_cppflags)} {(-D_POSIX_SOURCE)})
            (C {(add_cppflags)} {(-D_LIMITS_EXTENSION)})
            (C {(add_cppflags)} {(-D_BSD_EXTENSION)})
            (C {(add_cppflags)} {(-D_SUSV2_SOURCE)})
            (Sentence
              child: (C {(add_cppflags)} {(-DMKSH_ASSUME_UTF8)})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_ISSET_MKSH_ASSUME_UTF8)
                  op: Equal
                  rhs: {(1)}
                  spids: [5408]
                )
              ]
              spids: [5408]
            )
            (C {(add_cppflags)} {(-DMKSH_NO_CMDLINE_EDITING)})
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <' and will currently not work'>)}
                  spids: [5422]
                )
              ]
              spids: [5422]
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_MAYBE_KENCC)})
          ]
          spids: [5379 5380 5442 16777215]
        )
        (case_arm
          pat_list: [{(PW32) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_SIG_T) op:Equal rhs:{(0)} spids:[5449])]
              spids: [5449]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <' and will currently not work'>)}
                  spids: [5456]
                )
              ]
              spids: [5456]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5465 5469]
                  )
                )
              }
            )
          ]
          spids: [5444 5446 5473 16777215]
        )
        (case_arm
          pat_list: [{(QNX)}]
          action: [
            (C {(add_cppflags)} {(-D__NO_EXT_QNX)})
            (C {(add_cppflags)} {(-D__EXT_UNIX_MISC)})
            (Case
              to_match: {($ VSub_Name '$TARGET_OSREV')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (012345) (Lit_Other ']') (.) (Lit_Other '*')}
                    {(6.) (Lit_Other '[') (0123) (Lit_Other ']') (.) (Lit_Other '*')}
                    {(6.4.) (Lit_Other '[') (01) (Lit_Other ']')}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oldish_ed)
                          op: Equal
                          rhs: {(no-stderr-ed)}
                          spids: [5516]
                        )
                      ]
                      spids: [5516]
                    )
                  ]
                  spids: [5496 5513 5523 16777215]
                )
              ]
              spids: [5489 5493 5526]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5532 5536]
                  )
                )
              }
            )
          ]
          spids: [5475 5476 5540 16777215]
        )
        (case_arm
          pat_list: [{(SCO_SV)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$TARGET_OSREV')}
              arms: [
                (case_arm
                  pat_list: [{(3.2) (Lit_Other '*')}]
                  action: [(C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})]
                  spids: [5553 5555 5567 16777215]
                )
                (case_arm
                  pat_list: [{(5) (Lit_Other '*')}]
                  spids: [5570 5572 5579 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: {(SQ <'; this is an unknown version of'>)}
                          spids: [5586]
                        )
                      ]
                      spids: [5586]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oswarn)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$oswarn') ($ VSub_Name '$nl') 
                                ($ VSub_Name '$TARGET_OS') (' ') (${ VSub_Name TARGET_OSREV) (', please tell me what to do')
                              )
                            }
                          spids: [5592]
                        )
                      ]
                      spids: [5592]
                    )
                  ]
                  spids: [5582 5583 5605 16777215]
                )
              ]
              spids: [5546 5550 5608]
            )
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5619 5623]
                  ) 
                  (BracedVarSub
                    token: <VSub_Name HAVE__SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5624 5628]
                  )
                )
              }
            )
          ]
          spids: [5542 5543 5632 16777215]
        )
        (case_arm
          pat_list: [{(skyos)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it has minor issues'))}
                  spids: [5638]
                )
              ]
              spids: [5638]
            )
          ]
          spids: [5634 5635 5644 16777215]
        )
        (case_arm
          pat_list: [{(SunOS)}]
          action: [(C {(add_cppflags)} {(-D_BSD_SOURCE)}) (C {(add_cppflags)} {(-D__EXTENSIONS__)})]
          spids: [5646 5647 5660 16777215]
        )
        (case_arm
          pat_list: [{(syllable)}]
          action: [
            (C {(add_cppflags)} {(-D_GNU_SOURCE)})
            (C {(add_cppflags)} {(-DMKSH_NO_SIGSUSPEND)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <' and will currently not work'>)}
                  spids: [5676]
                )
              ]
              spids: [5676]
            )
          ]
          spids: [5662 5663 5682 16777215]
        )
        (case_arm
          pat_list: [{(ULTRIX)}]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{('cc -YPOSIX')})
                    spids: [5691 5695]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_TYPEDEF_SSIZE_T) (Lit_Other '=') (int)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5714 5718]
                  )
                )
              }
            )
          ]
          spids: [5684 5685 5722 16777215]
        )
        (case_arm
          pat_list: [{(UnixWare)} {(UNIX_SV)}]
          action: [
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5742 5746]
                  ) 
                  (BracedVarSub
                    token: <VSub_Name HAVE__SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5747 5751]
                  )
                )
              }
            )
          ]
          spids: [5724 5727 5755 16777215]
        )
        (case_arm
          pat_list: [{(UWIN) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpc) op:Equal rhs:{(SQ <'-Yc,'>)} spids:[5762])]
              spids: [5762]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(SQ <'-Yl,'>)} spids:[5768])]
              spids: [5768]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tsts)
                  op: Equal
                  rhs: {(DQ (' 3<>/dev/tty'))}
                  spids: [5774]
                )
              ]
              spids: [5774]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ('; it will compile, but the target'))}
                  spids: [5780]
                )
              ]
              spids: [5780]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$oswarn') (${ VSub_Name nl) 
                        ('platform itself is very flakey/unreliable')
                      )
                    }
                  spids: [5786]
                )
              ]
              spids: [5786]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5799 5803]
                  )
                )
              }
            )
          ]
          spids: [5757 5759 5807 16777215]
        )
        (case_arm
          pat_list: [{(_svr4)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <'; it may or may not work'>)}
                  spids: [5821]
                )
              ]
              spids: [5821]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OSREV'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OSREV)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(uname)} {(-r)})])
                            left_token: <Left_Backtick '`'>
                            spids: [5843 5847]
                          )
                        }
                      spids: [5842]
                    )
                  ]
                  spids: [5842]
                )
              ]
            )
          ]
          spids: [5809 5810 5850 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <'; it may or may not work'>)}
                  spids: [5856]
                )
              ]
              spids: [5856]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$TARGET_OSREV'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OSREV)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(uname)} {(-r)})])
                            left_token: <Left_Backtick '`'>
                            spids: [5878 5882]
                          )
                        }
                      spids: [5877]
                    )
                  ]
                  spids: [5877]
                )
              ]
            )
          ]
          spids: [5852 5853 5885 16777215]
        )
      ]
      spids: [4468 4472 5887]
    )
    (C {(Lit_Other ':')} 
      {
        (DQ 
          (BracedVarSub
            token: <VSub_Name HAVE_MKNOD>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
            spids: [5893 5897]
          )
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (DQ 
          (BracedVarSub
            token: <VSub_Name AWK>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(awk)})
            spids: [5904 5908]
          ) 
          (BracedVarSub
            token: <VSub_Name CC>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(cc)})
            spids: [5909 5913]
          ) 
          (BracedVarSub
            token: <VSub_Name NROFF>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(nroff)})
            spids: [5914 5918]
          ) 
          (BracedVarSub
            token: <VSub_Name SIZE>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(size)})
            spids: [5919 5923]
          )
        )
      }
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp Op_DAmp]
      children: [
        (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$r')})
        (Pipeline
          children: [
            (C {(echo)})
            (SimpleCommand
              words: [{($ VSub_Name '$NROFF')} {(-v)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5944])]
            )
            (SimpleCommand
              words: [{(grep)} {(GNU)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [5953]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5956])
              ]
            )
          ]
          negated: F
        )
        (Pipeline
          children: [
            (C {(echo)})
            (SimpleCommand
              words: [{($ VSub_Name '$NROFF')} {(-c)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [5971]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5974])
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:NROFF)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$NROFF') (' -c'))}
              spids: [5979]
            )
          ]
          spids: [5979]
        )
      ]
    )
    (C {($ VSub_Name '$e')} 
      {
        (DQ ('Hi from') ($ VSub_Name '$ao') (' ') ($ VSub_Name '$bi') ($ VSub_Name '$srcversion') 
          ($ VSub_Name '$ao') (' on:')
        )
      }
    )
    (Case
      to_match: {($ VSub_Name '$TARGET_OS')}
      arms: [
        (case_arm
          pat_list: [{(AIX)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} {(DQ ('oslevel >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})
          ]
          spids: [6007 6008 6033 16777215]
        )
        (case_arm
          pat_list: [{(Darwin)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} {(DQ ('hwprefs machine_type os_type os_class >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('sw_vers >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('system_profiler SPSoftwareDataType SPHardwareDataType >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('/bin/sh --version >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('xcodebuild -version >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ 
                  (
'sysctl kern.version hw.machine hw.model hw.memsize hw.availcpu hw.cpufrequency hw.byteorder hw.cpu64bit_capable >&2'
                  )
                )
              }
            )
          ]
          spids: [6035 6036 6116 16777215]
        )
        (case_arm
          pat_list: [{(IRIX) (Lit_Other '*')}]
          action: [
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('hinv -v >&2'))})
          ]
          spids: [6118 6120 6145 16777215]
        )
        (case_arm
          pat_list: [{(OSF1)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('/usr/sbin/sizer -v >&2'))})
          ]
          spids: [6147 6148 6173 16777215]
        )
        (case_arm
          pat_list: [{(SCO_SV)} {(UnixWare)} {(UNIX_SV)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})
            (C {(vv)} {(SQ <'|'>)} {(DQ ('uname -X >&2'))})
          ]
          spids: [6175 6180 6205 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(C {(vv)} {(SQ <'|'>)} {(DQ ('uname -a >&2'))})]
          spids: [6207 6208 6222 16777215]
        )
      ]
      spids: [6001 6005 6224]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$oswarn'))})
        (SimpleCommand
          words: [
            {(echo)}
            {
              (DQ ('\n') ('Warning: mksh has not yet been ported to or tested on your\n') 
                ("operating system '") ($ VSub_Name '$TARGET_OS') ("'") ($ VSub_Name '$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 fd:16777215 arg_word:{(2)} spids:[6238])]
        )
      ]
    )
    (C {($ VSub_Name '$e')} 
      {
        (DQ ($ VSub_Name '$bi') ($ VSub_Name '$me') (': Building the MirBSD Korn Shell') 
          ($ VSub_Name '$ao') (' ') ($ VSub_Name '$ui') ($ VSub_Name '$dstversion') ($ VSub_Name '$ao') (' on ') 
          ($ VSub_Name '$TARGET_OS') (' ') (${ VSub_Name TARGET_OSREV) (...)
        )
      }
    )
    (C {($ VSub_Name '$e')} {($ VSub_Name '$bi') ($ VSub_Name '$me') (Lit_Other ':')} {(Scanning)} 
      {(KW_For for)} {(functions...)} {(please)} {(ignore)} {(any)} {(errors.) ($ VSub_Name '$ao')}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CPP)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$CC') (' -E'))}
          spids: [6329]
        )
      ]
      spids: [6329]
    )
    (C {($ VSub_Name '$e')} {(...)} {(which)} {(compiler)} {(seems)} {(to)} {(be)} {(used)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(conftest.c)} spids:[6353])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [6356]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(untested)} spids:[6361])]
      spids: [6361]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:et) op:Equal rhs:{(untested)} spids:[6364])]
      spids: [6364]
    )
    (C {(vv)} {(SQ <']'>)} 
      {
        (DQ ($ VSub_Name '$CPP') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') (' ') 
          ($ VSub_Name '$NOWARN') (' conftest.c | ') ("    sed -n '/^ *[ce]t *= */s/^ *") (Lit_Other '\\') ('([ce]t') (Lit_Other '\\') 
          (') *= */') (Lit_Other '\\') ("1=/p' | tr -d ") (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('015 >x')
        )
      }
    )
    (C {(sed)} {(SQ <'s/^/[ /'>)} {(x)})
    (C {(eval)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(cat)} {(x)})])
          left_token: <Left_Backtick '`'>
          spids: [6405 6409]
        )
      }
    )
    (C {(rmf)} {(x)} {(vv.out)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(conftest.c)} spids:[6419])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: {('#include <unistd.h>\n') ('int main(void) { return (isatty(0)); }\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [6422]
        )
      ]
    )
    (Case
      to_match: {($ VSub_Name '$ct')}
      arms: [
        (case_arm
          pat_list: [{(ack)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPPFLAGS)
                  op: Equal
                  rhs: {(DQ ('-Dconst= ') ($ VSub_Name '$CPPFLAGS'))}
                  spids: [6441]
                )
              ]
              spids: [6441]
            )
          ]
          spids: [6433 6434 6448 16777215]
        )
        (case_arm
          pat_list: [{(adsp)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[6456])]
            )
          ]
          spids: [6450 6451 6467 16777215]
        )
        (case_arm
          pat_list: [{(bcc)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[6475])]
            )
          ]
          spids: [6469 6470 6485 16777215]
        )
        (case_arm
          pat_list: [{(clang)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -version')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CLANG>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(clang)})
                    spids: [6528 6532]
                  ) (' -version')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CLANG>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(clang)})
                    spids: [6544 6548]
                  ) (' --version')
                )
              }
            )
            (Case
              to_match: {($ VSub_Name '$CCC_CC') (Lit_Other ':') ($ VSub_Name '$CCC_LD')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other ':') (Lit_Other '*')}]
                  spids: [6566 6568 6570 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (Lit_Other ':')}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:CCC_LD)
                              op: Equal
                              rhs: {($ VSub_Name '$CCC_CC')}
                              spids: [6577]
                            )
                          ]
                          spids: [6577]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(export)} {(CCC_LD)})
                  ]
                  spids: [6573 6575 6585 16777215]
                )
              ]
              spids: [6557 6563 6588]
            )
          ]
          spids: [6487 6488 6591 16777215]
        )
        (case_arm
          pat_list: [{(dec)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -V')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -Wl,-V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [6593 6594 6640 16777215]
        )
        (case_arm
          pat_list: [{(dmc)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Warning: Digital Mars Compiler detected. When running under'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[6648])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    UWIN, mksh tends to be unstable due to the limitations'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[6658])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    of this platform. Continue at your own risk,'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[6668])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    please report success/failure to the developers.'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[6678])]
            )
          ]
          spids: [6642 6643 6686 16777215]
        )
        (case_arm
          pat_list: [{(gcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -v conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (SQ <'echo `$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS \\\n'> 
                  <'\t    -dumpmachine` gcc`$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN \\\n'> <'\t    $LIBS -dumpversion`'>
                )
              }
            )
          ]
          spids: [6688 6689 6726 16777215]
        )
        (case_arm
          pat_list: [{(hpcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [6728 6729 6753 16777215]
        )
        (case_arm
          pat_list: [{(iar)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[6761])]
            )
          ]
          spids: [6755 6756 6772 16777215]
        )
        (case_arm
          pat_list: [{(icc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -V')
                )
              }
            )
          ]
          spids: [6774 6775 6800 16777215]
        )
        (case_arm
          pat_list: [{(kencc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -v conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [6802 6803 6827 16777215]
        )
        (case_arm
          pat_list: [{(lcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -v conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
            (C {(add_cppflags)} {(-D__inline__) (Lit_Other '=') (__inline)})
          ]
          spids: [6829 6830 6861 16777215]
        )
        (case_arm
          pat_list: [{(metrowerks)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[6869])]
            )
          ]
          spids: [6863 6864 6879 16777215]
        )
        (case_arm
          pat_list: [{(mipspro)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -version')
                )
              }
            )
          ]
          spids: [6881 6882 6907 16777215]
        )
        (case_arm
          pat_list: [{(msc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpr) op:Equal rhs:{(EmptyPart)} spids:[6913])]
              spids: [6913]
            )
            (Case
              to_match: {($ VSub_Name '$TARGET_OS')}
              arms: [
                (case_arm
                  pat_list: [{(Interix)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$C89_COMPILER')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:C89_COMPILER)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(ntpath2posix)} {(-c)} 
                                                {(DQ ($ VSub_Name '$C89_COMPILER'))}
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [6945 6953]
                                      )
                                    }
                                  spids: [6944]
                                )
                              ]
                              spids: [6944]
                            )
                          ]
                          spids: [16777215 6941]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:C89_COMPILER)
                              op: Equal
                              rhs: {(CL.EXE)}
                              spids: [6959]
                            )
                          ]
                          spids: [6959]
                        )
                      ]
                      spids: [6956 6963]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$C89_LINKER')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:C89_LINKER)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(ntpath2posix)} {(-c)} 
                                                {(DQ ($ VSub_Name '$C89_LINKER'))}
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [6981 6989]
                                      )
                                    }
                                  spids: [6980]
                                )
                              ]
                              spids: [6980]
                            )
                          ]
                          spids: [16777215 6977]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:C89_LINKER)
                              op: Equal
                              rhs: {(LINK.EXE)}
                              spids: [6995]
                            )
                          ]
                          spids: [6995]
                        )
                      ]
                      spids: [6992 6999]
                    )
                    (C {(vv)} {(SQ <'|'>)} {(DQ ($ VSub_Name '$C89_COMPILER') (' /HELP >&2'))})
                    (C {(vv)} {(SQ <'|'>)} {(DQ ($ VSub_Name '$C89_LINKER') (' /LINK >&2'))})
                  ]
                  spids: [6926 6927 7026 16777215]
                )
              ]
              spids: [6919 6923 7029]
            )
          ]
          spids: [6909 6910 7032 16777215]
        )
        (case_arm
          pat_list: [{(nwcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -version')
                )
              }
            )
          ]
          spids: [7034 7035 7060 16777215]
        )
        (case_arm
          pat_list: [{(pcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -v')
                )
              }
            )
          ]
          spids: [7062 7063 7088 16777215]
        )
        (case_arm
          pat_list: [{(pgi)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[7096])]
            )
          ]
          spids: [7090 7091 7106 16777215]
        )
        (case_arm
          pat_list: [{(sdcc)}]
          action: [
            (SimpleCommand
              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 fd:16777215 arg_word:{(2)} spids:[7114])]
            )
          ]
          spids: [7108 7109 7125 16777215]
        )
        (case_arm
          pat_list: [{(sunpro)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [7127 7128 7152 16777215]
        )
        (case_arm
          pat_list: [{(tcc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -v')
                )
              }
            )
          ]
          spids: [7154 7155 7180 16777215]
        )
        (case_arm
          pat_list: [{(tendra)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -V 2>&1 | ') 
                  ('\t    grep -F -i -e version -e release')
                )
              }
            )
          ]
          spids: [7182 7183 7210 16777215]
        )
        (case_arm
          pat_list: [{(ucode)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -V')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -Wl,-V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [7212 7213 7259 16777215]
        )
        (case_arm
          pat_list: [{(uslc)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$TARGET_OS') (Lit_Other ':') ($ VSub_Name '$TARGET_OSREV')}
              arms: [
                (case_arm
                  pat_list: [{(SCO_SV) (Lit_Other ':') (3.2) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CFLAGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$CFLAGS') (' -g'))}
                          spids: [7285]
                        )
                      ]
                      spids: [7285]
                    )
                    (C {(Lit_Other ':')} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name HAVE_CAN_OTWO>
                            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                            spids: [7295 7299]
                          ) 
                          (BracedVarSub
                            token: <VSub_Name HAVE_CAN_OPTIMISE>
                            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                            spids: [7300 7304]
                          )
                        )
                      }
                    )
                  ]
                  spids: [7274 7278 7308 16777215]
                )
              ]
              spids: [7265 7271 7311]
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [7261 7262 7335 16777215]
        )
        (case_arm
          pat_list: [{(watcom)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -v conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [7337 7338 7362 16777215]
        )
        (case_arm
          pat_list: [{(xlc)}]
          action: [
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -qversion')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' ') ($ VSub_Name '$LIBS') (' -qversion=verbose')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} {(DQ ('ld -V'))})
          ]
          spids: [7364 7365 7423 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$ct'))} {(Lit_Other '=')} {(x) (DQ (untested))})
                (C {($ VSub_Name '$e')} {(DQ ('!!! detecting preprocessor failed'))})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(unknown)} spids:[7452])]
              spids: [7452]
            )
            (C {(vv)} {(DQ ($ VSub_Name '$CC') (' --version'))})
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -v conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
            (C {(vv)} {(SQ <'|'>)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -V conftest.c ') ($ VSub_Name '$LIBS')
                )
              }
            )
          ]
          spids: [7425 7426 7506 16777215]
        )
      ]
      spids: [6427 6431 7508]
    )
    (Case
      to_match: {($ VSub_Name '$cm')}
      arms: [
        (case_arm
          pat_list: [{(dragonegg)} {(llvm)}]
          action: [(C {(vv)} {(SQ <'|'>)} {(DQ ('llc -version'))})]
          spids: [7516 7519 7533 16777215]
        )
      ]
      spids: [7510 7514 7535]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:etd)
          op: Equal
          rhs: {(DQ (' on ') ($ VSub_Name '$et'))}
          spids: [7537]
        )
      ]
      spids: [7537]
    )
    (Case
      to_match: {($ VSub_Name '$et')}
      arms: [
        (case_arm
          pat_list: [{(klibc)}]
          action: [(C {(add_cppflags)} {(-DMKSH_NO_LIMITS)})]
          spids: [7549 7550 7558 16777215]
        )
        (case_arm
          pat_list: [{(unknown)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:etd) op:Equal rhs:{(EmptyPart)} spids:[7568])]
              spids: [7568]
            )
          ]
          spids: [7560 7561 7571 16777215]
        )
        (case_arm pat_list:[{(Lit_Other '*')}] spids:[7573 7574 7581 16777215])
      ]
      spids: [7543 7547 7583]
    )
    (C {($ VSub_Name '$e')} 
      {
        (DQ ($ VSub_Name '$bi') ('==> which compiler seems to be used...') ($ VSub_Name '$ao') (' ') 
          ($ VSub_Name '$ui') ($ VSub_Name '$ct') ($ VSub_Name '$etd') ($ VSub_Name '$ao')
        )
      }
    )
    (C {(rmf)} {(conftest.c)} {(conftest.o)} {(conftest)} {(a.out) (Lit_Other '*')} 
      {(a.exe) (Lit_Other '*')} {(conftest.exe) (Lit_Other '*')} {(vv.out)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:save_NOWARN)
          op: Equal
          rhs: {($ VSub_Name '$NOWARN')}
          spids: [7627]
        )
      ]
      spids: [7627]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:NOWARN) op:Equal rhs:{(EmptyPart)} spids:[7630])]
      spids: [7630]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(EmptyPart)} spids:[7632])]
      spids: [7632]
    )
    (C {(ac_flags)} {(0)} {(compiler_works)} {(SQ )} {(SQ <'if the compiler works'>)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_COMPILER_WORKS')})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:HAVE_COMPILER_KNOWN) op:Equal rhs:{(0)} spids:[7661])]
      spids: [7661]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(unknown)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:HAVE_COMPILER_KNOWN)
              op: Equal
              rhs: {(1)}
              spids: [7674]
            )
          ]
          spids: [7674]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(ac_ifcpp)} {(SQ <'if 0'>)} {(compiler_fails)} {(SQ )} 
                  {(SQ <'if the compiler does not fail correctly'>)}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_CFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name '$CFLAGS')}
                  spids: [7700]
                )
              ]
              spids: [7700]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_CAN_DELEXE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(x)})
                    spids: [7707 7711]
                  )
                )
              }
            )
            (Case
              to_match: {($ VSub_Name '$ct')}
              arms: [
                (case_arm
                  pat_list: [{(dec)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CFLAGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$CFLAGS') (' ') (${ VSub_Name ccpl) (-non_shared))}
                          spids: [7726]
                        )
                      ]
                      spids: [7726]
                    )
                    (SimpleCommand
                      words: [
                        {(ac_testn)}
                        {(can_delexe)}
                        {(compiler_fails)}
                        {(0)}
                        {(SQ <'for the -non_shared linker option'>)}
                      ]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLessDash
                          fd: 16777215
                          body: 
                            {
                              (DQ ('#include <unistd.h>\n') 
                                ('int main(void) { return (isatty(0)); }\n')
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: T
                          spids: [7749]
                        )
                      ]
                    )
                  ]
                  spids: [7722 7723 7756 16777215]
                )
                (case_arm
                  pat_list: [{(dmc)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CFLAGS)
                          op: Equal
                          rhs: 
                            {(DQ ($ VSub_Name '$CFLAGS') (' ') (${ VSub_Name ccpl) (/DELEXECUTABLE))}
                          spids: [7763]
                        )
                      ]
                      spids: [7763]
                    )
                    (SimpleCommand
                      words: [
                        {(ac_testn)}
                        {(can_delexe)}
                        {(compiler_fails)}
                        {(0)}
                        {(SQ <'for the /DELEXECUTABLE linker option'>)}
                      ]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLessDash
                          fd: 16777215
                          body: 
                            {
                              (DQ ('#include <unistd.h>\n') 
                                ('int main(void) { return (isatty(0)); }\n')
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: T
                          spids: [7786]
                        )
                      ]
                    )
                  ]
                  spids: [7759 7760 7793 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
                  spids: [7796 7797 7805 16777215]
                )
              ]
              spids: [7715 7719 7808]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_DELEXE')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CFLAGS)
                      op: Equal
                      rhs: {($ VSub_Name '$save_CFLAGS')}
                      spids: [7821]
                    )
                  ]
                  spids: [7821]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(compiler_still_fails)}
                {(SQ )}
                {(SQ <'if the compiler still does not fail correctly'>)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: {(DQ )}
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [7836]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_COMPILER_STILL_FAILS')})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
          ]
          spids: [16777215 7697]
        )
      ]
      spids: [16777215 7855]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(ac_ifcpp)} {(SQ <'ifdef __TINYC__'>)} {(couldbe_tcc)} {(SQ <'!'>)} {(compiler_known)} 
                  {(0)} {(SQ <'if this could be tcc'>)}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(tcc)} spids:[7885])]
              spids: [7885]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPP)
                  op: Equal
                  rhs: {(SQ <'cpp -D__TINYC__'>)}
                  spids: [7889]
                )
              ]
              spids: [7889]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_COMPILER_KNOWN)
                  op: Equal
                  rhs: {(1)}
                  spids: [7895]
                )
              ]
              spids: [7895]
            )
          ]
          spids: [16777215 7882]
        )
      ]
      spids: [16777215 7898]
    )
    (Case
      to_match: {($ VSub_Name '$ct')}
      arms: [
        (case_arm
          pat_list: [{(bcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (-w))}
                  spids: [7911]
                )
              ]
              spids: [7911]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) ('-w!'))}
                  spids: [7920]
                )
              ]
              spids: [7920]
            )
          ]
          spids: [7907 7908 7929 16777215]
        )
        (case_arm pat_list:[{(dec)}] spids:[7931 7932 7939 16777215])
        (case_arm
          pat_list: [{(dmc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (-w))}
                  spids: [7945]
                )
              ]
              spids: [7945]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (-wx))}
                  spids: [7954]
                )
              ]
              spids: [7954]
            )
          ]
          spids: [7941 7942 7963 16777215]
        )
        (case_arm
          pat_list: [{(hpcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [7969]
                )
              ]
              spids: [7969]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(Lit_Other '+') (We)}
                  spids: [7972]
                )
              ]
              spids: [7972]
            )
          ]
          spids: [7965 7966 7977 16777215]
        )
        (case_arm
          pat_list: [{(kencc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [7983]
                )
              ]
              spids: [7983]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(EmptyPart)} spids:[7986])]
              spids: [7986]
            )
          ]
          spids: [7979 7980 7989 16777215]
        )
        (case_arm
          pat_list: [{(mipspro)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [7995]
                )
              ]
              spids: [7995]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ ('-diag_error 1-10000'))}
                  spids: [7998]
                )
              ]
              spids: [7998]
            )
          ]
          spids: [7991 7992 8004 16777215]
        )
        (case_arm
          pat_list: [{(msc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (/w))}
                  spids: [8010]
                )
              ]
              spids: [8010]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (/WX))}
                  spids: [8019]
                )
              ]
              spids: [8019]
            )
          ]
          spids: [8006 8007 8028 16777215]
        )
        (case_arm
          pat_list: [{(sunpro)}]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$save_NOWARN'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:save_NOWARN)
                      op: Equal
                      rhs: {(SQ <'-errwarn=%none'>)}
                      spids: [8049]
                    )
                  ]
                  spids: [8049]
                )
              ]
            )
            (C {(ac_flags)} {(0)} {(errwarnnone)} {(DQ ($ VSub_Name '$save_NOWARN'))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_ERRWARNNONE')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:save_NOWARN)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [8076]
                    )
                  ]
                  spids: [8076]
                )
              ]
            )
            (C {(ac_flags)} {(0)} {(errwarnall)} {(DQ ('-errwarn=%all'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_ERRWARNALL')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DOWARN)
                      op: Equal
                      rhs: {(DQ ('-errwarn=%all'))}
                      spids: [8100]
                    )
                  ]
                  spids: [8100]
                )
              ]
            )
          ]
          spids: [8030 8031 8106 16777215]
        )
        (case_arm
          pat_list: [{(tendra)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(-w)} spids:[8112])]
              spids: [8112]
            )
          ]
          spids: [8108 8109 8116 16777215]
        )
        (case_arm
          pat_list: [{(ucode)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [8122]
                )
              ]
              spids: [8122]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(-w2)} spids:[8125])]
              spids: [8125]
            )
          ]
          spids: [8118 8119 8129 16777215]
        )
        (case_arm
          pat_list: [{(watcom)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [8135]
                )
              ]
              spids: [8135]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(-Wc) (Lit_Comma ',') (-we)}
                  spids: [8138]
                )
              ]
              spids: [8138]
            )
          ]
          spids: [8131 8132 8144 16777215]
        )
        (case_arm
          pat_list: [{(xlc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_NOWARN)
                  op: Equal
                  rhs: {(-qflag) (Lit_Other '=') (i) (Lit_Other ':') (e)}
                  spids: [8150]
                )
              ]
              spids: [8150]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(-qflag) (Lit_Other '=') (i) (Lit_Other ':') (i)}
                  spids: [8158]
                )
              ]
              spids: [8158]
            )
          ]
          spids: [8146 8147 8166 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name '$save_NOWARN'))} {(Lit_Other '=')} {(x) (DQ )})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:save_NOWARN)
                      op: Equal
                      rhs: {(-Wno-error)}
                      spids: [8187]
                    )
                  ]
                  spids: [8187]
                )
              ]
            )
            (C {(ac_flags)} {(0)} {(wnoerror)} {(DQ ($ VSub_Name '$save_NOWARN'))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_WNOERROR')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:save_NOWARN)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [8212]
                    )
                  ]
                  spids: [8212]
                )
              ]
            )
            (C {(ac_flags)} {(0)} {(werror)} {(-Werror)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_WERROR')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DOWARN)
                      op: Equal
                      rhs: {(-Werror)}
                      spids: [8234]
                    )
                  ]
                  spids: [8234]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(icc)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DOWARN)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$DOWARN') (' -wd1419'))}
                      spids: [8248]
                    )
                  ]
                  spids: [8248]
                )
              ]
            )
          ]
          spids: [8168 8169 8255 16777215]
        )
      ]
      spids: [7901 7905 8257]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name '$save_NOWARN')}
          spids: [8259]
        )
      ]
      spids: [8259]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:i)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(Lit_Other ':') (DQ ($ VSub_Name '$orig_CFLAGS'))})
                          (C {(sed)} {(SQ <'s/^://'>)})
                          (C {(tr)} {(-c)} {(-d)} 
                            {($ VSub_Name '$alll') ($ VSub_Name '$allu') ($ VSub_Name '$alln')}
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [8273 8300]
              )
            }
          spids: [8272]
        )
      ]
      spids: [8272]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(x) (DQ ($ VSub_Name '$i'))} {(Lit_Other '=')} {(x) (DQ )})
        (Case
          to_match: {($ VSub_Name '$ct')}
          arms: [
            (case_arm
              pat_list: [{(hpcc)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[8330])]
                  spids: [8330]
                )
                (C {(ac_flags)} {(1)} {(otwo)} {(Lit_Other '+') (O2)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[8344])]
                  spids: [8344]
                )
              ]
              spids: [8326 8327 8348 16777215]
            )
            (case_arm
              pat_list: [{(kencc)} {(tcc)} {(tendra)}]
              spids: [8350 8355 8362 16777215]
            )
            (case_arm
              pat_list: [{(sunpro)}]
              action: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(x)}
                      spids: [8370]
                    )
                    (HereDoc
                      op_id: Redir_DLessDash
                      fd: 16777215
                      body: 
                        {('#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_expansion: False
                      here_end: EOF
                      was_filled: T
                      spids: [8373]
                    )
                  ]
                )
                (Pipeline
                  children: [
                    (C {(yes)} {(pad)})
                    (SimpleCommand
                      words: [{(head)} {(-n)} {(256)}]
                      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(x)} spids:[8391])]
                    )
                  ]
                  negated: F
                )
                (SimpleCommand
                  words: [{(ac_flags)} {(-)} {(1)} {(otwo)} {(-xO2)}]
                  redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[8405])]
                )
                (C {(rmf)} {(x)})
              ]
              spids: [8364 8365 8414 16777215]
            )
            (case_arm
              pat_list: [{(xlc)}]
              action: [
                (C {(ac_flags)} {(1)} {(othree)} {(DQ ('-O3 -qstrict'))})
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_OTHREE')})
                    (C {(ac_flags)} {(1)} {(otwo)} {(-O2)})
                  ]
                )
              ]
              spids: [8416 8417 8450 16777215]
            )
            (case_arm
              pat_list: [{(Lit_Other '*')}]
              action: [
                (C {(ac_flags)} {(1)} {(otwo)} {(-O2)})
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_OTWO')})
                    (C {(ac_flags)} {(1)} {(optimise)} {(-O)})
                  ]
                )
              ]
              spids: [8452 8453 8484 16777215]
            )
          ]
          spids: [8320 8324 8486]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(0)} spids:[8491])]
      spids: [8491]
    )
    (Case
      to_match: {($ VSub_Name '$ct')}
      arms: [
        (case_arm
          pat_list: [{(bcc)}]
          action: [
            (C {(ac_flags)} {(1)} {(strpool)} {(DQ (${ VSub_Name ccpc) (-d))} 
              {(SQ <'if string pooling can be enabled'>)}
            )
          ]
          spids: [8500 8501 8522 16777215]
        )
        (case_arm
          pat_list: [{(clang)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[8528])]
              spids: [8528]
            )
          ]
          spids: [8524 8525 8532 16777215]
        )
        (case_arm
          pat_list: [{(dec)}]
          action: [
            (C {(ac_flags)} {(0)} {(verb)} {(-verbose)})
            (C {(ac_flags)} {(1)} {(rodata)} {(-readonly_strings)})
          ]
          spids: [8534 8535 8556 16777215]
        )
        (case_arm
          pat_list: [{(dmc)}]
          action: [
            (C {(ac_flags)} {(1)} {(decl)} {(DQ (${ VSub_Name ccpc) (-r))} 
              {(SQ <'for strict prototype checks'>)}
            )
            (C {(ac_flags)} {(1)} {(schk)} {(DQ (${ VSub_Name ccpc) (-s))} 
              {(SQ <'for stack overflow checking'>)}
            )
          ]
          spids: [8558 8559 8598 16777215]
        )
        (case_arm
          pat_list: [{(gcc)}]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:NOWARN)
                      op: Equal
                      rhs: {($ VSub_Name '$DOWARN')}
                      spids: [8608]
                    )
                  ]
                  spids: [8608]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[8612])]
              spids: [8612]
            )
            (C {(ac_flags)} {(1)} {(wnodeprecateddecls)} {(-Wno-deprecated-declarations)})
            (C {(ac_flags)} {(1)} {(no_eh_frame)} {(-fno-asynchronous-unwind-tables)})
            (C {(ac_flags)} {(1)} {(fnostrictaliasing)} {(-fno-strict-aliasing)})
            (C {(ac_flags)} {(1)} {(fstackprotectorstrong)} {(-fstack-protector-strong)})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_FSTACKPROTECTORSTRONG')})
                (C {(ac_flags)} {(1)} {(fstackprotectorall)} {(-fstack-protector-all)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(dragonegg)})
                (Case
                  to_match: 
                    {
                      (DQ (' ') ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                        ($ VSub_Name '$LDFLAGS') (' ')
                      )
                    }
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) 
                          (-fplugin) (Lit_Other '=') (Lit_Other '*') (dragonegg) (Lit_Other '*')
                        }
                      ]
                      spids: [8702 8709 8711 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (C {(ac_flags)} {(1)} {(fplugin_dragonegg)} 
                          {(-fplugin) (Lit_Other '=') (dragonegg)}
                        )
                      ]
                      spids: [8714 8715 8727 16777215]
                    )
                  ]
                  spids: [8687 8699 8730]
                )
              ]
            )
            (Case
              to_match: {($ VSub_Name '$cm')}
              arms: [
                (case_arm
                  pat_list: [{(combine)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[8744])]
                      spids: [8744]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checks)
                          op: Equal
                          rhs: {(SQ <'7 8'>)}
                          spids: [8748]
                        )
                      ]
                      spids: [8748]
                    )
                  ]
                  spids: [8740 8741 8754 16777215]
                )
                (case_arm
                  pat_list: [{(lto)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[8761])]
                      spids: [8761]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checks)
                          op: Equal
                          rhs: {(SQ <'1 2 3 4 5 6 7 8'>)}
                          spids: [8765]
                        )
                      ]
                      spids: [8765]
                    )
                  ]
                  spids: [8757 8758 8771 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[8778])]
                      spids: [8778]
                    )
                  ]
                  spids: [8774 8775 8782 16777215]
                )
              ]
              spids: [8733 8737 8785]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(1)})
                (ForEach
                  iter_name: what
                  iter_words: [{($ VSub_Name '$checks')}]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(1)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                        )
                        (Case
                          to_match: {($ VSub_Name '$what')}
                          arms: [
                            (case_arm
                              pat_list: [{(1)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                      spids: [8833]
                                    )
                                  ]
                                  spids: [8833]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                      spids: [8839]
                                    )
                                  ]
                                  spids: [8839]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8845]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_lp)}
                                      spids: [8848]
                                    )
                                  ]
                                  spids: [8845]
                                )
                              ]
                              spids: [8830 8831 8851 16777215]
                            )
                            (case_arm
                              pat_list: [{(2)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                      spids: [8857]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8862]
                                    )
                                  ]
                                  spids: [8857]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8867]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_nn)}
                                      spids: [8870]
                                    )
                                  ]
                                  spids: [8867]
                                )
                              ]
                              spids: [8854 8855 8873 16777215]
                            )
                            (case_arm
                              pat_list: [{(3)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <'-flto=jobserver'>)}
                                      spids: [8879]
                                    )
                                  ]
                                  spids: [8879]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <'-fno-use-linker-plugin -fwhole-program'>)}
                                      spids: [8885]
                                    )
                                  ]
                                  spids: [8885]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8891]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_np)}
                                      spids: [8894]
                                    )
                                  ]
                                  spids: [8891]
                                )
                              ]
                              spids: [8876 8877 8897 16777215]
                            )
                            (case_arm
                              pat_list: [{(4)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8903]
                                    )
                                  ]
                                  spids: [8903]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                      spids: [8909]
                                    )
                                  ]
                                  spids: [8909]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8915]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_lp)}
                                      spids: [8918]
                                    )
                                  ]
                                  spids: [8915]
                                )
                              ]
                              spids: [8900 8901 8921 16777215]
                            )
                            (case_arm
                              pat_list: [{(5)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8927]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8932]
                                    )
                                  ]
                                  spids: [8927]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8937]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_nn)}
                                      spids: [8940]
                                    )
                                  ]
                                  spids: [8937]
                                )
                              ]
                              spids: [8924 8925 8943 16777215]
                            )
                            (case_arm
                              pat_list: [{(6)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8949]
                                    )
                                  ]
                                  spids: [8949]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <'-fno-use-linker-plugin -fwhole-program'>)}
                                      spids: [8955]
                                    )
                                  ]
                                  spids: [8955]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8961]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_np)}
                                      spids: [8964]
                                    )
                                  ]
                                  spids: [8961]
                                )
                              ]
                              spids: [8946 8947 8967 16777215]
                            )
                            (case_arm
                              pat_list: [{(7)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <'-fwhole-program --combine'>)}
                                      spids: [8973]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8978]
                                    )
                                  ]
                                  spids: [8973]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [8983]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(combine)}
                                      spids: [8986]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:cm)
                                      op: Equal
                                      rhs: {(combine)}
                                      spids: [8989]
                                    )
                                  ]
                                  spids: [8983]
                                )
                              ]
                              spids: [8970 8971 8992 16777215]
                            )
                            (case_arm
                              pat_list: [{(8)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fv)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8998]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:cm)
                                      op: Equal
                                      rhs: {(normal)}
                                      spids: [9001]
                                    )
                                  ]
                                  spids: [8998]
                                )
                              ]
                              spids: [8995 8996 9004 16777215]
                            )
                          ]
                          spids: [8823 8827 9007]
                        )
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(1)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                        )
                        (C {(ac_flags)} {($ VSub_Name '$t_use')} {($ VSub_Name '$t_name')} 
                          {(DQ ($ VSub_Name '$t_cflags'))} {(DQ ('if gcc supports ') ($ VSub_Name '$t_cflags') (' ') ($ VSub_Name '$t_ldflags'))} 
                          {(DQ ($ VSub_Name '$t_ldflags'))}
                        )
                      ]
                      spids: [8807 9047]
                    )
                  spids: [8803 8805]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[9050])]
              spids: [9050]
            )
          ]
          spids: [8600 8601 9054 16777215]
        )
        (case_arm
          pat_list: [{(hpcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[9060])]
              spids: [9060]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9072])]
              spids: [9072]
            )
          ]
          spids: [9056 9057 9076 16777215]
        )
        (case_arm
          pat_list: [{(icc)}]
          action: [
            (C {(ac_flags)} {(1)} {(fnobuiltinsetmode)} {(-fno-builtin-setmode)})
            (C {(ac_flags)} {(1)} {(fnostrictaliasing)} {(-fno-strict-aliasing)})
            (C {(ac_flags)} {(1)} {(fstacksecuritycheck)} {(-fstack-security-check)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[9109])]
              spids: [9109]
            )
          ]
          spids: [9078 9079 9113 16777215]
        )
        (case_arm
          pat_list: [{(mipspro)}]
          action: [
            (C {(ac_flags)} {(1)} {(fullwarn)} {(-fullwarn)} {(SQ <'for remark output support'>)})
          ]
          spids: [9115 9116 9132 16777215]
        )
        (case_arm
          pat_list: [{(msc)}]
          action: [
            (C {(ac_flags)} {(1)} {(strpool)} {(DQ (${ VSub_Name ccpc) (/GF))} 
              {(SQ <'if string pooling can be enabled'>)}
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <'int main(void) { char test[64] = ""; return (*test); }'>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(x)} spids:[9162])]
            )
            (SimpleCommand
              words: [
                {(ac_flags)}
                {(-)}
                {(1)}
                {(stackon)}
                {(DQ (${ VSub_Name ccpc) (/GZ))}
                {(SQ <'if stack checks can be enabled'>)}
              ]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[9185])]
            )
            (SimpleCommand
              words: [
                {(ac_flags)}
                {(-)}
                {(1)}
                {(stckall)}
                {(DQ (${ VSub_Name ccpc) (/Ge))}
                {(SQ <'stack checks for all functions'>)}
              ]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[9208])]
            )
            (SimpleCommand
              words: [
                {(ac_flags)}
                {(-)}
                {(1)}
                {(secuchk)}
                {(DQ (${ VSub_Name ccpc) (/GS))}
                {(SQ <'for compiler security checks'>)}
              ]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[9231])]
            )
            (C {(rmf)} {(x)})
            (C {(ac_flags)} {(1)} {(wall)} {(DQ (${ VSub_Name ccpc) (/Wall))} 
              {(SQ <'to enable all warnings'>)}
            )
            (C {(ac_flags)} {(1)} {(wp64)} {(DQ (${ VSub_Name ccpc) (/Wp64))} 
              {(SQ <'to enable 64-bit warnings'>)}
            )
          ]
          spids: [9134 9135 9276 16777215]
        )
        (case_arm
          pat_list: [{(nwcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[9282])]
              spids: [9282]
            )
          ]
          spids: [9278 9279 9290 16777215]
        )
        (case_arm
          pat_list: [{(sunpro)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[9296])]
              spids: [9296]
            )
            (C {(ac_flags)} {(1)} {(v)} {(-v)})
            (C {(ac_flags)} {(1)} {(ipo)} {(-xipo)} {(SQ <'for cross-module optimisation'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9322])]
              spids: [9322]
            )
          ]
          spids: [9292 9293 9326 16777215]
        )
        (case_arm
          pat_list: [{(tcc)}]
          action: [(C {(Lit_Other ':')})]
          spids: [9328 9329 9338 16777215]
        )
        (case_arm
          pat_list: [{(tendra)}]
          action: [
            (C {(ac_flags)} {(0)} {(ysystem)} {(-Ysystem)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_YSYSTEM')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CPPFLAGS)
                      op: Equal
                      rhs: {(DQ ('-Ysystem ') ($ VSub_Name '$CPPFLAGS'))}
                      spids: [9363]
                    )
                  ]
                  spids: [9363]
                )
              ]
            )
            (C {(ac_flags)} {(1)} {(extansi)} {(-Xa)})
          ]
          spids: [9340 9341 9379 16777215]
        )
        (case_arm
          pat_list: [{(xlc)}]
          action: [
            (C {(ac_flags)} {(1)} {(rodata)} {(DQ ('-qro -qroconst -qroptr'))})
            (C {(ac_flags)} {(1)} {(rtcheck)} {(-qcheck) (Lit_Other '=') (all)})
            (C {(ac_flags)} {(1)} {(wformat)} {(DQ ('-qformat=all -qformat=nozln'))})
          ]
          spids: [9381 9382 9426 16777215]
        )
      ]
      spids: [8494 8498 9428]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$i')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(ac_flags)} {(1)} {(wall)} {(-Wall)})
            (C {(ac_flags)} {(1)} {(fwrapv)} {(-fwrapv)})
          ]
          spids: [16777215 9444]
        )
      ]
      spids: [16777215 9464]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9467])]
      spids: [9467]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name '$DOWARN')}
          spids: [9473]
        )
      ]
      spids: [9473]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {($ VSub_Name '$ct')} {(Lit_Other '=')} {(pcc)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[9486])]
          spids: [9486]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_bounded)} {(SQ )} {(SQ <'for __attribute__((__bounded__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9510]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_format)} {(SQ )} {(SQ <'for __attribute__((__format__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9526]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_noreturn)} {(SQ )} {(SQ <'for __attribute__((__noreturn__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9542]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_pure)} {(SQ )} {(SQ <'for __attribute__((__pure__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9558]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_unused)} {(SQ )} {(SQ <'for __attribute__((__unused__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9574]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_used)} {(SQ )} {(SQ <'for __attribute__((__used__))'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9590]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name '$save_NOWARN')}
          spids: [9599]
        )
      ]
      spids: [9599]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9602])]
      spids: [9602]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_SMALL'>)} {(isset_MKSH_SMALL)} {(SQ )} 
                  {(DQ ('if a reduced-feature mksh is requested'))}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_NICE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [9641 9645]
                  )
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_PERSISTENT_HISTORY>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [9652 9656]
                  )
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$check_categories') (' smksh'))}
                  spids: [9660]
                )
              ]
              spids: [9660]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_ISSET_MKSH_CONSERVATIVE_FDS)
                  op: Equal
                  rhs: {(1)}
                  spids: [9667]
                )
              ]
              spids: [9667]
            )
          ]
          spids: [16777215 9635]
        )
      ]
      spids: [16777215 9673]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'if defined(MKSH_BINSHPOSIX) || defined(MKSH_BINSHREDUCED)'>)} 
          {(isset_MKSH_BINSH)} {(SQ )} {(SQ <'if invoking as sh should be handled specially'>)}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' binsh'))}
              spids: [9696]
            )
          ]
          spids: [9696]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_UNEMPLOYED'>)} {(isset_MKSH_UNEMPLOYED)} {(SQ )} 
          {(DQ ('if mksh will be built without job control'))}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' arge'))}
              spids: [9723]
            )
          ]
          spids: [9723]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_NOPROSPECTOFWORK'>)} {(isset_MKSH_NOPROSPECTOFWORK)} {(SQ )} 
          {(DQ ('if mksh will be built without job signals'))}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' arge nojsig'))}
              spids: [9750]
            )
          ]
          spids: [9750]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_ASSUME_UTF8'>)} {(isset_MKSH_ASSUME_UTF8)} {(SQ )} 
          {(SQ <'if the default UTF-8 mode is specified'>)}
        )
        (C {(Lit_Other ':')} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                spids: [9778 9782]
              )
            )
          }
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_CONSERVATIVE_FDS'>)} {(isset_MKSH_CONSERVATIVE_FDS)} {(SQ )} 
          {(SQ <'if traditional/conservative fd use is requested'>)}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' convfds'))}
              spids: [9806]
            )
          ]
          spids: [9806]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ac_ifcpp)} {(SQ <'ifdef MKSH_MIDNIGHTBSD01ASH_COMPAT'>)} 
          {(isset_MKSH_MIDNIGHTBSD01ASH_COMPAT)} {(SQ )} {(SQ <'if the MidnightBSD 0.1 ash compatibility mode is requested'>)}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' mnbsdash'))}
              spids: [9851]
            )
          ]
          spids: [9851]
        )
      ]
    )
    (C {(ac_header)} {(sys/time.h)} {(sys/types.h)})
    (C {(ac_header)} {(time.h)} {(sys/types.h)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(DQ (11))} {(Lit_Other '=')} 
          {(DQ ($ VSub_Name '$HAVE_SYS_TIME_H') ($ VSub_Name '$HAVE_TIME_H'))}
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:HAVE_BOTH_TIME_H) op:Equal rhs:{(0)} spids:[9894])]
          spids: [9894]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(both_time_h)}
        {(SQ )}
        {(SQ <'whether <sys/time.h> and <time.h> can both be included'>)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [9908]
        )
      ]
    )
    (C {(ac_header)} {(sys/bsdtypes.h)})
    (C {(ac_header)} {(sys/file.h)} {(sys/types.h)})
    (C {(ac_header)} {(sys/mkdev.h)} {(sys/types.h)})
    (C {(ac_header)} {(sys/mman.h)} {(sys/types.h)})
    (C {(ac_header)} {(sys/param.h)})
    (C {(ac_header)} {(sys/resource.h)} {(sys/types.h)} {(_time)})
    (C {(ac_header)} {(sys/select.h)} {(sys/types.h)})
    (C {(ac_header)} {(sys/sysmacros.h)})
    (C {(ac_header)} {(bstring.h)})
    (C {(ac_header)} {(grp.h)} {(sys/types.h)})
    (C {(ac_header)} {(io.h)})
    (C {(ac_header)} {(libgen.h)})
    (C {(ac_header)} {(libutil.h)} {(sys/types.h)})
    (C {(ac_header)} {(paths.h)})
    (C {(ac_header)} {(stdint.h)} {(stdarg.h)})
    (C {(ac_header)} {(strings.h)} {(sys/types.h)} {(string.h)})
    (C {(ac_header)} {(termios.h)})
    (C {(ac_header)} {(ulimit.h)} {(sys/types.h)})
    (C {(ac_header)} {(values.h)})
    (SimpleCommand
      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 fd:16777215 arg_word:{(lft.c)} spids:[10038])]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(can_lfs)} {(SQ )} {(DQ ('for large file support'))}]
      redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(lft.c)} spids:[10052])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:save_CPPFLAGS)
          op: Equal
          rhs: {($ VSub_Name '$CPPFLAGS')}
          spids: [10055]
        )
      ]
      spids: [10055]
    )
    (C {(add_cppflags)} {(-D_FILE_OFFSET_BITS) (Lit_Other '=') (64)})
    (SimpleCommand
      words: [
        {(ac_testn)}
        {(can_lfs_sus)}
        {(SQ <'!'>)}
        {(can_lfs)}
        {(0)}
        {(DQ ('... with -D_FILE_OFFSET_BITS=64'))}
      ]
      redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(lft.c)} spids:[10080])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_LFS_SUS')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPPFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name '$save_CPPFLAGS')}
                  spids: [10097]
                )
              ]
              spids: [10097]
            )
            (C {(add_cppflags)} {(-D_LARGE_FILES) (Lit_Other '=') (1)})
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(can_lfs_aix)}
                {(SQ <'!'>)}
                {(can_lfs)}
                {(0)}
                {(DQ ('... with -D_LARGE_FILES=1'))}
              ]
              redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(lft.c)} spids:[10124])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CAN_LFS_AIX')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CPPFLAGS)
                      op: Equal
                      rhs: {($ VSub_Name '$save_CPPFLAGS')}
                      spids: [10138]
                    )
                  ]
                  spids: [10138]
                )
              ]
            )
          ]
          spids: [16777215 10094]
        )
      ]
      spids: [16777215 10141]
    )
    (C {(rm)} {(-f)} {(lft.c)})
    (C {(rmf)} {(lft) (Lit_Other '*')})
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_inttypes)}
        {(SQ <'!'>)}
        {(stdint_h)}
        {(1)}
        {(DQ ('for standard 32-bit integer types'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10183]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_ucbints)}
        {(SQ <'!'>)}
        {(can_inttypes)}
        {(1)}
        {(DQ ('for UCB 32-bit integer types'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10204]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_int8type)}
        {(SQ <'!'>)}
        {(stdint_h)}
        {(1)}
        {(DQ ('for standard 8-bit integer type'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <sys/types.h>\n') ('#include <stddef.h>\n') 
              ('int main(int ac, char **av) { return ((uint8_t)(size_t)av[ac]); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10225]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_ucbint8)}
        {(SQ <'!'>)}
        {(can_int8type)}
        {(1)}
        {(DQ ('for UCB 8-bit integer type'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10246]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(rlim_t)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10256]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sig_t)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10269]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sighandler_t)} {(SQ <'!'>)} {(sig_t)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10287]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_SIGHANDLER_T')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(add_cppflags)} {(-Dsig_t) (Lit_Other '=') (sighandler_t)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_SIG_T) op:Equal rhs:{(1)} spids:[10313])]
              spids: [10313]
            )
          ]
          spids: [16777215 10303]
        )
      ]
      spids: [16777215 10316]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(__sighandler_t)} {(SQ <'!'>)} {(sig_t)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10331]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE___SIGHANDLER_T')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(add_cppflags)} {(-Dsig_t) (Lit_Other '=') (__sighandler_t)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_SIG_T) op:Equal rhs:{(1)} spids:[10357])]
              spids: [10357]
            )
          ]
          spids: [16777215 10347]
        )
      ]
      spids: [16777215 10360]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_SIG_T')})
        (C {(add_cppflags)} {(-Dsig_t) (Lit_Other '=') (nosig_t)})
      ]
    )
    (C {(ac_cppflags)} {(SIG_T)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(makefile)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Lit_Other ':')} {(nothing)} {(to)} {(check)})]
          spids: [16777215 10404]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:HAVE_LINK_WORKS) op:Equal rhs:{(x)} spids:[10418])]
          spids: [10418]
        )
        (C {(ac_testinit)} {(link_works)} {(SQ )} 
          {(SQ <'checking if the final link command may succeed'>)}
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[10434])]
          spids: [10434]
        )
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(conftest.c)} spids:[10440])
            (HereDoc
              op_id: Redir_DLessDash
              fd: 16777215
              body: 
                {
                  (DQ ('#define EXTERN\n') ('#define MKSH_INCLUDES_ONLY\n') ('#include ') 
                    (Right_DoubleQuote '"') (sh.h) (Right_DoubleQuote '"') ('\n') ('__RCSID(') (Right_DoubleQuote '"') ($ VSub_Name '$srcversion') 
                    (Right_DoubleQuote '"') (');\n') ('int main(void) { printf(') (Right_DoubleQuote '"') ('Hello, World!') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n) (Right_DoubleQuote '"') ('); return (isatty(0)); }\n')
                  )
                }
              do_expansion: True
              here_end: EOF
              was_filled: T
              spids: [10443]
            )
          ]
        )
        (Case
          to_match: {($ VSub_Name '$cm')}
          arms: [
            (case_arm
              pat_list: [{(llvm)}]
              action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -emit-llvm -c conftest.c')
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10493])]
                      spids: [10493]
                    )
                  ]
                )
                (C {(rmf)} {($ VSub_Name '$tfn') (.s)})
                (AndOr
                  ops: [Op_DPipe Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} 
                      {
                        (DQ ('llvm-link -o - conftest.o | opt ') ($ VSub_Name '$optflags') 
                          (' | llc -o ') ($ VSub_Name '$tfn') (.s)
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10525])]
                      spids: [10525]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$LDFLAGS') (' -o ') ($ VSub_Name '$tcfn') (' ') ($ VSub_Name '$tfn') ('.s ') ($ VSub_Name '$LIBS') (' ') 
                          ($ VSub_Name '$ccpr')
                        )
                      }
                    )
                  ]
                )
              ]
              spids: [10474 10475 10558 16777215]
            )
            (case_arm
              pat_list: [{(dragonegg)}]
              action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -S -flto conftest.c')
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10580])]
                      spids: [10580]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} {(DQ ('mv conftest.s conftest.ll'))})
                  ]
                )
                (AndOr
                  ops: [Op_DPipe Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} {(DQ ('llvm-as conftest.ll'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10619])]
                      spids: [10619]
                    )
                  ]
                )
                (C {(rmf)} {($ VSub_Name '$tfn') (.s)})
                (AndOr
                  ops: [Op_DPipe Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} 
                      {
                        (DQ ('llvm-link -o - conftest.bc | opt ') ($ VSub_Name '$optflags') 
                          (' | llc -o ') ($ VSub_Name '$tfn') (.s)
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10651])]
                      spids: [10651]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$LDFLAGS') (' -o ') ($ VSub_Name '$tcfn') (' ') ($ VSub_Name '$tfn') ('.s ') ($ VSub_Name '$LIBS') (' ') 
                          ($ VSub_Name '$ccpr')
                        )
                      }
                    )
                  ]
                )
              ]
              spids: [10561 10562 10684 16777215]
            )
            (case_arm
              pat_list: [{(combine)}]
              action: [
                (C {(v)} 
                  {
                    (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                      (' ') ($ VSub_Name '$LDFLAGS') (' -fwhole-program --combine ') ($ VSub_Name '$NOWARN') (' -o ') 
                      ($ VSub_Name '$tcfn') (' conftest.c ') ($ VSub_Name '$LIBS') (' ') ($ VSub_Name '$ccpr')
                    )
                  }
                )
              ]
              spids: [10687 10688 10712 16777215]
            )
            (case_arm
              pat_list: [{(lto)} {(normal)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:cm) op:Equal rhs:{(normal)} spids:[10721])]
                  spids: [10721]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -c conftest.c')
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10740])]
                      spids: [10740]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(0)})
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$LDFLAGS') (' -o ') ($ VSub_Name '$tcfn') (' conftest.o ') ($ VSub_Name '$LIBS') (' ') ($ VSub_Name '$ccpr')
                        )
                      }
                    )
                  ]
                )
              ]
              spids: [10715 10718 10771 16777215]
            )
          ]
          spids: [10467 10471 10774]
        )
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(test)} {(-f)} {($ VSub_Name '$tcfn')})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10785])]
              spids: [10785]
            )
          ]
        )
        (C {(ac_testdone)})
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(test)} {($ VSub_Name '$fv')} {(Lit_Other '=')} {(1)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
      spids: [10415 10806]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(x) (DQ (NetBSD))} {(Lit_Other '=')} {(x) (DQ ($ VSub_Name '$TARGET_OS'))})
        (C {($ VSub_Name '$e')} {(Ignore)} {(the)} {(compatibility)} {(warning.)})
      ]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sys_errlist)} {(SQ )} {(DQ ('the sys_errlist[] array and sys_nerr'))}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10856]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_testn)}
        {(_sys_errlist)}
        {(SQ <'!'>)}
        {(sys_errlist)}
        {(0)}
        {(DQ ('the _sys_errlist[] array and _sys_nerr'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [10877]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(1)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$HAVE__SYS_ERRLIST'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(add_cppflags)} {(-Dsys_nerr) (Lit_Other '=') (_sys_nerr)})
            (C {(add_cppflags)} {(-Dsys_errlist) (Lit_Other '=') (_sys_errlist)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_SYS_ERRLIST)
                  op: Equal
                  rhs: {(1)}
                  spids: [10912]
                )
              ]
              spids: [10912]
            )
          ]
          spids: [16777215 10895]
        )
      ]
      spids: [16777215 10915]
    )
    (C {(ac_cppflags)} {(SYS_ERRLIST)})
    (ForEach
      iter_name: what
      iter_words: [{(name)} {(list)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:uwhat)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(upper)} {($ VSub_Name '$what')})])
                        left_token: <Left_Backtick '`'>
                        spids: [10937 10941]
                      )
                    }
                  spids: [10936]
                )
              ]
              spids: [10936]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(sys_sig) ($ VSub_Name '$what')}
                {(SQ )}
                {(DQ ('the sys_sig') (${ VSub_Name what) ('[] array'))}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {
                      (DQ ('extern const char * const sys_sig') (${ VSub_Name what) ('[];\n') 
                        ('extern int isatty(int);\n') ('int main(void) { return (sys_sig') (${ VSub_Name what) ('[0][0] + isatty(0)); }\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [10960]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(_sys_sig) ($ VSub_Name '$what')}
                {(SQ <'!'>)}
                {(sys_sig) ($ VSub_Name '$what')}
                {(0)}
                {(DQ ('the _sys_sig') (${ VSub_Name what) ('[] array'))}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {
                      (DQ ('extern const char * const _sys_sig') (${ VSub_Name what) ('[];\n') 
                        ('extern int isatty(int);\n') ('int main(void) { return (_sys_sig') (${ VSub_Name what) ('[0][0] + isatty(0)); }\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [10998]
                )
              ]
            )
            (C {(eval)} 
              {(Lit_VarLike 'uwhat_v=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                (HAVE__SYS_SIG) ($ VSub_Name '$uwhat')
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(1)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$uwhat_v'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(add_cppflags)} 
                      {(-Dsys_sig) ($ VSub_Name '$what') (Lit_Other '=') (_sys_sig) 
                        ($ VSub_Name '$what')
                      }
                    )
                    (C {(eval)} {(HAVE_SYS_SIG) ($ VSub_Name '$uwhat') (Lit_Other '=') (1)})
                  ]
                  spids: [16777215 11035]
                )
              ]
              spids: [16777215 11055]
            )
            (C {(ac_cppflags)} {(SYS_SIG) ($ VSub_Name '$uwhat')})
          ]
          spids: [10933 11063]
        )
      spids: [10927 10931]
    )
    (SimpleCommand
      words: [{(ac_test)} {(flock)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11079]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(lock_fcntl)}
        {(SQ <'!'>)}
        {(flock)}
        {(1)}
        {(SQ <'whether we can lock files with fcntl'>)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11101]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(getrusage)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11111]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(getsid)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: {('#include <unistd.h>\n') ('int main(void) { return ((int)getsid(0)); }\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11121]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(gettimeofday)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#define MKSH_INCLUDES_ONLY\n') ('#include "sh.h"\n') 
              ('int main(void) { struct timeval tv; return (gettimeofday(&tv, NULL)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11131]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(killpg)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <signal.h>\n') 
              ('int main(int ac, char *av[]) { return (av[0][killpg(123, ac)]); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11141]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(memmove)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11151]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(mknod)} {(SQ )} {(SQ <'if to use mknod(), makedev() and friends'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11168]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(mmap)} {(lock_fcntl)} {(0)} {(SQ <'for mmap and munmap'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11186]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(nice)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: {('#include <unistd.h>\n') ('int main(void) { return (nice(4)); }\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11196]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(revoke)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11206]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setlocale_ctype)} {(SQ )} {(SQ <'setlocale(LC_CTYPE, "")'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <locale.h>\n') ('#include <stddef.h>\n') 
              ('int main(void) { return ((int)(size_t)(void *)setlocale(LC_CTYPE, "")); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11223]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(langinfo_codeset)} {(setlocale_ctype)} {(0)} {(SQ <'nl_langinfo(CODESET)'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <langinfo.h>\n') ('#include <stddef.h>\n') 
              ('int main(void) { return ((int)(size_t)(void *)nl_langinfo(CODESET)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11241]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(select)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11251]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setresugid)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <sys/types.h>\n') ('#include <unistd.h>\n') 
              ('int main(void) { return (setresuid(0,0,0) + setresgid(0,0,0)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11261]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setgroups)} {(setresugid)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11275]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(x) (DQ ($ VSub_Name '$et'))} {(Lit_Other '=')} {(x) (DQ (klibc))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(ac_testn)} {(__rt_sigsuspend)} {(SQ )} {(SQ <'whether klibc uses RT signals'>)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {('#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_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [11313]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(__sigsuspend_s)}
                {(SQ <'!'>)}
                {(__rt_sigsuspend)}
                {(1)}
                {(SQ <'whether sigsuspend is usable (1/2)'>)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {('#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_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [11343]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(__sigsuspend_xxs)}
                {(SQ <'!'>)}
                {(__sigsuspend_s)}
                {(1)}
                {(SQ <'whether sigsuspend is usable (2/2)'>)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {('#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_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [11367]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ (000))} {(Lit_Other '=')} 
                          {
                            (DQ ($ VSub_Name '$HAVE___RT_SIGSUSPEND') 
                              ($ VSub_Name '$HAVE___SIGSUSPEND_S') ($ VSub_Name '$HAVE___SIGSUSPEND_XXS')
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(add_cppflags)} {(-DMKSH_NO_SIGSUSPEND)})]
                  spids: [16777215 11391]
                )
              ]
              spids: [16777215 11403]
            )
          ]
          spids: [16777215 11298]
        )
      ]
      spids: [16777215 11405]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strerror)} {(SQ <'!'>)} {(sys_errlist)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('extern char *strerror(int);\n') 
              ('int main(int ac, char *av[]) { return (*strerror(*av[ac])); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11420]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strsignal)} {(SQ <'!'>)} {(sys_siglist)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <string.h>\n') ('#include <signal.h>\n') 
              ('int main(void) { return (strsignal(1)[0]); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11438]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strlcpy)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#include <string.h>\n') 
              ('int main(int ac, char *av[]) { return (strlcpy(*av, av[1],\n') ('    (size_t)ac)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11448]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(flock_decl)} {(flock)} {(1)} {(SQ <'for declaration of flock()'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11475]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(revoke_decl)} {(revoke)} {(1)} {(SQ <'for declaration of revoke()'>)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#define MKSH_INCLUDES_ONLY\n') ('#include "sh.h"\n') 
              ('int main(void) { return ((revoke)("")); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11492]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(sys_errlist_decl)}
        {(sys_errlist)}
        {(0)}
        {(DQ ('for declaration of sys_errlist[] and sys_nerr'))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#define MKSH_INCLUDES_ONLY\n') ('#include "sh.h"\n') 
              ('int main(void) { return (*sys_errlist[sys_nerr - 1] + isatty(0)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11509]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(sys_siglist_decl)}
        {(sys_siglist)}
        {(0)}
        {(SQ <'for declaration of sys_siglist[]'>)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#define MKSH_INCLUDES_ONLY\n') ('#include "sh.h"\n') 
              ('int main(void) { return (sys_siglist[0][0] + isatty(0)); }\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11526]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:fd)
          op: Equal
          rhs: {(SQ <'if to use persistent history'>)}
          spids: [11541]
        )
      ]
      spids: [11541]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(ac_cache)} {(PERSISTENT_HISTORY)})
        (Case
          to_match: 
            {($ VSub_Name '$HAVE_MMAP') ($ VSub_Name '$HAVE_FLOCK') ($ VSub_Name '$HAVE_LOCK_FCNTL')}
          arms: [
            (case_arm
              pat_list: [{(11) (Lit_Other '*')} {(101)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[11566])]
                  spids: [11566]
                )
              ]
              spids: [11560 11564 11569 16777215]
            )
          ]
          spids: [11552 11558 11571]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$fv')})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' no-histfile'))}
              spids: [11583]
            )
          ]
          spids: [11583]
        )
      ]
    )
    (C {(ac_testdone)})
    (C {(ac_cppflags)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:save_CFLAGS)
          op: Equal
          rhs: {($ VSub_Name '$CFLAGS')}
          spids: [11594]
        )
      ]
      spids: [11594]
    )
    (SimpleCommand
      words: [
        {(ac_testn)}
        {(compile_time_asserts_) ($ VSub_Dollar '$$')}
        {(SQ )}
        {(SQ <'whether compile-time assertions pass'>)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {('#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_expansion: False
          here_end: EOF
          was_filled: T
          spids: [11609]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CFLAGS)
          op: Equal
          rhs: {($ VSub_Name '$save_CFLAGS')}
          spids: [11614]
        )
      ]
      spids: [11614]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(eval)} {(test)} {(1)} {(Lit_Other '=')} 
          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (HAVE_COMPILE_TIME_ASSERTS_) 
            ($ VSub_Dollar '$$')
          }
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$legacy')} {(Lit_Other '=')} {(1)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(ac_test)} {(long_32bit)} {(SQ )} {(SQ <'whether long is 32 bit wide'>)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {('#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_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [11670]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_test)}
                {(long_64bit)}
                {(SQ <'!'>)}
                {(long_32bit)}
                {(0)}
                {(SQ <'whether long is 64 bit wide'>)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {('#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_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [11693]
                )
              ]
            )
            (Case
              to_match: {($ VSub_Name '$HAVE_LONG_32BIT') ($ VSub_Name '$HAVE_LONG_64BIT')}
              arms: [
                (case_arm
                  pat_list: [{(10)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:check_categories)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$check_categories') (' int:32'))}
                          spids: [11711]
                        )
                      ]
                      spids: [11711]
                    )
                  ]
                  spids: [11708 11709 11717 16777215]
                )
                (case_arm
                  pat_list: [{(01)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:check_categories)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$check_categories') (' int:64'))}
                          spids: [11723]
                        )
                      ]
                      spids: [11723]
                    )
                  ]
                  spids: [11720 11721 11729 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:check_categories)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$check_categories') (' int:u'))}
                          spids: [11735]
                        )
                      ]
                      spids: [11735]
                    )
                  ]
                  spids: [11732 11733 11741 16777215]
                )
              ]
              spids: [11700 11705 11744]
            )
          ]
          spids: [16777215 11656]
        )
      ]
      spids: [16777215 11746]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_SYS_SIGNAME')})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(ac_testinit)} {(cpp_dd)} {(SQ )} 
                      {(SQ <'checking if the C Preprocessor supports -dD'>)}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (SimpleCommand
                  words: [{(echo)} {(SQ <'#define foo bar'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(conftest.c)}
                      spids: [11793]
                    )
                  ]
                )
                (C {(vv)} {(SQ <']'>)} 
                  {
                    (DQ ($ VSub_Name '$CPP') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                      ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -dD conftest.c >x')
                    )
                  }
                )
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (SimpleCommand
                      words: [{(grep)} {(SQ <'#define foo bar'>)} {(x)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [11823]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [11826]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[11831])]
                      spids: [11831]
                    )
                  ]
                )
                (C {(rmf)} {(conftest.c)} {(x)} {(vv.out)})
                (C {(ac_testdone)})
              ]
              spids: [16777215 11784]
            )
          ]
          spids: [16777215 11846]
        )
      ]
    )
    (C {($ VSub_Name '$e')} {(...)} {(done.)})
    (SimpleCommand
      words: [{(echo)} {(wq)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(x)} spids:[11875])]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(ed)} {(x)}]
              redirects: [
                (Redir op_id:Redir_Less fd:16777215 arg_word:{(x)} spids:[11882])
                (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[11885])
              ]
            )
            (SimpleCommand
              words: [{(grep)} {(3)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [11894]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[11897])
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:check_categories)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$check_categories') (' ') ($ VSub_Name '$oldish_ed'))}
              spids: [11904]
            )
          ]
          spids: [11904]
        )
      ]
    )
    (C {(rmf)} {(x)} {(vv.out)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_SYS_SIGNAME')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CPP_DD')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {($ VSub_Name '$e')} {(Generating)} {(list)} {(of)} {(signal)} {(names...)})
                  ]
                  spids: [16777215 11943]
                )
              ]
              else_action: [
                (C {($ VSub_Name '$e')} {(No)} {(list)} {(of)} {(signal)} {(names)} {(available)} {(via)} 
                  {(cpp.)} {(Falling)} {(back...)}
                )
              ]
              spids: [11959 11985]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigseenone)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [11988]
                )
              ]
              spids: [11988]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigseentwo)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [11992]
                )
              ]
              spids: [11992]
            )
            (SimpleCommand
              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 fd:16777215 arg_word:{(conftest.c)} spids:[12019])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:NSIG)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(vq)} 
                                    {
                                      (DQ ($ VSub_Name '$CPP') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                                        ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' conftest.c')
                                      )
                                    }
                                  )
                                  (C {(grep)} {(-v)} {(SQ <'^#'>)})
                                  (C {(sed)} 
                                    {
                                      (SQ <'/mksh_cfg.*= *$/{\n'> <'\t\tN\n'> <'\t\ts/\\n/ /\n'> 
                                        <'\t\t}'>
                                      )
                                    }
                                  )
                                  (C {(grep)} {(SQ <'^ *mksh_cfg *='>)})
                                  (C {(sed)} 
                                    {
                                      (SQ 
                                        <
's/^ *mksh_cfg *=[\t ]*\\([()0-9x+-][()0-9x+\t -]*\\).*$/\\1/'
                                        >
                                      )
                                    }
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [12028 12086]
                      )
                    }
                  spids: [12027]
                )
              ]
              spids: [12027]
            )
            (Case
              to_match: {($ VSub_Name '$NSIG')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (mksh_cfg) (Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: 
                        (C {($ VSub_Name '$e')} {(DQ ("Error: NSIG='") ($ VSub_Name '$NSIG') ("'"))})
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:NSIG) op:Equal rhs:{(0)} spids:[12110])]
                      spids: [12110]
                    )
                  ]
                  spids: [12096 12099 12113 16777215]
                )
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other '[') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (EscapedLiteralPart token:<Lit_EscapedChar '\\('>) (EscapedLiteralPart token:<Lit_EscapedChar '\\)'>) 
                      (Lit_Other '+') (-) (Lit_Other ']') (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NSIG)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [
                                          {(DQ ($ VSub_Name '$AWK'))}
                                          {(DQ ('BEGIN { print ') ($ VSub_Name '$NSIG') (' }'))}
                                        ]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Less
                                            fd: 16777215
                                            arg_word: {(/dev/null)}
                                            spids: [12139]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [12128 12141]
                              )
                            }
                          spids: [12127]
                        )
                      ]
                      spids: [12127]
                    )
                  ]
                  spids: [12116 12125 12143 16777215]
                )
              ]
              spids: [12089 12093 12146]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:printf) op:Equal rhs:{(printf)} spids:[12149])]
              spids: [12149]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Subshell
                  child: (C {(printf)} {(hallo)})
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [12159]
                    )
                    (Redir
                      op_id: Redir_GreatAnd
                      fd: 2
                      arg_word: {(1)}
                      spids: [12162]
                    )
                  ]
                  spids: [12153 12157]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:printf) op:Equal rhs:{(echo)} spids:[12167])]
                  spids: [12167]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Name '$printf')} {(Lit_Other '=')} {(echo)})
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(printf)} {(Lit_Other '%') (d)} {(42)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [12184 12191]
                      )
                    )
                  } {(Lit_Other '=')} {(42)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:printf) op:Equal rhs:{(echo)} spids:[12200])]
                  spids: [12200]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Name '$printf')} {(Lit_Other '=')} {(echo)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:NSIG)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(printf)} {(Lit_Other '%') (d)} {(DQ ($ VSub_Name '$NSIG'))}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [12225]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [12215 12227]
                          )
                        }
                      spids: [12214]
                    )
                  ]
                  spids: [12214]
                )
              ]
            )
            (C {($ VSub_Name '$printf')} {(DQ ('NSIG=') ($ VSub_Name '$NSIG') (' ... '))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigs)
                  op: Equal
                  rhs: {(DQ ('ABRT FPE ILL INT SEGV TERM ALRM BUS CHLD CONT HUP KILL PIPE QUIT'))}
                  spids: [12239]
                )
              ]
              spids: [12239]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigs)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$sigs') 
                        (' STOP TSTP TTIN TTOU USR1 USR2 POLL PROF SYS TRAP URG VTALRM')
                      )
                    }
                  spids: [12245]
                )
              ]
              spids: [12245]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigs)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$sigs') 
                        (' XCPU XFSZ INFO WINCH EMT IO DIL LOST PWR SAK CLD IOT STKFLT')
                      )
                    }
                  spids: [12252]
                )
              ]
              spids: [12252]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigs)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$sigs') 
                        (' ABND DCE DUMP IOERR TRACE DANGER THCONT THSTOP RESV UNUSED')
                      )
                    }
                  spids: [12259]
                )
              ]
              spids: [12259]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_CPP_DD')})
                (C {(test)} {($ VSub_Name '$NSIG')} {(-gt)} {(1)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:sigs)
                      op: Equal
                      rhs: 
                        {(DQ ($ VSub_Name '$sigs') (' ')) 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(vq)} 
                                        {
                                          (DQ ($ VSub_Name '$CPP') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                                            ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' -dD conftest.c')
                                          )
                                        }
                                      )
                                      (C {(grep)} {(SQ <'[\t ]SIG[A-Z0-9][A-Z0-9]*[\t ]'>)})
                                      (C {(sed)} 
                                        {(SQ <'s/^.*[\t ]SIG\\([A-Z0-9][A-Z0-9]*\\)[\t ].*$/\\1/'>)}
                                      )
                                      (C {(sort)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [12291 12330]
                          )
                        }
                      spids: [12286]
                    )
                  ]
                  spids: [12286]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Name '$NSIG')} {(-gt)} {(1)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:sigs)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [12343]
                    )
                  ]
                  spids: [12343]
                )
              ]
            )
            (Pipeline
              children: [
                (ForEach
                  iter_name: name
                  iter_words: [{($ VSub_Name '$sigs')}]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Case
                          to_match: {($ VSub_Name '$sigseenone')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(Lit_Other '*') (Lit_Other ':') ($ VSub_Name '$name') (Lit_Other ':') 
                                  (Lit_Other '*')
                                }
                              ]
                              action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                              spids: [12365 12370 12374 16777215]
                            )
                          ]
                          spids: [12358 12362 12377]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:sigseenone)
                              op: Equal
                              rhs: {($ VSub_Name '$sigseenone') ($ VSub_Name '$name') (Lit_Other ':')}
                              spids: [12380]
                            )
                          ]
                          spids: [12380]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(SQ <'#include <signal.h>'>)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(conftest.c)}
                              spids: [12392]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(int)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(conftest.c)}
                              spids: [12400]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(Lit_VarLike 'mksh_cfg=')} {(SIG) ($ VSub_Name '$name')}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(conftest.c)}
                              spids: [12411]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(SQ <';'>)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(conftest.c)}
                              spids: [12421]
                            )
                          ]
                        )
                        (Pipeline
                          children: [
                            (C {(vq)} 
                              {
                                (DQ ($ VSub_Name '$CPP') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                                  ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$NOWARN') (' conftest.c')
                                )
                              }
                            )
                            (C {(grep)} {(-v)} {(SQ <'^#'>)})
                            (C {(sed)} 
                              {
                                (SQ <'/mksh_cfg.*= *$/{\n'> <'\t\t\tN\n'> <'\t\t\ts/\\n/ /\n'> 
                                  <'\t\t\t}'>
                                )
                              }
                            )
                            (C {(grep)} {(SQ <'^ *mksh_cfg *='>)})
                            (C {(sed)} 
                              {(SQ <'s/^ *mksh_cfg *=[\t ]*\\([0-9][0-9x]*\\).*$/:\\1 '>) 
                                ($ VSub_Name '$name') (/)
                              }
                            )
                          ]
                          negated: F
                        )
                      ]
                      spids: [12355 12490]
                    )
                  spids: [12351 12353]
                )
                (C {(sed)} {(-n)} {(SQ <'/^:[^ ]/s/^://p'>)})
                (While
                  cond: [(Sentence child:(C {(read)} {(nr)} {(name)}) terminator:<Op_Semi ';'>)]
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {($ VSub_Name '$printf')} {(Lit_Other '=')} {(echo)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nr)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [
                                                  {(printf)}
                                                  {(Lit_Other '%') (d)}
                                                  {(DQ ($ VSub_Name '$nr'))}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Great
                                                    fd: 2
                                                    arg_word: {(/dev/null)}
                                                    spids: [12537]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [12527 12539]
                                      )
                                    }
                                  spids: [12526]
                                )
                              ]
                              spids: [12526]
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DAmp Op_DPipe]
                          children: [
                            (C {(test)} {($ VSub_Name '$nr')} {(-gt)} {(0)})
                            (C {(test)} {($ VSub_Name '$nr')} {(-lt)} {($ VSub_Name '$NSIG')})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                        )
                        (Case
                          to_match: {($ VSub_Name '$sigseentwo')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(Lit_Other '*') (Lit_Other ':') ($ VSub_Name '$nr') (Lit_Other ':') 
                                  (Lit_Other '*')
                                }
                              ]
                              spids: [12572 12577 12579 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (C {(echo)} 
                                  {
                                    (DQ ('\t\t{ ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                      ($ VSub_Name '$name') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', ') ($ VSub_Name '$nr') (' },')
                                    )
                                  }
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:sigseentwo)
                                      op: Equal
                                      rhs: 
                                        {($ VSub_Name '$sigseentwo') ($ VSub_Name '$nr') 
                                          (Lit_Other ':')
                                        }
                                      spids: [12598]
                                    )
                                  ]
                                  spids: [12598]
                                )
                                (SimpleCommand
                                  words: [
                                    {($ VSub_Name '$printf')}
                                    {(DQ ($ VSub_Name '$name') ('=') ($ VSub_Name '$nr') (' '))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 16777215
                                      arg_word: {(2)}
                                      spids: [12613]
                                    )
                                  ]
                                )
                              ]
                              spids: [12582 12583 12617 16777215]
                            )
                          ]
                          spids: [12565 12569 12620]
                        )
                      ]
                      spids: [12513 12623]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_GreatAnd
                      fd: 2
                      arg_word: {(1)}
                      spids: [12625]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(signames.inc)}
                      spids: [12628]
                    )
                  ]
                )
              ]
              negated: F
            )
            (C {(rmf)} {(conftest.c)})
            (C {($ VSub_Name '$e')} {(done.)})
          ]
          spids: [16777215 11929]
        )
      ]
      spids: [16777215 12641]
    )
    (C {(addsrcs)} {(SQ <'!'>)} {(HAVE_STRLCPY)} {(strlcpy.c)})
    (C {(addsrcs)} {(USE_PRINTF_BUILTIN)} {(printf.c)})
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$USE_PRINTF_BUILTIN'))})
        (C {(add_cppflags)} {(-DMKSH_PRINTF_BUILTIN)})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$HAVE_CAN_VERB'))})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:CFLAGS)
              op: Equal
              rhs: {(DQ ($ VSub_Name '$CFLAGS') (' -verbose'))}
              spids: [12688]
            )
          ]
          spids: [12688]
        )
      ]
    )
    (C {(add_cppflags)} {(-DMKSH_BUILD_R) (Lit_Other '=') (523)})
    (C {($ VSub_Name '$e')} {($ VSub_Name '$bi') ($ VSub_Name '$me') (Lit_Other ':')} {(Finished)} 
      {(configuration)} {(testing) (Lit_Comma ',')} {(now)} {(producing)} {(output.) ($ VSub_Name '$ao')}
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:files) op:Equal rhs:{(EmptyPart)} spids:[12722])]
      spids: [12722]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:objs) op:Equal rhs:{(EmptyPart)} spids:[12724])]
      spids: [12724]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:sp) op:Equal rhs:{(EmptyPart)} spids:[12726])]
      spids: [12726]
    )
    (Case
      to_match: {($ VSub_Name '$tcfn')}
      arms: [
        (case_arm
          pat_list: [{(a.exe)} {(conftest.exe)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mkshexe)
                  op: Equal
                  rhs: {($ VSub_Name '$tfn') (.exe)}
                  spids: [12740]
                )
              ]
              spids: [12740]
            )
            (C {(add_cppflags)} {(-DMKSH_EXE_EXT)})
          ]
          spids: [12734 12737 12750 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mkshexe)
                  op: Equal
                  rhs: {($ VSub_Name '$tfn')}
                  spids: [12756]
                )
              ]
              spids: [12756]
            )
          ]
          spids: [12752 12753 12760 16777215]
        )
      ]
      spids: [12728 12732 12762]
    )
    (Case
      to_match: {($ VSub_Name '$curdir')}
      arms: [
        (case_arm
          pat_list: [
            {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')}
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mkshshebang)
                  op: Equal
                  rhs: {(DQ ('#!./') ($ VSub_Name '$mkshexe'))}
                  spids: [12775]
                )
              ]
              spids: [12775]
            )
          ]
          spids: [12770 12773 12781 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mkshshebang)
                  op: Equal
                  rhs: {(DQ ('#!') ($ VSub_Name '$curdir') (/) ($ VSub_Name '$mkshexe'))}
                  spids: [12786]
                )
              ]
              spids: [12786]
            )
          ]
          spids: [12783 12784 12794 16777215]
        )
      ]
      spids: [12764 12768 12796]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(test.sh)} spids:[12800])
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {
              (DQ ($ VSub_Name '$mkshshebang') ('\n') ("LC_ALL=C PATH='") ($ VSub_Name '$PATH') 
                ("'; export LC_ALL PATH\n") ('test -n ') (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (KSH_VERSION) 
                (Right_DoubleQuote '"') (' || exit 1\n') ('set -A check_categories -- ') ($ VSub_Name '$check_categories') ('\n') ("pflag='") 
                ($ VSub_Name '$curdir') (/) ($ VSub_Name '$mkshexe') ("'\n") ("sflag='") ($ VSub_Name '$srcdir') ("/check.t'\n") 
                ('usee=0 Pflag=0 Sflag=0 uset=0 vflag=1 xflag=0\n') ('while getopts ') (Right_DoubleQuote '"') ('C:e:fPp:QSs:t:v') (Right_DoubleQuote '"') (' ch; do case ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('ch {\n') ('(C)\tcheck_categories[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ('{#check_categories[*]}]=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('OPTARG ;;\n') ('(e)\tusee=1; eflag=') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('OPTARG ;;\n') ('(f)\tcheck_categories[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ('{#check_categories[*]}]=fastbox ;;\n') ('(P)\tPflag=1 ;;\n') ('(+P)\tPflag=0 ;;\n') ('(p)\tpflag=') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('OPTARG ;;\n') ('(Q)\tvflag=0 ;;\n') ('(+Q)\tvflag=1 ;;\n') ('(S)\tSflag=1 ;;\n') ('(+S)\tSflag=0 ;;\n') 
                ('(s)\tsflag=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('OPTARG ;;\n') ('(t)\tuset=1; tflag=') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('OPTARG ;;\n') ('(v)\tvflag=1 ;;\n') ('(+v)\tvflag=0 ;;\n') ('(*)\txflag=1 ;;\n') ('}\n') ('done\n') 
                ('shift ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('((OPTIND - 1))\n') ("set -A args -- '") 
                ($ VSub_Name '$srcdir') ("/check.pl' -p ") (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (pflag) 
                (Right_DoubleQuote '"') ('\n') ('x=\n') ('for y in ') (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ('{check_categories[@]}') (Right_DoubleQuote '"') ('; do\n') ('x=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('x,') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('y\n') ('done\n') ('if [[ -n ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('x ]]; then\n') 
                ('args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-C\n') ('args[') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{x#,}\n') ('fi\n') 
                ('if (( usee )); then\n') ('args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-e\n') ('args[') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('eflag\n') ('fi\n') 
                ('(( Pflag )) && args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-P\n') ('if (( uset )); then\n') 
                ('args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-t\n') ('args[') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('tflag\n') ('fi\n') 
                ('(( vflag )) && args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-v\n') ('(( xflag )) && args[') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-x\t# force usage by synerr\n') ('if [[ -n ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('TMPDIR && -d ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('TMPDIR/. ]]; then\n') ('args[') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=-T\n') ('args[') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{#args[*]}]=') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('TMPDIR\n') ('fi\n') ('print Testing mksh for conformance:\n') ("grep -F -e Mir''OS: -e MIRBSD ") 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (sflag) (Right_DoubleQuote '"') ('\n') ('print ') 
                (Right_DoubleQuote '"') ('This shell is actually:') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n) 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (t) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (KSH_VERSION) (Right_DoubleQuote '"') ('\n') 
                ("print 'test.sh built for mksh ") ($ VSub_Name '$dstversion') ("'\n") ("cstr='") (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ('os = defined ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('^O ? ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('^O : ') (Right_DoubleQuote '"') (unknown) (Right_DoubleQuote '"') (";'\n") ('cstr=') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (cstr) (Right_DoubleQuote '"') ("'print ") 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('os . ') (Right_DoubleQuote '"') (', Perl version ') (Right_DoubleQuote '"') (' . ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ("];'\n") ('for perli in ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ('PERL perl5 perl no; do\n') ('if [[ ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli = no ]]; then\n') 
                ('print Cannot find a working Perl interpreter, aborting.\n') ('exit 1\n') ('fi\n') ('print ') (Right_DoubleQuote '"') ("Trying Perl interpreter '") 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ("perli'...") (Right_DoubleQuote '"') ('\n') ('perlos=') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli -e ') (Right_DoubleQuote '"') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (cstr) (Right_DoubleQuote '"') (')\n') ('rv=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('?\n') 
                ('print ') (Right_DoubleQuote '"') ('Errorlevel ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ("rv, running on '") (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ("perlos'") (Right_DoubleQuote '"') ('\n') 
                ('if (( rv )); then\n') ('print ') (Right_DoubleQuote '"') ('=> not using') (Right_DoubleQuote '"') ('\n') ('continue\n') ('fi\n') 
                ('if [[ -n ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perlos ]]; then\n') ('print ') 
                (Right_DoubleQuote '"') ('=> using it') (Right_DoubleQuote '"') ('\n') ('break\n') ('fi\n') ('done\n') ('(( Sflag )) || echo + ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli ') (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{args[@]}') 
                (Right_DoubleQuote '"') (' -s ') (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (sflag) 
                (Right_DoubleQuote '"') (' ') (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@') 
                (Right_DoubleQuote '"') ('\n') ('(( Sflag )) || exec ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{args[@]}') (Right_DoubleQuote '"') (' -s ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (sflag) (Right_DoubleQuote '"') (' ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@') (Right_DoubleQuote '"') ($ VSub_Name '$tsts') 
                ('\n') ('# use of the -S option for check.t split into multiple chunks\n') ('rv=0\n') ('for s in ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (sflag) (Right_DoubleQuote '"') ('.*; do\n') 
                ('echo + ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli ') (Right_DoubleQuote '"') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{args[@]}') (Right_DoubleQuote '"') (' -s ') (Right_DoubleQuote '"') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (s) (Right_DoubleQuote '"') (' ') (Right_DoubleQuote '"') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@') (Right_DoubleQuote '"') ('\n') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('perli ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{args[@]}') (Right_DoubleQuote '"') (' -s ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (s) (Right_DoubleQuote '"') (' ') 
                (Right_DoubleQuote '"') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@') (Right_DoubleQuote '"') ($ VSub_Name '$tsts') 
                ('\n') ('rc=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('?\n') ('(( rv = rv ? rv : rc ))\n') 
                ('done\n') ('exit ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('rv\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [12803]
        )
      ]
    )
    (C {(chmod)} {(755)} {(test.sh)})
    (Case
      to_match: {($ VSub_Name '$cm')}
      arms: [
        (case_arm
          pat_list: [{(dragonegg)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emitbc)
                  op: Equal
                  rhs: {(DQ ('-S -flto'))}
                  spids: [13155]
                )
              ]
              spids: [13155]
            )
          ]
          spids: [13151 13152 13161 16777215]
        )
        (case_arm
          pat_list: [{(llvm)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emitbc)
                  op: Equal
                  rhs: {(DQ ('-emit-llvm -c'))}
                  spids: [13167]
                )
              ]
              spids: [13167]
            )
          ]
          spids: [13163 13164 13173 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:emitbc) op:Equal rhs:{(-c)} spids:[13179])]
              spids: [13179]
            )
          ]
          spids: [13175 13176 13183 16777215]
        )
      ]
      spids: [13145 13149 13185]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ (': # work around NeXTstep bug'))}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(Rebuild.sh)} spids:[13193])]
    )
    (C {(cd)} {(DQ ($ VSub_Name '$srcdir'))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:optfiles)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(echo)} {(Lit_Other '*') (.opt)})])
                left_token: <Left_Backtick '`'>
                spids: [13203 13208]
              )
            }
          spids: [13202]
        )
      ]
      spids: [13202]
    )
    (C {(cd)} {(DQ ($ VSub_Name '$curdir'))})
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name '$optfiles')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(DQ ("echo + Running genopt on '") ($ VSub_Name '$file') ("'..."))})
            (C {(echo)} 
              {
                (DQ ("(srcfile='") ($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file') 
                  ("'; BUILDSH_RUN_GENOPT=1; . '") ($ VSub_Name '$srcdir') ("/Build.sh')")
                )
              }
            )
          ]
          spids: [13225 13249]
        )
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(Rebuild.sh)} spids:[13251])]
      spids: [13221 13223]
    )
    (SimpleCommand
      words: [{(echo)} {(set)} {(-x)}]
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(Rebuild.sh)} spids:[13260])]
    )
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name '$SRCS')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:op)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(x) (DQ ($ VSub_Name '$file'))})
                                  (C {(sed)} {(SQ <'s/^x\\(.*\\)\\.c$/\\1./'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [13276 13291]
                      )
                    }
                  spids: [13275]
                )
              ]
              spids: [13275]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {($ VSub_Name '$file')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:file)
                      op: Equal
                      rhs: {($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file')}
                      spids: [13302]
                    )
                  ]
                  spids: [13302]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$files') ($ VSub_Name '$sp') ($ VSub_Name '$file'))}
                  spids: [13308]
                )
              ]
              spids: [13308]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:sp) op:Equal rhs:{(SQ <' '>)} spids:[13316])]
              spids: [13316]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                    (' ') ($ VSub_Name '$emitbc') (' ') ($ VSub_Name '$file') (' || exit 1')
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(Rebuild.sh)}
                  spids: [13337]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(dragonegg)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('mv ') (${ VSub_Name op) ('s ') (${ VSub_Name op) (ll))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(Rebuild.sh)}
                          spids: [13369]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('llvm-as ') (${ VSub_Name op) ('ll || exit 1'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(Rebuild.sh)}
                          spids: [13383]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:objs)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$objs') ($ VSub_Name '$sp') (${ VSub_Name op) (bc))}
                          spids: [13387]
                        )
                      ]
                      spids: [13387]
                    )
                  ]
                  spids: [16777215 13352]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:objs)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$objs') ($ VSub_Name '$sp') (${ VSub_Name op) (o))}
                      spids: [13401]
                    )
                  ]
                  spids: [13401]
                )
              ]
              spids: [13398 13412]
            )
          ]
          spids: [13272 13414]
        )
      spids: [13268 13270]
    )
    (Case
      to_match: {($ VSub_Name '$cm')}
      arms: [
        (case_arm
          pat_list: [{(dragonegg)} {(llvm)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('rm -f ') ($ VSub_Name '$tfn') (.s))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(Rebuild.sh)}
                  spids: [13436]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('llvm-link -o - ') ($ VSub_Name '$objs') (' | opt ') ($ VSub_Name '$optflags') 
                    (' | llc -o ') ($ VSub_Name '$tfn') (.s)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(Rebuild.sh)}
                  spids: [13452]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lobjs)
                  op: Equal
                  rhs: {($ VSub_Name '$tfn') (.s)}
                  spids: [13456]
                )
              ]
              spids: [13456]
            )
          ]
          spids: [13422 13425 13461 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lobjs)
                  op: Equal
                  rhs: {($ VSub_Name '$objs')}
                  spids: [13467]
                )
              ]
              spids: [13467]
            )
          ]
          spids: [13463 13464 13471 16777215]
        )
      ]
      spids: [13416 13420 13473]
    )
    (SimpleCommand
      words: [{(echo)} {(Lit_VarLike 'tcfn=') ($ VSub_Name '$mkshexe')}]
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(Rebuild.sh)} spids:[13480])]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$LDFLAGS') (' -o ') 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('tcfn ') ($ VSub_Name '$lobjs') (' ') ($ VSub_Name '$LIBS') (' ') ($ VSub_Name '$ccpr')
          )
        }
      ]
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(Rebuild.sh)} spids:[13501])]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('test -f ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('tcfn || exit 1; ') 
            ($ VSub_Name '$SIZE') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (tcfn)
          )
        }
      ]
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(Rebuild.sh)} spids:[13516])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(makefile)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:extras)
                  op: Equal
                  rhs: {(SQ <'emacsfn.h rlimits.opt sh.h sh_flags.opt var_spec.h'>)}
                  spids: [13533]
                )
              ]
              spids: [13533]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$HAVE_SYS_SIGNAME')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:extras)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$extras') (' signames.inc'))}
                      spids: [13549]
                    )
                  ]
                  spids: [13549]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gens)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [13556]
                )
                (assign_pair
                  lhs: (LhsName name:genq)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [13558]
                )
              ]
              spids: [13556]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$optfiles')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:genf)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(basename)} {(DQ ($ VSub_Name '$file'))})
                                          (C {(sed)} {(SQ <'s/.opt$/.gen/'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [13574 13588]
                              )
                            }
                          spids: [13573]
                        )
                      ]
                      spids: [13573]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gens)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$gens') (' ') ($ VSub_Name '$genf'))}
                          spids: [13591]
                        )
                      ]
                      spids: [13591]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:genq)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$genq') ($ VSub_Name '$nl') ($ VSub_Name '$genf') (': ') 
                                ($ VSub_Name '$srcdir') ('/Build.sh ') ($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file') ('\n') ('\t\t\tsrcfile=') 
                                ($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file') ('; BUILDSH_RUN_GENOPT=1; . ') ($ VSub_Name '$srcdir') (/Build.sh)
                              )
                            }
                          spids: [13599]
                        )
                      ]
                      spids: [13599]
                    )
                  ]
                  spids: [13570 13621]
                )
              spids: [13566 13568]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(Makefrag.inc)}
                  spids: [13626]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {
                      (DQ ('# Makefile fragment for building mksh ') ($ VSub_Name '$dstversion') ('\n') 
                        ('\n') ('PROG=\t\t') ($ VSub_Name '$mkshexe') ('\n') ('MAN=\t\tmksh.1\n') ('SRCS=\t\t') ($ VSub_Name '$SRCS') 
                        ('\n') ('SRCS_FP=\t') ($ VSub_Name '$files') ('\n') ('OBJS_BP=\t') ($ VSub_Name '$objs') ('\n') ('INDSRCS=\t') 
                        ($ VSub_Name '$extras') ('\n') ('NONSRCS_INST=\tdot.mkshrc ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(MAN)\n') 
                        (
'NONSRCS_NOINST=\tBuild.sh Makefile Rebuild.sh check.pl check.t test.sh\n'
                        ) ('CC=\t\t') ($ VSub_Name '$CC') ('\n') ('CFLAGS=\t\t') ($ VSub_Name '$CFLAGS') ('\n') ('CPPFLAGS=\t') 
                        ($ VSub_Name '$CPPFLAGS') ('\n') ('LDFLAGS=\t') ($ VSub_Name '$LDFLAGS') ('\n') ('LIBS=\t\t') ($ VSub_Name '$LIBS') ('\n') ('\n') 
                        ('.depend ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(OBJS_BP):') ($ VSub_Name '$gens') 
                        ($ VSub_Name '$genq') ('\n') ('\n') ('# not BSD make only:\n') ('#VPATH=\t\t') ($ VSub_Name '$srcdir') ('\n') ('#all: ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(PROG)\n') ('#') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(PROG): ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(OBJS_BP)\n') ('#\t') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(CC) ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(CFLAGS) ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(LDFLAGS) -o ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('@ ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(OBJS_BP) ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(LIBS)\n') ('#') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(OBJS_BP): ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(SRCS_FP) ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(NONSRCS)\n') ('#.c.o:\n') ('#\t') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(CC) ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(CFLAGS) ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(CPPFLAGS) -c ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('<\n') ('\n') 
                        ('# for all make variants:\n') ('#REGRESS_FLAGS=\t-f\n') ('#regress:\n') ('#\t./test.sh ') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(REGRESS_FLAGS)\n') ('check_categories=') ($ VSub_Name '$check_categories') ('\n') ('\n') 
                        ('# for BSD make only:\n') ('#.PATH: ') ($ VSub_Name '$srcdir') ('\n') ('#.include <bsd.prog.mk>\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [13629]
                )
              ]
            )
            (C {($ VSub_Name '$e')})
            (C {($ VSub_Name '$e')} {(Generated)} {(Makefrag.inc)} {(successfully.)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [16777215 13530]
        )
      ]
      spids: [16777215 13755]
    )
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name '$optfiles')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {($ VSub_Name '$e')} {(DQ ("+ Running genopt on '") ($ VSub_Name '$file') ("'..."))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(do_genopt)} {(DQ ($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file'))})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
          ]
          spids: [13766 13792]
        )
      spids: [13762 13764]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(combine)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:objs)
                  op: Equal
                  rhs: {(DQ ('-o ') ($ VSub_Name '$mkshexe'))}
                  spids: [13808]
                )
              ]
              spids: [13808]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$SRCS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-f)} {($ VSub_Name '$file')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:file)
                              op: Equal
                              rhs: {($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file')}
                              spids: [13835]
                            )
                          ]
                          spids: [13835]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:objs)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$objs') (' ') ($ VSub_Name '$file'))}
                          spids: [13841]
                        )
                      ]
                      spids: [13841]
                    )
                  ]
                  spids: [13824 13849]
                )
              spids: [13820 13822]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emitbc)
                  op: Equal
                  rhs: {(DQ ('-fwhole-program --combine'))}
                  spids: [13852]
                )
              ]
              spids: [13852]
            )
            (C {(v)} 
              {
                (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$CPPFLAGS') 
                  (' ') ($ VSub_Name '$LDFLAGS') (' ') ($ VSub_Name '$emitbc') (' ') ($ VSub_Name '$objs') (' ') 
                  ($ VSub_Name '$LIBS') (' ') ($ VSub_Name '$ccpr')
                )
              }
            )
          ]
          spids: [16777215 13805]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$pm')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$SRCS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-f)} {($ VSub_Name '$file')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:file)
                              op: Equal
                              rhs: {($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file')}
                              spids: [13912]
                            )
                          ]
                          spids: [13912]
                        )
                      ]
                    )
                    (Sentence
                      child: 
                        (C {(v)} 
                          {
                            (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                              ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$emitbc') (' ') ($ VSub_Name '$file')
                            )
                          }
                        )
                      terminator: <Op_Amp '&'>
                    )
                  ]
                  spids: [13901 13935]
                )
              spids: [13897 13899]
            )
            (C {(wait)})
          ]
          spids: [13878 13889]
        )
      ]
      else_action: [
        (ForEach
          iter_name: file
          iter_words: [{($ VSub_Name '$SRCS')}]
          do_arg_iter: F
          body: 
            (DoGroup
              children: [
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(dragonegg)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:op)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(x) (DQ ($ VSub_Name '$file'))})
                                          (C {(sed)} {(SQ <'s/^x\\(.*\\)\\.c$/\\1./'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [13968 13983]
                              )
                            }
                          spids: [13967]
                        )
                      ]
                      spids: [13967]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(-f)} {($ VSub_Name '$file')})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:file)
                          op: Equal
                          rhs: {($ VSub_Name '$srcdir') (/) ($ VSub_Name '$file')}
                          spids: [13994]
                        )
                      ]
                      spids: [13994]
                    )
                  ]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') 
                          ($ VSub_Name '$CPPFLAGS') (' ') ($ VSub_Name '$emitbc') (' ') ($ VSub_Name '$file')
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(dragonegg)})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(v)} {(DQ ('mv ') (${ VSub_Name op) ('s ') (${ VSub_Name op) (ll))})
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(v)} {(DQ ('llvm-as ') (${ VSub_Name op) (ll))})
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(1)}
                            )
                          ]
                        )
                      ]
                      spids: [16777215 14032]
                    )
                  ]
                  spids: [16777215 14067]
                )
              ]
              spids: [13952 14070]
            )
          spids: [13948 13950]
        )
      ]
      spids: [13940 14072]
    )
    (Case
      to_match: {($ VSub_Name '$cm')}
      arms: [
        (case_arm
          pat_list: [{(dragonegg)} {(llvm)}]
          action: [
            (C {(rmf)} {($ VSub_Name '$tfn') (.s)})
            (C {(v)} 
              {
                (DQ ('llvm-link -o - ') ($ VSub_Name '$objs') (' | opt ') ($ VSub_Name '$optflags') 
                  (' | llc -o ') ($ VSub_Name '$tfn') (.s)
                )
              }
            )
          ]
          spids: [14080 14083 14105 16777215]
        )
      ]
      spids: [14074 14078 14107]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tcfn)
          op: Equal
          rhs: {($ VSub_Name '$mkshexe')}
          spids: [14109]
        )
      ]
      spids: [14109]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {($ VSub_Name '$cm')} {(Lit_Other '=')} {(combine)})
        (C {(v)} 
          {
            (DQ ($ VSub_Name '$CC') (' ') ($ VSub_Name '$CFLAGS') (' ') ($ VSub_Name '$LDFLAGS') (' -o ') 
              ($ VSub_Name '$tcfn') (' ') ($ VSub_Name '$lobjs') (' ') ($ VSub_Name '$LIBS') (' ') ($ VSub_Name '$ccpr')
            )
          }
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {($ VSub_Name '$tcfn')})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (AndOr
      ops: [Op_DPipe Op_DPipe]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$r')})
        (C {(v)} 
          {
            (DQ ($ VSub_Name '$NROFF') (" -mdoc <'") ($ VSub_Name '$srcdir') ("/mksh.1' >") 
              ($ VSub_Name '$tfn') (.cat1)
            )
          }
        )
        (C {(rmf)} {($ VSub_Name '$tfn') (.cat1)})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(0)} {(Lit_Other '=')} {($ VSub_Name '$eq')})
        (C {(v)} {($ VSub_Name '$SIZE')} {($ VSub_Name '$tcfn')})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(install)} spids:[14198])]
      spids: [14198]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-f)} {(/usr/ucb/) ($ VSub_Name '$i')})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:i)
              op: Equal
              rhs: {(/usr/ucb/) ($ VSub_Name '$i')}
              spids: [14210]
            )
          ]
          spids: [14210]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(1)} {(Lit_Other '=')} {($ VSub_Name '$eq')})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:e) op:Equal rhs:{(Lit_Other ':')} spids:[14224])]
          spids: [14224]
        )
      ]
    )
    (C {($ VSub_Name '$e')})
    (C {($ VSub_Name '$e')} {(Installing)} {(the)} {(shell) (Lit_Other ':')})
    (C {($ VSub_Name '$e')} 
      {
        (DQ ('# ') ($ VSub_Name '$i') (' -c -s -o root -g bin -m 555 ') ($ VSub_Name '$tfn') (' /bin/') 
          ($ VSub_Name '$tfn')
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$legacy')} {(Lit_Other '=')} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {($ VSub_Name '$e')} 
              {
                (DQ ('# grep -x /bin/') ($ VSub_Name '$tfn') (' /etc/shells >/dev/null || echo /bin/') 
                  ($ VSub_Name '$tfn') (' >>/etc/shells')
                )
              }
            )
            (C {($ VSub_Name '$e')} 
              {
                (DQ ('# ') ($ VSub_Name '$i') 
                  (' -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/')
                )
              }
            )
          ]
          spids: [16777215 14260]
        )
      ]
      spids: [16777215 14282]
    )
    (C {($ VSub_Name '$e')})
    (C {($ VSub_Name '$e')} {(Installing)} {(the)} {(manual) (Lit_Other ':')})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-f)} {($ VSub_Name '$tfn') (.cat1)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {($ VSub_Name '$e')} 
              {
                (DQ ('# ') ($ VSub_Name '$i') (' -c -o root -g bin -m 444 ') ($ VSub_Name '$tfn') (.cat1))
              } {(DQ (/usr/share/man/cat1/) ($ VSub_Name '$tfn') (.0))}
            )
            (C {($ VSub_Name '$e')} {(or)})
          ]
          spids: [16777215 14305]
        )
      ]
      spids: [16777215 14331]
    )
    (C {($ VSub_Name '$e')} 
      {
        (DQ ('# ') ($ VSub_Name '$i') (' -c -o root -g bin -m 444 ') ($ VSub_Name '$tfn') 
          ('.1 /usr/share/man/man1/') ($ VSub_Name '$tfn') (.1)
        )
      }
    )
    (C {($ VSub_Name '$e')})
    (C {($ VSub_Name '$e')} {(Run)} {(the)} {(regression)} {(test)} {(suite) (Lit_Other ':')} {(./test.sh)})
    (C {($ VSub_Name '$e')} {(Please)} {(also)} {(read)} {(the)} {(sample)} {(file)} {(dot.mkshrc)} {(and)} 
      {(the)} {(fine)} {(manual.)}
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
    (SimpleCommand
      words: [{(Lit_Other ':')}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('\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_expansion: False
          here_end: EOD
          was_filled: T
          spids: [14393]
        )
      ]
    )
  ]
)