(command.CommandList
  children: [
    (command.ShFunction
      name: fatal_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<print>} {<-u2>} {(DQ (${ Id.VSub_Name progname) <': '> ($ Id.VSub_Star '*'))})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (C {<set>} {<-o>} {<errexit>})
    (C {<set>} {<-o>} {<xtrace>})
    (C {<typeset>} 
      {<Id.Lit_VarLike 'progname='> 
        (DQ 
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: (C {<basename>} {(DQ (${ Id.VSub_Number 0))})
            right: <Id.Eof_RParen _>
          )
        )
      }
    )
    (C {<typeset>} {<Id.Lit_VarLike 'buildmode='> (DQ ($ Id.VSub_Number 1))})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name buildmode))}
                          right: {(DQ )}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<fatal_error>} {(DQ <'buildmode required.'>)})]
          spids: [164 183]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<export>} {<Id.Lit_VarLike 'LANG='> <C>})
    (C {<export>} {<Id.Lit_VarLike 'LC_ALL='> ($ Id.VSub_DollarName LANG)} 
      {<Id.Lit_VarLike 'LC_MONETARY='> ($ Id.VSub_DollarName LANG)} {<Id.Lit_VarLike 'LC_NUMERIC='> ($ Id.VSub_DollarName LANG)} 
      {<Id.Lit_VarLike 'LC_MESSAGES='> ($ Id.VSub_DollarName LANG)} {<Id.Lit_VarLike 'LC_COLLATE='> ($ Id.VSub_DollarName LANG)} 
      {<Id.Lit_VarLike 'LC_CTYPE='> ($ Id.VSub_DollarName LANG)}
    )
    (C {<export>} 
      {<Id.Lit_VarLike 'PATH='> <'/usr/xpg6/bin'> <Id.Lit_Colon ':'> <'/usr/xpg4/bin'> 
        <Id.Lit_Colon ':'> <'/usr/ccs/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> 
        <'/opt/SUNWspro/bin'>
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<uname>} {<-s>})
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          right: {(DQ <SunOS>)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_x
                                      child: {(DQ <'/usr/xpg6/bin/tr'>)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<fatal_error>} {(DQ <'XPG6/4 packages (SUNWxcu6,SUNWxcu4) not installed.'>)})
                  ]
                  spids: [276 292]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [251 273]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: print_solaris_builtin_header
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<ENDOFTEXT>}
                      here_end_span_id: 576
                      stdin_parts: [
                        <'/*\n'>
                        <' * CDDL HEADER START\n'>
                        <' *\n'>
                        <' * The contents of this file are subject to the terms of the\n'>
                        <' * Common Development and Distribution License (the '>
                        <Id.Right_DoubleQuote '"'>
                        <License>
                        <Id.Right_DoubleQuote '"'>
                        <').\n'>
                        <' * You may not use this file except in compliance with the License.\n'>
                        <' *\n'>
                        <' * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE\n'>
                        <' * or http://www.opensolaris.org/os/licensing.\n'>
                        <' * See the License for the specific language governing permissions\n'>
                        <' * and limitations under the License.\n'>
                        <' *\n'>
                        <' * When distributing Covered Code, include this CDDL HEADER in each\n'>
                        <' * file and include the License file at usr/src/OPENSOLARIS.LICENSE.\n'>
                        <' * If applicable, add the following below this CDDL HEADER, with the\n'>
                        <' * fields enclosed by brackets '>
                        <Id.Right_DoubleQuote '"'>
                        <'[]'>
                        <Id.Right_DoubleQuote '"'>
                        <' replaced with your own identifying\n'>
                        <' * information: Portions Copyright [yyyy] [name of copyright owner]\n'>
                        <' *\n'>
                        <' * CDDL HEADER END\n'>
                        <' */\n'>
                        <'\n'>
                        <'/*\n'>
                        <
' * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.\n'
                        >
                        <' */\n'>
                        <'\n'>
                        <'#ifndef _SOLARIS_KSH_CMDLIST_H\n'>
                        <'#define\t_SOLARIS_KSH_CMDLIST_H\n'>
                        <'\n'>
                        <'#ifdef\t__cplusplus\n'>
                        <'extern '>
                        <Id.Right_DoubleQuote '"'>
                        <C>
                        <Id.Right_DoubleQuote '"'>
                        <' {\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/*\n'>
                        <' * List builtins for Solaris.\n'>
                        <' * The list here is partially autogenerated and partially hand-picked\n'>
                        <' * based on compatibility with the native Solaris versions of these\n'>
                        <' * tools\n'>
                        <' */\n'>
                        <'\n'>
                        <'/*\n'>
                        <
' * Commands which are 100% compatible with native Solaris versions (/bin is\n'
                        >
                        <' * a softlink to ./usr/bin, ksh93 takes care about the lookup)\n'>
                        <' */\n'>
                        <'#define\tBINCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#define\tUSRBINCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#define\tSBINCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/sbin/'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#define\tSUSRBINCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/sbin/'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'/* POSIX compatible commands */\n'>
                        <'#define\tXPG6CMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/xpg6/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <' #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#define\tXPG4CMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/xpg4/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <' #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#ifdef SHOPT_USR_GNU_BIN_BUILTINS\n'>
                        <'/* GNU coreutils compatible commands */\n'>
                        <'#define\tGNUCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/gnu/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <' #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'#else\n'>
                        <'#define\tGNUCMDLIST(f)\n'>
                        <'#endif\n'>
                        <'/*\n'>
                        <' * Make all ksh93 builtins accessible when /usr/ast/bin was added to\n'>
                        <
' * /usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/bin:/opt/SUNWspro/bin\n'
                        >
                        <' */\n'>
                        <'#define\tASTCMDLIST(f)\t'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                          ch: '\\'
                        )
                        <'\n'>
                        <'\t{ '>
                        <Id.Right_DoubleQuote '"'>
                        <'/usr/ast/bin/'>
                        <Id.Right_DoubleQuote '"'>
                        <' #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },\n'>
                        <'\n'>
                        <'/* undo ast_map.h #defines to avoid collision */\n'>
                        <'#undef basename\n'>
                        <'#undef dirname\n'>
                        <'#undef mktemp\n'>
                        <'\n'>
                        <'/* Generated data, do not edit. */\n'>
                        <'ASTCMDLIST(basename)\n'>
                        <'GNUCMDLIST(basename)\n'>
                        <'XPG4CMDLIST(basename)\n'>
                        <'ASTCMDLIST(cat)\n'>
                        <'BINCMDLIST(cat)\n'>
                        <'ASTCMDLIST(chgrp)\n'>
                        <'// XPG4CMDLIST(chgrp)\n'>
                        <'ASTCMDLIST(chmod)\n'>
                        <'ASTCMDLIST(chown)\n'>
                        <'// XPG4CMDLIST(chown)\n'>
                        <'BINCMDLIST(chown)\n'>
                        <'ASTCMDLIST(cksum)\n'>
                        <'BINCMDLIST(cksum)\n'>
                        <'GNUCMDLIST(cksum)\n'>
                        <'ASTCMDLIST(cmp)\n'>
                        <'BINCMDLIST(cmp)\n'>
                        <'ASTCMDLIST(comm)\n'>
                        <'BINCMDLIST(comm)\n'>
                        <'GNUCMDLIST(comm)\n'>
                        <'ASTCMDLIST(cp)\n'>
                        <'// XPG4CMDLIST(cp)\n'>
                        <'ASTCMDLIST(cut)\n'>
                        <'BINCMDLIST(cut)\n'>
                        <'GNUCMDLIST(cut)\n'>
                        <'ASTCMDLIST(date)\n'>
                        <'// XPG4CMDLIST(date)\n'>
                        <'ASTCMDLIST(dirname)\n'>
                        <'BINCMDLIST(dirname)\n'>
                        <'GNUCMDLIST(dirname)\n'>
                        <'// ASTCMDLIST(egrep)\n'>
                        <'// XPG4CMDLIST(egrep)\n'>
                        <'ASTCMDLIST(expr)\n'>
                        <'GNUCMDLIST(expr)\n'>
                        <'XPG6CMDLIST(expr)\n'>
                        <'ASTCMDLIST(fds)\n'>
                        <'// ASTCMDLIST(fgrep)\n'>
                        <'// XPG4CMDLIST(fgrep)\n'>
                        <'ASTCMDLIST(fmt)\n'>
                        <'ASTCMDLIST(fold)\n'>
                        <'BINCMDLIST(fold)\n'>
                        <'GNUCMDLIST(fold)\n'>
                        <'// ASTCMDLIST(grep)\n'>
                        <'// XPG4CMDLIST(grep)\n'>
                        <'ASTCMDLIST(head)\n'>
                        <'BINCMDLIST(head)\n'>
                        <'ASTCMDLIST(id)\n'>
                        <'XPG4CMDLIST(id)\n'>
                        <'ASTCMDLIST(join)\n'>
                        <'BINCMDLIST(join)\n'>
                        <'GNUCMDLIST(join)\n'>
                        <'ASTCMDLIST(ln)\n'>
                        <'// XPG4CMDLIST(ln)\n'>
                        <'ASTCMDLIST(logname)\n'>
                        <'BINCMDLIST(logname)\n'>
                        <'GNUCMDLIST(logname)\n'>
                        <'ASTCMDLIST(md5sum)\n'>
                        <'ASTCMDLIST(mkdir)\n'>
                        <'BINCMDLIST(mkdir)\n'>
                        <'GNUCMDLIST(mkdir)\n'>
                        <'ASTCMDLIST(mkfifo)\n'>
                        <'BINCMDLIST(mkfifo)\n'>
                        <'GNUCMDLIST(mkfifo)\n'>
                        <'ASTCMDLIST(mktemp)\n'>
                        <'BINCMDLIST(mktemp)\n'>
                        <'GNUCMDLIST(mktemp)\n'>
                        <'ASTCMDLIST(mv)\n'>
                        <'// XPG4CMDLIST(mv)\n'>
                        <'ASTCMDLIST(paste)\n'>
                        <'BINCMDLIST(paste)\n'>
                        <'GNUCMDLIST(paste)\n'>
                        <'ASTCMDLIST(pathchk)\n'>
                        <'BINCMDLIST(pathchk)\n'>
                        <'GNUCMDLIST(pathchk)\n'>
                        <'// ASTCMDLIST(readlink)\n'>
                        <'ASTCMDLIST(rev)\n'>
                        <'BINCMDLIST(rev)\n'>
                        <'ASTCMDLIST(rm)\n'>
                        <'XPG4CMDLIST(rm)\n'>
                        <'ASTCMDLIST(rmdir)\n'>
                        <'BINCMDLIST(rmdir)\n'>
                        <'GNUCMDLIST(rmdir)\n'>
                        <'GNUCMDLIST(sleep)\n'>
                        <'ASTCMDLIST(stty)\n'>
                        <'// XPG4CMDLIST(stty)\n'>
                        <'ASTCMDLIST(sum)\n'>
                        <'BINCMDLIST(sum)\n'>
                        <'ASTCMDLIST(sync)\n'>
                        <'BINCMDLIST(sync)\n'>
                        <'GNUCMDLIST(sync)\n'>
                        <'SBINCMDLIST(sync)\n'>
                        <'SUSRBINCMDLIST(sync)\n'>
                        <'ASTCMDLIST(tail)\n'>
                        <'BINCMDLIST(tail)\n'>
                        <'XPG4CMDLIST(tail)\n'>
                        <'ASTCMDLIST(tee)\n'>
                        <'BINCMDLIST(tee)\n'>
                        <'GNUCMDLIST(tee)\n'>
                        <'ASTCMDLIST(tty)\n'>
                        <'BINCMDLIST(tty)\n'>
                        <'GNUCMDLIST(tty)\n'>
                        <'ASTCMDLIST(uname)\n'>
                        <'ASTCMDLIST(uniq)\n'>
                        <'BINCMDLIST(uniq)\n'>
                        <'GNUCMDLIST(uniq)\n'>
                        <'ASTCMDLIST(wc)\n'>
                        <'BINCMDLIST(wc)\n'>
                        <'GNUCMDLIST(wc)\n'>
                        <'// ASTCMDLIST(xgrep)\n'>
                        <'// BINCMDLIST(xgrep)\n'>
                        <'\n'>
                        <'/* Mandatory for ksh93 test suite and AST scripts */\n'>
                        <'BINCMDLIST(getconf)\n'>
                        <'\n'>
                        <'#ifdef\t__cplusplus\n'>
                        <'}\n'>
                        <'#endif\n'>
                        <'#endif /* !_SOLARIS_KSH_CMDLIST_H */\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_shell
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<set>} {<-o>} {<errexit>})
            (C {<set>} {<-o>} {<xtrace>})
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name buildmode))}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.linux.> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bast_flags='> name:bast_flags)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'-DSHOPT_CMDLIB_BLTIN=0 -DSH_CMDLIB_DIR='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/usr/ast/bin'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' -DSHOPT_SYSRC -D_map_libc=1'>
                              )
                            }
                          spids: [627]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bgcc99='> name:bgcc99)
                          op: assign_op.Equal
                          rhs: {(DQ <'gcc -std=gnu99 '>)}
                          spids: [645]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'bgcc_ccflags='>
                              name: bgcc_ccflags
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name bon_flags) <' '> (${ Id.VSub_Name bast_flags) <' -g'>)
                            }
                          spids: [651]
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name buildmode))}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.i386.32bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <linux.i386>)}
                                  spids: [685]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -fPIC'>)}
                                  spids: [690]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [698]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [703]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [680 683 711 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<fatal_error>} 
                              {
                                (DQ <'build_shell: Illegal Linux type/compiler build mode '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) (${ Id.VSub_Name buildmode) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.>
                                )
                              }
                            )
                          ]
                          spids: [714 715 731 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [617 620 737 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.solaris.> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'solaris_builtin_header='>
                              name: solaris_builtin_header
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name PWD) <'/tmp_solaris_builtin_header.h'>)}
                          spids: [892]
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      words: [{<print_solaris_builtin_header>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name solaris_builtin_header))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bon_flags='> name:bon_flags)
                          op: assign_op.Equal
                          rhs: {(DQ <'-D_TS_ERRNO -D_REENTRANT'>)}
                          spids: [917]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bast_flags='> name:bast_flags)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'-DSHOPT_CMDLIB_BLTIN=0 -DSH_CMDLIB_DIR='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/usr/ast/bin'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' -DSHOPT_CMDLIB_HDR='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                (${ Id.VSub_Name solaris_builtin_header) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) <' -DSHOPT_SYSRC -D_map_libc=1'>
                              )
                            }
                          spids: [929]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bsunc99='> name:bsunc99)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'/opt/SUNWspro/bin/cc -xc99=%all -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1'
                                >
                              )
                            }
                          spids: [955]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'bsuncc_app_ccflags_sparc='>
                              name: bsuncc_app_ccflags_sparc
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'-xpagesize_stack=64K'>)}
                          spids: [961]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'bsuncc_ccflags='>
                              name: bsuncc_ccflags
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name bon_flags) 
                                <
