(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 -1]
        )
      ]
      spids: [89 95 107]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  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: -1
                          arg_word: {(/dev/null)}
                          spids: [132]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [135]
                        )
                      ]
                      spids: [126 130]
                    )
                  ]
                  op_id: Op_DAmp
                )
              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: [-1 139]
        )
      ]
      spids: [-1 150]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(test)} {(-d)} {(/usr/xpg4/bin/.)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      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: [-1 168]
        )
      ]
      spids: [-1 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:-1 arg_word:{(2)} spids:[244])]
                    )
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ("E: in '") ($ VSub_Name "$srcfile") ("': '") ($ VSub_Name "$line") ("'"))
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[255])]
                    )
                  ]
                  spids: [-1 239]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {
                      (DQ ("E: invalid input in '") ($ VSub_Name "$srcfile") ("': '") 
                        ($ VSub_Name "$line") ("'")
                      )
                    }
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[272])]
                )
              ]
              spids: [267 284]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$bn") (.gen))})
            (C {(exit)} {(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: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [312 326]
                      )
                    }
                  spids: [311]
                )
              ]
              spids: [311]
            )
            (AndOr
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name "$optc"))} {(Lit_Other "=")} {(x) (SQ <"|">)})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
              op_id: Op_DAmp
            )
            (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: False
                              )
                            ]
                          )
                        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: [-1 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: False
                              )
                            ]
                          )
                        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:{(SQ )} spids:[450])]
                      spids: [450]
                    )
                  ]
                  spids: [446 447 453 -1]
                )
                (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: False
                                      )
                                    ]
                                  )
                                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 -1]
                )
                (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: False
                                      )
                                    ]
                                  )
                                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 -1]
                )
                (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 -1]
                )
              ]
              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
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Name "$srcfile"))})
                (C {(genopt_die)} {(Source)} {(file)} 
                  {(EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (srcfile)} {(not)} {(set.)}
                )
              ]
              op_id: Op_DPipe
            )
            (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: False
                              )
                            ]
                          )
                        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:{(SQ )} spids:[608])]
              spids: [608]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:o_str) op:Equal rhs:{(SQ )} spids:[611])]
              spids: [611]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:o_sym) op:Equal rhs:{(SQ )} spids:[614])]
              spids: [614]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ddefs) op:Equal rhs:{(SQ )} 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: -1
                  arg_word: {(DQ ($ VSub_Name "$srcfile"))}
                  spids: [626]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(SQ )} spids:[632])]
              spids: [632]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(read)} {(line)}]
                      more_env: [(env_pair name:IFS val:{(SQ )} 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: False
                                              )
                                            ]
                                          )
                                        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 -1]
                        )
                        (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 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other "*") (Lit_Other ":") (Lit_Other "@") (Lit_Other "@") 
                              (Lit_Other "*")
                            }
                          ]
                          action: [(C {(genopt_die)})]
                          spids: [769 774 779 -1]
                        )
                        (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 -1]
                        )
                        (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: False
                                              )
                                            ]
                                          )
                                        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: [-1 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 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(0) (Lit_Other ":") (Lit_Other "*")}
                            {(3) (Lit_Other ":") (Lit_Other "*")}
                          ]
                          action: [(C {(genopt_die)})]
                          spids: [898 905 910 -1]
                        )
                        (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 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(2) (Lit_Other ":") (SQ <"<">) (Lit_Other "*") (SQ <"|">) (Lit_Other "*")}
                          ]
                          action: [(C {(genopt_soptc)})]
                          spids: [932 942 948 -1]
                        )
                        (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: False
                                              )
                                            ]
                                          )
                                        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 -1]
                                )
                                (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 -1]
                                )
                              ]
                              spids: [988 992 1017]
                            )
                            (AndOr
                              children: [
                                (SimpleCommand
                                  words: [{(read)} {(line)}]
                                  more_env: [(env_pair name:IFS val:{(SQ )} spids:[1020])]
                                )
                                (C {(genopt_die)} {(Unexpected)} {(EOF)})
                              ]
                              op_id: Op_DPipe
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {($ VSub_Name "$safeIFS")}
                                  spids: [1035]
                                )
                              ]
                              spids: [1035]
                            )
                            (AndOr
                              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]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                            (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
                              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]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [951 961 1086 -1]
                        )
                      ]
                      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 -1]
                )
                (case_arm
                  pat_list: [{(3) (Lit_Other ":") (Lit_Other "*")}]
                  spids: [1123 1126 1128 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(genopt_die)} {(Missing)} {(EOF)} {(marker)})]
                  spids: [1131 1132 1142 -1]
                )
              ]
              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
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name "$x"))})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (C {(genopt_scond)})
                        (AndOr
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name "$cond"))})
                            (C {(echo)} {(DQ ($ VSub_Name "$cond"))})
                          ]
                          op_id: Op_DAmp
                        )
                        (C {(echo)} 
                          {
                            (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                              ($ VSub_Name "$opts") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                            )
                          }
                        )
                        (AndOr
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name "$cond"))})
                            (C {(echo)} {(DQ ("#endif"))})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      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: -1
                      arg_word: {(DQ ($ VSub_Name "$bn") (.gen))}
                      spids: [1292]
                    )
                  ]
                  spids: [1246]
                )
              ]
              negated: False
            )
            (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: [-1 1327]
        )
      ]
      spids: [-1 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"))}) (C {(exit)} {($ VSub_QMark "$?")})]
          spids: [-1 1362]
        )
      ]
      spids: [-1 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:-1 arg_word:{(vv.out)} spids:[1449])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1452])
              ]
            )
            (SimpleCommand
              words: [{(sed)} {(DQ ("s\u0007^\u0007") (${ VSub_Name _c) (" \u0007"))}]
              redirects: [(Redir op_id:Redir_Less fd:-1 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: False
              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 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name "$_f"))})]
                          spids: [1543 1544 1554 -1]
                        )
                      ]
                      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:{(SQ )} spids:[1568])]
      spids: [1568]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ui) op:Equal rhs:{(SQ )} spids:[1570])]
      spids: [1570]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ao) op:Equal rhs:{(SQ )} spids:[1572])]
      spids: [1572]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:fx) op:Equal rhs:{(SQ )} 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 <"\u001b[1m">)}
                  spids: [1609]
                )
              ]
              spids: [1609]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ui)
                  op: Equal
                  rhs: {(SQ <"\u001b[4m">)}
                  spids: [1615]
                )
              ]
              spids: [1615]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ao)
                  op: Equal
                  rhs: {(SQ <"\u001b[0m">)}
                  spids: [1621]
                )
              ]
              spids: [1621]
            )
          ]
          spids: [-1 1606]
        )
      ]
      spids: [-1 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: False
            )
          ]
          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
              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]
                )
              ]
              op_id: Op_DPipe
            )
            (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:{(SQ )} 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 -1]
                )
              ]
              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
                      children: [
                        (C {(test)} {(x) (DQ ($ VSub_Number "$2"))} {(Lit_Other "=")} {(x) (DQ ("!"))})
                        (C {(shift)})
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      children: [
                        (C {(test)} {(x) (DQ ($ VSub_Number "$2"))} {(Lit_Other "=")} {(x) (DQ )})
                        (C {(shift)})
                      ]
                      op_id: Op_DPipe
                    )
                    (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: [-1 1810]
                )
              ]
              spids: [-1 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: [-1 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: [-1 1916]
                    )
                  ]
                  spids: [-1 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: [-1 1968]
                )
              ]
              spids: [-1 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: [-1 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
              children: [
                (C {(ac_testinit)} {(DQ ($ VSub_At "$@"))})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [(Redir op_id:Redir_Great fd:-1 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
              children: [
                (C {(test)} {($ VSub_Name "$tcfn")} {(Lit_Other "=")} {(no)})
                (AndOr
                  children: [
                    (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]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$tcfn")} {(Lit_Other "=")} {(no)})
                (AndOr
                  children: [
                    (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]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$tcfn")} {(Lit_Other "=")} {(no)})
                (AndOr
                  children: [
                    (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]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$tcfn")} {(Lit_Other "=")} {(no)})
                (AndOr
                  children: [
                    (C {(test)} {(-f)} {(conftest)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tcfn)
                          op: Equal
                          rhs: {(conftest)}
                          spids: [2179]
                        )
                      ]
                      spids: [2179]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-f)} {($ VSub_Name "$tcfn")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      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]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [-1 2192]
                )
              ]
              else_action: [
                (AndOr
                  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]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [2209 2226]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:vscan) op:Equal rhs:{(SQ )} spids:[2229])]
              spids: [2229]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {($ VSub_Name "$phase")} {(Lit_Other "=")} {(u)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      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]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      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]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      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]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      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]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 2243]
                )
              ]
              spids: [-1 2310]
            )
            (AndOr
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name "$vscan"))})
                (AndOr
                  children: [
                    (SimpleCommand
                      words: [{(grep)} {($ VSub_Name "$vscan")} {(vv.out)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          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]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [2013]
        )
      spids: [2009 2012]
    )
    (FuncDef
      name: ac_testn
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(ac_testnnd)} {(DQ ($ VSub_At "$@"))})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
              op_id: Op_DPipe
            )
            (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: -1
                  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: True
                  spids: [2407]
                )
              ]
            )
            (AndOr
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(x) (DQ ("!"))})
                (C {(shift)})
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [2442]
                )
              ]
              spids: [2442]
            )
            (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: [2447 2451]
                      )
                    }
                  spids: [2446]
                )
              ]
              spids: [2446]
            )
            (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: [2486]
                )
              ]
              spids: [2486]
            )
          ]
          spids: [2483]
        )
      spids: [2479 2482]
    )
    (FuncDef
      name: ac_cppflags
      body: 
        (BraceGroup
          children: [
            (AndOr
              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: [2518]
                    )
                  ]
                  spids: [2518]
                )
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fv)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [2522]
                )
              ]
              spids: [2522]
            )
            (AndOr
              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")
                  }
                )
              ]
              op_id: Op_DAmp
            )
            (C {(add_cppflags)} {(-DHAVE_) ($ VSub_Name "$fu") (Lit_Other "=") ($ VSub_Name "$fv")})
          ]
          spids: [2500]
        )
      spids: [2496 2499]
    )
    (FuncDef
      name: ac_test
      body: 
        (BraceGroup
          children: [(C {(ac_testn)} {(DQ ($ VSub_At "$@"))}) (C {(ac_cppflags)})]
          spids: [2563]
        )
      spids: [2559 2562]
    )
    (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:[2611])]
                      spids: [2611]
                    )
                  ]
                  spids: [-1 2605]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:hf) op:Equal rhs:{(0)} spids:[2618])]
                  spids: [2618]
                )
              ]
              spids: [2615 2622]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fa)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [2625]
                )
              ]
              spids: [2625]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:vn)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [2629]
                )
              ]
              spids: [2629]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {($ VSub_Number "$3")}
                  spids: [2633]
                )
              ]
              spids: [2633]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ft)
                  op: Equal
                  rhs: {($ VSub_Number "$4")}
                  spids: [2637]
                )
              ]
              spids: [2637]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fl)
                  op: Equal
                  rhs: {($ VSub_Number "$5")}
                  spids: [2641]
                )
              ]
              spids: [2641]
            )
            (AndOr
              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: [2660]
                    )
                  ]
                  spids: [2660]
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:save_CFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name "$CFLAGS")}
                  spids: [2668]
                )
              ]
              spids: [2668]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CFLAGS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$CFLAGS") (" ") ($ VSub_Name "$f"))}
                  spids: [2672]
                )
              ]
              spids: [2672]
            )
            (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: [2694]
                        )
                      ]
                      spids: [2694]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LDFLAGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$LDFLAGS") (" ") ($ VSub_Name "$fl"))}
                          spids: [2698]
                        )
                      ]
                      spids: [2698]
                    )
                  ]
                  spids: [-1 2691]
                )
              ]
              spids: [-1 2706]
            )
            (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: [-1 2720]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(ac_testn)} {(can_) ($ VSub_Name "$vn")} {(SQ )} {(DQ ($ VSub_Name "$ft"))}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLessDash
                      fd: -1
                      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: True
                      spids: [2751]
                    )
                  ]
                )
              ]
              spids: [2736 2757]
            )
            (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: [2765 2769]
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name "$fl"))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      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: [2797]
                            )
                          ]
                          spids: [2797]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [-1 2783]
                )
              ]
              spids: [-1 2801]
            )
            (AndOr
              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: [2815]
                    )
                  ]
                  spids: [2815]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [2585]
        )
      spids: [2581 2584]
    )
    (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:[2851])]
                      spids: [2851]
                    )
                    (C {(shift)})
                  ]
                  spids: [-1 2848]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:na) op:Equal rhs:{(0)} spids:[2861])]
                  spids: [2861]
                )
              ]
              spids: [2858 2865]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:hf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [2868]
                    )
                  ]
                  spids: [2868]
                )
              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: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [2876 2904]
                      )
                    }
                  spids: [2875]
                )
              ]
              spids: [2875]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("/* NeXTstep bug workaround */"))}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[2913])]
            )
            (ForEach
              iter_name: i
              do_arg_iter: True
              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: -1
                                  arg_word: {(x)}
                                  spids: [2942]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#include <sys/time.h>">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [2952]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#include <time.h>">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [2962]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#elif HAVE_SYS_TIME_H">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [2972]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#include <sys/time.h>">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [2982]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#elif HAVE_TIME_H">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [2992]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#include <time.h>">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [3002]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(SQ <"#endif">)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [3012]
                                )
                              ]
                            )
                          ]
                          spids: [2932 2933 3016 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ("#include <") ($ VSub_Name "$i") (">"))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(x)}
                                  spids: [3031]
                                )
                              ]
                            )
                          ]
                          spids: [3019 3020 3035 -1]
                        )
                      ]
                      spids: [2925 2929 3038]
                    )
                  ]
                  spids: [2922 3041]
                )
              spids: [-1 -1]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("#include <") ($ VSub_Name "$hf") (">"))}]
              redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(x)} spids:[3052])]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <"#include <unistd.h>">)}]
              redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(x)} spids:[3062])]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <"int main(void) { return (isatty(0)); }">)}]
              redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(x)} spids:[3072])]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(DQ ($ VSub_Name "$hv"))}
                {(DQ )}
                {(DQ ("<") ($ VSub_Name "$hf") (">"))}
              ]
              redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[3091])]
            )
            (C {(rmf)} {(x)})
            (AndOr
              children: [(C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$na")}) (C {(ac_cppflags)})]
              op_id: Op_DPipe
            )
          ]
          spids: [2828]
        )
      spids: [2824 2827]
    )
    (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:[3142])]
                      spids: [3142]
                    )
                    (C {(shift)})
                  ]
                  spids: [-1 3139]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fr) op:Equal rhs:{(1)} spids:[3152])]
                  spids: [3152]
                )
              ]
              spids: [3149 3156]
            )
            (C {(eval)} 
              {(Lit_VarLike "i=") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) 
                ($ VSub_Number "$1")
              }
            )
            (AndOr
              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: [3189 3194 3196 -1]
                    )
                    (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: [3202]
                            )
                          ]
                          spids: [3202]
                        )
                      ]
                      spids: [3199 3200 3209 -1]
                    )
                  ]
                  spids: [3178 3186 3212]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [3119]
        )
      spids: [3115 3118]
    )
    (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: [3219 3221]
              )
            }
          spids: [3218]
        )
        (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: [3231]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [3224 3233]
              )
            }
          spids: [3223]
        )
      ]
      spids: [3218]
    )
    (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:[3246])]
              spids: [3246]
            )
          ]
          spids: [3242 3243 3250 -1]
        )
        (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:-1 arg_word:{(2)} spids:[3272])]
            )
            (SimpleCommand
              words: [{(echo)} {(Errors)} {(may)} {(occur.)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3298])]
            )
          ]
          spids: [3252 3267 3308 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*") (DQ ("'")) (Lit_Other "*")}]
          action: [
            (C {(echo)} {(Source)} {(directory)} {(must)} {(not)} {(contain)} {(single)} {(quotes.)})
            (C {(exit)} {(1)})
          ]
          spids: [3310 3315 3340 -1]
        )
      ]
      spids: [3235 3240 3342]
    )
    (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: [3345 3358]
              )
            }
          spids: [3344]
        )
      ]
      spids: [3344]
    )
    (C {(add_cppflags)} {(-DMKSH_BUILDSH)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:e) op:Equal rhs:{(echo)} spids:[3365])]
      spids: [3365]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{(0)} spids:[3368])]
      spids: [3368]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:eq) op:Equal rhs:{(0)} spids:[3371])]
      spids: [3371]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pm) op:Equal rhs:{(0)} spids:[3374])]
      spids: [3374]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cm) op:Equal rhs:{(normal)} spids:[3377])]
      spids: [3377]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:optflags)
          op: Equal
          rhs: {(-std-compile-opts)}
          spids: [3380]
        )
      ]
      spids: [3380]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:check_categories) op:Equal rhs:{(SQ )} spids:[3383])]
      spids: [3383]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(SQ )} spids:[3385])]
      spids: [3385]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tfn) op:Equal rhs:{(SQ )} spids:[3387])]
      spids: [3387]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:legacy) op:Equal rhs:{(0)} spids:[3389])]
      spids: [3389]
    )
    (ForEach
      iter_name: i
      do_arg_iter: True
      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: [3427]
                        )
                      ]
                      spids: [3427]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(SQ )} spids:[3431])]
                      spids: [3431]
                    )
                  ]
                  spids: [3409 3424 3434 -1]
                )
                (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:-1 arg_word:{(2)} spids:[3452])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [3437 3440 3461 -1]
                )
                (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: [3470]
                        )
                      ]
                      spids: [3470]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(SQ )} spids:[3474])]
                      spids: [3474]
                    )
                  ]
                  spids: [3464 3467 3477 -1]
                )
                (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: [3486]
                        )
                      ]
                      spids: [3486]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(SQ )} spids:[3490])]
                      spids: [3490]
                    )
                  ]
                  spids: [3480 3483 3493 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-c)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(c)} spids:[3501])]
                      spids: [3501]
                    )
                  ]
                  spids: [3496 3498 3505 -1]
                )
                (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:-1 arg_word:{(2)} spids:[3520])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [3508 3510 3529 -1]
                )
                (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: [3546]
                        )
                      ]
                      spids: [3546]
                    )
                  ]
                  spids: [3532 3534 3553 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-j)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:pm) op:Equal rhs:{(1)} spids:[3561])]
                      spids: [3561]
                    )
                  ]
                  spids: [3556 3558 3565 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-L)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:legacy) op:Equal rhs:{(1)} spids:[3573])]
                      spids: [3573]
                    )
                  ]
                  spids: [3568 3570 3577 -1]
                )
                (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:[3586])]
                      spids: [3586]
                    )
                  ]
                  spids: [3580 3583 3590 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-M)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cm)
                          op: Equal
                          rhs: {(makefile)}
                          spids: [3598]
                        )
                      ]
                      spids: [3598]
                    )
                  ]
                  spids: [3593 3595 3602 -1]
                )
                (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: [3610]
                        )
                      ]
                      spids: [3610]
                    )
                  ]
                  spids: [3605 3607 3614 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-o)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(o)} spids:[3622])]
                      spids: [3622]
                    )
                  ]
                  spids: [3617 3619 3626 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-Q)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:eq) op:Equal rhs:{(1)} spids:[3634])]
                      spids: [3634]
                    )
                  ]
                  spids: [3629 3631 3638 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-r)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{(1)} spids:[3646])]
                      spids: [3646]
                    )
                  ]
                  spids: [3641 3643 3650 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-t)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:last) op:Equal rhs:{(t)} spids:[3658])]
                      spids: [3658]
                    )
                  ]
                  spids: [3653 3655 3662 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other ":") (-v)}]
                  action: [
                    (C {(echo)} {(DQ ("Build.sh ") ($ VSub_Name "$srcversion"))})
                    (C {(echo)} {(DQ ("for mksh ") ($ VSub_Name "$dstversion"))})
                    (C {(exit)} {(0)})
                  ]
                  spids: [3665 3667 3691 -1]
                )
                (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:-1 arg_word:{(2)} spids:[3708])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [3694 3696 3717 -1]
                )
                (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:-1 arg_word:{(2)} spids:[3735])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [3720 3721 3744 -1]
                )
              ]
              spids: [3400 3406 3747]
            )
          ]
          spids: [3397 3749]
        )
      spids: [-1 -1]
    )
    (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:-1 arg_word:{(2)} spids:[3774])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 3762]
        )
      ]
      spids: [-1 3782]
    )
    (AndOr
      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:[3809])]
                  spids: [3809]
                )
              ]
              spids: [-1 3806]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:tfn) op:Equal rhs:{(lksh)} spids:[3815])]
              spids: [3815]
            )
          ]
          spids: [3812 3818]
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (C {(test)} {(-d)} {($ VSub_Name "$tfn")})
                    (C {(test)} {(-d)} {($ VSub_Name "$tfn") (.exe)})
                  ]
                  op_id: Op_DPipe
                )
              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:-1 arg_word:{(2)} spids:[3850])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 3838]
        )
      ]
      spids: [-1 3858]
    )
    (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: [3916]
        )
      ]
      spids: [3916]
    )
    (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: [3921]
        )
      ]
      spids: [3921]
    )
    (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: [3942]
                )
              ]
              spids: [3942]
            )
            (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: [3949]
                )
              ]
              spids: [3949]
            )
          ]
          spids: [-1 3939]
        )
      ]
      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: [3958]
            )
          ]
          spids: [3958]
        )
        (C {(add_cppflags)} {(-DMKSH_LEGACY_MODE)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:HAVE_PERSISTENT_HISTORY)
              op: Equal
              rhs: {(0)}
              spids: [3970]
            )
          ]
          spids: [3970]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:HAVE_ISSET_MKSH_CONSERVATIVE_FDS)
              op: Equal
              rhs: {(1)}
              spids: [3974]
            )
          ]
          spids: [3974]
        )
      ]
      spids: [3955 3980]
    )
    (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: [4003]
                )
              ]
              spids: [4003]
            )
          ]
          spids: [-1 4000]
        )
      ]
      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: [4012]
            )
          ]
          spids: [4012]
        )
      ]
      spids: [4009 4020]
    )
    (AndOr
      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: [4046]
                    )
                  ]
                  spids: [4046]
                )
              ]
              spids: [-1 4043]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LDFLAGS)
                  op: Equal
                  rhs: {($ VSub_Name "$LDSTATIC")}
                  spids: [4056]
                )
              ]
              spids: [4056]
            )
          ]
          spids: [4053 4059]
        )
      ]
      op_id: Op_DAmp
    )
    (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
                                children: [
                                  (SimpleCommand
                                    words: [{(uname)} {(-s)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [4082]
                                      )
                                    ]
                                  )
                                  (C {(uname)})
                                ]
                                op_id: Op_DPipe
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [4077 4088]
                      )
                    }
                  spids: [4076]
                )
              ]
              spids: [4076]
            )
            (AndOr
              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: [4107]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [4102 4109]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_OS)
                      op: Equal
                      rhs: {($ VSub_Name "$x")}
                      spids: [4114]
                    )
                  ]
                  spids: [4114]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [-1 4073]
        )
      ]
      spids: [-1 4117]
    )
    (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:-1 arg_word:{(2)} spids:[4140])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 4130]
        )
      ]
      spids: [-1 4148]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:oswarn) op:Equal rhs:{(SQ )} spids:[4150])]
      spids: [4150]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ccpc) op:Equal rhs:{(-Wc) (Lit_Comma ",")} spids:[4152])]
      spids: [4152]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(-Wl) (Lit_Comma ",")} spids:[4156])]
      spids: [4156]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tsts) op:Equal rhs:{(SQ )} spids:[4160])]
      spids: [4160]
    )
    (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: [4162]
        )
      ]
      spids: [4162]
    )
    (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: [4191]
                )
              ]
              spids: [4191]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGET_OS) op:Equal rhs:{(Linux)} spids:[4198])]
              spids: [4198]
            )
          ]
          spids: [-1 4188]
        )
      ]
      spids: [-1 4201]
    )
    (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:-1 arg_word:{(2)} spids:[4229])]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(conftest.c)} spids:[4241])
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  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: True
                  spids: [4244]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(unknown)} spids:[4250])]
              spids: [4250]
            )
            (C {(vv)} {(SQ <"]">)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(cc)})
                    spids: [4261 4265]
                  ) (" -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: [4290 4294]
                )
              }
            )
            (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:-1 arg_word:{(2)} spids:[4319])]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGET_OS)
                          op: Equal
                          rhs: {($ VSub_Name "$ct")}
                          spids: [4336]
                        )
                      ]
                      spids: [4336]
                    )
                  ]
                  spids: [4311 4314 4340 -1]
                )
                (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:-1 arg_word:{(2)} spids:[4349])]
                    )
                  ]
                  spids: [4343 4344 4363 -1]
                )
              ]
              spids: [4304 4308 4366]
            )
          ]
          spids: [-1 4224]
        )
      ]
      spids: [-1 4368]
    )
    (Case
      to_match: {($ VSub_Name "$TARGET_OS")}
      arms: [
        (case_arm
          pat_list: [{(NEXTSTEP)}]
          action: [
            (AndOr
              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: [4403]
                                          )
                                        ]
                                      )
                                      (C {(grep)} {(SQ <"NeXT Mach [0-9][0-9.]*:">)})
                                      (C {(sed)} {(SQ <"s/^.*NeXT Mach \\([0-9][0-9.]*\\):.*$/\\1/">)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [4400 4425]
                          )
                        }
                      spids: [4399]
                    )
                  ]
                  spids: [4399]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [4380 4381 4428 -1]
        )
        (case_arm
          pat_list: [{(QNX)} {(SCO_SV)}]
          action: [
            (AndOr
              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: [4452 4456]
                          )
                        }
                      spids: [4451]
                    )
                  ]
                  spids: [4451]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [4430 4433 4459 -1]
        )
      ]
      spids: [4374 4378 4461]
    )
    (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: [4480 4484]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_NO_SIGSETJMP)})
            (C {(add_cppflags)} {(-DMKSH_TYPEDEF_SIG_ATOMIC_T) (Lit_Other "=") (int)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
          ]
          spids: [4473 4474 4505 -1]
        )
        (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: [4519 4523]
                  )
                )
              }
            )
          ]
          spids: [4507 4508 4527 -1]
        )
        (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: [4548]
                        )
                      ]
                      spids: [4548]
                    )
                  ]
                  spids: [4540 4545 4554 -1]
                )
                (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: [4561]
                        )
                      ]
                      spids: [4561]
                    )
                    (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: [4567]
                        )
                      ]
                      spids: [4567]
                    )
                  ]
                  spids: [4557 4558 4577 -1]
                )
              ]
              spids: [4533 4537 4580]
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_DISABLE_TTY_WARNING)})
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
          ]
          spids: [4529 4530 4606 -1]
        )
        (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: [4615 4619]
                  )
                )
              }
            )
          ]
          spids: [4608 4609 4623 -1]
        )
        (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: [4629]
                )
              ]
              spids: [4629]
            )
            (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: [4640]
                )
              ]
              spids: [4640]
            )
            (C {(add_cppflags)} {(-DMKSH__NO_SETEUGID)})
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
            (C {(add_cppflags)} {(-DMKSH_DISABLE_TTY_WARNING)})
          ]
          spids: [4625 4626 4662 -1]
        )
        (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: [4672 4676]
                  )
                )
              }
            )
          ]
          spids: [4664 4666 4680 -1]
        )
        (case_arm
          pat_list: [{(Darwin)}]
          action: [(C {(add_cppflags)} {(-D_DARWIN_C_SOURCE)})]
          spids: [4682 4683 4691 -1]
        )
        (case_arm pat_list:[{(DragonFly)}] spids:[469346944697-1])
        (case_arm pat_list:[{(FreeBSD)}] spids:[469947004703-1])
        (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: [4709]
                )
              ]
              spids: [4709]
            )
            (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: [4728 4732]
                  )
                )
              }
            )
          ]
          spids: [4705 4706 4736 -1]
        )
        (case_arm
          pat_list: [{(GNU)}]
          action: [
            (Case
              to_match: {($ VSub_Name "$CC")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "*") (tendracc) (Lit_Other "*")}]
                  spids: [4749 4752 4754 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4757 4758 4764 -1]
                )
              ]
              spids: [4742 4746 4767]
            )
            (C {(add_cppflags)} {(-DSETUID_CAN_FAIL_WITH_EAGAIN)})
            (C {(add_cppflags)} {(-DMKSH__NO_PATH_MAX)})
          ]
          spids: [4738 4739 4784 -1]
        )
        (case_arm
          pat_list: [{(GNU/kFreeBSD)}]
          action: [
            (Case
              to_match: {($ VSub_Name "$CC")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "*") (tendracc) (Lit_Other "*")}]
                  spids: [4797 4800 4802 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4805 4806 4812 -1]
                )
              ]
              spids: [4790 4794 4815]
            )
            (C {(add_cppflags)} {(-DSETUID_CAN_FAIL_WITH_EAGAIN)})
          ]
          spids: [4786 4787 4823 -1]
        )
        (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: [4834]
                )
              ]
              spids: [4834]
            )
          ]
          spids: [4825 4826 4838 -1]
        )
        (case_arm pat_list:[{(HP-UX)}] spids:[484048414844-1])
        (case_arm
          pat_list: [{(Interix)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpc) op:Equal rhs:{(SQ <"-X ">)} spids:[4850])]
              spids: [4850]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(SQ <"-Y ">)} spids:[4856])]
              spids: [4856]
            )
            (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: [4870 4874]
                  )
                )
              }
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [4881 4885]
                  )
                )
              }
            )
          ]
          spids: [4846 4847 4889 -1]
        )
        (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: [4899 4903]
                  )
                )
              }
            )
          ]
          spids: [4891 4893 4907 -1]
        )
        (case_arm
          pat_list: [{(Linux)}]
          action: [
            (Case
              to_match: {($ VSub_Name "$CC")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "*") (tendracc) (Lit_Other "*")}]
                  spids: [4920 4923 4925 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(add_cppflags)} {(-D_GNU_SOURCE)})]
                  spids: [4928 4929 4935 -1]
                )
              ]
              spids: [4913 4917 4938]
            )
            (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: [4949 4953]
                  )
                )
              }
            )
          ]
          spids: [4909 4910 4957 -1]
        )
        (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: [4963]
                )
              ]
              spids: [4963]
            )
          ]
          spids: [4959 4960 4969 -1]
        )
        (case_arm pat_list:[{(MidnightBSD)}] spids:[497149724975-1])
        (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: [5001]
                )
              ]
              spids: [5001]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5011 5015]
                  )
                )
              }
            )
          ]
          spids: [4977 4978 5019 -1]
        )
        (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: [5051]
                )
              ]
              spids: [5051]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5061 5065]
                  )
                )
              }
            )
          ]
          spids: [5021 5022 5069 -1]
        )
        (case_arm pat_list:[{(MirBSD)}] spids:[507150725075-1])
        (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: [5089]
                )
              ]
              spids: [5089]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5100 5104]
                  )
                )
              }
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_STDINT_H>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5115 5119]
                  )
                )
              }
            )
          ]
          spids: [5077 5079 5123 -1]
        )
        (case_arm pat_list:[{(NetBSD)}] spids:[512551265129-1])
        (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: [5148 5152]
                  )
                )
              }
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{("cc -posix")})
                    spids: [5159 5163]
                  )
                )
              }
            )
            (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: [5197]
                        )
                      ]
                      spids: [5197]
                    )
                  ]
                  spids: [5188 5190 5203 -1]
                )
              ]
              spids: [5181 5185 5206]
            )
            (C {(add_cppflags)} {(-DMKSH_CONSERVATIVE_FDS)})
          ]
          spids: [5131 5132 5214 -1]
        )
        (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: [5243]
                )
              ]
              spids: [5243]
            )
          ]
          spids: [5216 5217 5249 -1]
        )
        (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: [5258 5262]
                  )
                )
              }
            )
          ]
          spids: [5251 5252 5266 -1]
        )
        (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:[5272])]
              spids: [5272]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_MKNOD) op:Equal rhs:{(0)} spids:[5276])]
              spids: [5276]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ("; it is currently being ported"))}
                  spids: [5283]
                )
              ]
              spids: [5283]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$check_categories") (" nosymlink"))}
                  spids: [5289]
                )
              ]
              spids: [5289]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CC>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(gcc)})
                    spids: [5299 5303]
                  )
                )
              }
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name SIZE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(": size")})
                    spids: [5310 5314]
                  )
                )
              }
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_NOPROSPECTOFWORK)})
          ]
          spids: [5268 5269 5328 -1]
        )
        (case_arm
          pat_list: [{(OSF1)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAVE_SIG_T) op:Equal rhs:{(0)} spids:[5334])]
              spids: [5334]
            )
            (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: [5368 5372]
                  )
                )
              }
            )
          ]
          spids: [5330 5331 5376 -1]
        )
        (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: [5407]
                )
              ]
              spids: [5407]
            )
            (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: [5421]
                )
              ]
              spids: [5421]
            )
            (C {(add_cppflags)} {(-DMKSH_UNEMPLOYED)})
            (C {(add_cppflags)} {(-DMKSH_MAYBE_KENCC)})
          ]
          spids: [5378 5379 5441 -1]
        )
        (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:[5448])]
              spids: [5448]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(SQ <" and will currently not work">)}
                  spids: [5455]
                )
              ]
              spids: [5455]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5464 5468]
                  )
                )
              }
            )
          ]
          spids: [5443 5445 5472 -1]
        )
        (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: [5515]
                        )
                      ]
                      spids: [5515]
                    )
                  ]
                  spids: [5495 5512 5522 -1]
                )
              ]
              spids: [5488 5492 5525]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5531 5535]
                  )
                )
              }
            )
          ]
          spids: [5474 5475 5539 -1]
        )
        (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: [5552 5554 5566 -1]
                )
                (case_arm pat_list:[{(5) (Lit_Other "*")}] spids:[556955715578-1])
                (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: [5585]
                        )
                      ]
                      spids: [5585]
                    )
                    (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: [5591]
                        )
                      ]
                      spids: [5591]
                    )
                  ]
                  spids: [5581 5582 5604 -1]
                )
              ]
              spids: [5545 5549 5607]
            )
            (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: [5618 5622]
                  ) 
                  (BracedVarSub
                    token: <VSub_Name HAVE__SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5623 5627]
                  )
                )
              }
            )
          ]
          spids: [5541 5542 5631 -1]
        )
        (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: [5637]
                )
              ]
              spids: [5637]
            )
          ]
          spids: [5633 5634 5643 -1]
        )
        (case_arm
          pat_list: [{(SunOS)}]
          action: [(C {(add_cppflags)} {(-D_BSD_SOURCE)}) (C {(add_cppflags)} {(-D__EXTENSIONS__)})]
          spids: [5645 5646 5659 -1]
        )
        (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: [5675]
                )
              ]
              spids: [5675]
            )
          ]
          spids: [5661 5662 5681 -1]
        )
        (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: [5690 5694]
                  )
                )
              }
            )
            (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: [5713 5717]
                  )
                )
              }
            )
          ]
          spids: [5683 5684 5721 -1]
        )
        (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: [5741 5745]
                  ) 
                  (BracedVarSub
                    token: <VSub_Name HAVE__SYS_SIGLIST>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5746 5750]
                  )
                )
              }
            )
          ]
          spids: [5723 5726 5754 -1]
        )
        (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:[5761])]
              spids: [5761]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpl) op:Equal rhs:{(SQ <"-Yl,">)} spids:[5767])]
              spids: [5767]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tsts)
                  op: Equal
                  rhs: {(DQ (" 3<>/dev/tty"))}
                  spids: [5773]
                )
              ]
              spids: [5773]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:oswarn)
                  op: Equal
                  rhs: {(DQ ("; it will compile, but the target"))}
                  spids: [5779]
                )
              ]
              spids: [5779]
            )
            (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: [5785]
                )
              ]
              spids: [5785]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_SETLOCALE_CTYPE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [5798 5802]
                  )
                )
              }
            )
          ]
          spids: [5756 5758 5806 -1]
        )
        (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: [5820]
                )
              ]
              spids: [5820]
            )
            (AndOr
              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: [5842 5846]
                          )
                        }
                      spids: [5841]
                    )
                  ]
                  spids: [5841]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [5808 5809 5849 -1]
        )
        (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: [5855]
                )
              ]
              spids: [5855]
            )
            (AndOr
              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: [5877 5881]
                          )
                        }
                      spids: [5876]
                    )
                  ]
                  spids: [5876]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [5851 5852 5884 -1]
        )
      ]
      spids: [4467 4471 5886]
    )
    (C {(Lit_Other ":")} 
      {
        (DQ 
          (BracedVarSub
            token: <VSub_Name HAVE_MKNOD>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
            spids: [5892 5896]
          )
        )
      }
    )
    (C {(Lit_Other ":")} 
      {
        (DQ 
          (BracedVarSub
            token: <VSub_Name AWK>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(awk)})
            spids: [5903 5907]
          ) 
          (BracedVarSub
            token: <VSub_Name CC>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(cc)})
            spids: [5908 5912]
          ) 
          (BracedVarSub
            token: <VSub_Name NROFF>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(nroff)})
            spids: [5913 5917]
          ) 
          (BracedVarSub
            token: <VSub_Name SIZE>
            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(size)})
            spids: [5918 5922]
          )
        )
      }
    )
    (AndOr
      children: [
        (C {(test)} {(0)} {(Lit_Other "=")} {($ VSub_Name "$r")})
        (AndOr
          children: [
            (Pipeline
              children: [
                (C {(echo)})
                (SimpleCommand
                  words: [{($ VSub_Name "$NROFF")} {(-v)}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5943])]
                )
                (SimpleCommand
                  words: [{(grep)} {(GNU)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [5952]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5955])
                  ]
                )
              ]
              negated: False
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)})
                    (SimpleCommand
                      words: [{($ VSub_Name "$NROFF")} {(-c)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/dev/null)}
                          spids: [5970]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [5973]
                        )
                      ]
                    )
                  ]
                  negated: False
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:NROFF)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$NROFF") (" -c"))}
                      spids: [5978]
                    )
                  ]
                  spids: [5978]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (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: [6006 6007 6032 -1]
        )
        (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: [6034 6035 6115 -1]
        )
        (case_arm
          pat_list: [{(IRIX) (Lit_Other "*")}]
          action: [
            (C {(vv)} {(SQ <"|">)} {(DQ ("uname -a >&2"))})
            (C {(vv)} {(SQ <"|">)} {(DQ ("hinv -v >&2"))})
          ]
          spids: [6117 6119 6144 -1]
        )
        (case_arm
          pat_list: [{(OSF1)}]
          action: [
            (C {(vv)} {(SQ <"|">)} {(DQ ("uname -a >&2"))})
            (C {(vv)} {(SQ <"|">)} {(DQ ("/usr/sbin/sizer -v >&2"))})
          ]
          spids: [6146 6147 6172 -1]
        )
        (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: [6174 6179 6204 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [(C {(vv)} {(SQ <"|">)} {(DQ ("uname -a >&2"))})]
          spids: [6206 6207 6221 -1]
        )
      ]
      spids: [6000 6004 6223]
    )
    (AndOr
      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:-1 arg_word:{(2)} spids:[6237])]
        )
      ]
      op_id: Op_DPipe
    )
    (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: [6328]
        )
      ]
      spids: [6328]
    )
    (C {($ VSub_Name "$e")} {(...)} {(which)} {(compiler)} {(seems)} {(to)} {(be)} {(used)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(conftest.c)} spids:[6352])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          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: True
          spids: [6355]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(untested)} spids:[6360])]
      spids: [6360]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:et) op:Equal rhs:{(untested)} spids:[6363])]
      spids: [6363]
    )
    (C {(vv)} {(SQ <"]">)} 
      {
        (DQ ($ VSub_Name "$CPP") (" ") ($ VSub_Name "$CFLAGS") (" ") ($ VSub_Name "$CPPFLAGS") (" ") 
          ($ VSub_Name "$NOWARN") (" conftest.c | ") ("    sed -n '/^ *[ce]t *= */s/^ *") 
          (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[ce]t") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (" *= */") 
          (EscapedLiteralPart token:<Lit_EscapedChar "\\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: [6404 6408]
        )
      }
    )
    (C {(rmf)} {(x)} {(vv.out)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(conftest.c)} spids:[6418])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("#include <unistd.h>\n") ("int main(void) { return (isatty(0)); }\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [6421]
        )
      ]
    )
    (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: [6440]
                )
              ]
              spids: [6440]
            )
          ]
          spids: [6432 6433 6447 -1]
        )
        (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:-1 arg_word:{(2)} spids:[6455])]
            )
          ]
          spids: [6449 6450 6466 -1]
        )
        (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:-1 arg_word:{(2)} spids:[6474])]
            )
          ]
          spids: [6468 6469 6484 -1]
        )
        (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: [6527 6531]
                  ) (" -version")
                )
              }
            )
            (C {(vv)} {(SQ <"|">)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name CLANG>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(clang)})
                    spids: [6543 6547]
                  ) (" --version")
                )
              }
            )
            (Case
              to_match: {($ VSub_Name "$CCC_CC") (Lit_Other ":") ($ VSub_Name "$CCC_LD")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other ":") (Lit_Other "*")}]
                  spids: [6565 6567 6569 -1]
                )
                (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: [6576]
                            )
                          ]
                          spids: [6576]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (C {(export)} {(CCC_LD)})
                  ]
                  spids: [6572 6574 6584 -1]
                )
              ]
              spids: [6556 6562 6587]
            )
          ]
          spids: [6486 6487 6590 -1]
        )
        (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: [6592 6593 6639 -1]
        )
        (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:-1 arg_word:{(2)} spids:[6647])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("    UWIN, mksh tends to be unstable due to the limitations"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6657])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("    of this platform. Continue at your own risk,"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6667])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("    please report success/failure to the developers."))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6677])]
            )
          ]
          spids: [6641 6642 6685 -1]
        )
        (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: [6687 6688 6725 -1]
        )
        (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: [6727 6728 6752 -1]
        )
        (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:-1 arg_word:{(2)} spids:[6760])]
            )
          ]
          spids: [6754 6755 6771 -1]
        )
        (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: [6773 6774 6799 -1]
        )
        (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: [6801 6802 6826 -1]
        )
        (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: [6828 6829 6860 -1]
        )
        (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:-1 arg_word:{(2)} spids:[6868])]
            )
          ]
          spids: [6862 6863 6878 -1]
        )
        (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: [6880 6881 6906 -1]
        )
        (case_arm
          pat_list: [{(msc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ccpr) op:Equal rhs:{(SQ )} spids:[6912])]
              spids: [6912]
            )
            (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: [6944 6952]
                                      )
                                    }
                                  spids: [6943]
                                )
                              ]
                              spids: [6943]
                            )
                          ]
                          spids: [-1 6940]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:C89_COMPILER)
                              op: Equal
                              rhs: {(CL.EXE)}
                              spids: [6958]
                            )
                          ]
                          spids: [6958]
                        )
                      ]
                      spids: [6955 6962]
                    )
                    (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: [6980 6988]
                                      )
                                    }
                                  spids: [6979]
                                )
                              ]
                              spids: [6979]
                            )
                          ]
                          spids: [-1 6976]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:C89_LINKER)
                              op: Equal
                              rhs: {(LINK.EXE)}
                              spids: [6994]
                            )
                          ]
                          spids: [6994]
                        )
                      ]
                      spids: [6991 6998]
                    )
                    (C {(vv)} {(SQ <"|">)} {(DQ ($ VSub_Name "$C89_COMPILER") (" /HELP >&2"))})
                    (C {(vv)} {(SQ <"|">)} {(DQ ($ VSub_Name "$C89_LINKER") (" /LINK >&2"))})
                  ]
                  spids: [6925 6926 7025 -1]
                )
              ]
              spids: [6918 6922 7028]
            )
          ]
          spids: [6908 6909 7031 -1]
        )
        (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: [7033 7034 7059 -1]
        )
        (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: [7061 7062 7087 -1]
        )
        (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:-1 arg_word:{(2)} spids:[7095])]
            )
          ]
          spids: [7089 7090 7105 -1]
        )
        (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:-1 arg_word:{(2)} spids:[7113])]
            )
          ]
          spids: [7107 7108 7124 -1]
        )
        (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: [7126 7127 7151 -1]
        )
        (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: [7153 7154 7179 -1]
        )
        (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: [7181 7182 7209 -1]
        )
        (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: [7211 7212 7258 -1]
        )
        (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: [7284]
                        )
                      ]
                      spids: [7284]
                    )
                    (C {(Lit_Other ":")} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name HAVE_CAN_OTWO>
                            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                            spids: [7294 7298]
                          ) 
                          (BracedVarSub
                            token: <VSub_Name HAVE_CAN_OPTIMISE>
                            suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                            spids: [7299 7303]
                          )
                        )
                      }
                    )
                  ]
                  spids: [7273 7277 7307 -1]
                )
              ]
              spids: [7264 7270 7310]
            )
            (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: [7260 7261 7334 -1]
        )
        (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: [7336 7337 7361 -1]
        )
        (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: [7363 7364 7422 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (AndOr
              children: [
                (C {(test)} {(x) (DQ ($ VSub_Name "$ct"))} {(Lit_Other "=")} {(x) (DQ (untested))})
                (C {($ VSub_Name "$e")} {(DQ ("!!! detecting preprocessor failed"))})
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ct) op:Equal rhs:{(unknown)} spids:[7451])]
              spids: [7451]
            )
            (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: [7424 7425 7505 -1]
        )
      ]
      spids: [6426 6430 7507]
    )
    (Case
      to_match: {($ VSub_Name "$cm")}
      arms: [
        (case_arm
          pat_list: [{(dragonegg)} {(llvm)}]
          action: [(C {(vv)} {(SQ <"|">)} {(DQ ("llc -version"))})]
          spids: [7515 7518 7532 -1]
        )
      ]
      spids: [7509 7513 7534]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:etd)
          op: Equal
          rhs: {(DQ (" on ") ($ VSub_Name "$et"))}
          spids: [7536]
        )
      ]
      spids: [7536]
    )
    (Case
      to_match: {($ VSub_Name "$et")}
      arms: [
        (case_arm
          pat_list: [{(klibc)}]
          action: [(C {(add_cppflags)} {(-DMKSH_NO_LIMITS)})]
          spids: [7548 7549 7557 -1]
        )
        (case_arm
          pat_list: [{(unknown)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:etd) op:Equal rhs:{(SQ )} spids:[7567])]
              spids: [7567]
            )
          ]
          spids: [7559 7560 7570 -1]
        )
        (case_arm pat_list:[{(Lit_Other "*")}] spids:[757275737580-1])
      ]
      spids: [7542 7546 7582]
    )
    (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: [7626]
        )
      ]
      spids: [7626]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:NOWARN) op:Equal rhs:{(SQ )} spids:[7629])]
      spids: [7629]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(SQ )} spids:[7631])]
      spids: [7631]
    )
    (C {(ac_flags)} {(0)} {(compiler_works)} {(SQ )} {(SQ <"if the compiler works">)})
    (AndOr
      children: [
        (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_CAN_COMPILER_WORKS")})
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:HAVE_COMPILER_KNOWN) op:Equal rhs:{(0)} spids:[7660])]
      spids: [7660]
    )
    (AndOr
      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: [7673]
            )
          ]
          spids: [7673]
        )
      ]
      op_id: Op_DPipe
    )
    (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: [7699]
                )
              ]
              spids: [7699]
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_CAN_DELEXE>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(x)})
                    spids: [7706 7710]
                  )
                )
              }
            )
            (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: [7725]
                        )
                      ]
                      spids: [7725]
                    )
                    (SimpleCommand
                      words: [
                        {(ac_testn)}
                        {(can_delexe)}
                        {(compiler_fails)}
                        {(0)}
                        {(SQ <"for the -non_shared linker option">)}
                      ]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLessDash
                          fd: -1
                          body: 
                            {
                              (DQ ("#include <unistd.h>\n") 
                                ("int main(void) { return (isatty(0)); }\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [7748]
                        )
                      ]
                    )
                  ]
                  spids: [7721 7722 7754 -1]
                )
                (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: [7761]
                        )
                      ]
                      spids: [7761]
                    )
                    (SimpleCommand
                      words: [
                        {(ac_testn)}
                        {(can_delexe)}
                        {(compiler_fails)}
                        {(0)}
                        {(SQ <"for the /DELEXECUTABLE linker option">)}
                      ]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLessDash
                          fd: -1
                          body: 
                            {
                              (DQ ("#include <unistd.h>\n") 
                                ("int main(void) { return (isatty(0)); }\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [7784]
                        )
                      ]
                    )
                  ]
                  spids: [7757 7758 7790 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(exit)} {(1)})]
                  spids: [7793 7794 7802 -1]
                )
              ]
              spids: [7714 7718 7805]
            )
            (AndOr
              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: [7818]
                    )
                  ]
                  spids: [7818]
                )
              ]
              op_id: Op_DPipe
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(compiler_still_fails)}
                {(SQ )}
                {(SQ <"if the compiler still does not fail correctly">)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  body: {(DQ )}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [7833]
                )
              ]
            )
            (AndOr
              children: [
                (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_COMPILER_STILL_FAILS")})
                (C {(exit)} {(1)})
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [-1 7696]
        )
      ]
      spids: [-1 7851]
    )
    (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:[7881])]
              spids: [7881]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPP)
                  op: Equal
                  rhs: {(SQ <"cpp -D__TINYC__">)}
                  spids: [7885]
                )
              ]
              spids: [7885]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_COMPILER_KNOWN)
                  op: Equal
                  rhs: {(1)}
                  spids: [7891]
                )
              ]
              spids: [7891]
            )
          ]
          spids: [-1 7878]
        )
      ]
      spids: [-1 7894]
    )
    (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: [7907]
                )
              ]
              spids: [7907]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) ("-w!"))}
                  spids: [7916]
                )
              ]
              spids: [7916]
            )
          ]
          spids: [7903 7904 7925 -1]
        )
        (case_arm pat_list:[{(dec)}] spids:[792779287935-1])
        (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: [7941]
                )
              ]
              spids: [7941]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (-wx))}
                  spids: [7950]
                )
              ]
              spids: [7950]
            )
          ]
          spids: [7937 7938 7959 -1]
        )
        (case_arm
          pat_list: [{(hpcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(SQ )} spids:[7965])]
              spids: [7965]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(Lit_Other "+") (We)}
                  spids: [7968]
                )
              ]
              spids: [7968]
            )
          ]
          spids: [7961 7962 7973 -1]
        )
        (case_arm
          pat_list: [{(kencc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(SQ )} spids:[7979])]
              spids: [7979]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(SQ )} spids:[7982])]
              spids: [7982]
            )
          ]
          spids: [7975 7976 7985 -1]
        )
        (case_arm
          pat_list: [{(mipspro)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(SQ )} spids:[7991])]
              spids: [7991]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ ("-diag_error 1-10000"))}
                  spids: [7994]
                )
              ]
              spids: [7994]
            )
          ]
          spids: [7987 7988 8000 -1]
        )
        (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: [8006]
                )
              ]
              spids: [8006]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ccpc) (/WX))}
                  spids: [8015]
                )
              ]
              spids: [8015]
            )
          ]
          spids: [8002 8003 8024 -1]
        )
        (case_arm
          pat_list: [{(sunpro)}]
          action: [
            (AndOr
              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: [8045]
                    )
                  ]
                  spids: [8045]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(ac_flags)} {(0)} {(errwarnnone)} {(DQ ($ VSub_Name "$save_NOWARN"))})
            (AndOr
              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: {(SQ )}
                      spids: [8072]
                    )
                  ]
                  spids: [8072]
                )
              ]
              op_id: Op_DPipe
            )
            (C {(ac_flags)} {(0)} {(errwarnall)} {(DQ ("-errwarn=%all"))})
            (AndOr
              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: [8096]
                    )
                  ]
                  spids: [8096]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [8026 8027 8102 -1]
        )
        (case_arm
          pat_list: [{(tendra)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(-w)} spids:[8108])]
              spids: [8108]
            )
          ]
          spids: [8104 8105 8112 -1]
        )
        (case_arm
          pat_list: [{(ucode)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(SQ )} spids:[8118])]
              spids: [8118]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:DOWARN) op:Equal rhs:{(-w2)} spids:[8121])]
              spids: [8121]
            )
          ]
          spids: [8114 8115 8125 -1]
        )
        (case_arm
          pat_list: [{(watcom)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:save_NOWARN) op:Equal rhs:{(SQ )} spids:[8131])]
              spids: [8131]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(-Wc) (Lit_Comma ",") (-we)}
                  spids: [8134]
                )
              ]
              spids: [8134]
            )
          ]
          spids: [8127 8128 8140 -1]
        )
        (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: [8146]
                )
              ]
              spids: [8146]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOWARN)
                  op: Equal
                  rhs: {(-qflag) (Lit_Other "=") (i) (Lit_Other ":") (i)}
                  spids: [8154]
                )
              ]
              spids: [8154]
            )
          ]
          spids: [8142 8143 8162 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (AndOr
              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: [8183]
                    )
                  ]
                  spids: [8183]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(ac_flags)} {(0)} {(wnoerror)} {(DQ ($ VSub_Name "$save_NOWARN"))})
            (AndOr
              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: {(SQ )}
                      spids: [8208]
                    )
                  ]
                  spids: [8208]
                )
              ]
              op_id: Op_DPipe
            )
            (C {(ac_flags)} {(0)} {(werror)} {(-Werror)})
            (AndOr
              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: [8230]
                    )
                  ]
                  spids: [8230]
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              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: [8244]
                    )
                  ]
                  spids: [8244]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [8164 8165 8251 -1]
        )
      ]
      spids: [7897 7901 8253]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name "$save_NOWARN")}
          spids: [8255]
        )
      ]
      spids: [8255]
    )
    (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: False
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [8269 8296]
              )
            }
          spids: [8268]
        )
      ]
      spids: [8268]
    )
    (AndOr
      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:[8326])]
                  spids: [8326]
                )
                (C {(ac_flags)} {(1)} {(otwo)} {(Lit_Other "+") (O2)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[8340])]
                  spids: [8340]
                )
              ]
              spids: [8322 8323 8344 -1]
            )
            (case_arm pat_list:[{(kencc)}{(tcc)}{(tendra)}] spids:[834683518358-1])
            (case_arm
              pat_list: [{(sunpro)}]
              action: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[8366])
                    (HereDoc
                      op_id: Redir_DLessDash
                      fd: -1
                      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: True
                      spids: [8369]
                    )
                  ]
                )
                (Pipeline
                  children: [
                    (C {(yes)} {(pad)})
                    (SimpleCommand
                      words: [{(head)} {(-n)} {(256)}]
                      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(x)} spids:[8387])]
                    )
                  ]
                  negated: False
                )
                (SimpleCommand
                  words: [{(ac_flags)} {(-)} {(1)} {(otwo)} {(-xO2)}]
                  redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[8401])]
                )
                (C {(rmf)} {(x)})
              ]
              spids: [8360 8361 8410 -1]
            )
            (case_arm
              pat_list: [{(xlc)}]
              action: [
                (C {(ac_flags)} {(1)} {(othree)} {(DQ ("-O3 -qstrict"))})
                (AndOr
                  children: [
                    (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_CAN_OTHREE")})
                    (C {(ac_flags)} {(1)} {(otwo)} {(-O2)})
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [8412 8413 8446 -1]
            )
            (case_arm
              pat_list: [{(Lit_Other "*")}]
              action: [
                (C {(ac_flags)} {(1)} {(otwo)} {(-O2)})
                (AndOr
                  children: [
                    (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_CAN_OTWO")})
                    (C {(ac_flags)} {(1)} {(optimise)} {(-O)})
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [8448 8449 8480 -1]
            )
          ]
          spids: [8316 8320 8482]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(0)} spids:[8487])]
      spids: [8487]
    )
    (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: [8496 8497 8518 -1]
        )
        (case_arm
          pat_list: [{(clang)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[8524])]
              spids: [8524]
            )
          ]
          spids: [8520 8521 8528 -1]
        )
        (case_arm
          pat_list: [{(dec)}]
          action: [
            (C {(ac_flags)} {(0)} {(verb)} {(-verbose)})
            (C {(ac_flags)} {(1)} {(rodata)} {(-readonly_strings)})
          ]
          spids: [8530 8531 8552 -1]
        )
        (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: [8554 8555 8594 -1]
        )
        (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: [8604]
                    )
                  ]
                  spids: [8604]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[8608])]
              spids: [8608]
            )
            (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
              children: [
                (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_CAN_FSTACKPROTECTORSTRONG")})
                (C {(ac_flags)} {(1)} {(fstackprotectorall)} {(-fstack-protector-all)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              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: [8698 8705 8707 -1]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other "*")}]
                      action: [
                        (C {(ac_flags)} {(1)} {(fplugin_dragonegg)} 
                          {(-fplugin) (Lit_Other "=") (dragonegg)}
                        )
                      ]
                      spids: [8710 8711 8723 -1]
                    )
                  ]
                  spids: [8683 8695 8726]
                )
              ]
              op_id: Op_DAmp
            )
            (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:[8740])]
                      spids: [8740]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checks)
                          op: Equal
                          rhs: {(SQ <"7 8">)}
                          spids: [8744]
                        )
                      ]
                      spids: [8744]
                    )
                  ]
                  spids: [8736 8737 8750 -1]
                )
                (case_arm
                  pat_list: [{(lto)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[8757])]
                      spids: [8757]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checks)
                          op: Equal
                          rhs: {(SQ <"1 2 3 4 5 6 7 8">)}
                          spids: [8761]
                        )
                      ]
                      spids: [8761]
                    )
                  ]
                  spids: [8753 8754 8767 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[8774])]
                      spids: [8774]
                    )
                  ]
                  spids: [8770 8771 8778 -1]
                )
              ]
              spids: [8729 8733 8781]
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(1)})
                (ForEach
                  iter_name: what
                  iter_words: [{($ VSub_Name "$checks")}]
                  do_arg_iter: False
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(1)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          op_id: Op_DAmp
                        )
                        (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: [8829]
                                    )
                                  ]
                                  spids: [8829]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                      spids: [8835]
                                    )
                                  ]
                                  spids: [8835]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8841]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_lp)}
                                      spids: [8844]
                                    )
                                  ]
                                  spids: [8841]
                                )
                              ]
                              spids: [8826 8827 8847 -1]
                            )
                            (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: [8853]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8858]
                                    )
                                  ]
                                  spids: [8853]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8863]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_nn)}
                                      spids: [8866]
                                    )
                                  ]
                                  spids: [8863]
                                )
                              ]
                              spids: [8850 8851 8869 -1]
                            )
                            (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: [8875]
                                    )
                                  ]
                                  spids: [8875]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <"-fno-use-linker-plugin -fwhole-program">)}
                                      spids: [8881]
                                    )
                                  ]
                                  spids: [8881]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8887]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltojs_np)}
                                      spids: [8890]
                                    )
                                  ]
                                  spids: [8887]
                                )
                              ]
                              spids: [8872 8873 8893 -1]
                            )
                            (case_arm
                              pat_list: [{(4)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8899]
                                    )
                                  ]
                                  spids: [8899]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <-fuse-linker-plugin>)}
                                      spids: [8905]
                                    )
                                  ]
                                  spids: [8905]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8911]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_lp)}
                                      spids: [8914]
                                    )
                                  ]
                                  spids: [8911]
                                )
                              ]
                              spids: [8896 8897 8917 -1]
                            )
                            (case_arm
                              pat_list: [{(5)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8923]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8928]
                                    )
                                  ]
                                  spids: [8923]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8933]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_nn)}
                                      spids: [8936]
                                    )
                                  ]
                                  spids: [8933]
                                )
                              ]
                              spids: [8920 8921 8939 -1]
                            )
                            (case_arm
                              pat_list: [{(6)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_cflags)
                                      op: Equal
                                      rhs: {(SQ <-flto>)}
                                      spids: [8945]
                                    )
                                  ]
                                  spids: [8945]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ <"-fno-use-linker-plugin -fwhole-program">)}
                                      spids: [8951]
                                    )
                                  ]
                                  spids: [8951]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8957]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(fltons_np)}
                                      spids: [8960]
                                    )
                                  ]
                                  spids: [8957]
                                )
                              ]
                              spids: [8942 8943 8963 -1]
                            )
                            (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: [8969]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_ldflags)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [8974]
                                    )
                                  ]
                                  spids: [8969]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:t_use)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [8979]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:t_name)
                                      op: Equal
                                      rhs: {(combine)}
                                      spids: [8982]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:cm)
                                      op: Equal
                                      rhs: {(combine)}
                                      spids: [8985]
                                    )
                                  ]
                                  spids: [8979]
                                )
                              ]
                              spids: [8966 8967 8988 -1]
                            )
                            (case_arm
                              pat_list: [{(8)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fv)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [8994]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:cm)
                                      op: Equal
                                      rhs: {(normal)}
                                      spids: [8997]
                                    )
                                  ]
                                  spids: [8994]
                                )
                              ]
                              spids: [8991 8992 9000 -1]
                            )
                          ]
                          spids: [8819 8823 9003]
                        )
                        (AndOr
                          children: [
                            (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(1)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          op_id: Op_DAmp
                        )
                        (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: [8803 9043]
                    )
                  spids: [8799 8801]
                )
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[9046])]
              spids: [9046]
            )
          ]
          spids: [8596 8597 9050 -1]
        )
        (case_arm
          pat_list: [{(hpcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[9056])]
              spids: [9056]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9068])]
              spids: [9068]
            )
          ]
          spids: [9052 9053 9072 -1]
        )
        (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:[9105])]
              spids: [9105]
            )
          ]
          spids: [9074 9075 9109 -1]
        )
        (case_arm
          pat_list: [{(mipspro)}]
          action: [
            (C {(ac_flags)} {(1)} {(fullwarn)} {(-fullwarn)} {(SQ <"for remark output support">)})
          ]
          spids: [9111 9112 9128 -1]
        )
        (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:-1 arg_word:{(x)} spids:[9158])]
            )
            (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:-1 arg_word:{(x)} spids:[9181])]
            )
            (SimpleCommand
              words: [
                {(ac_flags)}
                {(-)}
                {(1)}
                {(stckall)}
                {(DQ (${ VSub_Name ccpc) (/Ge))}
                {(SQ <"stack checks for all functions">)}
              ]
              redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[9204])]
            )
            (SimpleCommand
              words: [
                {(ac_flags)}
                {(-)}
                {(1)}
                {(secuchk)}
                {(DQ (${ VSub_Name ccpc) (/GS))}
                {(SQ <"for compiler security checks">)}
              ]
              redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[9227])]
            )
            (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: [9130 9131 9272 -1]
        )
        (case_arm
          pat_list: [{(nwcc)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[9278])]
              spids: [9278]
            )
          ]
          spids: [9274 9275 9286 -1]
        )
        (case_arm
          pat_list: [{(sunpro)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(u)} spids:[9292])]
              spids: [9292]
            )
            (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:[9318])]
              spids: [9318]
            )
          ]
          spids: [9288 9289 9322 -1]
        )
        (case_arm pat_list:[{(tcc)}] action:[(C {(Lit_Other ":")})] spids:[932493259334-1])
        (case_arm
          pat_list: [{(tendra)}]
          action: [
            (C {(ac_flags)} {(0)} {(ysystem)} {(-Ysystem)})
            (AndOr
              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: [9359]
                    )
                  ]
                  spids: [9359]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(ac_flags)} {(1)} {(extansi)} {(-Xa)})
          ]
          spids: [9336 9337 9375 -1]
        )
        (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: [9377 9378 9422 -1]
        )
      ]
      spids: [8490 8494 9424]
    )
    (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: [-1 9440]
        )
      ]
      spids: [-1 9460]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9463])]
      spids: [9463]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name "$DOWARN")}
          spids: [9469]
        )
      ]
      spids: [9469]
    )
    (AndOr
      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:[9482])]
          spids: [9482]
        )
      ]
      op_id: Op_DAmp
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_bounded)} {(SQ )} {(SQ <"for __attribute__((__bounded__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9506]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_format)} {(SQ )} {(SQ <"for __attribute__((__format__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9522]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_noreturn)} {(SQ )} {(SQ <"for __attribute__((__noreturn__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9538]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_pure)} {(SQ )} {(SQ <"for __attribute__((__pure__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9554]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_unused)} {(SQ )} {(SQ <"for __attribute__((__unused__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9570]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(attribute_used)} {(SQ )} {(SQ <"for __attribute__((__used__))">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [9586]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NOWARN)
          op: Equal
          rhs: {($ VSub_Name "$save_NOWARN")}
          spids: [9595]
        )
      ]
      spids: [9595]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:phase) op:Equal rhs:{(x)} spids:[9598])]
      spids: [9598]
    )
    (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: [9637 9641]
                  )
                )
              }
            )
            (C {(Lit_Other ":")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name HAVE_PERSISTENT_HISTORY>
                    suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(0)})
                    spids: [9648 9652]
                  )
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:check_categories)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$check_categories") (" smksh"))}
                  spids: [9656]
                )
              ]
              spids: [9656]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HAVE_ISSET_MKSH_CONSERVATIVE_FDS)
                  op: Equal
                  rhs: {(1)}
                  spids: [9663]
                )
              ]
              spids: [9663]
            )
          ]
          spids: [-1 9631]
        )
      ]
      spids: [-1 9669]
    )
    (AndOr
      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: [9692]
            )
          ]
          spids: [9692]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [9719]
            )
          ]
          spids: [9719]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [9746]
            )
          ]
          spids: [9746]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [9774 9778]
              )
            )
          }
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [9802]
            )
          ]
          spids: [9802]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [9847]
            )
          ]
          spids: [9847]
        )
      ]
      op_id: Op_DAmp
    )
    (C {(ac_header)} {(sys/time.h)} {(sys/types.h)})
    (C {(ac_header)} {(time.h)} {(sys/types.h)})
    (AndOr
      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:[9890])]
          spids: [9890]
        )
      ]
      op_id: Op_DPipe
    )
    (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: -1
          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: True
          spids: [9904]
        )
      ]
    )
    (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:-1 arg_word:{(lft.c)} spids:[10034])]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(can_lfs)} {(SQ )} {(DQ ("for large file support"))}]
      redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(lft.c)} spids:[10048])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:save_CPPFLAGS)
          op: Equal
          rhs: {($ VSub_Name "$CPPFLAGS")}
          spids: [10051]
        )
      ]
      spids: [10051]
    )
    (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:-1 arg_word:{(lft.c)} spids:[10076])]
    )
    (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: [10093]
                )
              ]
              spids: [10093]
            )
            (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:-1 arg_word:{(lft.c)} spids:[10120])]
            )
            (AndOr
              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: [10134]
                    )
                  ]
                  spids: [10134]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [-1 10090]
        )
      ]
      spids: [-1 10137]
    )
    (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: -1
          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: True
          spids: [10179]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_ucbints)}
        {(SQ <"!">)}
        {(can_inttypes)}
        {(1)}
        {(DQ ("for UCB 32-bit integer types"))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10200]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_int8type)}
        {(SQ <"!">)}
        {(stdint_h)}
        {(1)}
        {(DQ ("for standard 8-bit integer type"))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10221]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(can_ucbint8)}
        {(SQ <"!">)}
        {(can_int8type)}
        {(1)}
        {(DQ ("for UCB 8-bit integer type"))}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10242]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(rlim_t)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10252]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sig_t)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10265]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sighandler_t)} {(SQ <"!">)} {(sig_t)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10283]
        )
      ]
    )
    (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:[10309])]
              spids: [10309]
            )
          ]
          spids: [-1 10299]
        )
      ]
      spids: [-1 10312]
    )
    (SimpleCommand
      words: [{(ac_testn)} {(__sighandler_t)} {(SQ <"!">)} {(sig_t)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10327]
        )
      ]
    )
    (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:[10353])]
              spids: [10353]
            )
          ]
          spids: [-1 10343]
        )
      ]
      spids: [-1 10356]
    )
    (AndOr
      children: [
        (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_SIG_T")})
        (C {(add_cppflags)} {(-Dsig_t) (Lit_Other "=") (nosig_t)})
      ]
      op_id: Op_DPipe
    )
    (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: [-1 10400]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:HAVE_LINK_WORKS) op:Equal rhs:{(x)} spids:[10414])]
          spids: [10414]
        )
        (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:[10430])]
          spids: [10430]
        )
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (Redir op_id:Redir_Great fd:-1 arg_word:{(conftest.c)} spids:[10436])
            (HereDoc
              op_id: Redir_DLessDash
              fd: -1
              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: True
              spids: [10439]
            )
          ]
        )
        (Case
          to_match: {($ VSub_Name "$cm")}
          arms: [
            (case_arm
              pat_list: [{(llvm)}]
              action: [
                (AndOr
                  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:[10488])]
                      spids: [10488]
                    )
                  ]
                  op_id: Op_DPipe
                )
                (C {(rmf)} {($ VSub_Name "$tfn") (.s)})
                (AndOr
                  children: [
                    (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(0)})
                    (AndOr
                      children: [
                        (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: [10520]
                            )
                          ]
                          spids: [10520]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  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")
                        )
                      }
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [10469 10470 10553 -1]
            )
            (case_arm
              pat_list: [{(dragonegg)}]
              action: [
                (AndOr
                  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:[10575])]
                      spids: [10575]
                    )
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  children: [
                    (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(0)})
                    (C {(v)} {(DQ ("mv conftest.s conftest.ll"))})
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  children: [
                    (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(0)})
                    (AndOr
                      children: [
                        (C {(v)} {(DQ ("llvm-as conftest.ll"))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fv)
                              op: Equal
                              rhs: {(0)}
                              spids: [10614]
                            )
                          ]
                          spids: [10614]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  op_id: Op_DPipe
                )
                (C {(rmf)} {($ VSub_Name "$tfn") (.s)})
                (AndOr
                  children: [
                    (C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(0)})
                    (AndOr
                      children: [
                        (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: [10646]
                            )
                          ]
                          spids: [10646]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  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")
                        )
                      }
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [10556 10557 10679 -1]
            )
            (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: [10682 10683 10707 -1]
            )
            (case_arm
              pat_list: [{(lto)} {(normal)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:cm) op:Equal rhs:{(normal)} spids:[10716])]
                  spids: [10716]
                )
                (AndOr
                  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:[10735])]
                      spids: [10735]
                    )
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  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")
                        )
                      }
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [10710 10713 10766 -1]
            )
          ]
          spids: [10462 10466 10769]
        )
        (AndOr
          children: [
            (C {(test)} {(-f)} {($ VSub_Name "$tcfn")})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(0)} spids:[10780])]
              spids: [10780]
            )
          ]
          op_id: Op_DPipe
        )
        (C {(ac_testdone)})
        (AndOr
          children: [(C {(test)} {($ VSub_Name "$fv")} {(Lit_Other "=")} {(1)}) (C {(exit)} {(1)})]
          op_id: Op_DPipe
        )
      ]
      spids: [10411 10801]
    )
    (AndOr
      children: [
        (C {(test)} {(x) (DQ (NetBSD))} {(Lit_Other "=")} {(x) (DQ ($ VSub_Name "$TARGET_OS"))})
        (C {($ VSub_Name "$e")} {(Ignore)} {(the)} {(compatibility)} {(warning.)})
      ]
      op_id: Op_DAmp
    )
    (SimpleCommand
      words: [{(ac_testn)} {(sys_errlist)} {(SQ )} {(DQ ("the sys_errlist[] array and sys_nerr"))}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [10851]
        )
      ]
    )
    (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: -1
          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: True
          spids: [10872]
        )
      ]
    )
    (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: [10907]
                )
              ]
              spids: [10907]
            )
          ]
          spids: [-1 10890]
        )
      ]
      spids: [-1 10910]
    )
    (C {(ac_cppflags)} {(SYS_ERRLIST)})
    (ForEach
      iter_name: what
      iter_words: [{(name)} {(list)}]
      do_arg_iter: False
      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: [10932 10936]
                      )
                    }
                  spids: [10931]
                )
              ]
              spids: [10931]
            )
            (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: -1
                  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: True
                  spids: [10955]
                )
              ]
            )
            (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: -1
                  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: True
                  spids: [10992]
                )
              ]
            )
            (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: [-1 11028]
                )
              ]
              spids: [-1 11048]
            )
            (C {(ac_cppflags)} {(SYS_SIG) ($ VSub_Name "$uwhat")})
          ]
          spids: [10928 11056]
        )
      spids: [10922 10926]
    )
    (SimpleCommand
      words: [{(ac_test)} {(flock)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11072]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(lock_fcntl)}
        {(SQ <"!">)}
        {(flock)}
        {(1)}
        {(SQ <"whether we can lock files with fcntl">)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11094]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(getrusage)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11104]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(getsid)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          body: {("#include <unistd.h>\n") ("int main(void) { return ((int)getsid(0)); }\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [11114]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(gettimeofday)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11124]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(killpg)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11134]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(memmove)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11144]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(mknod)} {(SQ )} {(SQ <"if to use mknod(), makedev() and friends">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11161]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(mmap)} {(lock_fcntl)} {(0)} {(SQ <"for mmap and munmap">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11179]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(nice)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          body: {("#include <unistd.h>\n") ("int main(void) { return (nice(4)); }\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [11189]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(revoke)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11199]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setlocale_ctype)} {(SQ )} {(SQ <"setlocale(LC_CTYPE, \"\")">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11216]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(langinfo_codeset)} {(setlocale_ctype)} {(0)} {(SQ <"nl_langinfo(CODESET)">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11234]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(select)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11244]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setresugid)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11254]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(setgroups)} {(setresugid)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11268]
        )
      ]
    )
    (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: -1
                  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: True
                  spids: [11306]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(__sigsuspend_s)}
                {(SQ <"!">)}
                {(__rt_sigsuspend)}
                {(1)}
                {(SQ <"whether sigsuspend is usable (1/2)">)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  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: True
                  spids: [11336]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_testn)}
                {(__sigsuspend_xxs)}
                {(SQ <"!">)}
                {(__sigsuspend_s)}
                {(1)}
                {(SQ <"whether sigsuspend is usable (2/2)">)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  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: True
                  spids: [11360]
                )
              ]
            )
            (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: [-1 11384]
                )
              ]
              spids: [-1 11396]
            )
          ]
          spids: [-1 11291]
        )
      ]
      spids: [-1 11398]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strerror)} {(SQ <"!">)} {(sys_errlist)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11413]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strsignal)} {(SQ <"!">)} {(sys_siglist)} {(0)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11431]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(strlcpy)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11441]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(flock_decl)} {(flock)} {(1)} {(SQ <"for declaration of flock()">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11468]
        )
      ]
    )
    (SimpleCommand
      words: [{(ac_test)} {(revoke_decl)} {(revoke)} {(1)} {(SQ <"for declaration of revoke()">)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          body: 
            {("#define MKSH_INCLUDES_ONLY\n") ("#include \"sh.h\"\n") 
              ("int main(void) { return ((revoke)(\"\")); }\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [11485]
        )
      ]
    )
    (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: -1
          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: True
          spids: [11502]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(ac_test)}
        {(sys_siglist_decl)}
        {(sys_siglist)}
        {(0)}
        {(SQ <"for declaration of sys_siglist[]">)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11519]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:fd)
          op: Equal
          rhs: {(SQ <"if to use persistent history">)}
          spids: [11534]
        )
      ]
      spids: [11534]
    )
    (AndOr
      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:[11559])]
                  spids: [11559]
                )
              ]
              spids: [11553 11557 11562 -1]
            )
          ]
          spids: [11545 11551 11564]
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      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: [11576]
            )
          ]
          spids: [11576]
        )
      ]
      op_id: Op_DPipe
    )
    (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: [11587]
        )
      ]
      spids: [11587]
    )
    (SimpleCommand
      words: [
        {(ac_testn)}
        {(compile_time_asserts_) ($ VSub_Dollar "$$")}
        {(SQ )}
        {(SQ <"whether compile-time assertions pass">)}
      ]
      redirects: [
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [11602]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CFLAGS)
          op: Equal
          rhs: {($ VSub_Name "$save_CFLAGS")}
          spids: [11607]
        )
      ]
      spids: [11607]
    )
    (AndOr
      children: [
        (C {(eval)} {(test)} {(1)} {(Lit_Other "=")} 
          {(EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (HAVE_COMPILE_TIME_ASSERTS_) 
            ($ VSub_Dollar "$$")
          }
        )
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (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: -1
                  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: True
                  spids: [11663]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(ac_test)}
                {(long_64bit)}
                {(SQ <"!">)}
                {(long_32bit)}
                {(0)}
                {(SQ <"whether long is 64 bit wide">)}
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  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: True
                  spids: [11686]
                )
              ]
            )
            (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: [11704]
                        )
                      ]
                      spids: [11704]
                    )
                  ]
                  spids: [11701 11702 11710 -1]
                )
                (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: [11716]
                        )
                      ]
                      spids: [11716]
                    )
                  ]
                  spids: [11713 11714 11722 -1]
                )
                (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: [11728]
                        )
                      ]
                      spids: [11728]
                    )
                  ]
                  spids: [11725 11726 11734 -1]
                )
              ]
              spids: [11693 11698 11737]
            )
          ]
          spids: [-1 11649]
        )
      ]
      spids: [-1 11739]
    )
    (AndOr
      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:-1 arg_word:{(conftest.c)} spids:[11786])]
                )
                (C {(vv)} {(SQ <"]">)} 
                  {
                    (DQ ($ VSub_Name "$CPP") (" ") ($ VSub_Name "$CFLAGS") (" ") 
                      ($ VSub_Name "$CPPFLAGS") (" ") ($ VSub_Name "$NOWARN") (" -dD conftest.c >x")
                    )
                  }
                )
                (AndOr
                  children: [
                    (SimpleCommand
                      words: [{(grep)} {(SQ <"#define foo bar">)} {(x)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/dev/null)}
                          spids: [11816]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [11819]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:fv) op:Equal rhs:{(1)} spids:[11824])]
                      spids: [11824]
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(rmf)} {(conftest.c)} {(x)} {(vv.out)})
                (C {(ac_testdone)})
              ]
              spids: [-1 11777]
            )
          ]
          spids: [-1 11839]
        )
      ]
      op_id: Op_DAmp
    )
    (C {($ VSub_Name "$e")} {(...)} {(done.)})
    (SimpleCommand
      words: [{(echo)} {(wq)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[11868])]
    )
    (AndOr
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(ed)} {(x)}]
              redirects: [
                (Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[11875])
                (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[11878])
              ]
            )
            (SimpleCommand
              words: [{(grep)} {(3)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[11887])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[11890])
              ]
            )
          ]
          negated: False
        )
        (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: [11897]
            )
          ]
          spids: [11897]
        )
      ]
      op_id: Op_DAmp
    )
    (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: [-1 11936]
                )
              ]
              else_action: [
                (C {($ VSub_Name "$e")} {(No)} {(list)} {(of)} {(signal)} {(names)} {(available)} {(via)} 
                  {(cpp.)} {(Falling)} {(back...)}
                )
              ]
              spids: [11952 11978]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigseenone)
                  op: Equal
                  rhs: {(Lit_Other ":")}
                  spids: [11981]
                )
              ]
              spids: [11981]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sigseentwo)
                  op: Equal
                  rhs: {(Lit_Other ":")}
                  spids: [11985]
                )
              ]
              spids: [11985]
            )
            (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:-1 arg_word:{(conftest.c)} spids:[12012])]
            )
            (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: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [12021 12079]
                      )
                    }
                  spids: [12020]
                )
              ]
              spids: [12020]
            )
            (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:[12103])]
                      spids: [12103]
                    )
                  ]
                  spids: [12089 12092 12106 -1]
                )
                (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: -1
                                            arg_word: {(/dev/null)}
                                            spids: [12132]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [12121 12134]
                              )
                            }
                          spids: [12120]
                        )
                      ]
                      spids: [12120]
                    )
                  ]
                  spids: [12109 12118 12136 -1]
                )
              ]
              spids: [12082 12086 12139]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:printf) op:Equal rhs:{(printf)} spids:[12142])]
              spids: [12142]
            )
            (AndOr
              children: [
                (Subshell
                  child: (C {(printf)} {(hallo)})
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [12152]
                    )
                    (Redir
                      op_id: Redir_GreatAnd
                      fd: 2
                      arg_word: {(1)}
                      spids: [12155]
                    )
                  ]
                  spids: [12146 12150]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:printf) op:Equal rhs:{(echo)} spids:[12160])]
                  spids: [12160]
                )
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$printf")} {(Lit_Other "=")} {(echo)})
                (AndOr
                  children: [
                    (C {(test)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(printf)} {(Lit_Other "%") (d)} {(42)})]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [12177 12184]
                          )
                        )
                      } {(Lit_Other "=")} {(42)}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:printf)
                          op: Equal
                          rhs: {(echo)}
                          spids: [12193]
                        )
                      ]
                      spids: [12193]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DPipe
            )
            (AndOr
              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: [12218]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [12208 12220]
                          )
                        }
                      spids: [12207]
                    )
                  ]
                  spids: [12207]
                )
              ]
              op_id: Op_DPipe
            )
            (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: [12232]
                )
              ]
              spids: [12232]
            )
            (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: [12238]
                )
              ]
              spids: [12238]
            )
            (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: [12245]
                )
              ]
              spids: [12245]
            )
            (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: [12252]
                )
              ]
              spids: [12252]
            )
            (AndOr
              children: [
                (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$HAVE_CPP_DD")})
                (AndOr
                  children: [
                    (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: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [12284 12323]
                              )
                            }
                          spids: [12279]
                        )
                      ]
                      spids: [12279]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$NSIG")} {(-gt)} {(1)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:sigs) op:Equal rhs:{(SQ )} spids:[12336])]
                  spids: [12336]
                )
              ]
              op_id: Op_DPipe
            )
            (Pipeline
              children: [
                (ForEach
                  iter_name: name
                  iter_words: [{($ VSub_Name "$sigs")}]
                  do_arg_iter: False
                  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: [12358 12363 12367 -1]
                            )
                          ]
                          spids: [12351 12355 12370]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:sigseenone)
                              op: Equal
                              rhs: {($ VSub_Name "$sigseenone") ($ VSub_Name "$name") (Lit_Other ":")}
                              spids: [12373]
                            )
                          ]
                          spids: [12373]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(SQ <"#include <signal.h>">)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(conftest.c)}
                              spids: [12385]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(int)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {(conftest.c)}
                              spids: [12393]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(Lit_VarLike "mksh_cfg=")} {(SIG) ($ VSub_Name "$name")}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {(conftest.c)}
                              spids: [12404]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(SQ <";">)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {(conftest.c)}
                              spids: [12414]
                            )
                          ]
                        )
                        (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: False
                        )
                      ]
                      spids: [12348 12483]
                    )
                  spids: [12344 12346]
                )
                (C {(sed)} {(-n)} {(SQ <"/^:[^ ]/s/^://p">)})
                (While
                  cond: [(Sentence child:(C {(read)} {(nr)} {(name)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          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: [12530]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick "`">
                                        spids: [12520 12532]
                                      )
                                    }
                                  spids: [12519]
                                )
                              ]
                              spids: [12519]
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (AndOr
                          children: [
                            (C {(test)} {($ VSub_Name "$nr")} {(-gt)} {(0)})
                            (AndOr
                              children: [
                                (C {(test)} {($ VSub_Name "$nr")} {(-lt)} {($ VSub_Name "$NSIG")})
                                (ControlFlow
                                  token: <ControlFlow_Continue continue>
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          op_id: Op_DAmp
                        )
                        (Case
                          to_match: {($ VSub_Name "$sigseentwo")}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(Lit_Other "*") (Lit_Other ":") ($ VSub_Name "$nr") (Lit_Other ":") 
                                  (Lit_Other "*")
                                }
                              ]
                              spids: [12565 12570 12572 -1]
                            )
                            (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: [12591]
                                    )
                                  ]
                                  spids: [12591]
                                )
                                (SimpleCommand
                                  words: [
                                    {($ VSub_Name "$printf")}
                                    {(DQ ($ VSub_Name "$name") ("=") ($ VSub_Name "$nr") (" "))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: -1
                                      arg_word: {(2)}
                                      spids: [12606]
                                    )
                                  ]
                                )
                              ]
                              spids: [12575 12576 12610 -1]
                            )
                          ]
                          spids: [12558 12562 12613]
                        )
                      ]
                      spids: [12506 12616]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_GreatAnd
                      fd: 2
                      arg_word: {(1)}
                      spids: [12618]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(signames.inc)}
                      spids: [12621]
                    )
                  ]
                )
              ]
              negated: False
            )
            (C {(rmf)} {(conftest.c)})
            (C {($ VSub_Name "$e")} {(done.)})
          ]
          spids: [-1 11922]
        )
      ]
      spids: [-1 12634]
    )
    (C {(addsrcs)} {(SQ <"!">)} {(HAVE_STRLCPY)} {(strlcpy.c)})
    (C {(addsrcs)} {(USE_PRINTF_BUILTIN)} {(printf.c)})
    (AndOr
      children: [
        (C {(test)} {(1)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$USE_PRINTF_BUILTIN"))})
        (C {(add_cppflags)} {(-DMKSH_PRINTF_BUILTIN)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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: [12681]
            )
          ]
          spids: [12681]
        )
      ]
      op_id: Op_DAmp
    )
    (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:{(SQ )} spids:[12715])]
      spids: [12715]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:objs) op:Equal rhs:{(SQ )} spids:[12717])]
      spids: [12717]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:sp) op:Equal rhs:{(SQ )} spids:[12719])]
      spids: [12719]
    )
    (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: [12733]
                )
              ]
              spids: [12733]
            )
            (C {(add_cppflags)} {(-DMKSH_EXE_EXT)})
          ]
          spids: [12727 12730 12743 -1]
        )
        (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: [12749]
                )
              ]
              spids: [12749]
            )
          ]
          spids: [12745 12746 12753 -1]
        )
      ]
      spids: [12721 12725 12755]
    )
    (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: [12768]
                )
              ]
              spids: [12768]
            )
          ]
          spids: [12763 12766 12774 -1]
        )
        (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: [12779]
                )
              ]
              spids: [12779]
            )
          ]
          spids: [12776 12777 12787 -1]
        )
      ]
      spids: [12757 12761 12789]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(test.sh)} spids:[12793])
        (HereDoc
          op_id: Redir_DLessDash
          fd: -1
          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: True
          spids: [12796]
        )
      ]
    )
    (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: [13147]
                )
              ]
              spids: [13147]
            )
          ]
          spids: [13143 13144 13153 -1]
        )
        (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: [13159]
                )
              ]
              spids: [13159]
            )
          ]
          spids: [13155 13156 13165 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:emitbc) op:Equal rhs:{(-c)} spids:[13171])]
              spids: [13171]
            )
          ]
          spids: [13167 13168 13175 -1]
        )
      ]
      spids: [13137 13141 13177]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ (": # work around NeXTstep bug"))}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(Rebuild.sh)} spids:[13185])]
    )
    (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: [13195 13200]
              )
            }
          spids: [13194]
        )
      ]
      spids: [13194]
    )
    (C {(cd)} {(DQ ($ VSub_Name "$curdir"))})
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name "$optfiles")}]
      do_arg_iter: False
      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: [13217 13241]
        )
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Rebuild.sh)} spids:[13243])]
      spids: [13213 13215]
    )
    (SimpleCommand
      words: [{(echo)} {(set)} {(-x)}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Rebuild.sh)} spids:[13252])]
    )
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name "$SRCS")}]
      do_arg_iter: False
      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: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [13268 13283]
                      )
                    }
                  spids: [13267]
                )
              ]
              spids: [13267]
            )
            (AndOr
              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: [13294]
                    )
                  ]
                  spids: [13294]
                )
              ]
              op_id: Op_DPipe
            )
            (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: [13300]
                )
              ]
              spids: [13300]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:sp) op:Equal rhs:{(SQ <" ">)} spids:[13308])]
              spids: [13308]
            )
            (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:-1 arg_word:{(Rebuild.sh)} spids:[13329])]
            )
            (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: -1
                          arg_word: {(Rebuild.sh)}
                          spids: [13361]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ("llvm-as ") (${ VSub_Name op) ("ll || exit 1"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(Rebuild.sh)}
                          spids: [13375]
                        )
                      ]
                    )
                    (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: [13379]
                        )
                      ]
                      spids: [13379]
                    )
                  ]
                  spids: [-1 13344]
                )
              ]
              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: [13393]
                    )
                  ]
                  spids: [13393]
                )
              ]
              spids: [13390 13404]
            )
          ]
          spids: [13264 13406]
        )
      spids: [13260 13262]
    )
    (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:-1 arg_word:{(Rebuild.sh)} spids:[13428])]
            )
            (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:-1 arg_word:{(Rebuild.sh)} spids:[13444])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lobjs)
                  op: Equal
                  rhs: {($ VSub_Name "$tfn") (.s)}
                  spids: [13448]
                )
              ]
              spids: [13448]
            )
          ]
          spids: [13414 13417 13453 -1]
        )
        (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: [13459]
                )
              ]
              spids: [13459]
            )
          ]
          spids: [13455 13456 13463 -1]
        )
      ]
      spids: [13408 13412 13465]
    )
    (SimpleCommand
      words: [{(echo)} {(Lit_VarLike "tcfn=") ($ VSub_Name "$mkshexe")}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Rebuild.sh)} spids:[13472])]
    )
    (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:-1 arg_word:{(Rebuild.sh)} spids:[13493])]
    )
    (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:-1 arg_word:{(Rebuild.sh)} spids:[13508])]
    )
    (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: [13525]
                )
              ]
              spids: [13525]
            )
            (AndOr
              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: [13541]
                    )
                  ]
                  spids: [13541]
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gens)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [13548]
                )
                (assign_pair
                  lhs: (LhsName name:genq)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [13550]
                )
              ]
              spids: [13548]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name "$optfiles")}]
              do_arg_iter: False
              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: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [13566 13580]
                              )
                            }
                          spids: [13565]
                        )
                      ]
                      spids: [13565]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gens)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$gens") (" ") ($ VSub_Name "$genf"))}
                          spids: [13583]
                        )
                      ]
                      spids: [13583]
                    )
                    (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: [13591]
                        )
                      ]
                      spids: [13591]
                    )
                  ]
                  spids: [13562 13613]
                )
              spids: [13558 13560]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(Makefrag.inc)}
                  spids: [13618]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  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: True
                  spids: [13621]
                )
              ]
            )
            (C {($ VSub_Name "$e")})
            (C {($ VSub_Name "$e")} {(Generated)} {(Makefrag.inc)} {(successfully.)})
            (C {(exit)} {(0)})
          ]
          spids: [-1 13522]
        )
      ]
      spids: [-1 13746]
    )
    (ForEach
      iter_name: file
      iter_words: [{($ VSub_Name "$optfiles")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {($ VSub_Name "$e")} {(DQ ("+ Running genopt on '") ($ VSub_Name "$file") ("'..."))})
            (AndOr
              children: [
                (C {(do_genopt)} {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$file"))})
                (C {(exit)} {(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [13757 13783]
        )
      spids: [13753 13755]
    )
    (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: [13799]
                )
              ]
              spids: [13799]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name "$SRCS")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      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: [13826]
                            )
                          ]
                          spids: [13826]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:objs)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$objs") (" ") ($ VSub_Name "$file"))}
                          spids: [13832]
                        )
                      ]
                      spids: [13832]
                    )
                  ]
                  spids: [13815 13840]
                )
              spids: [13811 13813]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emitbc)
                  op: Equal
                  rhs: {(DQ ("-fwhole-program --combine"))}
                  spids: [13843]
                )
              ]
              spids: [13843]
            )
            (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: [-1 13796]
        )
        (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: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      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: [13903]
                            )
                          ]
                          spids: [13903]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (Sentence
                      child: 
                        (C {(v)} 
                          {
                            (DQ ($ VSub_Name "$CC") (" ") ($ VSub_Name "$CFLAGS") (" ") 
                              ($ VSub_Name "$CPPFLAGS") (" ") ($ VSub_Name "$emitbc") (" ") ($ VSub_Name "$file")
                            )
                          }
                        )
                      terminator: <Op_Amp "&">
                    )
                  ]
                  spids: [13892 13926]
                )
              spids: [13888 13890]
            )
            (C {(wait)})
          ]
          spids: [13869 13880]
        )
      ]
      else_action: [
        (ForEach
          iter_name: file
          iter_words: [{($ VSub_Name "$SRCS")}]
          do_arg_iter: False
          body: 
            (DoGroup
              children: [
                (AndOr
                  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: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [13959 13974]
                              )
                            }
                          spids: [13958]
                        )
                      ]
                      spids: [13958]
                    )
                  ]
                  op_id: Op_DAmp
                )
                (AndOr
                  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: [13985]
                        )
                      ]
                      spids: [13985]
                    )
                  ]
                  op_id: Op_DPipe
                )
                (AndOr
                  children: [
                    (C {(v)} 
                      {
                        (DQ ($ VSub_Name "$CC") (" ") ($ VSub_Name "$CFLAGS") (" ") 
                          ($ VSub_Name "$CPPFLAGS") (" ") ($ VSub_Name "$emitbc") (" ") ($ VSub_Name "$file")
                        )
                      }
                    )
                    (C {(exit)} {(1)})
                  ]
                  op_id: Op_DPipe
                )
                (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
                          children: [
                            (C {(v)} {(DQ ("llvm-as ") (${ VSub_Name op) (ll))})
                            (C {(exit)} {(1)})
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      spids: [-1 14023]
                    )
                  ]
                  spids: [-1 14058]
                )
              ]
              spids: [13943 14061]
            )
          spids: [13939 13941]
        )
      ]
      spids: [13931 14063]
    )
    (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: [14071 14074 14096 -1]
        )
      ]
      spids: [14065 14069 14098]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tcfn)
          op: Equal
          rhs: {($ VSub_Name "$mkshexe")}
          spids: [14100]
        )
      ]
      spids: [14100]
    )
    (AndOr
      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")
            )
          }
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [(C {(test)} {(-f)} {($ VSub_Name "$tcfn")}) (C {(exit)} {(1)})]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(test)} {(1)} {(Lit_Other "=")} {($ VSub_Name "$r")})
        (AndOr
          children: [
            (C {(v)} 
              {
                (DQ ($ VSub_Name "$NROFF") (" -mdoc <'") ($ VSub_Name "$srcdir") ("/mksh.1' >") 
                  ($ VSub_Name "$tfn") (.cat1)
                )
              }
            )
            (C {(rmf)} {($ VSub_Name "$tfn") (.cat1)})
          ]
          op_id: Op_DPipe
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(test)} {(0)} {(Lit_Other "=")} {($ VSub_Name "$eq")})
        (C {(v)} {($ VSub_Name "$SIZE")} {($ VSub_Name "$tcfn")})
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(install)} spids:[14189])]
      spids: [14189]
    )
    (AndOr
      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: [14201]
            )
          ]
          spids: [14201]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      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:[14215])]
          spids: [14215]
        )
      ]
      op_id: Op_DAmp
    )
    (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: [-1 14251]
        )
      ]
      spids: [-1 14273]
    )
    (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: [-1 14296]
        )
      ]
      spids: [-1 14322]
    )
    (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.)}
    )
    (C {(exit)} {(0)})
    (SimpleCommand
      words: [{(Lit_Other ":")}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          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: True
          spids: [14384]
        )
      ]
    )
  ]
)