' -KPIC -g -xs -xspace -Xa -xstrconst -z combreloc -xildoff -xcsi -errtags=yes '
                                > (${ Id.VSub_Name bast_flags) <' -D_lib_socket=1 -lsocket -lnsl'>
                              )
                            }
                          spids: [970]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bgcc99='> name:bgcc99)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'/usr/sfw/bin/gcc -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1'
                                >
                              )
                            }
                          spids: [988]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'bgcc_warnflags='>
                              name: bgcc_warnflags
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'-Wall -Wextra -Wno-unknown-pragmas -Wno-missing-braces -Wno-sign-compare -Wno-parentheses -Wno-uninitialized -Wno-implicit-function-declaration -Wno-unused -Wno-trigraphs -Wno-char-subscripts -Wno-switch'
                                >
                              )
                            }
                          spids: [994]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'bgcc_ccflags='>
                              name: bgcc_ccflags
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name bon_flags) <' '> (${ Id.VSub_Name bgcc_warnflags) 
                                <' '> (${ Id.VSub_Name bast_flags) <' -D_lib_socket=1 -lsocket -lnsl'>
                              )
                            }
                          spids: [1000]
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name buildmode))}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.i386.32bit.suncc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.i386>)}
                                  spids: [1039]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsunc99) <' -m32'>)}
                                  spids: [1044]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-G>)}
                                  spids: [1052]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_ccflags))}
                                  spids: [1057]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1034 1037 1064 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.i386.64bit.suncc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.i386>)}
                                  spids: [1072]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsunc99) <' -m64 -KPIC'>)}
                                  spids: [1077]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-G>)}
                                  spids: [1085]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_ccflags))}
                                  spids: [1090]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1067 1070 1097 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.sparc.32bit.suncc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.sun4>)}
                                  spids: [1105]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsunc99) <' -m32'>)}
                                  spids: [1110]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-G>)}
                                  spids: [1118]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_ccflags))}
                                  spids: [1123]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'bsuncc_app_ccflags='>
                                      name: bsuncc_app_ccflags
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_app_ccflags_sparc))}
                                  spids: [1130]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1100 1103 1137 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.sparc.64bit.suncc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.sun4>)}
                                  spids: [1145]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsunc99) <' -m64 -dalign -KPIC'>)}
                                  spids: [1150]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-G>)}
                                  spids: [1158]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_ccflags))}
                                  spids: [1163]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'bsuncc_app_ccflags='>
                                      name: bsuncc_app_ccflags
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bsuncc_app_ccflags_sparc))}
                                  spids: [1170]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1140 1143 1177 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.i386.32bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.i386>)}
                                  spids: [1186]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -fPIC'>)}
                                  spids: [1191]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1199]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1204]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1181 1184 1211 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.i386.64bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.i386>)}
                                  spids: [1219]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name bgcc99) 
                                        <' -m64 -mtune=opteron -Ui386 -U__i386 -fPIC'>
                                      )
                                    }
                                  spids: [1224]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1232]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1237]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1214 1217 1244 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.sparc.32bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.sun4>)}
                                  spids: [1252]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -m32 -mcpu=v8 -fPIC'>)}
                                  spids: [1257]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1265]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1270]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1247 1250 1277 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.sparc.64bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.sun4>)}
                                  spids: [1285]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -m64 -mcpu=v9 -fPIC'>)}
                                  spids: [1290]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1298]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1303]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1280 1283 1310 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.s390.32bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.s390>)}
                                  spids: [1318]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -m32          -fPIC'>)}
                                  spids: [1323]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1331]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1336]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1313 1316 1343 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.s390.64bit.gcc> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      name: HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <sol11.s390>)}
                                  spids: [1351]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc99) <' -m64          -fPIC'>)}
                                  spids: [1356]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cc_sharedlib='>
                                      name: cc_sharedlib
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-shared>)}
                                  spids: [1364]
                                )
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CCFLAGS='>
                                      name: CCFLAGS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name bgcc_ccflags))}
                                  spids: [1369]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1346 1349 1376 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<fatal_error>} 
                              {
                                (DQ <'build_shell: Illegal Solaris type/compiler build mode '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) (${ Id.VSub_Name buildmode) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.>
                                )
                              }
                            )
                          ]
                          spids: [1380 1381 1397 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [740 743 1403 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<fatal_error>} 
                      {
                        (DQ <'Illegal OS build mode '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (${ Id.VSub_Name buildmode) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.>
                        )
                      }
                    )
                  ]
                  spids: [1406 1407 1423 -1]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ (${ Id.VSub_Name CCFLAGS))})
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: CCFLAGS is empty.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ (${ Id.VSub_Name CC))})
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: CC is empty.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ (${ Id.VSub_Name HOSTTYPE))})
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: HOSTTYPE is empty.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_f child:{(DQ <'bin/package'>)})
                    )
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: bin/package missing.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{(DQ <'bin/package'>)})
                    )
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: bin/package not executable.'>)})
              ]
            )
            (C {<export>} {<CCFLAGS>} {<CC>} {<HOSTTYPE>})
            (C {<'bin/package'>} {<make>} {<Id.Lit_VarLike 'CCFLAGS='> (DQ (${ Id.VSub_Name CCFLAGS))} 
              {<Id.Lit_VarLike 'CC='> (DQ (${ Id.VSub_Name CC))} {<Id.Lit_VarLike 'HOSTTYPE='> (DQ (${ Id.VSub_Name HOSTTYPE))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name PWD) <'/arch/'> (${ Id.VSub_Name HOSTTYPE))}
                  spids: [1581]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_d child:{(DQ ($ Id.VSub_DollarName root))})
                  redirects: []
                )
                (C {<fatal_error>} 
                  {(DQ <'build_shell: directory '> (${ Id.VSub_Name root) <' not found.'>)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'log='> name:log)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name root) <'/lib/package/gen/make.out'>)}
                  spids: [1616]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_s child:{($ Id.VSub_DollarName log)})
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'build_shell: no make.out log found.'>)})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name root) <'/lib/libast-g.a'>}
                            )
                          redirects: []
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'link_libast='>
                                  name: link_libast
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <ast-g>)}
                              spids: [1659]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1644 1657]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_libast='>
                              name: link_libast
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <ast>)}
                          spids: [1668]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name root) <'/lib/libdll-g.a'>}
                            )
                          redirects: []
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'link_libdll='>
                                  name: link_libdll
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <dll-g>)}
                              spids: [1693]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1678 1691]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_libdll='>
                              name: link_libdll
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <dll>)}
                          spids: [1702]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name root) <'/lib/libsum-g.a'>}
                            )
                          redirects: []
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'link_libsum='>
                                  name: link_libsum
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <sum-g>)}
                              spids: [1727]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1712 1725]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_libsum='>
                              name: link_libsum
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <sum>)}
                          spids: [1736]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name root) <'/lib/libcmd-g.a'>}
                            )
                          redirects: []
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'link_libcmd='>
                                  name: link_libcmd
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <cmd-g>)}
                              spids: [1761]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1746 1759]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_libcmd='>
                              name: link_libcmd
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <cmd>)}
                          spids: [1770]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name root) <'/lib/libshell-g.a'>}
                            )
                          redirects: []
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'link_libshell='>
                                  name: link_libshell
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <shell-g>)}
                              spids: [1795]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1780 1793]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_libshell='>
                              name: link_libshell
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <shell>)}
                          spids: [1804]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {(DQ (${ Id.VSub_Name buildmode))}
                                  right: {<Id.Lit_Other '*'> <.staticshell> <Id.Lit_Other '*'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForEach
                      iter_names: [lib]
                      iterable: 
                        (for_iter.Words
                          words: [{<libast>} {<libdll>} {<libsum>} {<libcmd>} {<libshell>}]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName lib))}
                              arms: [
                                (case_arm
                                  pat_list: [{<libshell>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'base='>
                                              name: base
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'src/cmd/ksh93/'>)}
                                          spids: [1884]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vers='>
                                              name: vers
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1890]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'link='>
                                              name: link
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <-L> (${ Id.VSub_Name root) <'/lib/ -l'> 
                                                (${ Id.VSub_Name link_libcmd) <' -l'> (${ Id.VSub_Name link_libsum) <' -l'> (${ Id.VSub_Name link_libdll) <' -l'> 
                                                (${ Id.VSub_Name link_libast) <' -lm'>
                                              )
                                            }
                                          spids: [1894]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1880 1881 1920 -1]
                                )
                                (case_arm
                                  pat_list: [{<libdll>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'base='>
                                              name: base
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'src/lib/'> (${ Id.VSub_Name lib))}
                                          spids: [1927]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vers='>
                                              name: vers
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1936]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'link='>
                                              name: link
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <-ldl>)}
                                          spids: [1940]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1923 1924 1946 -1]
                                )
                                (case_arm
                                  pat_list: [{<libast>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'base='>
                                              name: base
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'src/lib/'> (${ Id.VSub_Name lib))}
                                          spids: [1953]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vers='>
                                              name: vers
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1962]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'link='>
                                              name: link
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <-lm>)}
                                          spids: [1966]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1949 1950 1972 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'base='>
                                              name: base
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'src/lib/'> (${ Id.VSub_Name lib))}
                                          spids: [1979]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vers='>
                                              name: vers
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [1988]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'link='>
                                              name: link
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <-L> (${ Id.VSub_Name root) <'/lib/ -l'> 
                                                (${ Id.VSub_Name link_libast) <' -lm'>
                                              )
                                            }
                                          spids: [1992]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1975 1976 2006 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.Subshell
                              child: 
                                (command.CommandList
                                  children: [
                                    (C {<cd>} {(DQ (${ Id.VSub_Name root) <'/'> (${ Id.VSub_Name base))})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Unary
                                                          op_id: Id.BoolUnary_f
                                                          child: {(${ Id.VSub_Name lib) <-g.a>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'lib_a='>
                                                          name: lib_a
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ (${ Id.VSub_Name lib) <-g.a>)}
                                                      spids: [2048]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          spids: [2031 2046]
                                        )
                                      ]
                                      else_action: [
                                        (command.Sentence
                                          child: 
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib_a='>
                                                      name: lib_a
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ (${ Id.VSub_Name lib) <.a>)}
                                                  spids: [2060]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(DQ (${ Id.VSub_Name buildmode))}
                                                          right: 
                                                            {<Id.Lit_Other '*'> <solaris> 
                                                              <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {(${ Id.VSub_Name CC)} {(${ Id.VSub_Name cc_sharedlib)} 
                                              {(${ Id.VSub_Name CCFLAGS)} {<-Bdirect>} {<-Wl> <Id.Lit_Comma ','> <-zallextract>} {<-Wl> <Id.Lit_Comma ','> <-zmuldefs>} {<-o>} 
                                              {
                                                (DQ (${ Id.VSub_Name root) <'/lib/'> 
                                                  (${ Id.VSub_Name lib) <.so.> (${ Id.VSub_Name vers)
                                                )
                                              } {(DQ (${ Id.VSub_Name lib_a))} {($ Id.VSub_DollarName link)}
                                            )
                                          ]
                                          spids: [2075 2095]
                                        )
                                      ]
                                      else_action: [
                                        (C {(${ Id.VSub_Name CC)} {(${ Id.VSub_Name cc_sharedlib)} 
                                          {(${ Id.VSub_Name CCFLAGS)} {<-Wl> <Id.Lit_Comma ','> <--whole-archive>} {<-Wl> <Id.Lit_Comma ','> <-zmuldefs>} 
                                          {(DQ (${ Id.VSub_Name lib_a))} {<-Wl> <Id.Lit_Comma ','> <--no-whole-archive>} {<-o>} 
                                          {
                                            (DQ (${ Id.VSub_Name root) <'/lib/'> (${ Id.VSub_Name lib) 
                                              <.so.> (${ Id.VSub_Name vers)
                                            )
                                          } {($ Id.VSub_DollarName link)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<mv>} {(DQ (${ Id.VSub_Name lib_a))} 
                                      {(DQ <disabled_> (${ Id.VSub_Name lib_a) <_>)}
                                    )
                                    (C {<cd>} {(DQ (${ Id.VSub_Name root) <'/lib'>)})
                                    (C {<ln>} {<-sf>} 
                                      {(DQ (${ Id.VSub_Name lib) <.so.> (${ Id.VSub_Name vers))} {(DQ (${ Id.VSub_Name lib) <.so>)}
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.Subshell
                      child: 
                        (command.CommandList
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
                                  op: assign_op.Equal
                                  rhs: {<'src/cmd/ksh93'>}
                                  spids: [2266]
                                )
                              ]
                              redirects: []
                            )
                            (C {<cd>} {(DQ (${ Id.VSub_Name root) <'/'> (${ Id.VSub_Name base))})
                            (C {<rm>} {<-f>} {(DQ (${ Id.VSub_Name root) <'/lib/libshell.a'>)} 
                              {(DQ (${ Id.VSub_Name root) <'/lib/libshell-g.a'>)} {(DQ (${ Id.VSub_Name root) <'/lib/libsum.a'>)} {(DQ (${ Id.VSub_Name root) <'/lib/libsum-g.a'>)} 
                              {(DQ (${ Id.VSub_Name root) <'/lib/libdll.a'>)} {(DQ (${ Id.VSub_Name root) <'/lib/libdll-g.a'>)} {(DQ (${ Id.VSub_Name root) <'/lib/libast.a'>)} 
                              {(DQ (${ Id.VSub_Name root) <'/lib/libast-g.a'>)}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name buildmode))}
                                                  right: 
                                                    {<Id.Lit_Other '*'> <solaris> <Id.Lit_Other '*'>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {(${ Id.VSub_Name CC)} {(${ Id.VSub_Name CCFLAGS)} 
                                      {(${ Id.VSub_Name bsuncc_app_ccflags)} {<-L> (${ Id.VSub_Name root) <'/lib/'>} {<-Bdirect>} {<-o>} {<ksh>} {<pmain.o>} {<-lshell>} {<-Bstatic>} 
                                      {<-l> (${ Id.VSub_Name link_libcmd)} {<-Bdynamic>} {<-lsum>} {<-ldll>} {<-last>} {<-lm>} {<-lmd>} {<-lsecdb>}
                                    )
                                  ]
                                  spids: [2353 2373]
                                )
                              ]
                              else_action: [
                                (C {(${ Id.VSub_Name CC)} {(${ Id.VSub_Name CCFLAGS)} 
                                  {(${ Id.VSub_Name bsuncc_app_ccflags)} {<-L> (${ Id.VSub_Name root) <'/lib/'>} {<-o>} {<ksh>} {<pmain.o>} {<-lshell>} {<-lcmd>} {<-lsum>} {<-ldll>} 
                                  {<-last>} {<-lm>}
                                )
                              ]
                              redirects: []
                            )
                            (C {<file>} {<ksh>})
                            (C {<file>} {<shcomp>})
                            (C {<export>} 
                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> 
                                (DQ (${ Id.VSub_Name root) <'/lib:'> (${ Id.VSub_Name LD_LIBRARY_PATH))
                              }
                            )
                            (C {<export>} 
                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_32='> 
                                (DQ (${ Id.VSub_Name root) <'/lib:'> 
                                  (${ Id.VSub_Name LD_LIBRARY_PATH_32)
                                )
                              }
                            )
                            (C {<export>} 
                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_64='> 
                                (DQ (${ Id.VSub_Name root) <'/lib:'> 
                                  (${ Id.VSub_Name LD_LIBRARY_PATH_64)
                                )
                              }
                            )
                            (C {<ldd>} {<ksh>})
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [1815 1835]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: test_builtin_getconf
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (C {<print>} {(DQ <'# testing getconf builtin...'>)})
                    (C {<set>} {<Id.Lit_Other '+'> <o>} {<errexit>})
                    (C {<export>} {<Id.Lit_VarLike 'PATH='> <'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'>})
                    (command.ForEach
                      iter_names: [lang]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name TEST_LANG)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Subshell
                              child: 
                                (command.CommandList
                                  children: [
                                    (C {<printf>} 
                                      {(DQ <'## testing LANG=%s'> <Id.Lit_BadBackslash '\\'> <n>)} {(DQ (${ Id.VSub_Name lang))}
                                    )
                                    (C {<export>} 
                                      {<Id.Lit_VarLike 'LC_ALL='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'LANG='> (DQ (${ Id.VSub_Name lang))}
                                    )
                                    (C {(${ Id.VSub_Name SHELL)} {<-c>} 
                                      {
                                        (SQ <'/usr/bin/getconf -a | \n'> 
                                          <'                         while read i ; do \n'> <'                         t="${i%:*}" ; a="$(getconf "$t" 2>/dev/null)" ; \n'> 
                                          <
'                         b="$(/usr/bin/getconf "$t" 2>/dev/null)" ; [ "$a" != "$b" ] && print "# |$t|:|$a| != |$b|" ;\n'
                                          > <'                         done'>
                                        )
                                      }
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (C {<print>} {(DQ <'# testing getconf done.'>)})
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: test_shell
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<set>} {<-o>} {<errexit>})
            (C {<set>} {<-o>} {<xtrace>})
            (C {<ulimit>} {<-s>} {<65536>})
            (C {<export>} 
              {<Id.Lit_VarLike 'SHELL='> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<ls>} {<-1>} 
                        {($ Id.VSub_DollarName PWD) <'/arch/'> <Id.Lit_Star '*'> <'/src/cmd/ksh93/ksh'>}
                      )
                    right: <Id.Eof_RParen _>
                  )
                )
              }
            )
            (C {<export>} 
              {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<ls>} {<-1ad>} 
                        {($ Id.VSub_DollarName PWD) <'/arch/'> <Id.Lit_Star '*'> <'/lib'>}
                      )
                    right: <Id.Eof_RParen _>
                  ) <':'> (${ Id.VSub_Name LD_LIBRARY_PATH)
                )
              }
            )
            (C {<export>} 
              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_32='> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<ls>} {<-1ad>} 
                        {($ Id.VSub_DollarName PWD) <'/arch/'> <Id.Lit_Star '*'> <'/lib'>}
                      )
                    right: <Id.Eof_RParen _>
                  ) <':'> (${ Id.VSub_Name LD_LIBRARY_PATH_32)
                )
              }
            )
            (C {<export>} 
              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_64='> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<ls>} {<-1ad>} 
                        {($ Id.VSub_DollarName PWD) <'/arch/'> <Id.Lit_Star '*'> <'/lib'>}
                      )
                    right: <Id.Eof_RParen _>
                  ) <':'> (${ Id.VSub_Name LD_LIBRARY_PATH_64)
                )
              }
            )
            (C {<printf>} {(DQ <'## SHELL is |%s|'> <Id.Lit_BadBackslash '\\'> <n>)} 
              {(DQ (${ Id.VSub_Name SHELL))}
            )
            (C {<printf>} {(DQ <'## LD_LIBRARY_PATH is |%s|'> <Id.Lit_BadBackslash '\\'> <n>)} 
              {(DQ (${ Id.VSub_Name LD_LIBRARY_PATH))}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_f child:{(DQ (${ Id.VSub_Name SHELL))})
                    )
                  redirects: []
                )
                (C {<fatal_error>} {(DQ <'test_shell: |'> (${ Id.VSub_Name SHELL) <'| is not a file.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{(DQ (${ Id.VSub_Name SHELL))})
                    )
                  redirects: []
                )
                (C {<fatal_error>} 
                  {(DQ <'test_shell: |'> (${ Id.VSub_Name SHELL) <'| is not executable.'>)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {(DQ (${ Id.VSub_Name TEST_LANG))}
                      right: {(DQ )}
                    )
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_LANG='> name:TEST_LANG)
                      op: assign_op.Equal
                      rhs: {(DQ <'C zh_CN.GB18030 en_US.UTF-8'>)}
                      spids: [2871]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name buildmode))}
              arms: [
                (case_arm
                  pat_list: [{<testshell.bcheck> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ForEach
                      iter_names: [lang]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name TEST_LANG)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Subshell
                              child: 
                                (command.CommandList
                                  children: [
                                    (C {<export>} 
                                      {<Id.Lit_VarLike 'LC_ALL='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'LANG='> (DQ (${ Id.VSub_Name lang))}
                                    )
                                    (command.ForEach
                                      iter_names: [i]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{<'./src/cmd/ksh93/tests/'> <Id.Lit_Star '*'> <.sh>}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'bc_logfile='>
                                                      name: bc_logfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (command_sub
                                                          left_token: <Id.Left_DollarParen '$('>
                                                          child: 
                                                            (C {<basename>} 
                                                              {(DQ ($ Id.VSub_DollarName i))}
                                                            )
                                                          right: <Id.Eof_RParen _>
                                                        ) <.> ($ Id.VSub_Dollar '$') <.bcheck>
                                                      )
                                                    }
                                                  spids: [2945]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<rm>} {<-f>} {(DQ (${ Id.VSub_Name bc_logfile))})
                                            (C {<'/opt/SUNWspro/bin/bcheck'>} {<-q>} {<-access>} {<-o>} 
                                              {(DQ (${ Id.VSub_Name bc_logfile))} {(${ Id.VSub_Name SHELL)} {<'./src/cmd/ksh93/tests/shtests'>} 
                                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_64='> 
                                                (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH_64))
                                              } {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH))} 
                                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH_32='> 
                                                (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH_32))
                                              } {<Id.Lit_VarLike 'LC_ALL='> (DQ (${ Id.VSub_Name lang))} 
                                              {<Id.Lit_VarLike 'LANG='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'VMALLOC_OPTIONS='> <abort>} {(DQ ($ Id.VSub_DollarName i))}
                                            )
                                            (C {<cat>} {(DQ (${ Id.VSub_Name bc_logfile))})
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [2889 2891 3057 -1]
                )
                (case_arm
                  pat_list: [{<testshell.builtin.getconf>}]
                  action: [(C {<test_builtin_getconf>})]
                  spids: [3060 3061 3067 -1]
                )
                (case_arm
                  pat_list: [{<testshell>}]
                  action: [
                    (command.ForEach
                      iter_names: [lang]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name TEST_LANG)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Subshell
                              child: 
                                (command.CommandList
                                  children: [
                                    (C {<export>} 
                                      {<Id.Lit_VarLike 'LC_ALL='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'LANG='> (DQ (${ Id.VSub_Name lang))}
                                    )
                                    (command.ForEach
                                      iter_names: [i]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{<'./src/cmd/ksh93/tests/'> <Id.Lit_Star '*'> <.sh>}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {(${ Id.VSub_Name SHELL)} 
                                              {<'./src/cmd/ksh93/tests/shtests'>} {<-a>} {<Id.Lit_VarLike 'LD_LIBRARY_PATH_64='> (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH_64))} 
                                              {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> 
                                                (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH))
                                              } {<Id.Lit_VarLike 'LD_LIBRARY_PATH_32='> (DQ ($ Id.VSub_DollarName LD_LIBRARY_PATH_32))} 
                                              {<Id.Lit_VarLike 'LC_ALL='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'LANG='> (DQ (${ Id.VSub_Name lang))} {<Id.Lit_VarLike 'VMALLOC_OPTIONS='> <abort>} 
                                              {<Id.Lit_VarLike 'SHCOMP='> ($ Id.VSub_DollarName PWD) 
                                                <'/arch/'> <Id.Lit_Star '*'> <'/bin/shcomp'>
                                              } {(DQ ($ Id.VSub_DollarName i))}
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (C {<test_builtin_getconf>})
                  ]
                  spids: [3070 3071 3202 -1]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      to_match: {(DQ (${ Id.VSub_Name buildmode))}
      arms: [
        (case_arm
          pat_list: [{<build.> <Id.Lit_Star '*'>}]
          action: [(C {<build_shell>})]
          spids: [3224 3226 3230 -1]
        )
        (case_arm
          pat_list: [{<testshell> <Id.Lit_Star '*'>}]
          action: [(C {<test_shell>})]
          spids: [3233 3235 3239 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (C {<fatal_error>} 
              {
                (DQ <'Illegal build mode '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (${ Id.VSub_Name buildmode) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.>
                )
              }
            )
          ]
          spids: [3242 3243 3257 -1]
        )
      ]
      redirects: []
    )
  ]
)